⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a00754.html

📁 opendds 1.2 最新版 面向分布式实时网络编程
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!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&nbsp;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&nbsp;Pages</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</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&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;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&lt; ACE_SYNCH_MUTEX &gt;" --><code>#include &lt;TransportReceiveStrategy.h&gt;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#97cc1be21ba30f5098f5d7dc474e4cca">receive_bytes</a> (iovec iov[], int n, ACE_INET_Addr &amp;remote_address)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#e78a1ed1c20a98cb52119dba331e5e51">deliver_sample</a> (<a class="el" href="a00647.html">ReceivedDataSample</a> &amp;sample, const ACE_INET_Addr &amp;remote_address)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#805e510a5289563df1eb33c8d8ca859b">start_i</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#2d1de4dee1e829fcddcec82dc5b5b60a">stop_i</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#ffa4cfad41a3a76d1a8914e36a86b0d4">gracefully_disconnected_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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 &nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#5e64731218931034c823c0fd9d1420e4">receive_sample_remaining_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#4382df4cb90ba3bef4c878ed4af448da">receive_transport_header_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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&lt; ACE_SYNCH_MUTEX &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#e43d53a19c030054558a70a7d637c921">receive_lock_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#119dbbacc76d872a2cf557a06585d47d">receive_buffers_</a> [RECEIVE_BUFFERS]</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#808b8ed8f8a10bb486cbd7c50e15fcb5">buffer_index_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00754.html#bc8344908ada4d6678db6552a54c6ecd">receive_sample_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td><td>
</td></tr>
</table>
</dl>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -