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

📄 a00720.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::ThreadPerConnectionSendTask 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="a00720.html">ThreadPerConnectionSendTask</a></div>
<h1>OpenDDS::DCPS::ThreadPerConnectionSendTask Class Reference</h1><!-- doxytag: class="OpenDDS::DCPS::ThreadPerConnectionSendTask" --><!-- doxytag: inherits="ACE_Task_Base" -->Execute the requests of sending a sample or control message.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;ThreadPerConnectionSendTask.h&gt;</code>
<p>
Inheritance diagram for OpenDDS::DCPS::ThreadPerConnectionSendTask:<p><center><img src="a02829.png" border="0" usemap="#a02830" alt="Inheritance graph"></center>
<map name="a02830">
<area href="a00466.html" shape="rect" coords="113,7,236,31" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for OpenDDS::DCPS::ThreadPerConnectionSendTask:<p><center><img src="a02831.png" border="0" usemap="#a02832" alt="Collaboration graph"></center>
<map name="a02832">
<area href="a00493.html" shape="rect" coords="77,188,272,212" alt="">
<area href="a00466.html" shape="rect" coords="8,7,131,31" alt="">
<area href="a00473.html" shape="rect" coords="155,7,408,31" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="a00089.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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#a184f00a98d7e607c34687ba4261de69">ThreadPerConnectionSendTask</a> (<a class="el" href="a00493.html">DataLink</a> *link)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#a184f00a98d7e607c34687ba4261de69"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#33dde54a8ffc2a60dbfe25f98d7587e6">~ThreadPerConnectionSendTask</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual Destructor.  <a href="#33dde54a8ffc2a60dbfe25f98d7587e6"></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="a00720.html#a54dfb7d9ac813017a0a9557c62e9923">add_request</a> (<a class="el" href="a01275.html#d776e43db70f63e54bc57ee0eb5ae2ac">SendStrategyOpType</a> op, <a class="el" href="a00751.html">TransportQueueElement</a> *element=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#c1f38e5dfeba9b212851ecd7157ee443">open</a> (void *=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Activate the worker threads.  <a href="#c1f38e5dfeba9b212851ecd7157ee443"></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="a00720.html#0cfff64241dfcae11c1dc336b0587d15">svc</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The "mainline" executed by the worker thread.  <a href="#0cfff64241dfcae11c1dc336b0587d15"></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="a00720.html#f5a1175d724676ac65fcc22ef600e8d4">close</a> (u_long flag=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called when the thread exits.  <a href="#f5a1175d724676ac65fcc22ef600e8d4"></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="a00720.html#c41f2b80ff5b8c1891cd3417f8fafb98">remove_sample</a> (const <a class="el" href="a00506.html">DataSampleListElement</a> *sample)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove sample from the thread per connection queue.  <a href="#c41f2b80ff5b8c1891cd3417f8fafb98"></a><br></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="a00720.html#467e640e3ce850af7db7a329406e0fea">LockType</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_Guard&lt; <a class="el" href="a00720.html#467e640e3ce850af7db7a329406e0fea">LockType</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#66837287c499ffec41d3b326960b89ae">GuardType</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_Condition&lt; <a class="el" href="a00720.html#467e640e3ce850af7db7a329406e0fea">LockType</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#9cd13942ea87ec432cb0c93917be0a58">ConditionType</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00473.html">BasicQueue</a>&lt; <a class="el" href="a00671.html">SendRequest</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#4ec8f49282b61969cb46e273b8929a1f">QueueType</a></td></tr>

<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#148e399ec2102afbd2250fa15963744a">execute</a> (<a class="el" href="a00671.html">SendRequest</a> &amp;req)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handle the request.  <a href="#148e399ec2102afbd2250fa15963744a"></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="a00720.html#467e640e3ce850af7db7a329406e0fea">LockType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#4fbe39b94c0672dd3d42e979068afe8b">lock_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock to protect the "state" (all of the data members) of this object.  <a href="#4fbe39b94c0672dd3d42e979068afe8b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00473.html">QueueType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#fd40ac46488f996684a5a734d240d9bf">queue_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The request queue.  <a href="#fd40ac46488f996684a5a734d240d9bf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00720.html#9cd13942ea87ec432cb0c93917be0a58">ConditionType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#70c9599c45409abeba1c2dfa12c416ac">work_available_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#aa996904140f1117838fd825d95ff813">shutdown_initiated_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag used to initiate a shutdown request to all worker threads.  <a href="#aa996904140f1117838fd825d95ff813"></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="a00720.html#f0f08e4500b41b2fc817d3004217f8ab">opened_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag used to avoid multiple <a class="el" href="a00720.html#c1f38e5dfeba9b212851ecd7157ee443">open()</a> calls.  <a href="#f0f08e4500b41b2fc817d3004217f8ab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">ACE_thread_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#30b5ac50fbf53ae3cefdcecac2ce30f1">thr_id_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The id of the thread created by this task.  <a href="#30b5ac50fbf53ae3cefdcecac2ce30f1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00493.html">DataLink</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00720.html#c679461640898cbfb15fdad3384b6677">link_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The datalink to send the samples or control messages.  <a href="#c679461640898cbfb15fdad3384b6677"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Execute the requests of sending a sample or control message. 
<p>
This task implements the request execute method which handles each step of sending a sample or control message. 
<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="9cd13942ea87ec432cb0c93917be0a58"></a><!-- doxytag: member="OpenDDS::DCPS::ThreadPerConnectionSendTask::ConditionType" ref="9cd13942ea87ec432cb0c93917be0a58" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef ACE_Condition&lt;<a class="el" href="a00720.html#467e640e3ce850af7db7a329406e0fea">LockType</a>&gt; <a class="el" href="a00720.html#9cd13942ea87ec432cb0c93917be0a58">OpenDDS::DCPS::ThreadPerConnectionSendTask::ConditionType</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="66837287c499ffec41d3b326960b89ae"></a><!-- doxytag: member="OpenDDS::DCPS::ThreadPerConnectionSendTask::GuardType" ref="66837287c499ffec41d3b326960b89ae" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef ACE_Guard&lt;<a class="el" href="a00720.html#467e640e3ce850af7db7a329406e0fea">LockType</a>&gt; <a class="el" href="a00720.html#66837287c499ffec41d3b326960b89ae">OpenDDS::DCPS::ThreadPerConnectionSendTask::GuardType</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

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

<p>

</div>
</div><p>
<a class="anchor" name="4ec8f49282b61969cb46e273b8929a1f"></a><!-- doxytag: member="OpenDDS::DCPS::ThreadPerConnectionSendTask::QueueType" ref="4ec8f49282b61969cb46e273b8929a1f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="a00473.html">BasicQueue</a>&lt;<a class="el" href="a00671.html">SendRequest</a>&gt; <a class="el" href="a00473.html">OpenDDS::DCPS::ThreadPerConnectionSendTask::QueueType</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="a184f00a98d7e607c34687ba4261de69"></a><!-- doxytag: member="OpenDDS::DCPS::ThreadPerConnectionSendTask::ThreadPerConnectionSendTask" ref="a184f00a98d7e607c34687ba4261de69" args="(DataLink *link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OpenDDS::DCPS::ThreadPerConnectionSendTask::ThreadPerConnectionSendTask           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00493.html">DataLink</a> *&nbsp;</td>
          <td class="paramname"> <em>link</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor. 
<p>

</div>
</div><p>
<a class="anchor" name="33dde54a8ffc2a60dbfe25f98d7587e6"></a><!-- doxytag: member="OpenDDS::DCPS::ThreadPerConnectionSendTask::~ThreadPerConnectionSendTask" ref="33dde54a8ffc2a60dbfe25f98d7587e6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OpenDDS::DCPS::ThreadPerConnectionSendTask::~ThreadPerConnectionSendTask           </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>
Virtual Destructor. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a54dfb7d9ac813017a0a9557c62e9923"></a><!-- doxytag: member="OpenDDS::DCPS::ThreadPerConnectionSendTask::add_request" ref="a54dfb7d9ac813017a0a9557c62e9923" args="(SendStrategyOpType op, TransportQueueElement *element=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OpenDDS::DCPS::ThreadPerConnectionSendTask::add_request           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01275.html#d776e43db70f63e54bc57ee0eb5ae2ac">SendStrategyOpType</a>&nbsp;</td>
          <td class="paramname"> <em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00751.html">TransportQueueElement</a> *&nbsp;</td>
          <td class="paramname"> <em>element</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>

⌨️ 快捷键说明

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