Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 29c369053a983cc5d8c880dc6e0a2237 > files > 985

libdtn-devel-2.6.0-2mdv2009.1.i586.rpm

<!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: dtn::ConnectionConvergenceLayer 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&nbsp;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&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="navpath"><a class="el" href="namespacedtn.html">dtn</a>::<a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html">ConnectionConvergenceLayer</a>
  </div>
</div>
<div class="contents">
<h1>dtn::ConnectionConvergenceLayer Class Reference</h1><!-- doxytag: class="dtn::ConnectionConvergenceLayer" --><!-- doxytag: inherits="dtn::ConvergenceLayer" -->All convergence layers that maintain a connection (i.e.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="ConnectionConvergenceLayer_8h-source.html">ConnectionConvergenceLayer.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for dtn::ConnectionConvergenceLayer:</div>
<div class="dynsection">

<p><center><img src="classdtn_1_1ConnectionConvergenceLayer.png" usemap="#dtn::ConnectionConvergenceLayer_map" border="0" alt=""></center>
<map name="dtn::ConnectionConvergenceLayer_map">
<area href="classdtn_1_1ConvergenceLayer.html" alt="dtn::ConvergenceLayer" shape="rect" coords="109,0,318,24">
<area href="classdtn_1_1StreamConvergenceLayer.html" alt="dtn::StreamConvergenceLayer" shape="rect" coords="109,112,318,136">
<area href="classdtn_1_1SerialConvergenceLayer.html" alt="dtn::SerialConvergenceLayer" shape="rect" coords="0,168,209,192">
<area href="classdtn_1_1TCPConvergenceLayer.html" alt="dtn::TCPConvergenceLayer" shape="rect" coords="219,168,428,192">
</map>
</div>

<p>
<a href="classdtn_1_1ConnectionConvergenceLayer-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 &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tunable parameter structure stored in each Link's <a class="el" href="classdtn_1_1CLInfo.html" title="Abstract base class for convergence layer specific state stored in an interface /...">CLInfo</a> slot.  <a href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#56ec3d4688989c2df7adecdcaff0f634">ConnectionConvergenceLayer</a> (const char *logpath, const char *cl_name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#56ec3d4688989c2df7adecdcaff0f634"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#9f96d07f1c0cb39625c18d08fda84bfc">parse_nexthop</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link, <a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *params)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse and validate the nexthop address for the given link.  <a href="#9f96d07f1c0cb39625c18d08fda84bfc"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#889ff6f6005f5a8c836ce39cd0c4c2e7">init_link</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link, int argc, const char *argv[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>.  <a href="#889ff6f6005f5a8c836ce39cd0c4c2e7"></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="classdtn_1_1ConnectionConvergenceLayer.html#f0a6be1e18dbf9241f6d1d7c89ff47e8">delete_link</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>.  <a href="#f0a6be1e18dbf9241f6d1d7c89ff47e8"></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="classdtn_1_1ConnectionConvergenceLayer.html#c8a0955bbe61e68c1a697e62faa1e4c8">dump_link</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link, oasys::StringBuffer *<a class="el" href="num2sdnv_8c.html#a81cdcc7ff6987bc85c073253e32715f">buf</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>.  <a href="#c8a0955bbe61e68c1a697e62faa1e4c8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#de9d1c7b1d79efaf0e93253e745aefb7">reconfigure_link</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link, int argc, const char *argv[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>.  <a href="#de9d1c7b1d79efaf0e93253e745aefb7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#1c3cb9cbe18ba59ac976e19067472ad4">open_contact</a> (const <a class="el" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7">ContactRef</a> &amp;contact)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>.  <a href="#1c3cb9cbe18ba59ac976e19067472ad4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#e5498982de68b593fdf1985a9e7d4011">close_contact</a> (const <a class="el" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7">ContactRef</a> &amp;contact)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>.  <a href="#e5498982de68b593fdf1985a9e7d4011"></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="classdtn_1_1ConnectionConvergenceLayer.html#f84ad21279095a87e161a5f370b10bd2">bundle_queued</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link, const <a class="el" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1">BundleRef</a> &amp;bundle)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>.  <a href="#f84ad21279095a87e161a5f370b10bd2"></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="classdtn_1_1ConnectionConvergenceLayer.html#c80d202f28b43f016b56550fd8265704">cancel_bundle</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link, const <a class="el" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1">BundleRef</a> &amp;bundle)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>.  <a href="#c80d202f28b43f016b56550fd8265704"></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">virtual <a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#c837d8f6908c2711cabdfe925bee1ac5">new_link_params</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new <a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html" title="Tunable parameter structure stored in each Link&#39;s CLInfo slot.">LinkParams</a> structure.  <a href="#c837d8f6908c2711cabdfe925bee1ac5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#adbf0e8a26308b4250543ff5a46e2a09">parse_link_params</a> (<a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *params, int argc, const char **argv, const char **invalidp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse the link parameters, returning true iff the args are valid for the given nexthop address.  <a href="#adbf0e8a26308b4250543ff5a46e2a09"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#a256c77be82909fb4fede37fd347fd23">finish_init_link</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link, <a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *params)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">After the link parameters are parsed, do any initialization of the link that's necessary before starting up a connection.  <a href="#a256c77be82909fb4fede37fd347fd23"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classdtn_1_1CLConnection.html">CLConnection</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#c7772a23c2ba8c47c24807e446264918">new_connection</a> (const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;link, <a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *params)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new CL-specific connection object.  <a href="#c7772a23c2ba8c47c24807e446264918"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
All convergence layers that maintain a connection (i.e. 
<p>
a TCP socket) to next hop peers derive from this base class. As such, it manages all communication to/from the main bundle daemon thread, handles the main thread of control for each connection, and dispatches to the specific CL implementation to handle the actual wire protocol.<p>
The design is as follows:<p>
Open links contain a Connection class stored in the Contact's cl_info slot. The lifetime of this object is one-to-one with the duration of the <a class="el" href="classdtn_1_1Contact.html" title="Encapsulation of an active connection to a next-hop DTN contact.">Contact</a> object. The Connection class is a thread that contains a MsgQueue for commands to be sent from the bundle daemon. The commands are SEND_BUNDLE, CANCEL_BUNDLE, and BREAK_CONTACT. When in an idle state, the thread blocks on this queue as well as the socket or other connection object so it can be notified of events coming from either the daemon or the peer node.<p>
To enable backpressure, each connection has a maximum queue depth for bundles that have been pushed onto the queue but have not yet been sent or registered as in-flight by the CL. The state of the link is set to BUSY when this limit is reached, but is re-set to AVAILABLE if By default, there is no hard limit on the number of bundles that can be in-flight, instead the limit is determined by the capacity of the underlying link.<p>
The hardest case to handle is how to close a contact, as there is a race condition between the underlying connection breaking and the higher layers determining that the link should be closed. If the underlying link breaks due to a timeout or goes idle for an on demand link, a <a class="el" href="classdtn_1_1ContactDownEvent.html" title="Event class for contact down events.">ContactDownEvent</a> is posted and the thread terminates, setting the is_stopped() bit in the thread class. In response to this event, the daemon will call the close_contact method. In this case, the connection thread has already terminated so it is cleaned up when the <a class="el" href="classdtn_1_1Contact.html" title="Encapsulation of an active connection to a next-hop DTN contact.">Contact</a> object goes away.<p>
If the link is closed by the daemon thread due to user configuration or a scheduled link's open time elapsing, then close_contact will be called while the connection is still open. The connection thread is informed by sending it a BREAK_CONTACT command. Reception of this command closes the connection and terminates, setting the is_stopped() bit when it is done. All this logic is handled by the break_contact method in the Connection class.<p>
Finally, for bidirectional protocols, opportunistic links can be created in response to new connections arriving from a peer node. 
<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00075">75</a> of file <a class="el" href="ConnectionConvergenceLayer_8h-source.html">ConnectionConvergenceLayer.h</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="56ec3d4688989c2df7adecdcaff0f634"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer" ref="56ec3d4688989c2df7adecdcaff0f634" args="(const char *logpath, const char *cl_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>logpath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>cl_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor. 
<p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00045">45</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="f84ad21279095a87e161a5f370b10bd2"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::bundle_queued" ref="f84ad21279095a87e161a5f370b10bd2" args="(const LinkRef &amp;link, const BundleRef &amp;bundle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::ConnectionConvergenceLayer::bundle_queued           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1">BundleRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>bundle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>. 
<p>

<p>Implements <a class="el" href="classdtn_1_1ConvergenceLayer.html#af13ad57dd3dbab0e5c1e827ef59ab67">dtn::ConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00383">383</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="CLConnection_8h-source.html#l00147">dtn::CLConnection::CLMSG_BUNDLES_QUEUED</a>, and <a class="el" href="CLConnection_8h-source.html#l00258">dtn::CLConnection::cmdqueue_</a>.</p>

</div>
</div><p>
<a class="anchor" name="c80d202f28b43f016b56550fd8265704"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::cancel_bundle" ref="c80d202f28b43f016b56550fd8265704" args="(const LinkRef &amp;link, const BundleRef &amp;bundle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::ConnectionConvergenceLayer::cancel_bundle           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1">BundleRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>bundle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>. 
<p>

<p>Reimplemented from <a class="el" href="classdtn_1_1ConvergenceLayer.html#d2a7e856ddd378ebcd7a0fe2f566fe9a">dtn::ConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00414">414</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="CLConnection_8h-source.html#l00148">dtn::CLConnection::CLMSG_CANCEL_BUNDLE</a>, <a class="el" href="CLConnection_8h-source.html#l00258">dtn::CLConnection::cmdqueue_</a>, and <a class="el" href="BundleDaemon_8cc-source.html#l00134">dtn::BundleDaemon::post()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e5498982de68b593fdf1985a9e7d4011"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::close_contact" ref="e5498982de68b593fdf1985a9e7d4011" args="(const ContactRef &amp;contact)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::ConnectionConvergenceLayer::close_contact           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7">ContactRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>contact</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>. 
<p>

<p>Reimplemented from <a class="el" href="classdtn_1_1ConvergenceLayer.html#0667833468ff83fd60b4f96307c26618">dtn::ConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00262">262</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="CLConnection_8h-source.html#l00212">dtn::CLConnection::CLConnection::InFlightBundle::ack_data_</a>, <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="CLConnection_8h-source.html#l00237">dtn::CLConnection::CLConnection::IncomingBundle::bundle_</a>, <a class="el" href="CLConnection_8h-source.html#l00204">dtn::CLConnection::CLConnection::InFlightBundle::bundle_</a>, <a class="el" href="CLConnection_8h-source.html#l00149">dtn::CLConnection::CLMSG_BREAK_CONTACT</a>, <a class="el" href="CLConnection_8h-source.html#l00258">dtn::CLConnection::cmdqueue_</a>, <a class="el" href="CLConnection_8h-source.html#l00273">dtn::CLConnection::contact_broken_</a>, <a class="el" href="BundleEvent_8h-source.html#l00214">dtn::EVENTSRC_PEER</a>, <a class="el" href="CLConnection_8h-source.html#l00272">dtn::CLConnection::incoming_</a>, <a class="el" href="CLConnection_8h-source.html#l00271">dtn::CLConnection::inflight_</a>, <a class="el" href="BundleProtocol_8cc-source.html#l00279">dtn::BundleProtocol::payload_offset()</a>, <a class="el" href="BundleDaemon_8cc-source.html#l00134">dtn::BundleDaemon::post()</a>, <a class="el" href="CLConnection_8h-source.html#l00242">dtn::CLConnection::CLConnection::IncomingBundle::rcvd_data_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00100">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::reactive_frag_enabled_</a>, <a class="el" href="CLConnection_8h-source.html#l00211">dtn::CLConnection::CLConnection::InFlightBundle::sent_data_</a>, <a class="el" href="CLConnection_8h-source.html#l00239">dtn::CLConnection::CLConnection::IncomingBundle::total_length_</a>, <a class="el" href="CLConnection_8h-source.html#l00207">dtn::CLConnection::CLConnection::InFlightBundle::total_length_</a>, and <a class="el" href="CLConnection_8h-source.html#l00209">dtn::CLConnection::CLConnection::InFlightBundle::transmit_event_posted_</a>.</p>

</div>
</div><p>
<a class="anchor" name="f0a6be1e18dbf9241f6d1d7c89ff47e8"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::delete_link" ref="f0a6be1e18dbf9241f6d1d7c89ff47e8" args="(const LinkRef &amp;link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::ConnectionConvergenceLayer::delete_link           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>. 
<p>

<p>Reimplemented from <a class="el" href="classdtn_1_1ConvergenceLayer.html#c25b42069cd41f9f07bebb93205a0426">dtn::ConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00156">156</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>.</p>

</div>
</div><p>
<a class="anchor" name="c8a0955bbe61e68c1a697e62faa1e4c8"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::dump_link" ref="c8a0955bbe61e68c1a697e62faa1e4c8" args="(const LinkRef &amp;link, oasys::StringBuffer *buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::ConnectionConvergenceLayer::dump_link           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">oasys::StringBuffer *&nbsp;</td>
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>. 
<p>

<p>Reimplemented from <a class="el" href="classdtn_1_1ConvergenceLayer.html#852d2ac184b8701d53d2ae8a04a776df">dtn::ConvergenceLayer</a>.</p>

<p>Reimplemented in <a class="el" href="classdtn_1_1SerialConvergenceLayer.html#e794014bbd22de08dde5c2d7b6d3ebf2">dtn::SerialConvergenceLayer</a>, <a class="el" href="classdtn_1_1StreamConvergenceLayer.html#a6c4edd67ccbef20b2da705474048fed">dtn::StreamConvergenceLayer</a>, and <a class="el" href="classdtn_1_1TCPConvergenceLayer.html#fb319b172f583a6457263adffa17a5d9">dtn::TCPConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00096">96</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>.</p>

</div>
</div><p>
<a class="anchor" name="a256c77be82909fb4fede37fd347fd23"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::finish_init_link" ref="a256c77be82909fb4fede37fd347fd23" args="(const LinkRef &amp;link, LinkParams *params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::ConnectionConvergenceLayer::finish_init_link           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
After the link parameters are parsed, do any initialization of the link that's necessary before starting up a connection. 
<p>

<p>Reimplemented in <a class="el" href="classdtn_1_1StreamConvergenceLayer.html#6164b894bc7b0f10951c57484a4c3c43">dtn::StreamConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00180">180</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>Referenced by <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00117">init_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="889ff6f6005f5a8c836ce39cd0c4c2e7"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::init_link" ref="889ff6f6005f5a8c836ce39cd0c4c2e7" args="(const LinkRef &amp;link, int argc, const char *argv[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::ConnectionConvergenceLayer::init_link           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>argv</em>[]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>. 
<p>

<p>Reimplemented from <a class="el" href="classdtn_1_1ConvergenceLayer.html#30f0f04379a82df120a1c1459c049464">dtn::ConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00117">117</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00180">finish_init_link()</a>, <a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#c837d8f6908c2711cabdfe925bee1ac5">new_link_params()</a>, <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00053">parse_link_params()</a>, and <a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#9f96d07f1c0cb39625c18d08fda84bfc">parse_nexthop()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c7772a23c2ba8c47c24807e446264918"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::new_connection" ref="c7772a23c2ba8c47c24807e446264918" args="(const LinkRef &amp;link, LinkParams *params)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classdtn_1_1CLConnection.html">CLConnection</a>* dtn::ConnectionConvergenceLayer::new_connection           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a new CL-specific connection object. 
<p>

<p>Implemented in <a class="el" href="classdtn_1_1SerialConvergenceLayer.html#0584f928831b0dfa967c54ab6b4122f0">dtn::SerialConvergenceLayer</a>, and <a class="el" href="classdtn_1_1TCPConvergenceLayer.html#bbaeaaf191c1c132e8940742cf3b9d67">dtn::TCPConvergenceLayer</a>.</p>

<p>Referenced by <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00237">open_contact()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c837d8f6908c2711cabdfe925bee1ac5"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::new_link_params" ref="c837d8f6908c2711cabdfe925bee1ac5" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a>* dtn::ConnectionConvergenceLayer::new_link_params           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a new <a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html" title="Tunable parameter structure stored in each Link&#39;s CLInfo slot.">LinkParams</a> structure. 
<p>

<p>Implemented in <a class="el" href="classdtn_1_1SerialConvergenceLayer.html#577e34fb15238b91dbf015ce1e1b32c4">dtn::SerialConvergenceLayer</a>, and <a class="el" href="classdtn_1_1TCPConvergenceLayer.html#01e75cb050ede3ab5d552843dd90426b">dtn::TCPConvergenceLayer</a>.</p>

<p>Referenced by <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00117">init_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1c3cb9cbe18ba59ac976e19067472ad4"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::open_contact" ref="1c3cb9cbe18ba59ac976e19067472ad4" args="(const ContactRef &amp;contact)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::ConnectionConvergenceLayer::open_contact           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7">ContactRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>contact</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>. 
<p>

<p>Implements <a class="el" href="classdtn_1_1ConvergenceLayer.html#0bc4483b3956e082a17f79bd9b488780">dtn::ConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00237">237</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="classdtn_1_1ConnectionConvergenceLayer.html#c7772a23c2ba8c47c24807e446264918">new_connection()</a>, and <a class="el" href="CLConnection_8h-source.html#l00062">dtn::CLConnection::set_contact()</a>.</p>

</div>
</div><p>
<a class="anchor" name="adbf0e8a26308b4250543ff5a46e2a09"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::parse_link_params" ref="adbf0e8a26308b4250543ff5a46e2a09" args="(LinkParams *params, int argc, const char **argv, const char **invalidp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::ConnectionConvergenceLayer::parse_link_params           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>invalidp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse the link parameters, returning true iff the args are valid for the given nexthop address. 
<p>

<p>Reimplemented in <a class="el" href="classdtn_1_1SerialConvergenceLayer.html#4229e8c830a1f83a22e257eba769e23c">dtn::SerialConvergenceLayer</a>, <a class="el" href="classdtn_1_1StreamConvergenceLayer.html#7ff0e15422faa7ab806b1945bf598e56">dtn::StreamConvergenceLayer</a>, and <a class="el" href="classdtn_1_1TCPConvergenceLayer.html#a06e06e7211a2f5cce814fc2e66fc233">dtn::TCPConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00053">53</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00103">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::data_timeout_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00100">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::reactive_frag_enabled_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00102">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::recvbuf_len_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00101">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::sendbuf_len_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00105">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::test_read_delay_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00109">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::test_read_limit_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00107">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::test_recv_delay_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00106">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::test_write_delay_</a>, and <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00110">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::test_write_limit_</a>.</p>

<p>Referenced by <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00117">init_link()</a>, and <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00190">reconfigure_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9f96d07f1c0cb39625c18d08fda84bfc"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::parse_nexthop" ref="9f96d07f1c0cb39625c18d08fda84bfc" args="(const LinkRef &amp;link, LinkParams *params)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::ConnectionConvergenceLayer::parse_nexthop           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdtn_1_1ConnectionConvergenceLayer_1_1LinkParams.html">LinkParams</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse and validate the nexthop address for the given link. 
<p>

<p>Implemented in <a class="el" href="classdtn_1_1SerialConvergenceLayer.html#a304f26f6b759df0c70ee81322a2eaea">dtn::SerialConvergenceLayer</a>, and <a class="el" href="classdtn_1_1TCPConvergenceLayer.html#28eae8cabe910cd4210b49715f2d2470">dtn::TCPConvergenceLayer</a>.</p>

<p>Referenced by <a class="el" href="TCPConvergenceLayer_8cc-source.html#l00386">dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::connect()</a>, <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00117">init_link()</a>, and <a class="el" href="SerialConvergenceLayer_8cc-source.html#l00173">dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::initialize_pollfds()</a>.</p>

</div>
</div><p>
<a class="anchor" name="de9d1c7b1d79efaf0e93253e745aefb7"></a><!-- doxytag: member="dtn::ConnectionConvergenceLayer::reconfigure_link" ref="de9d1c7b1d79efaf0e93253e745aefb7" args="(const LinkRef &amp;link, int argc, const char *argv[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::ConnectionConvergenceLayer::reconfigure_link           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>argv</em>[]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from <a class="el" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>. 
<p>

<p>Reimplemented from <a class="el" href="classdtn_1_1ConvergenceLayer.html#665759ded6a613414b1c8826208b2f5d">dtn::ConvergenceLayer</a>.</p>

<p>Definition at line <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00190">190</a> of file <a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="ConnectionConvergenceLayer_8cc-source.html#l00053">parse_link_params()</a>, <a class="el" href="CLConnection_8h-source.html#l00270">dtn::CLConnection::recvbuf_</a>, <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00102">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::recvbuf_len_</a>, <a class="el" href="CLConnection_8h-source.html#l00269">dtn::CLConnection::sendbuf_</a>, and <a class="el" href="ConnectionConvergenceLayer_8h-source.html#l00101">dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::sendbuf_len_</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="ConnectionConvergenceLayer_8h-source.html">ConnectionConvergenceLayer.h</a><li><a class="el" href="ConnectionConvergenceLayer_8cc-source.html">ConnectionConvergenceLayer.cc</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 30 09:27:03 2009 for DTN Reference Implementation by&nbsp;
<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>