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

📄 a00751.html

📁 opendds 1.2 最新版 面向分布式实时网络编程
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!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::TransportQueueElement 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="a00751.html">TransportQueueElement</a></div>
<h1>OpenDDS::DCPS::TransportQueueElement Class Reference</h1><!-- doxytag: class="OpenDDS::DCPS::TransportQueueElement" -->Base wrapper class around a data/control sample to be sent.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;TransportQueueElement.h&gt;</code>
<p>
Inheritance diagram for OpenDDS::DCPS::TransportQueueElement:<p><center><img src="a02875.png" border="0" usemap="#a02876" alt="Inheritance graph"></center>
<map name="a02876">
<area href="a00742.html" shape="rect" coords="365,6,667,30" alt="">
<area href="a00755.html" shape="rect" coords="360,54,672,78" alt="">
<area href="a00756.html" shape="rect" coords="349,102,683,126" alt="">
<area href="a00757.html" shape="rect" coords="373,150,659,174" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="a00111.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="a00751.html#9adc9b970c73251bd08bc0759a5bf411">~TransportQueueElement</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dtor.  <a href="#9adc9b970c73251bd08bc0759a5bf411"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#ad3c48c1e905ced9422b903dea2fe9be">operator==</a> (const ACE_Message_Block *sample) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the supplied sample matches the wrapped sample.  <a href="#ad3c48c1e905ced9422b903dea2fe9be"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#0edd2be3d16d6264109651b9fc3be3c0">data_dropped</a> (bool dropped_by_transport=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#dad1cb8a077ecef4ca3283fb53fbee06">data_delivered</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invoked when the sample has been sent by a <a class="el" href="a00493.html">DataLink</a>.  <a href="#dad1cb8a077ecef4ca3283fb53fbee06"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#7db0e82260f47ac5f166de21cb731e3d">requires_exclusive_packet</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Does the sample require an exclusive transport packet?  <a href="#7db0e82260f47ac5f166de21cb731e3d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="a00552.html">RepoId</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#5f7f7e4edad463a11bf1f2b52dc9eae5">publication_id</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor for the publisher id that sent the sample.  <a href="#5f7f7e4edad463a11bf1f2b52dc9eae5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const ACE_Message_Block *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#95e4e477b6968f9596f830c95ce6b8e8">msg</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The marshalled sample (sample header + sample data).  <a href="#95e4e477b6968f9596f830c95ce6b8e8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#031c70e3e2b937a703a241947fd0c8b8">is_control</a> (<a class="el" href="a00552.html">RepoId</a> pub_id) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is the element a "control" sample from the specified pub_id?  <a href="#031c70e3e2b937a703a241947fd0c8b8"></a><br></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="a00751.html#989b2aaee5b32f5997d04ac8f06906d8">TransportQueueElement</a> (int initial_count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#0e67ec23019b89c476890ec643c87f86">release_element</a> (bool dropped_by_transport)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invoked when the counter reaches 0.  <a href="#0e67ec23019b89c476890ec643c87f86"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#e9aad8dc67a98f71a2e5fefa99fcae7d">was_dropped</a> () const </td></tr>

<tr><td colspan="2"><br><h2>Private Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_SYNCH_MUTEX&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#a11dc121092c40fab64899f9b96bfd59">LockType</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Thread lock type.  <a href="#a11dc121092c40fab64899f9b96bfd59"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_Guard&lt; <a class="el" href="a00751.html#a11dc121092c40fab64899f9b96bfd59">LockType</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#45926491f367deb80fcd2a2e96a3debd">GuardType</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Thread guard type.  <a href="#45926491f367deb80fcd2a2e96a3debd"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#ea0ca5f16451e48ee18de74c9aae203f">decision_made</a> (bool dropped_by_transport)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common logic for <a class="el" href="a00751.html#0edd2be3d16d6264109651b9fc3be3c0">data_dropped()</a> and <a class="el" href="a00751.html#dad1cb8a077ecef4ca3283fb53fbee06">data_delivered()</a>.  <a href="#ea0ca5f16451e48ee18de74c9aae203f"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00751.html#a11dc121092c40fab64899f9b96bfd59">LockType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#0eb27893eb25e62f62295e5ab55e331c">lock_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock for the count_ data member.  <a href="#0eb27893eb25e62f62295e5ab55e331c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#4aaea2a4ba966386fe0957a515e2c74d">sub_loan_count_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Counts the number of outstanding sub-loans.  <a href="#4aaea2a4ba966386fe0957a515e2c74d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00751.html#0474a8896cd3bda4147f219b872ab78c">dropped_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag flipped to true if any <a class="el" href="a00493.html">DataLink</a> dropped the sample.  <a href="#0474a8896cd3bda4147f219b872ab78c"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Base wrapper class around a data/control sample to be sent. 
<p>
This class serves as the base class for different types of samples that can be sent. For example, there are data samples and control samples. A subclass of <a class="el" href="a00751.html">TransportQueueElement</a> exists for each of these types of samples.<p>
This class maintains a counter that, when decremented to 0, will trigger some logic (defined in the subclass) that will "return the loan" of the sample. The sample is "loaned" to the transport via a send() or send_control() call on the <a class="el" href="a00748.html">TransportInterface</a>. This wrapper object will "return the loan" when all DataLinks have "returned" their sub-loans. 
<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="45926491f367deb80fcd2a2e96a3debd"></a><!-- doxytag: member="OpenDDS::DCPS::TransportQueueElement::GuardType" ref="45926491f367deb80fcd2a2e96a3debd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef ACE_Guard&lt;<a class="el" href="a00751.html#a11dc121092c40fab64899f9b96bfd59">LockType</a>&gt; <a class="el" href="a00751.html#45926491f367deb80fcd2a2e96a3debd">OpenDDS::DCPS::TransportQueueElement::GuardType</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Thread guard type. 
<p>

</div>
</div><p>
<a class="anchor" name="a11dc121092c40fab64899f9b96bfd59"></a><!-- doxytag: member="OpenDDS::DCPS::TransportQueueElement::LockType" ref="a11dc121092c40fab64899f9b96bfd59" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef ACE_SYNCH_MUTEX <a class="el" href="a00751.html#a11dc121092c40fab64899f9b96bfd59">OpenDDS::DCPS::TransportQueueElement::LockType</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Thread lock type. 
<p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="9adc9b970c73251bd08bc0759a5bf411"></a><!-- doxytag: member="OpenDDS::DCPS::TransportQueueElement::~TransportQueueElement" ref="9adc9b970c73251bd08bc0759a5bf411" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OpenDDS::DCPS::TransportQueueElement::~TransportQueueElement           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Dtor. 
<p>

</div>
</div><p>
<a class="anchor" name="989b2aaee5b32f5997d04ac8f06906d8"></a><!-- doxytag: member="OpenDDS::DCPS::TransportQueueElement::TransportQueueElement" ref="989b2aaee5b32f5997d04ac8f06906d8" args="(int initial_count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ACE_INLINE OpenDDS::DCPS::TransportQueueElement::TransportQueueElement           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>initial_count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Ctor. The initial_count is the number of DataLinks to which this <a class="el" href="a00751.html">TransportQueueElement</a> will be sent. 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="dad1cb8a077ecef4ca3283fb53fbee06"></a><!-- doxytag: member="OpenDDS::DCPS::TransportQueueElement::data_delivered" ref="dad1cb8a077ecef4ca3283fb53fbee06" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ACE_INLINE void OpenDDS::DCPS::TransportQueueElement::data_delivered           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invoked when the sample has been sent by a <a class="el" href="a00493.html">DataLink</a>. 
<p>

<p>
Reimplemented in <a class="el" href="a00742.html#16e20b2ce17e3f48083e20f233fab519">OpenDDS::DCPS::TransportControlElement</a>.
</div>
</div><p>
<a class="anchor" name="0edd2be3d16d6264109651b9fc3be3c0"></a><!-- doxytag: member="OpenDDS::DCPS::TransportQueueElement::data_dropped" ref="0edd2be3d16d6264109651b9fc3be3c0" args="(bool dropped_by_transport=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ACE_INLINE void OpenDDS::DCPS::TransportQueueElement::data_dropped           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>dropped_by_transport</em> = <code>false</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invoked when the sample is dropped from a <a class="el" href="a00493.html">DataLink</a> due to a remove_sample() call. The dropped_by_transport flag true indicates the data dropping is initiated by transport when the transport send strategy is in a MODE_TERMINATED. The dropped_by_transport flag false indicates the dropping is initiated by the remove_sample and <a class="el" href="a00751.html#0edd2be3d16d6264109651b9fc3be3c0">data_dropped()</a> is a result of remove_sample(). 
</div>
</div><p>
<a class="anchor" name="ea0ca5f16451e48ee18de74c9aae203f"></a><!-- doxytag: member="OpenDDS::DCPS::TransportQueueElement::decision_made" ref="ea0ca5f16451e48ee18de74c9aae203f" args="(bool dropped_by_transport)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>

⌨️ 快捷键说明

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