📄 a00754.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>OpenDDS: OpenDDS::DCPS::TransportReceiveStrategy Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="classes.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label> <u>S</u>earch for </label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical List</span></a></li>
<li><a href="annotated.html"><span>Class List</span></a></li>
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class Members</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="a01301.html">OpenDDS</a>::<a class="el" href="a01275.html">DCPS</a>::<a class="el" href="a00754.html">TransportReceiveStrategy</a></div>
<h1>OpenDDS::DCPS::TransportReceiveStrategy Class Reference</h1><!-- doxytag: class="OpenDDS::DCPS::TransportReceiveStrategy" --><!-- doxytag: inherits="OpenDDS::DCPS::RcObject< ACE_SYNCH_MUTEX >" --><code>#include <TransportReceiveStrategy.h></code>
<p>
Inheritance diagram for OpenDDS::DCPS::TransportReceiveStrategy:<p><center><img src="a02883.png" border="0" usemap="#a02884" alt="Inheritance graph"></center>
<map name="a02884">
<area href="a00658.html" shape="rect" coords="765,6,1184,30" alt="">
<area href="a00689.html" shape="rect" coords="819,54,1131,78" alt="">
<area href="a00701.html" shape="rect" coords="775,102,1175,126" alt="">
<area href="a00640.html" shape="rect" coords="5,54,363,78" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for OpenDDS::DCPS::TransportReceiveStrategy:<p><center><img src="a02885.png" border="0" usemap="#a02886" alt="Collaboration graph"></center>
<map name="a02886">
<area href="a00640.html" shape="rect" coords="60,7,417,31" alt="">
<area href="a00647.html" shape="rect" coords="100,55,377,79" alt="">
<area href="a00745.html" shape="rect" coords="116,103,361,127" alt="">
<area href="a00483.html" shape="rect" coords="5,176,472,200" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="a00114.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#a08019bc1097482f0fc52c63c579f96e">~TransportReceiveStrategy</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#b894432f3a5256c987316a2c505835c5">start</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#c4a11aba0f50388ffdb8b831bc723c9c">stop</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#7b86a1169435a35b92d36fd0e39b0bd4">handle_input</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#329e79ae824ef71afed0ad2e184c65b8">relink</a> (bool do_suspend=true)</td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#0e49501f0f60ddda073fd87870083b99">TransportReceiveStrategy</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual ssize_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#97cc1be21ba30f5098f5d7dc474e4cca">receive_bytes</a> (iovec iov[], int n, ACE_INET_Addr &remote_address)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Only our subclass knows how to do this. <a href="#97cc1be21ba30f5098f5d7dc474e4cca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#e78a1ed1c20a98cb52119dba331e5e51">deliver_sample</a> (<a class="el" href="a00647.html">ReceivedDataSample</a> &sample, const ACE_INET_Addr &remote_address)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when there is a <a class="el" href="a00647.html">ReceivedDataSample</a> to be delivered. <a href="#e78a1ed1c20a98cb52119dba331e5e51"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#805e510a5289563df1eb33c8d8ca859b">start_i</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Let the subclass start. <a href="#805e510a5289563df1eb33c8d8ca859b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#2d1de4dee1e829fcddcec82dc5b5b60a">stop_i</a> ()=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Let the subclass stop. <a href="#2d1de4dee1e829fcddcec82dc5b5b60a"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#ffa4cfad41a3a76d1a8914e36a86b0d4">gracefully_disconnected_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flag indicates if the GRACEFUL_DISCONNECT message is received. <a href="#ffa4cfad41a3a76d1a8914e36a86b0d4"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#570335ffffcca8ab2c12340e0e08f653133a229816af67b1daffb71e7fbe2161">RECEIVE_BUFFERS</a> = 2</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#384d951ef6e7782906c3609b9e8f2b4ebe08be2b18ee8158918b32b988e87102">BUFFER_LOW_WATER</a> = 1500</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#2cfaa876edac70b40471c5449c0554c42170c88e3ea47b69dc8e74390b227c79">MESSAGE_BLOCKS</a> = 1000</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#a0c1663fa5b6859e1a1f57ceca34b071fb69f42fb781d5a890483890fa7d28bf">DATA_BLOCKS</a> = 100</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom">{ <a class="el" href="a00754.html#570335ffffcca8ab2c12340e0e08f653133a229816af67b1daffb71e7fbe2161">RECEIVE_BUFFERS</a> = 2
}</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom">{ <a class="el" href="a00754.html#384d951ef6e7782906c3609b9e8f2b4ebe08be2b18ee8158918b32b988e87102">BUFFER_LOW_WATER</a> = 1500
}</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom">{ <a class="el" href="a00754.html#2cfaa876edac70b40471c5449c0554c42170c88e3ea47b69dc8e74390b227c79">MESSAGE_BLOCKS</a> = 1000
}</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom">{ <a class="el" href="a00754.html#a0c1663fa5b6859e1a1f57ceca34b071fb69f42fb781d5a890483890fa7d28bf">DATA_BLOCKS</a> = 100
}</td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#f12978b842c6a1a34d4959056b2c8320">successor_index</a> (size_t index) const </td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Manage an index into the receive buffer array. <a href="#f12978b842c6a1a34d4959056b2c8320"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#5e64731218931034c823c0fd9d1420e4">receive_sample_remaining_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bytes remaining in the current DataSample. <a href="#5e64731218931034c823c0fd9d1420e4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00745.html">TransportHeader</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#4382df4cb90ba3bef4c878ed4af448da">receive_transport_header_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Current receive <a class="el" href="a00745.html">TransportHeader</a>. <a href="#4382df4cb90ba3bef4c878ed4af448da"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00483.html">TransportMessageBlockAllocator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#aacd827b56f50108ca0adb0b0fa2ad47">mb_allocator_</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00483.html">TransportDataBlockAllocator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#9f41e6d35435399b6d79440ab7669502">db_allocator_</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00483.html">TransportDataAllocator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#9d2cdfea78d34072c6768839498e7167">data_allocator_</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">ACE_Lock_Adapter< ACE_SYNCH_MUTEX > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#e43d53a19c030054558a70a7d637c921">receive_lock_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Locking strategy for the allocators. <a href="#e43d53a19c030054558a70a7d637c921"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">ACE_Message_Block * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#119dbbacc76d872a2cf557a06585d47d">receive_buffers_</a> [RECEIVE_BUFFERS]</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set of receive buffers in use. <a href="#119dbbacc76d872a2cf557a06585d47d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#808b8ed8f8a10bb486cbd7c50e15fcb5">buffer_index_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Current receive buffer index in use. <a href="#808b8ed8f8a10bb486cbd7c50e15fcb5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00647.html">ReceivedDataSample</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#bc8344908ada4d6678db6552a54c6ecd">receive_sample_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Current data sample header. <a href="#bc8344908ada4d6678db6552a54c6ecd"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class provides buffer for data received by transports, de-assemble the data to individual samples and deliver them.
<p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="384d951ef6e7782906c3609b9e8f2b4e"></a><!-- doxytag: member="OpenDDS::DCPS::TransportReceiveStrategy::@10" ref="384d951ef6e7782906c3609b9e8f2b4e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum<code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="384d951ef6e7782906c3609b9e8f2b4ebe08be2b18ee8158918b32b988e87102"></a><!-- doxytag: member="BUFFER_LOW_WATER" ref="384d951ef6e7782906c3609b9e8f2b4ebe08be2b18ee8158918b32b988e87102" args="" -->BUFFER_LOW_WATER</em> </td><td>
</td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="2cfaa876edac70b40471c5449c0554c4"></a><!-- doxytag: member="OpenDDS::DCPS::TransportReceiveStrategy::@11" ref="2cfaa876edac70b40471c5449c0554c4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum<code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="2cfaa876edac70b40471c5449c0554c42170c88e3ea47b69dc8e74390b227c79"></a><!-- doxytag: member="MESSAGE_BLOCKS" ref="2cfaa876edac70b40471c5449c0554c42170c88e3ea47b69dc8e74390b227c79" args="" -->MESSAGE_BLOCKS</em> </td><td>
</td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="a0c1663fa5b6859e1a1f57ceca34b071"></a><!-- doxytag: member="OpenDDS::DCPS::TransportReceiveStrategy::@12" ref="a0c1663fa5b6859e1a1f57ceca34b071" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum<code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="a0c1663fa5b6859e1a1f57ceca34b071fb69f42fb781d5a890483890fa7d28bf"></a><!-- doxytag: member="DATA_BLOCKS" ref="a0c1663fa5b6859e1a1f57ceca34b071fb69f42fb781d5a890483890fa7d28bf" args="" -->DATA_BLOCKS</em> </td><td>
</td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="570335ffffcca8ab2c12340e0e08f653"></a><!-- doxytag: member="OpenDDS::DCPS::TransportReceiveStrategy::@9" ref="570335ffffcca8ab2c12340e0e08f653" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum<code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="570335ffffcca8ab2c12340e0e08f653133a229816af67b1daffb71e7fbe2161"></a><!-- doxytag: member="RECEIVE_BUFFERS" ref="570335ffffcca8ab2c12340e0e08f653133a229816af67b1daffb71e7fbe2161" args="" -->RECEIVE_BUFFERS</em> </td><td>
</td></tr>
</table>
</dl>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -