📄 a00705.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::SimpleUnreliableDgramTransport 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="a00705.html">SimpleUnreliableDgramTransport</a></div>
<h1>OpenDDS::DCPS::SimpleUnreliableDgramTransport Class Reference</h1><!-- doxytag: class="OpenDDS::DCPS::SimpleUnreliableDgramTransport" --><!-- doxytag: inherits="OpenDDS::DCPS::TransportImpl" --><code>#include <SimpleUnreliableDgramTransport.h></code>
<p>
Inheritance diagram for OpenDDS::DCPS::SimpleUnreliableDgramTransport:<p><center><img src="a03047.png" border="0" usemap="#a03048" alt="Inheritance graph"></center>
<map name="a03048">
<area href="a00681.html" shape="rect" coords="6,231,288,255" alt="">
<area href="a00698.html" shape="rect" coords="312,231,582,255" alt="">
<area href="a00746.html" shape="rect" coords="183,81,410,105" alt="">
<area href="a00640.html" shape="rect" coords="118,7,475,31" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for OpenDDS::DCPS::SimpleUnreliableDgramTransport:<p><center><img src="a03049.png" border="0" usemap="#a03050" alt="Collaboration graph"></center>
<map name="a03050">
<area href="a00746.html" shape="rect" coords="252,127,479,151" alt="">
<area href="a00639.html" shape="rect" coords="67,7,304,31" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="a00173.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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#fba9685a9c9ab3b80beff6bae05244e8">SimpleUnreliableDgramTransport</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#08d39b966ddd7fbfe43b8fc09dc2399b">~SimpleUnreliableDgramTransport</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Protected Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_Hash_Map_Manager_Ex<<br>
ACE_INET_Addr, <a class="el" href="a00639.html">SimpleUnreliableDgramDataLink_rch</a>,<br>
ACE_Hash< ACE_INET_Addr >,<br>
ACE_Equal_To< ACE_INET_Addr >,<br>
ACE_Null_Mutex > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#6605ce63acac1cf627874956f8efadcd">AddrLinkMap</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Map Type: (key) ACE_INET_Addr to (value) SimpleMcastDataLink_rch. <a href="#6605ce63acac1cf627874956f8efadcd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_SYNCH_MUTEX </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#6004e37b0530603d24854999aed89222">LockType</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_Guard< <a class="el" href="a00705.html#6004e37b0530603d24854999aed89222">LockType</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#a7069ab83a3f319c90d27431334c3322">GuardType</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef ACE_Condition< <a class="el" href="a00705.html#6004e37b0530603d24854999aed89222">LockType</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#ed02511323eecd696c6c0262af3900df">ConditionType</a></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="a00493.html">DataLink</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#868595a4d6f1c3aec0d53261b78230de">find_or_create_datalink</a> (const <a class="el" href="a00749.html">TransportInterfaceInfo</a> &remote_info, int connect_as_publisher)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#1ade88440aa4df557d5236f93d4cb7cf">configure_i</a> (<a class="el" href="a00741.html">TransportConfiguration</a> *config)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#20990f47fb2788a906987c6e66d33c69">configure_socket</a> (<a class="el" href="a00741.html">TransportConfiguration</a> *config)=0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#223d906327191659ff1ea1977792b797">shutdown_i</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#97c4e5880624416864534bf2b8a6a3b6">connection_info_i</a> (<a class="el" href="a00749.html">TransportInterfaceInfo</a> &local_info) const =0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#1917973c56bf23ef92588ab265c15776">acked</a> (<a class="el" href="a00552.html">RepoId</a>, <a class="el" href="a00552.html">RepoId</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#685ecb399fef89d8f98ff945acf0bfba">remove_ack</a> (<a class="el" href="a00552.html">RepoId</a> pub_id, <a class="el" href="a00552.html">RepoId</a> sub_id)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#a0a79f3045961d10273b8c4724d16e30">notify_lost_on_backpressure_timeout</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#bf92e1ebf1ba72385842f140414d0b69">release_datalink_i</a> (<a class="el" href="a00493.html">DataLink</a> *link)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Called by the <a class="el" href="a00493.html">DataLink</a> to release itself. <a href="#bf92e1ebf1ba72385842f140414d0b69"></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="a00705.html#4a4fb5f9a27748fc765c9e209128ff4b">deliver_sample</a> (<a class="el" href="a00647.html">ReceivedDataSample</a> &sample, const ACE_INET_Addr &remote_address)</td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00705.html#6605ce63acac1cf627874956f8efadcd">AddrLinkMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#e88faf2218a184ac3d2731e4992afa2b">links_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">This is the map of connected DataLinks. <a href="#e88faf2218a184ac3d2731e4992afa2b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00705.html#6004e37b0530603d24854999aed89222">LockType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#b6ea1d38892948dbb1f55159d75bf427">links_lock_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">This lock is used to protect the links_ data member. <a href="#b6ea1d38892948dbb1f55159d75bf427"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportReactorTask_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#132df6b4680da96c1c3419a1e5916d8b">reactor_task_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">We need the reactor to tell our socket to handle_input(). <a href="#132df6b4680da96c1c3419a1e5916d8b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">TransportReceiveStrategy_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#010310b8423e31bbbe3816f8e8fdaad8">receive_strategy_</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">The <a class="el" href="a00754.html">TransportReceiveStrategy</a> object for this <a class="el" href="a00746.html">TransportImpl</a>. <a href="#010310b8423e31bbbe3816f8e8fdaad8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">SimpleUnreliableDgramSocket_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#9c164d4b3b1dd5320c3e9c8486a41487">socket_</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00639.html">SimpleUnreliableDgramConfiguration_rch</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#1eb8e03c623acb357988ca2960e42c03">config_</a></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#758520ae91f9c3d2ede263a771678ad1">SimpleUnreliableDgramSynchResource</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00705.html#3bd50efc236c6bee2213caadcdfdd2d1">SimpleUnreliableDgramReceiveStrategy</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Our friend needs to call our <a class="el" href="a00705.html#4a4fb5f9a27748fc765c9e209128ff4b">deliver_sample()</a> method. <a href="#3bd50efc236c6bee2213caadcdfdd2d1"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class provides specific implementation for unreliable transports - UDP and unreliable multicast.<p>
Notes about object ownership: 1) Own datalink objects and socket object. 2) Reference to <a class="el" href="a00752.html">TransportReactorTask</a> object, configuration object and <a class="el" href="a00754.html">TransportReceiveStrategy</a> object.
<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="6605ce63acac1cf627874956f8efadcd"></a><!-- doxytag: member="OpenDDS::DCPS::SimpleUnreliableDgramTransport::AddrLinkMap" ref="6605ce63acac1cf627874956f8efadcd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef ACE_Hash_Map_Manager_Ex<ACE_INET_Addr, <a class="el" href="a00639.html">SimpleUnreliableDgramDataLink_rch</a>, ACE_Hash<ACE_INET_Addr>, ACE_Equal_To<ACE_INET_Addr>, ACE_Null_Mutex> <a class="el" href="a00705.html#6605ce63acac1cf627874956f8efadcd">OpenDDS::DCPS::SimpleUnreliableDgramTransport::AddrLinkMap</a><code> [protected]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Map Type: (key) ACE_INET_Addr to (value) SimpleMcastDataLink_rch.
<p>
</div>
</div><p>
<a class="anchor" name="ed02511323eecd696c6c0262af3900df"></a><!-- doxytag: member="OpenDDS::DCPS::SimpleUnreliableDgramTransport::ConditionType" ref="ed02511323eecd696c6c0262af3900df" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef ACE_Condition<<a class="el" href="a00705.html#6004e37b0530603d24854999aed89222">LockType</a>> <a class="el" href="a00705.html#ed02511323eecd696c6c0262af3900df">OpenDDS::DCPS::SimpleUnreliableDgramTransport::ConditionType</a><code> [protected]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="a7069ab83a3f319c90d27431334c3322"></a><!-- doxytag: member="OpenDDS::DCPS::SimpleUnreliableDgramTransport::GuardType" ref="a7069ab83a3f319c90d27431334c3322" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef ACE_Guard<<a class="el" href="a00705.html#6004e37b0530603d24854999aed89222">LockType</a>> <a class="el" href="a00705.html#a7069ab83a3f319c90d27431334c3322">OpenDDS::DCPS::SimpleUnreliableDgramTransport::GuardType</a><code> [protected]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Reimplemented from <a class="el" href="a00746.html#baac0d297519eced67fc7f42b0e85961">OpenDDS::DCPS::TransportImpl</a>.
</div>
</div><p>
<a class="anchor" name="6004e37b0530603d24854999aed89222"></a><!-- doxytag: member="OpenDDS::DCPS::SimpleUnreliableDgramTransport::LockType" ref="6004e37b0530603d24854999aed89222" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef ACE_SYNCH_MUTEX <a class="el" href="a00705.html#6004e37b0530603d24854999aed89222">OpenDDS::DCPS::SimpleUnreliableDgramTransport::LockType</a><code> [protected]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Reimplemented from <a class="el" href="a00746.html#331a2a67ba6614275cc62d2b70f9ab95">OpenDDS::DCPS::TransportImpl</a>.
</div>
</div><p>
<hr><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" name="fba9685a9c9ab3b80beff6bae05244e8"></a><!-- doxytag: member="OpenDDS::DCPS::SimpleUnreliableDgramTransport::SimpleUnreliableDgramTransport" ref="fba9685a9c9ab3b80beff6bae05244e8" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ACE_INLINE OpenDDS::DCPS::SimpleUnreliableDgramTransport::SimpleUnreliableDgramTransport </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="08d39b966ddd7fbfe43b8fc09dc2399b"></a><!-- doxytag: member="OpenDDS::DCPS::SimpleUnreliableDgramTransport::~SimpleUnreliableDgramTransport" ref="08d39b966ddd7fbfe43b8fc09dc2399b" args="()" -->
<div class="memitem">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -