<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>DTN Reference Implementation: dtntunnel::TCPTunnel Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.8 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <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="navpath"><a class="el" href="namespacedtntunnel.html">dtntunnel</a>::<a class="el" href="classdtntunnel_1_1TCPTunnel.html">TCPTunnel</a> </div> </div> <div class="contents"> <h1>dtntunnel::TCPTunnel Class Reference</h1><!-- doxytag: class="dtntunnel::TCPTunnel" --><!-- doxytag: inherits="dtntunnel::IPTunnel" -->Class to manage TCP <-> DTN tunnels. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for dtntunnel::TCPTunnel:</div> <div class="dynsection"> <p><center><img src="classdtntunnel_1_1TCPTunnel.png" usemap="#dtntunnel::TCPTunnel_map" border="0" alt=""></center> <map name="dtntunnel::TCPTunnel_map"> <area href="classdtntunnel_1_1IPTunnel.html" alt="dtntunnel::IPTunnel" shape="rect" coords="0,0,131,24"> </map> </div> <p> <a href="classdtntunnel_1_1TCPTunnel-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel_1_1Connection.html">Connection</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Helper class to handle an actively proxied connection. <a href="classdtntunnel_1_1TCPTunnel_1_1Connection.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtntunnel_1_1TCPTunnel_1_1ConnKey.html">ConnKey</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Helper struct used as the index key into the connection table. <a href="structdtntunnel_1_1TCPTunnel_1_1ConnKey.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel_1_1Listener.html">Listener</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Helper class to accept incoming TCP connections. <a href="classdtntunnel_1_1TCPTunnel_1_1Listener.html#_details">More...</a><br></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="classdtntunnel_1_1TCPTunnel.html#8f4e4626553a95f87b10ff8dc087dd0f">TCPTunnel</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#8f4e4626553a95f87b10ff8dc087dd0f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#17e855174e6624b2426e2b175dc72b13">add_listener</a> (in_addr_t listen_addr, u_int16_t listen_port, in_addr_t remote_addr, u_int16_t remote_port)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new listening to from the given listening address/port to the given remote address/port. <a href="#17e855174e6624b2426e2b175dc72b13"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#9edfdd42b7d3de85e4cebd37af4793ed">handle_bundle</a> (<a class="el" href="structdtn_1_1APIBundle.html">dtn::APIBundle</a> *bundle)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Handle a newly arriving bundle. <a href="#9edfdd42b7d3de85e4cebd37af4793ed"></a><br></td></tr> <tr><td colspan="2"><br><h2>Protected Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< <a class="el" href="structdtntunnel_1_1TCPTunnel_1_1ConnKey.html">ConnKey</a>, <br class="typebreak"> <a class="el" href="classdtntunnel_1_1TCPTunnel_1_1Connection.html">Connection</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#68aab7171556c6a29bdb5f369804f51f">ConnTable</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Table of connection classes indexed by the remote address/port. <a href="#68aab7171556c6a29bdb5f369804f51f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::map< <a class="el" href="structdtntunnel_1_1TCPTunnel_1_1ConnKey.html">ConnKey</a>, <br class="typebreak"> <a class="el" href="namespacedtn.html#4d7a060f3b17c020672ccc15d77634d7">dtn::APIBundleVector</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#84a4aadbaa3d0e61d03ee453c6639588">NoConnBundleTable</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Table of bundles that arrive out of order before the connection is set up. <a href="#84a4aadbaa3d0e61d03ee453c6639588"></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">u_int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#a400a9b8c4fda2a4b72352220ab58900">next_connection_id</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the next connection id. <a href="#a400a9b8c4fda2a4b72352220ab58900"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#82b6c2ff15a1cc137ec0d8df781e8c0a">new_connection</a> (<a class="el" href="classdtntunnel_1_1TCPTunnel_1_1Connection.html">Connection</a> *c)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Hook called by the listener when a new connection comes in. <a href="#82b6c2ff15a1cc137ec0d8df781e8c0a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#722f77fa0b3727e267010a619ad17734">kill_connection</a> (<a class="el" href="classdtntunnel_1_1TCPTunnel_1_1Connection.html">Connection</a> *c)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Hook called when a new connection dies. <a href="#722f77fa0b3727e267010a619ad17734"></a><br></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="classdtntunnel_1_1TCPTunnel.html#68aab7171556c6a29bdb5f369804f51f">ConnTable</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#94b9f9bc1e134be44f6dd942d4398b60">connections_</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#84a4aadbaa3d0e61d03ee453c6639588">NoConnBundleTable</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#9d330834f0141da1002e3e005f217854">no_conn_bundles_</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">oasys::SpinLock </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#72bf262d24541e93bd5bbf24612b9a44">lock_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Lock to protect the connections table. <a href="#72bf262d24541e93bd5bbf24612b9a44"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">u_int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#a57571781241fb2284c83e093cc557d5">next_connection_id_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Increasing counter for connection identifiers. <a href="#a57571781241fb2284c83e093cc557d5"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Class to manage TCP <-> DTN tunnels. <p>Definition at line <a class="el" href="TCPTunnel_8h-source.html#l00037">37</a> of file <a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a>.</p> <hr><h2>Member Typedef Documentation</h2> <a class="anchor" name="68aab7171556c6a29bdb5f369804f51f"></a><!-- doxytag: member="dtntunnel::TCPTunnel::ConnTable" ref="68aab7171556c6a29bdb5f369804f51f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef std::map<<a class="el" href="structdtntunnel_1_1TCPTunnel_1_1ConnKey.html">ConnKey</a>, <a class="el" href="classdtntunnel_1_1TCPTunnel_1_1Connection.html">Connection</a>*> <a class="el" href="classdtntunnel_1_1TCPTunnel.html#68aab7171556c6a29bdb5f369804f51f">dtntunnel::TCPTunnel::ConnTable</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Table of connection classes indexed by the remote address/port. <p> <p>Definition at line <a class="el" href="TCPTunnel_8h-source.html#l00181">181</a> of file <a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a>.</p> </div> </div><p> <a class="anchor" name="84a4aadbaa3d0e61d03ee453c6639588"></a><!-- doxytag: member="dtntunnel::TCPTunnel::NoConnBundleTable" ref="84a4aadbaa3d0e61d03ee453c6639588" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef std::map<<a class="el" href="structdtntunnel_1_1TCPTunnel_1_1ConnKey.html">ConnKey</a>, <a class="el" href="namespacedtn.html#4d7a060f3b17c020672ccc15d77634d7">dtn::APIBundleVector</a>*> <a class="el" href="classdtntunnel_1_1TCPTunnel.html#84a4aadbaa3d0e61d03ee453c6639588">dtntunnel::TCPTunnel::NoConnBundleTable</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Table of bundles that arrive out of order before the connection is set up. <p> <p>Definition at line <a class="el" href="TCPTunnel_8h-source.html#l00186">186</a> of file <a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a>.</p> </div> </div><p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="8f4e4626553a95f87b10ff8dc087dd0f"></a><!-- doxytag: member="dtntunnel::TCPTunnel::TCPTunnel" ref="8f4e4626553a95f87b10ff8dc087dd0f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dtntunnel::TCPTunnel::TCPTunnel </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor. <p> <p>Definition at line <a class="el" href="TCPTunnel_8cc-source.html#l00029">29</a> of file <a class="el" href="TCPTunnel_8cc-source.html">TCPTunnel.cc</a>.</p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="17e855174e6624b2426e2b175dc72b13"></a><!-- doxytag: member="dtntunnel::TCPTunnel::add_listener" ref="17e855174e6624b2426e2b175dc72b13" args="(in_addr_t listen_addr, u_int16_t listen_port, in_addr_t remote_addr, u_int16_t remote_port)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dtntunnel::TCPTunnel::add_listener </td> <td>(</td> <td class="paramtype">in_addr_t </td> <td class="paramname"> <em>listen_addr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">u_int16_t </td> <td class="paramname"> <em>listen_port</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">in_addr_t </td> <td class="paramname"> <em>remote_addr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">u_int16_t </td> <td class="paramname"> <em>remote_port</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Add a new listening to from the given listening address/port to the given remote address/port. <p> <p>Implements <a class="el" href="classdtntunnel_1_1IPTunnel.html#4c3ab39f350dcc5be2586de1540ce229">dtntunnel::IPTunnel</a>.</p> <p>Definition at line <a class="el" href="TCPTunnel_8cc-source.html#l00037">37</a> of file <a class="el" href="TCPTunnel_8cc-source.html">TCPTunnel.cc</a>.</p> <p>Referenced by <a class="el" href="DTNTunnel_8cc-source.html#l00206">dtntunnel::DTNTunnel::init_tunnel()</a>.</p> </div> </div><p> <a class="anchor" name="9edfdd42b7d3de85e4cebd37af4793ed"></a><!-- doxytag: member="dtntunnel::TCPTunnel::handle_bundle" ref="9edfdd42b7d3de85e4cebd37af4793ed" args="(dtn::APIBundle *bundle)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dtntunnel::TCPTunnel::handle_bundle </td> <td>(</td> <td class="paramtype"><a class="el" href="structdtn_1_1APIBundle.html">dtn::APIBundle</a> * </td> <td class="paramname"> <em>bundle</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Handle a newly arriving bundle. <p> <p>Implements <a class="el" href="classdtntunnel_1_1IPTunnel.html#a95b7580e3f53be5acd9c68f0c631a2f">dtntunnel::IPTunnel</a>.</p> <p>Definition at line <a class="el" href="TCPTunnel_8cc-source.html#l00114">114</a> of file <a class="el" href="TCPTunnel_8cc-source.html">TCPTunnel.cc</a>.</p> <p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="DTNTunnel_8h-source.html#l00081">dtntunnel::DTNTunnel::DTNTunnel::BundleHeader::client_addr_</a>, <a class="el" href="DTNTunnel_8h-source.html#l00083">dtntunnel::DTNTunnel::DTNTunnel::BundleHeader::client_port_</a>, <a class="el" href="DTNTunnel_8h-source.html#l00079">dtntunnel::DTNTunnel::DTNTunnel::BundleHeader::connection_id_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00182">connections_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00190">lock_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00187">no_conn_bundles_</a>, <a class="el" href="APIBundleQueue_8h-source.html#l00032">dtn::APIBundle::payload_</a>, <a class="el" href="DTNTunnel_8h-source.html#l00082">dtntunnel::DTNTunnel::DTNTunnel::BundleHeader::remote_addr_</a>, <a class="el" href="DTNTunnel_8h-source.html#l00084">dtntunnel::DTNTunnel::DTNTunnel::BundleHeader::remote_port_</a>, <a class="el" href="DTNTunnel_8h-source.html#l00080">dtntunnel::DTNTunnel::DTNTunnel::BundleHeader::seqno_</a>, <a class="el" href="dtn__types_8h-source.html#l00260">dtn_bundle_spec_t::source</a>, <a class="el" href="APIBundleQueue_8h-source.html#l00031">dtn::APIBundle::spec_</a>, and <a class="el" href="dtn__types_8h-source.html#l00066">dtn_endpoint_id_t::uri</a>.</p> <p>Referenced by <a class="el" href="DTNTunnel_8cc-source.html#l00342">dtntunnel::DTNTunnel::handle_bundle()</a>.</p> </div> </div><p> <a class="anchor" name="722f77fa0b3727e267010a619ad17734"></a><!-- doxytag: member="dtntunnel::TCPTunnel::kill_connection" ref="722f77fa0b3727e267010a619ad17734" args="(Connection *c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dtntunnel::TCPTunnel::kill_connection </td> <td>(</td> <td class="paramtype"><a class="el" href="classdtntunnel_1_1TCPTunnel_1_1Connection.html">Connection</a> * </td> <td class="paramname"> <em>c</em> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Hook called when a new connection dies. <p> <p>Definition at line <a class="el" href="TCPTunnel_8cc-source.html#l00082">82</a> of file <a class="el" href="TCPTunnel_8cc-source.html">TCPTunnel.cc</a>.</p> <p>References <a class="el" href="TCPTunnel_8h-source.html#l00124">dtntunnel::TCPTunnel::TCPTunnel::Connection::client_addr_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00125">dtntunnel::TCPTunnel::TCPTunnel::Connection::client_port_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00128">dtntunnel::TCPTunnel::TCPTunnel::Connection::connection_id_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00182">connections_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00123">dtntunnel::TCPTunnel::TCPTunnel::Connection::dest_eid_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00190">lock_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00126">dtntunnel::TCPTunnel::TCPTunnel::Connection::remote_addr_</a>, and <a class="el" href="TCPTunnel_8h-source.html#l00127">dtntunnel::TCPTunnel::TCPTunnel::Connection::remote_port_</a>.</p> <p>Referenced by <a class="el" href="TCPTunnel_8cc-source.html#l00289">dtntunnel::TCPTunnel::TCPTunnel::Connection::run()</a>.</p> </div> </div><p> <a class="anchor" name="82b6c2ff15a1cc137ec0d8df781e8c0a"></a><!-- doxytag: member="dtntunnel::TCPTunnel::new_connection" ref="82b6c2ff15a1cc137ec0d8df781e8c0a" args="(Connection *c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dtntunnel::TCPTunnel::new_connection </td> <td>(</td> <td class="paramtype"><a class="el" href="classdtntunnel_1_1TCPTunnel_1_1Connection.html">Connection</a> * </td> <td class="paramname"> <em>c</em> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Hook called by the listener when a new connection comes in. <p> <p>Definition at line <a class="el" href="TCPTunnel_8cc-source.html#l00054">54</a> of file <a class="el" href="TCPTunnel_8cc-source.html">TCPTunnel.cc</a>.</p> <p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="TCPTunnel_8h-source.html#l00124">dtntunnel::TCPTunnel::TCPTunnel::Connection::client_addr_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00125">dtntunnel::TCPTunnel::TCPTunnel::Connection::client_port_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00128">dtntunnel::TCPTunnel::TCPTunnel::Connection::connection_id_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00182">connections_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00123">dtntunnel::TCPTunnel::TCPTunnel::Connection::dest_eid_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00190">lock_</a>, <a class="el" href="TCPTunnel_8h-source.html#l00126">dtntunnel::TCPTunnel::TCPTunnel::Connection::remote_addr_</a>, and <a class="el" href="TCPTunnel_8h-source.html#l00127">dtntunnel::TCPTunnel::TCPTunnel::Connection::remote_port_</a>.</p> <p>Referenced by <a class="el" href="TCPTunnel_8cc-source.html#l00215">dtntunnel::TCPTunnel::TCPTunnel::Listener::accepted()</a>.</p> </div> </div><p> <a class="anchor" name="a400a9b8c4fda2a4b72352220ab58900"></a><!-- doxytag: member="dtntunnel::TCPTunnel::next_connection_id" ref="a400a9b8c4fda2a4b72352220ab58900" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">u_int32_t dtntunnel::TCPTunnel::next_connection_id </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return the next connection id. <p> <p>Definition at line <a class="el" href="TCPTunnel_8cc-source.html#l00046">46</a> of file <a class="el" href="TCPTunnel_8cc-source.html">TCPTunnel.cc</a>.</p> <p>References <a class="el" href="TCPTunnel_8h-source.html#l00190">lock_</a>, and <a class="el" href="TCPTunnel_8h-source.html#l00193">next_connection_id_</a>.</p> <p>Referenced by <a class="el" href="TCPTunnel_8cc-source.html#l00215">dtntunnel::TCPTunnel::TCPTunnel::Listener::accepted()</a>.</p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="94b9f9bc1e134be44f6dd942d4398b60"></a><!-- doxytag: member="dtntunnel::TCPTunnel::connections_" ref="94b9f9bc1e134be44f6dd942d4398b60" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#68aab7171556c6a29bdb5f369804f51f">ConnTable</a> <a class="el" href="classdtntunnel_1_1TCPTunnel.html#94b9f9bc1e134be44f6dd942d4398b60">dtntunnel::TCPTunnel::connections_</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="TCPTunnel_8h-source.html#l00182">182</a> of file <a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a>.</p> <p>Referenced by <a class="el" href="TCPTunnel_8cc-source.html#l00114">handle_bundle()</a>, <a class="el" href="TCPTunnel_8cc-source.html#l00082">kill_connection()</a>, and <a class="el" href="TCPTunnel_8cc-source.html#l00054">new_connection()</a>.</p> </div> </div><p> <a class="anchor" name="72bf262d24541e93bd5bbf24612b9a44"></a><!-- doxytag: member="dtntunnel::TCPTunnel::lock_" ref="72bf262d24541e93bd5bbf24612b9a44" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">oasys::SpinLock <a class="el" href="classdtntunnel_1_1TCPTunnel.html#72bf262d24541e93bd5bbf24612b9a44">dtntunnel::TCPTunnel::lock_</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Lock to protect the connections table. <p> <p>Definition at line <a class="el" href="TCPTunnel_8h-source.html#l00190">190</a> of file <a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a>.</p> <p>Referenced by <a class="el" href="TCPTunnel_8cc-source.html#l00114">handle_bundle()</a>, <a class="el" href="TCPTunnel_8cc-source.html#l00082">kill_connection()</a>, <a class="el" href="TCPTunnel_8cc-source.html#l00054">new_connection()</a>, and <a class="el" href="TCPTunnel_8cc-source.html#l00046">next_connection_id()</a>.</p> </div> </div><p> <a class="anchor" name="a57571781241fb2284c83e093cc557d5"></a><!-- doxytag: member="dtntunnel::TCPTunnel::next_connection_id_" ref="a57571781241fb2284c83e093cc557d5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">u_int32_t <a class="el" href="classdtntunnel_1_1TCPTunnel.html#a57571781241fb2284c83e093cc557d5">dtntunnel::TCPTunnel::next_connection_id_</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Increasing counter for connection identifiers. <p> <p>Definition at line <a class="el" href="TCPTunnel_8h-source.html#l00193">193</a> of file <a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a>.</p> <p>Referenced by <a class="el" href="TCPTunnel_8cc-source.html#l00046">next_connection_id()</a>.</p> </div> </div><p> <a class="anchor" name="9d330834f0141da1002e3e005f217854"></a><!-- doxytag: member="dtntunnel::TCPTunnel::no_conn_bundles_" ref="9d330834f0141da1002e3e005f217854" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdtntunnel_1_1TCPTunnel.html#84a4aadbaa3d0e61d03ee453c6639588">NoConnBundleTable</a> <a class="el" href="classdtntunnel_1_1TCPTunnel.html#9d330834f0141da1002e3e005f217854">dtntunnel::TCPTunnel::no_conn_bundles_</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="TCPTunnel_8h-source.html#l00187">187</a> of file <a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a>.</p> <p>Referenced by <a class="el" href="TCPTunnel_8cc-source.html#l00114">handle_bundle()</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="TCPTunnel_8h-source.html">TCPTunnel.h</a><li><a class="el" href="TCPTunnel_8cc-source.html">TCPTunnel.cc</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 30 09:27:05 2009 for DTN Reference Implementation by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address> </body> </html>