Sophie

Sophie

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

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::Link 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_1Link.html">Link</a>
  </div>
</div>
<div class="contents">
<h1>dtn::Link Class Reference</h1><!-- doxytag: class="dtn::Link" -->Abstraction for a DTN link, i.e.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="contacts_2Link_8h-source.html">Link.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for dtn::Link:</div>
<div class="dynsection">

<p><center><img src="classdtn_1_1Link.png" usemap="#dtn::Link_map" border="0" alt=""></center>
<map name="dtn::Link_map">
<area href="classdtn_1_1AlwaysOnLink.html" alt="dtn::AlwaysOnLink" shape="rect" coords="0,56,133,80">
<area href="classdtn_1_1OndemandLink.html" alt="dtn::OndemandLink" shape="rect" coords="143,56,276,80">
<area href="classdtn_1_1OpportunisticLink.html" alt="dtn::OpportunisticLink" shape="rect" coords="286,56,419,80">
<area href="classdtn_1_1ScheduledLink.html" alt="dtn::ScheduledLink" shape="rect" coords="429,56,562,80">
</map>
</div>

<p>
<a href="classdtn_1_1Link-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">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdtn_1_1Link_1_1Params.html">Params</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdtn_1_1Link_1_1Stats.html">Stats</a></td></tr>

<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a> { <br>
&nbsp;&nbsp;<a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e16f74d8b58f067027e718650590deef1">LINK_INVALID</a> =  -1, 
<a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61eb2b2a3f569e0a11e5277b2428253137d">ALWAYSON</a> =  1, 
<a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61eeacf2159ea9fd169ca07c9f9891309ec">ONDEMAND</a> =  2, 
<a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e801d9aeea31cb25c67e25914a461db38">SCHEDULED</a> =  3, 
<br>
&nbsp;&nbsp;<a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e692792332b57aa903a769cb33e3d366b">OPPORTUNISTIC</a> =  4
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Valid types for a link.  <a href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">state_t</a> { <br>
&nbsp;&nbsp;<a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3fcb80aea04644bdc565b13fa371b2e1e">UNAVAILABLE</a> =  1, 
<a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a36a3d11409342e7987b0ffe9c532d6e51">AVAILABLE</a> =  2, 
<a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a335e8afe56056fd46352661764b8982df">OPENING</a> =  4, 
<a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3ec7a744ed0ed07ccb2b255a0d76192c8">OPEN</a> =  8, 
<br>
&nbsp;&nbsp;<a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a32e48e0c707487f143c54dd1cd5185323">CLOSED</a> =  16
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The possible states for a link.  <a href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">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_1Link.html#d505d6b5230f402ad22687c00f494afe">Link</a> (const std::string &amp;name, <a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a> type, <a class="el" href="classdtn_1_1ConvergenceLayer.html">ConvergenceLayer</a> *cl, const char *nexthop)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor / Destructor.  <a href="#d505d6b5230f402ad22687c00f494afe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#791828780ab0da55bac9c6ad693dff07">Link</a> (const oasys::Builder &amp;b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor for unserialization.  <a href="#791828780ab0da55bac9c6ad693dff07"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#73e9b7a34c33222155522b991b03b27f">delete_link</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handle and mark deleted link.  <a href="#73e9b7a34c33222155522b991b03b27f"></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_1Link.html#825053cfdbfb055728d4da96e1e50fb2">reconfigure_link</a> (int argc, const char *argv[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reconfigure the link parameters.  <a href="#825053cfdbfb055728d4da96e1e50fb2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#a5c789e744e51174d1e4a2725824ed69">reconfigure_link</a> (<a class="el" href="namespacedtn.html#e203c4f515b9e88e9e3462100c257314">AttributeVector</a> &amp;params)</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_1Link.html#2c0b330264926a57c63208bf1d6f04df">serialize</a> (oasys::SerializeAction *action)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from SerializableObject.  <a href="#2c0b330264926a57c63208bf1d6f04df"></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="classdtn_1_1Link.html#5e85022a6ac79a3879fb1bf2f8b759ed">parse_args</a> (int argc, const char *argv[], const char **invalidp=NULL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hook for subclass to parse arguments.  <a href="#5e85022a6ac79a3879fb1bf2f8b759ed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#56ec91ab095a6a47bc70e3e03a400f94">set_initial_state</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hook for subclass to post events to control the initial link state, after all initialization is complete.  <a href="#56ec91ab095a6a47bc70e3e03a400f94"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#75dad1b5cff2bd5e84b06ffc57504c65">type</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the type of the link.  <a href="#75dad1b5cff2bd5e84b06ffc57504c65"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#53848e2ba98690abd334c658c3edc10c">type_str</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the string for of the link.  <a href="#53848e2ba98690abd334c658c3edc10c"></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_1Link.html#952e9b3539ca5200c04daeb248dc4180">isopen</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether or not the link is open.  <a href="#952e9b3539ca5200c04daeb248dc4180"></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_1Link.html#80585b707870a3bb2a89d7354f544242">isavailable</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the availability state of the link.  <a href="#80585b707870a3bb2a89d7354f544242"></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_1Link.html#b0879f5e65a3233f251b87fad0fe540c">isopening</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether the link is in the process of opening.  <a href="#b0879f5e65a3233f251b87fad0fe540c"></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_1Link.html#da00d64fecd9930c831718421533de0d">isdeleted</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the link has been deleted; otherwise returns false.  <a href="#da00d64fecd9930c831718421533de0d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">state_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#71a8fdd921fb0e93fd4c21f08da28a8b">state</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the actual state.  <a href="#71a8fdd921fb0e93fd4c21f08da28a8b"></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_1Link.html#771d7e1e57ec743d6c38b11a09274771">set_state</a> (<a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">state_t</a> state)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the state of the link.  <a href="#771d7e1e57ec743d6c38b11a09274771"></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_1Link.html#8c091c35f14f40a8b921516620c7e8a3">set_create_pending</a> (<a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> create_pending=true)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set/get the create_pending_ flag on the link.  <a href="#8c091c35f14f40a8b921516620c7e8a3"></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_1Link.html#a27cd2445aaa0c5e38021e06258670a7">is_create_pending</a> () const </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_1Link.html#24dff10247d4ac8271c2c6dd7bf38d10">set_usable</a> (<a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> usable=true)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set/get the usable_ flag on the link.  <a href="#24dff10247d4ac8271c2c6dd7bf38d10"></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_1Link.html#afb64cff081f778f29dd47191883527f">is_usable</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7">ContactRef</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#16894dcaf0d2b3edf053e5614e015857">contact</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the current contact information (if any).  <a href="#16894dcaf0d2b3edf053e5614e015857"></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_1Link.html#a9e4bd1bf4876495bc82cfa3abf5a647">set_contact</a> (<a class="el" href="classdtn_1_1Contact.html">Contact</a> *contact)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the contact information.  <a href="#a9e4bd1bf4876495bc82cfa3abf5a647"></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_1Link.html#900b409fa2a3402c6f72c46a8cc207b4">set_cl_info</a> (<a class="el" href="classdtn_1_1CLInfo.html">CLInfo</a> *cl_info)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Store convergence layer state associated with the link.  <a href="#900b409fa2a3402c6f72c46a8cc207b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1CLInfo.html">CLInfo</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#3273fdac57a577fc3abcc979147f4d24">cl_info</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to the convergence layer state.  <a href="#3273fdac57a577fc3abcc979147f4d24"></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_1Link.html#9f614043ee87ed559daef685e9661ef5">set_router_info</a> (<a class="el" href="classdtn_1_1RouterInfo.html">RouterInfo</a> *router_info)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Store router state associated with the link.  <a href="#9f614043ee87ed559daef685e9661ef5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1RouterInfo.html">RouterInfo</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#44fb575be36966c14ee94e056375ea44">router_info</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to the convergence layer state.  <a href="#44fb575be36966c14ee94e056375ea44"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1ConvergenceLayer.html">ConvergenceLayer</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#f909b48bf21f49b5646e22cb51151869">clayer</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to this contact's convergence layer.  <a href="#f909b48bf21f49b5646e22cb51151869"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#e4cad7d0449f9a5c9cb3ea9693df09c4">name</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to this links name.  <a href="#e4cad7d0449f9a5c9cb3ea9693df09c4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#4d22ab5b713286252422838e141b09b5">name_str</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to this links name as a c++ string.  <a href="#4d22ab5b713286252422838e141b09b5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#5bffae252da80b32679686d826f4d4cf">nexthop</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to next hop string.  <a href="#5bffae252da80b32679686d826f4d4cf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#b3ae66b2c886764818f892714f36f2e6">nexthop_str</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to next hop string.  <a href="#b3ae66b2c886764818f892714f36f2e6"></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_1Link.html#a832ad2297fd784fe6e70ee5dd7a8dab">set_nexthop</a> (const std::string &amp;nexthop)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Override for the next hop string.  <a href="#a832ad2297fd784fe6e70ee5dd7a8dab"></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_1Link.html#b4a083cc0c2445cb98e1c2a5be1e571a">is_reliable</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to the reliability bit.  <a href="#b4a083cc0c2445cb98e1c2a5be1e571a"></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_1Link.html#c8a1dc207dffef1a906e23c90a876318">set_reliable</a> (<a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> r)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to set the reliability bit when the link is created.  <a href="#c8a1dc207dffef1a906e23c90a876318"></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_1Link.html#b9308b5442c5a0f2c549b254ccd9216f">set_remote_eid</a> (const <a class="el" href="classdtn_1_1EndpointID.html">EndpointID</a> &amp;remote)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to set the remote endpoint id.  <a href="#b9308b5442c5a0f2c549b254ccd9216f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classdtn_1_1EndpointID.html">EndpointID</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#febda74522edf794750548f1067fa334">remote_eid</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor to the remote endpoint id.  <a href="#febda74522edf794750548f1067fa334"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classdtn_1_1BundleList.html">BundleList</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#51f9db6caba35b80b20cca5259d9b8b2">queue</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor for the link's queue of bundles that are awaiting transmission.  <a href="#51f9db6caba35b80b20cca5259d9b8b2"></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_1Link.html#969754e20c9dd4b9995f681703c4d963">queue_is_full</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether or not the queue is full, based on the configured queue limits.  <a href="#969754e20c9dd4b9995f681703c4d963"></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_1Link.html#f81761808229e409927bee19494b878c">queue_has_space</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether or not the queue has space, based on the configured queue limits.  <a href="#f81761808229e409927bee19494b878c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classdtn_1_1BundleList.html">BundleList</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#79285b8d8f03410f171faa0be56403be">inflight</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor for the link's list of bundles that have been transmitted but for which the convergence layer is awaiting acknowledgement.  <a href="#79285b8d8f03410f171faa0be56403be"></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="classdtn_1_1Link.html#03accdcb516ca16ba1c5c67fc64a2fa8">format</a> (char *<a class="el" href="num2sdnv_8c.html#a81cdcc7ff6987bc85c073253e32715f">buf</a>, size_t sz) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from formatter.  <a href="#03accdcb516ca16ba1c5c67fc64a2fa8"></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_1Link.html#92625abc0b8424f763824f099eee055d">dump</a> (oasys::StringBuffer *<a class="el" href="num2sdnv_8c.html#a81cdcc7ff6987bc85c073253e32715f">buf</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Debugging printout.  <a href="#92625abc0b8424f763824f099eee055d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structdtn_1_1Link_1_1Params.html">Params</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#11705ab70240b25c7ce4d61e2bc8f9d8">params</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor for the parameter structure.  <a href="#11705ab70240b25c7ce4d61e2bc8f9d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structdtn_1_1Link_1_1Params.html">Params</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#fc3ce544669cbcef1155694c8aaeb48d">params</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structdtn_1_1Link_1_1Stats.html">Stats</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#91f1badc160e30d2fa16b2099aae6307">stats</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor for the stats structure.  <a href="#91f1badc160e30d2fa16b2099aae6307"></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_1Link.html#14f73bc333655104800104f5be38603a">reset_stats</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset the stats.  <a href="#14f73bc333655104800104f5be38603a"></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_1Link.html#ebb1e9d3bcc734ddf3263652d9f7cc14">dump_stats</a> (oasys::StringBuffer *<a class="el" href="num2sdnv_8c.html#a81cdcc7ff6987bc85c073253e32715f">buf</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump a printable version of the stats.  <a href="#ebb1e9d3bcc734ddf3263652d9f7cc14"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">oasys::Lock *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#b420e7045b82d003381c009cd649042e">lock</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor for the <a class="el" href="classdtn_1_1Link.html" title="Abstraction for a DTN link, i.e.">Link</a> state lock.  <a href="#b420e7045b82d003381c009cd649042e"></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_1Link.html#4145ce871e553f7135550b2c2227b9c3">add_to_queue</a> (const <a class="el" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1">BundleRef</a> &amp;bundle, size_t total_len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.  <a href="#4145ce871e553f7135550b2c2227b9c3"></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_1Link.html#351b48d6422e54c1e1761de089ddcee1">del_from_queue</a> (const <a class="el" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1">BundleRef</a> &amp;bundle, size_t total_len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.  <a href="#351b48d6422e54c1e1761de089ddcee1"></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_1Link.html#48b8de62d4415d0d1d2214515bdfc9ac">add_to_inflight</a> (const <a class="el" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1">BundleRef</a> &amp;bundle, size_t total_len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.  <a href="#48b8de62d4415d0d1d2214515bdfc9ac"></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_1Link.html#db1a66a1c3d5b23ef362151326120bbb">del_from_inflight</a> (const <a class="el" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1">BundleRef</a> &amp;bundle, size_t total_len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.  <a href="#db1a66a1c3d5b23ef362151326120bbb"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#93cde4c0fd625866bdbbad3fb9dd1258">bundles_queued</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the link queue stats.  <a href="#93cde4c0fd625866bdbbad3fb9dd1258"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#ac179ece00f7036163d41a884d1aaa6c">bytes_queued</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the link queue stats.  <a href="#ac179ece00f7036163d41a884d1aaa6c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#695f26506185d31f72f0d52de4aa8752">bundles_inflight</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the link queue stats.  <a href="#695f26506185d31f72f0d52de4aa8752"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#133f151b7ef9e341e9c38650ac35f475">bytes_inflight</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors for the link queue stats.  <a href="#133f151b7ef9e341e9c38650ac35f475"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#405aaca77bb12b2611ee49a8184b7829">link_type_to_str</a> (<a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a> type)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classdtn_1_1Link.html" title="Abstraction for a DTN link, i.e.">Link</a> type string conversion.  <a href="#405aaca77bb12b2611ee49a8184b7829"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#fbe02d3b95149fd1fcf9d08f0d4a3518">str_to_link_type</a> (const char *str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#9681a1ea52ef3c5db6dcf37b04e5c280">state_to_str</a> (<a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">state_t</a> state)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a link state into a string.  <a href="#9681a1ea52ef3c5db6dcf37b04e5c280"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#caf84c89199fccadfaecfc85a46d96f7">create_link</a> (const std::string &amp;name, <a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a> type, <a class="el" href="classdtn_1_1ConvergenceLayer.html">ConvergenceLayer</a> *cl, const char *nexthop, int argc, const char *argv[], const char **invalid_argp=NULL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Static function to create appropriate link object from link type.  <a href="#caf84c89199fccadfaecfc85a46d96f7"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#6e687c4d55d6b65efef17dcc27ccbc76">retry_interval_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Seconds to wait between attempts to re-open an unavailable link.  <a href="#6e687c4d55d6b65efef17dcc27ccbc76"></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 void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#9397d41bdf415c846610343e15b4b503">open</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open the link.  <a href="#9397d41bdf415c846610343e15b4b503"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#415c96b4d171484971a6946eb231195a">close</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the link.  <a href="#415c96b4d171484971a6946eb231195a"></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="classdtn_1_1Link.html#9aed1d330a9d5e5bd09e0a18e06f2d95">~Link</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor -- protected since links shouldn't be deleted.  <a href="#9aed1d330a9d5e5bd09e0a18e06f2d95"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#356a205fda65a385edee00dafd6aa546">type_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type of the link.  <a href="#356a205fda65a385edee00dafd6aa546"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#19d118d1c518d09ac42bd97b9c917169">state_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structState.html">State</a> of the link.  <a href="#19d118d1c518d09ac42bd97b9c917169"></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_1Link.html#72c1c919069f37959273f9a0379679d5">deleted_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag, that when set to true, indicates that the link has been deleted.  <a href="#72c1c919069f37959273f9a0379679d5"></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_1Link.html#3634f13823a2ebd0bb9dfc894f0e0e60">create_pending_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag, that when set to true, indicates that the creation of the link is pending; the convergence layer will post a creation event when the creation is complete.  <a href="#3634f13823a2ebd0bb9dfc894f0e0e60"></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_1Link.html#00910520baf6369869bb3ae6988172fd">usable_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flag, that when set to true, indicates that the link is allowed to be used to transmit bundles.  <a href="#00910520baf6369869bb3ae6988172fd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#4a0317c260c70581ef1a81a23bc27fba">nexthop_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Next hop address.  <a href="#4a0317c260c70581ef1a81a23bc27fba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#18fba654bb084c0d68d5442579393439">name_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal name of the link.  <a href="#18fba654bb084c0d68d5442579393439"></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_1Link.html#713c78c93785b2e3a6462892d52b550d">reliable_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether or not this link is reliable.  <a href="#713c78c93785b2e3a6462892d52b550d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structdtn_1_1Link_1_1Params.html">Params</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#f2c2e7e9451ceb7a0363b3a52b38b4d8">params_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parameters of the link.  <a href="#f2c2e7e9451ceb7a0363b3a52b38b4d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">oasys::SpinLock&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#9a028608b541c0e3d3c4af3aa3fb8712">lock_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock to protect internal data structures and state.  <a href="#9a028608b541c0e3d3c4af3aa3fb8712"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1BundleList.html">BundleList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#f7bef65eadb08fc8370eaf235b9af22a">queue_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queue of bundles currently active or pending transmission on the <a class="el" href="classdtn_1_1Link.html" title="Abstraction for a DTN link, i.e.">Link</a>.  <a href="#f7bef65eadb08fc8370eaf235b9af22a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1BundleList.html">BundleList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#fc4fe98181a47e648d7133898949d631">inflight_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queue of bundles that have been sent but not yet acknowledged.  <a href="#fc4fe98181a47e648d7133898949d631"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structdtn_1_1Link_1_1Stats.html">Stats</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#8f66801a2de483d745b7a0b619e12f0f">stats_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structdtn_1_1Link_1_1Stats.html">Stats</a> for the link.  <a href="#8f66801a2de483d745b7a0b619e12f0f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7">ContactRef</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#71c79dccb9b64a80879000ba232f7e9a">contact_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current contact. contact_ != null iff link is open.  <a href="#71c79dccb9b64a80879000ba232f7e9a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1ConvergenceLayer.html">ConvergenceLayer</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#07ec2bd779b594270491dd15e03127d2">clayer_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to convergence layer.  <a href="#07ec2bd779b594270491dd15e03127d2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1CLInfo.html">CLInfo</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#b0c8d7b3a270bb4ec6d7f018ed70aa94">cl_info_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convergence layer specific info, if needed.  <a href="#b0c8d7b3a270bb4ec6d7f018ed70aa94"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1RouterInfo.html">RouterInfo</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#2dd58ea037907dc2a5e5fe30d61414b2">router_info_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Router specific info, if needed.  <a href="#2dd58ea037907dc2a5e5fe30d61414b2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1EndpointID.html">EndpointID</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#1db82aaa68166ce7029df32710ee58f1">remote_eid_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remote's endpoint ID (eg, <a class="el" href="namespacedtn.html" title="Namespace for the dtn daemon source code.">dtn</a>://hostname.<a class="el" href="namespacedtn.html" title="Namespace for the dtn daemon source code.">dtn</a>).  <a href="#1db82aaa68166ce7029df32710ee58f1"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#a1c555412ff256489d257a6c838f7b2a">bundles_queued_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#611750c82a1ae0fe8d2c9d22097b5bbf">bytes_queued_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#a6e3ac679e8ef5bc7ad158a8487a6497">bundles_inflight_</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#bfdb39a4c12069033a21c50f12a4a0ef">bytes_inflight_</a></td></tr>

<tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structdtn_1_1Link_1_1Params.html">Params</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1Link.html#02dff1dc43dfca75fc4ecdef8ed08845">default_params_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default parameters of the link.  <a href="#02dff1dc43dfca75fc4ecdef8ed08845"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</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_1Link.html#e81b8ce094725bbc983ec42961d8032e">BundleActions</a></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_1Link.html#fc7f6330f6d1e3b33bfc1e2e1c751537">BundleDaemon</a></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_1Link.html#47e77d21706e11e895af252dd4105c97">ContactManager</a></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_1Link.html#2d50e0e4973c0bbd035fe4391bcf49dd">ParamCommand</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Abstraction for a DTN link, i.e. 
<p>
a one way communication channel to a next hop node in the DTN overlay.<p>
The state of a link (regarding its availability) is described by the <a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3" title="The possible states for a link.">Link::state_t</a> enumerated type.<p>
All links in the OPEN state have an associated contact that represents an actual connection.<p>
Every link has a unique name associated with it which is used to identify it. The name is configured explicitly when the link is created.<p>
Creating new links: Links are created explicitly in the configuration file. Syntax is: <div class="fragment"><pre class="fragment"> link add &lt;name&gt; &lt;<a class="code" href="classdtn_1_1Link.html#5bffae252da80b32679686d826f4d4cf" title="Accessor to next hop string.">nexthop</a>&gt; &lt;<a class="code" href="classdtn_1_1Link.html#75dad1b5cff2bd5e84b06ffc57504c65" title="Return the type of the link.">type</a>&gt; &lt;conv_layer&gt; &lt;args&gt;
</pre></div> See <a class="el" href="LinkCommand_8cc.html">servlib/cmd/LinkCommand.cc</a> for implementation of this TCL cmd.<p>
----------------------------------------------------------<p>
Links are of three types as discussed in the DTN architecture ONDEMAND, SCHEDULED, OPPORTUNISTIC.<p>
The key differences from an implementation perspective are "who" and "when" manipulates the link state regarding availability.<p>
ONDEMAND links are initializd in the AVAILABLE state, as one would expect. It remains in this state until a router explicitly opens it.<p>
An ONDEMAND link can then be closed either due to connection failure or because the link has been idle for too long, both triggered by the convergence layer. If an ONDEMAND link is closed due to connection failure, then the contact manager is notified of this event and periodically tries to re-establish the link.<p>
For OPPORTUNISTIC links the availability state is set by the code which detects that there is a new link available to be used.<p>
SCHEDULED links have their availability dictated by the schedule implementation.<p>
----------------------------------------------------------<p>
Links are used for input and/or output. In other words, for connection-oriented convergence layers like TCP, a link object is created whenever a new connection is made to a peer or when a connection arrives from a peer. 
<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00103">103</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="a93653796d33692c67c415afd1edf61e"></a><!-- doxytag: member="dtn::Link::link_type_t" ref="a93653796d33692c67c415afd1edf61e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">dtn::Link::link_type_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Valid types for a link. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="a93653796d33692c67c415afd1edf61e16f74d8b58f067027e718650590deef1"></a><!-- doxytag: member="LINK_INVALID" ref="a93653796d33692c67c415afd1edf61e16f74d8b58f067027e718650590deef1" args="" -->LINK_INVALID</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="a93653796d33692c67c415afd1edf61eb2b2a3f569e0a11e5277b2428253137d"></a><!-- doxytag: member="ALWAYSON" ref="a93653796d33692c67c415afd1edf61eb2b2a3f569e0a11e5277b2428253137d" args="" -->ALWAYSON</em>&nbsp;</td><td>
The link is expected to be ALWAYS available, and any convergence layer connection state is always maintained for it. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="a93653796d33692c67c415afd1edf61eeacf2159ea9fd169ca07c9f9891309ec"></a><!-- doxytag: member="ONDEMAND" ref="a93653796d33692c67c415afd1edf61eeacf2159ea9fd169ca07c9f9891309ec" args="" -->ONDEMAND</em>&nbsp;</td><td>
The link is expected to be either always available, or can be made available easily. 
<p>
Examples include DSL (always), and dialup (easily available). Convergence layers are free to tear down idle connection state, but are expected to be able to easily re-establish it. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="a93653796d33692c67c415afd1edf61e801d9aeea31cb25c67e25914a461db38"></a><!-- doxytag: member="SCHEDULED" ref="a93653796d33692c67c415afd1edf61e801d9aeea31cb25c67e25914a461db38" args="" -->SCHEDULED</em>&nbsp;</td><td>
The link is only available at pre-determined times. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="a93653796d33692c67c415afd1edf61e692792332b57aa903a769cb33e3d366b"></a><!-- doxytag: member="OPPORTUNISTIC" ref="a93653796d33692c67c415afd1edf61e692792332b57aa903a769cb33e3d366b" args="" -->OPPORTUNISTIC</em>&nbsp;</td><td>
The link may or may not be available, based on uncontrollable factors. 
<p>
Examples include a wireless link whose connectivity depends on the relative locations of the two nodes. </td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00110">110</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="1bf2479a21276737f73204a3c46508a3"></a><!-- doxytag: member="dtn::Link::state_t" ref="1bf2479a21276737f73204a3c46508a3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">dtn::Link::state_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The possible states for a link. 
<p>
These are defined as distinct bitfield values so that various functions can match on a set of states (e.g. see <a class="el" href="classdtn_1_1ContactManager.html#d6123f2dcfbba11d95100eb3cfb714bf" title="Helper routine to find a link based on criteria:.">ContactManager::find_link_to</a>). <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="1bf2479a21276737f73204a3c46508a3fcb80aea04644bdc565b13fa371b2e1e"></a><!-- doxytag: member="UNAVAILABLE" ref="1bf2479a21276737f73204a3c46508a3fcb80aea04644bdc565b13fa371b2e1e" args="" -->UNAVAILABLE</em>&nbsp;</td><td>
The link is closed and not able to be opened currently. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="1bf2479a21276737f73204a3c46508a36a3d11409342e7987b0ffe9c532d6e51"></a><!-- doxytag: member="AVAILABLE" ref="1bf2479a21276737f73204a3c46508a36a3d11409342e7987b0ffe9c532d6e51" args="" -->AVAILABLE</em>&nbsp;</td><td>
The link is closed but is able to be opened, either because it is an on demand link, or because an opportunistic peer node is in close proximity but no convergence layer session has yet been opened. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="1bf2479a21276737f73204a3c46508a335e8afe56056fd46352661764b8982df"></a><!-- doxytag: member="OPENING" ref="1bf2479a21276737f73204a3c46508a335e8afe56056fd46352661764b8982df" args="" -->OPENING</em>&nbsp;</td><td>
A convergence layer session is in the process of being established. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="1bf2479a21276737f73204a3c46508a3ec7a744ed0ed07ccb2b255a0d76192c8"></a><!-- doxytag: member="OPEN" ref="1bf2479a21276737f73204a3c46508a3ec7a744ed0ed07ccb2b255a0d76192c8" args="" -->OPEN</em>&nbsp;</td><td>
A convergence layer session has been established, and the link has capacity for a bundle to be sent on it. 
<p>
This may be because no bundle is currently being sent, or because the convergence layer can handle multiple simultaneous bundle transmissions. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="1bf2479a21276737f73204a3c46508a32e48e0c707487f143c54dd1cd5185323"></a><!-- doxytag: member="CLOSED" ref="1bf2479a21276737f73204a3c46508a32e48e0c707487f143c54dd1cd5185323" args="" -->CLOSED</em>&nbsp;</td><td>
Bogus state that's never actually used in the <a class="el" href="classdtn_1_1Link.html" title="Abstraction for a DTN link, i.e.">Link</a> state_ variable, but is used for signalling the daemon thread with a <a class="el" href="classdtn_1_1LinkStateChangeRequest.html" title="Request class for link state change requests that are sent to the daemon thread for...">LinkStateChangeRequest</a>. </td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00183">183</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="d505d6b5230f402ad22687c00f494afe"></a><!-- doxytag: member="dtn::Link::Link" ref="d505d6b5230f402ad22687c00f494afe" args="(const std::string &amp;name, link_type_t type, ConvergenceLayer *cl, const char *nexthop)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dtn::Link::Link           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdtn_1_1ConvergenceLayer.html">ConvergenceLayer</a> *&nbsp;</td>
          <td class="paramname"> <em>cl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>nexthop</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 / Destructor. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00107">107</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00745">clayer_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00713">default_params_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00572">retry_interval_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00739">stats_</a>.</p>

</div>
</div><p>
<a class="anchor" name="791828780ab0da55bac9c6ad693dff07"></a><!-- doxytag: member="dtn::Link::Link" ref="791828780ab0da55bac9c6ad693dff07" args="(const oasys::Builder &amp;b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dtn::Link::Link           </td>
          <td>(</td>
          <td class="paramtype">const oasys::Builder &amp;&nbsp;</td>
          <td class="paramname"> <em>b</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor for unserialization. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00141">141</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

</div>
</div><p>
<a class="anchor" name="9aed1d330a9d5e5bd09e0a18e06f2d95"></a><!-- doxytag: member="dtn::Link::~Link" ref="9aed1d330a9d5e5bd09e0a18e06f2d95" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dtn::Link::~Link           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor -- protected since links shouldn't be deleted. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00363">363</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00748">cl_info_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00290">isopen()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00395">name()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00751">router_info_</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="48b8de62d4415d0d1d2214515bdfc9ac"></a><!-- doxytag: member="dtn::Link::add_to_inflight" ref="48b8de62d4415d0d1d2214515bdfc9ac" args="(const BundleRef &amp;bundle, size_t total_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::add_to_inflight           </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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>total_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00529">529</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00734">bundles_inflight_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00735">bytes_inflight_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00722">inflight_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00704">name_</a>, and <a class="el" href="BundleList_8cc-source.html#l00130">dtn::BundleList::push_back()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4145ce871e553f7135550b2c2227b9c3"></a><!-- doxytag: member="dtn::Link::add_to_queue" ref="4145ce871e553f7135550b2c2227b9c3" args="(const BundleRef &amp;bundle, size_t total_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::add_to_queue           </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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>total_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00481">481</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00732">bundles_queued_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00733">bytes_queued_</a>, <a class="el" href="BundleList_8cc-source.html#l00329">dtn::BundleList::contains()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00704">name_</a>, <a class="el" href="BundleList_8cc-source.html#l00130">dtn::BundleList::push_back()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00719">queue_</a>.</p>

</div>
</div><p>
<a class="anchor" name="695f26506185d31f72f0d52de4aa8752"></a><!-- doxytag: member="dtn::Link::bundles_inflight" ref="695f26506185d31f72f0d52de4aa8752" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int dtn::Link::bundles_inflight           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessors for the link queue stats. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00652">652</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00734">bundles_inflight_</a>.</p>

</div>
</div><p>
<a class="anchor" name="93cde4c0fd625866bdbbad3fb9dd1258"></a><!-- doxytag: member="dtn::Link::bundles_queued" ref="93cde4c0fd625866bdbbad3fb9dd1258" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int dtn::Link::bundles_queued           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessors for the link queue stats. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00650">650</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00732">bundles_queued_</a>.</p>

</div>
</div><p>
<a class="anchor" name="133f151b7ef9e341e9c38650ac35f475"></a><!-- doxytag: member="dtn::Link::bytes_inflight" ref="133f151b7ef9e341e9c38650ac35f475" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int dtn::Link::bytes_inflight           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessors for the link queue stats. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00653">653</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00735">bytes_inflight_</a>.</p>

</div>
</div><p>
<a class="anchor" name="ac179ece00f7036163d41a884d1aaa6c"></a><!-- doxytag: member="dtn::Link::bytes_queued" ref="ac179ece00f7036163d41a884d1aaa6c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int dtn::Link::bytes_queued           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessors for the link queue stats. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00651">651</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00733">bytes_queued_</a>.</p>

</div>
</div><p>
<a class="anchor" name="3273fdac57a577fc3abcc979147f4d24"></a><!-- doxytag: member="dtn::Link::cl_info" ref="3273fdac57a577fc3abcc979147f4d24" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1CLInfo.html">CLInfo</a>* dtn::Link::cl_info           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to the convergence layer state. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00369">369</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00748">cl_info_</a>.</p>

</div>
</div><p>
<a class="anchor" name="f909b48bf21f49b5646e22cb51151869"></a><!-- doxytag: member="dtn::Link::clayer" ref="f909b48bf21f49b5646e22cb51151869" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1ConvergenceLayer.html">ConvergenceLayer</a>* dtn::Link::clayer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to this contact's convergence layer. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00390">390</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00745">clayer_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00441">close()</a>, <a class="el" href="Link_8cc-source.html#l00580">format()</a>, and <a class="el" href="Link_8cc-source.html#l00415">open()</a>.</p>

</div>
</div><p>
<a class="anchor" name="415c96b4d171484971a6946eb231195a"></a><!-- doxytag: member="dtn::Link::close" ref="415c96b4d171484971a6946eb231195a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::close           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Close the link. 
<p>
Protected to make sure only the friend components can call it and virtual to allow subclasses to override it. 
<p>Definition at line <a class="el" href="Link_8cc-source.html#l00441">441</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00390">clayer()</a>, <a class="el" href="ConvergenceLayer_8cc-source.html#l00221">dtn::ConvergenceLayer::close_contact()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00742">contact_</a>.</p>

</div>
</div><p>
<a class="anchor" name="16894dcaf0d2b3edf053e5614e015857"></a><!-- doxytag: member="dtn::Link::contact" ref="16894dcaf0d2b3edf053e5614e015857" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7">ContactRef</a>&amp; dtn::Link::contact           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the current contact information (if any). 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00343">343</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00742">contact_</a>.</p>

</div>
</div><p>
<a class="anchor" name="caf84c89199fccadfaecfc85a46d96f7"></a><!-- doxytag: member="dtn::Link::create_link" ref="caf84c89199fccadfaecfc85a46d96f7" args="(const std::string &amp;name, link_type_t type, ConvergenceLayer *cl, const char *nexthop, int argc, const char *argv[], const char **invalid_argp=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e">LinkRef</a> dtn::Link::create_link           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdtn_1_1ConvergenceLayer.html">ConvergenceLayer</a> *&nbsp;</td>
          <td class="paramname"> <em>cl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>nexthop</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>invalid_argp</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Static function to create appropriate link object from link type. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00058">58</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00119">ALWAYSON</a>, <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="dtnping_8c-source.html#l00045">count</a>, <a class="el" href="contacts_2Link_8h-source.html#l00128">ONDEMAND</a>, <a class="el" href="contacts_2Link_8h-source.html#l00141">OPPORTUNISTIC</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00133">SCHEDULED</a>.</p>

<p>Referenced by <a class="el" href="LinkCommand_8cc-source.html#l00056">dtn::LinkCommand::exec()</a>, <a class="el" href="BundleDaemon_8cc-source.html#l01546">dtn::BundleDaemon::handle_link_create()</a>, and <a class="el" href="ContactManager_8cc-source.html#l00440">dtn::ContactManager::new_opportunistic_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="db1a66a1c3d5b23ef362151326120bbb"></a><!-- doxytag: member="dtn::Link::del_from_inflight" ref="db1a66a1c3d5b23ef362151326120bbb" args="(const BundleRef &amp;bundle, size_t total_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::del_from_inflight           </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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>total_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00552">552</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00734">bundles_inflight_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00735">bytes_inflight_</a>, <a class="el" href="BundleList_8cc-source.html#l00275">dtn::BundleList::erase()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00722">inflight_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>.</p>

</div>
</div><p>
<a class="anchor" name="351b48d6422e54c1e1761de089ddcee1"></a><!-- doxytag: member="dtn::Link::del_from_queue" ref="351b48d6422e54c1e1761de089ddcee1" args="(const BundleRef &amp;bundle, size_t total_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::del_from_queue           </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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>total_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00502">502</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00732">bundles_queued_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00733">bytes_queued_</a>, <a class="el" href="BundleList_8cc-source.html#l00275">dtn::BundleList::erase()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00719">queue_</a>.</p>

</div>
</div><p>
<a class="anchor" name="73e9b7a34c33222155522b991b03b27f"></a><!-- doxytag: member="dtn::Link::delete_link" ref="73e9b7a34c33222155522b991b03b27f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::delete_link           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Handle and mark deleted link. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00169">169</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00745">clayer_</a>, <a class="el" href="ConvergenceLayer_8cc-source.html#l00184">dtn::ConvergenceLayer::delete_link()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00688">deleted_</a>, <a class="el" href="Link_8cc-source.html#l00182">isdeleted()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>.</p>

</div>
</div><p>
<a class="anchor" name="92625abc0b8424f763824f099eee055d"></a><!-- doxytag: member="dtn::Link::dump" ref="92625abc0b8424f763824f099eee055d" args="(oasys::StringBuffer *buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::dump           </td>
          <td>(</td>
          <td class="paramtype">oasys::StringBuffer *&nbsp;</td>
          <td class="paramname"> <em>buf</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Debugging printout. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00591">591</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="EndpointID_8h-source.html#l00264">dtn::EndpointID::c_str()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00745">clayer_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00688">deleted_</a>, <a class="el" href="ConvergenceLayer_8cc-source.html#l00193">dtn::ConvergenceLayer::dump_link()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00525">dtn::Link::Link::Params::idle_close_time_</a>, <a class="el" href="Link_8cc-source.html#l00182">isdeleted()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00149">link_type_to_str()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00516">dtn::Link::Link::Params::max_retry_interval_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00507">dtn::Link::Link::Params::min_retry_interval_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00498">dtn::Link::Link::Params::mtu_</a>, <a class="el" href="ConvergenceLayer_8h-source.html#l00205">dtn::ConvergenceLayer::name()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00395">name()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00405">nexthop()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00534">dtn::Link::Link::Params::potential_downtime_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00540">dtn::Link::Link::Params::prevhop_hdr_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00754">remote_eid_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00310">state()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00216">state_to_str()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00280">type()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ebb1e9d3bcc734ddf3263652d9f7cc14"></a><!-- doxytag: member="dtn::Link::dump_stats" ref="ebb1e9d3bcc734ddf3263652d9f7cc14" args="(oasys::StringBuffer *buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::dump_stats           </td>
          <td>(</td>
          <td class="paramtype">oasys::StringBuffer *&nbsp;</td>
          <td class="paramname"> <em>buf</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Dump a printable version of the stats. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00633">633</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00608">dtn::Link::Link::Stats::bundles_cancelled_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00734">bundles_inflight_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00732">bundles_queued_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00598">dtn::Link::Link::Stats::bundles_transmitted_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00735">bytes_inflight_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00733">bytes_queued_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00603">dtn::Link::Link::Stats::bytes_transmitted_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00742">contact_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00587">dtn::Link::Link::Stats::contact_attempts_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00593">dtn::Link::Link::Stats::contacts_</a>, <a class="el" href="RouterInfo_8cc-source.html#l00035">dtn::RouterInfo::dump_stats()</a>, <a class="el" href="Link_8cc-source.html#l00182">isdeleted()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00395">name()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00751">router_info_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00739">stats_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00614">dtn::Link::Link::Stats::uptime_</a>.</p>

</div>
</div><p>
<a class="anchor" name="03accdcb516ca16ba1c5c67fc64a2fa8"></a><!-- doxytag: member="dtn::Link::format" ref="03accdcb516ca16ba1c5c67fc64a2fa8" args="(char *buf, size_t sz) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dtn::Link::format           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>sz</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from formatter. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00580">580</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="EndpointID_8h-source.html#l00264">dtn::EndpointID::c_str()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00390">clayer()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00149">link_type_to_str()</a>, <a class="el" href="ConvergenceLayer_8h-source.html#l00205">dtn::ConvergenceLayer::name()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00395">name()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00405">nexthop()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00754">remote_eid_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00310">state()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00216">state_to_str()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00280">type()</a>.</p>

</div>
</div><p>
<a class="anchor" name="79285b8d8f03410f171faa0be56403be"></a><!-- doxytag: member="dtn::Link::inflight" ref="79285b8d8f03410f171faa0be56403be" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classdtn_1_1BundleList.html">BundleList</a>* dtn::Link::inflight           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor for the link's list of bundles that have been transmitted but for which the convergence layer is awaiting acknowledgement. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00462">462</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00722">inflight_</a>.</p>

</div>
</div><p>
<a class="anchor" name="a27cd2445aaa0c5e38021e06258670a7"></a><!-- doxytag: member="dtn::Link::is_create_pending" ref="a27cd2445aaa0c5e38021e06258670a7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::is_create_pending           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00332">332</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00694">create_pending_</a>.</p>

</div>
</div><p>
<a class="anchor" name="b4a083cc0c2445cb98e1c2a5be1e571a"></a><!-- doxytag: member="dtn::Link::is_reliable" ref="b4a083cc0c2445cb98e1c2a5be1e571a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::is_reliable           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to the reliability bit. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00420">420</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00707">reliable_</a>.</p>

</div>
</div><p>
<a class="anchor" name="afb64cff081f778f29dd47191883527f"></a><!-- doxytag: member="dtn::Link::is_usable" ref="afb64cff081f778f29dd47191883527f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::is_usable           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00338">338</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00698">usable_</a>.</p>

</div>
</div><p>
<a class="anchor" name="80585b707870a3bb2a89d7354f544242"></a><!-- doxytag: member="dtn::Link::isavailable" ref="80585b707870a3bb2a89d7354f544242" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::isavailable           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the availability state of the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00295">295</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00685">state_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00184">UNAVAILABLE</a>.</p>

</div>
</div><p>
<a class="anchor" name="da00d64fecd9930c831718421533de0d"></a><!-- doxytag: member="dtn::Link::isdeleted" ref="da00d64fecd9930c831718421533de0d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::isdeleted           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if the link has been deleted; otherwise returns false. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00182">182</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00688">deleted_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00169">delete_link()</a>, <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>, <a class="el" href="Link_8cc-source.html#l00415">open()</a>, and <a class="el" href="Link_8cc-source.html#l00190">reconfigure_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="952e9b3539ca5200c04daeb248dc4180"></a><!-- doxytag: member="dtn::Link::isopen" ref="952e9b3539ca5200c04daeb248dc4180" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::isopen           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return whether or not the link is open. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00290">290</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00197">OPEN</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00685">state_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00363">~Link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b0879f5e65a3233f251b87fad0fe540c"></a><!-- doxytag: member="dtn::Link::isopening" ref="b0879f5e65a3233f251b87fad0fe540c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::isopening           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return whether the link is in the process of opening. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00300">300</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00194">OPENING</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00685">state_</a>.</p>

</div>
</div><p>
<a class="anchor" name="405aaca77bb12b2611ee49a8184b7829"></a><!-- doxytag: member="dtn::Link::link_type_to_str" ref="405aaca77bb12b2611ee49a8184b7829" args="(link_type_t type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* dtn::Link::link_type_to_str           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classdtn_1_1Link.html" title="Abstraction for a DTN link, i.e.">Link</a> type string conversion. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00149">149</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00119">ALWAYSON</a>, <a class="el" href="contacts_2Link_8h-source.html#l00128">ONDEMAND</a>, <a class="el" href="contacts_2Link_8h-source.html#l00141">OPPORTUNISTIC</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00133">SCHEDULED</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="ContactManager_8cc-source.html#l00394">dtn::ContactManager::find_link_to()</a>, <a class="el" href="Link_8cc-source.html#l00580">format()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00285">type_str()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b420e7045b82d003381c009cd649042e"></a><!-- doxytag: member="dtn::Link::lock" ref="b420e7045b82d003381c009cd649042e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">oasys::Lock* dtn::Link::lock           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor for the <a class="el" href="classdtn_1_1Link.html" title="Abstraction for a DTN link, i.e.">Link</a> state lock. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00659">659</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>.</p>

</div>
</div><p>
<a class="anchor" name="e4cad7d0449f9a5c9cb3ea9693df09c4"></a><!-- doxytag: member="dtn::Link::name" ref="e4cad7d0449f9a5c9cb3ea9693df09c4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* dtn::Link::name           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to this links name. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00395">395</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00704">name_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>, <a class="el" href="Link_8cc-source.html#l00580">format()</a>, <a class="el" href="Link_8cc-source.html#l00190">reconfigure_link()</a>, and <a class="el" href="Link_8cc-source.html#l00363">~Link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4d22ab5b713286252422838e141b09b5"></a><!-- doxytag: member="dtn::Link::name_str" ref="4d22ab5b713286252422838e141b09b5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::string&amp; dtn::Link::name_str           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to this links name as a c++ string. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00400">400</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00704">name_</a>.</p>

</div>
</div><p>
<a class="anchor" name="5bffae252da80b32679686d826f4d4cf"></a><!-- doxytag: member="dtn::Link::nexthop" ref="5bffae252da80b32679686d826f4d4cf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* dtn::Link::nexthop           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to next hop string. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00405">405</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00701">nexthop_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, and <a class="el" href="Link_8cc-source.html#l00580">format()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b3ae66b2c886764818f892714f36f2e6"></a><!-- doxytag: member="dtn::Link::nexthop_str" ref="b3ae66b2c886764818f892714f36f2e6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::string&amp; dtn::Link::nexthop_str           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to next hop string. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00410">410</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00701">nexthop_</a>.</p>

</div>
</div><p>
<a class="anchor" name="9397d41bdf415c846610343e15b4b503"></a><!-- doxytag: member="dtn::Link::open" ref="9397d41bdf415c846610343e15b4b503" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::open           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Open the link. 
<p>
Protected to make sure only the friend components can call it and virtual to allow subclasses to override it. 
<p>Definition at line <a class="el" href="Link_8cc-source.html#l00415">415</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00187">AVAILABLE</a>, <a class="el" href="contacts_2Link_8h-source.html#l00390">clayer()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00742">contact_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00587">dtn::Link::Link::Stats::contact_attempts_</a>, <a class="el" href="Link_8cc-source.html#l00182">isdeleted()</a>, <a class="el" href="classdtn_1_1ConvergenceLayer.html#0bc4483b3956e082a17f79bd9b488780">dtn::ConvergenceLayer::open_contact()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00194">OPENING</a>, <a class="el" href="Link_8cc-source.html#l00374">set_state()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00310">state()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00685">state_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00216">state_to_str()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00739">stats_</a>.</p>

</div>
</div><p>
<a class="anchor" name="fc3ce544669cbcef1155694c8aaeb48d"></a><!-- doxytag: member="dtn::Link::params" ref="fc3ce544669cbcef1155694c8aaeb48d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structdtn_1_1Link_1_1Params.html">Params</a>&amp; dtn::Link::params           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00578">578</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>.</p>

</div>
</div><p>
<a class="anchor" name="11705ab70240b25c7ce4d61e2bc8f9d8"></a><!-- doxytag: member="dtn::Link::params" ref="11705ab70240b25c7ce4d61e2bc8f9d8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structdtn_1_1Link_1_1Params.html">Params</a>&amp; dtn::Link::params           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor for the parameter structure. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00577">577</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>.</p>

</div>
</div><p>
<a class="anchor" name="5e85022a6ac79a3879fb1bf2f8b759ed"></a><!-- doxytag: member="dtn::Link::parse_args" ref="5e85022a6ac79a3879fb1bf2f8b759ed" args="(int argc, const char *argv[], const char **invalidp=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dtn::Link::parse_args           </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> = <code>NULL</code></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>
Hook for subclass to parse arguments. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00308">308</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00119">ALWAYSON</a>, <a class="el" href="contacts_2Link_8h-source.html#l00546">dtn::Link::Link::Params::cost_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00525">dtn::Link::Link::Params::idle_close_time_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00516">dtn::Link::Link::Params::max_retry_interval_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00507">dtn::Link::Link::Params::min_retry_interval_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00498">dtn::Link::Link::Params::mtu_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00701">nexthop_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00534">dtn::Link::Link::Params::potential_downtime_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00540">dtn::Link::Link::Params::prevhop_hdr_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00560">dtn::Link::Link::Params::qlimit_bundles_high_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00562">dtn::Link::Link::Params::qlimit_bundles_low_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00561">dtn::Link::Link::Params::qlimit_bytes_high_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00563">dtn::Link::Link::Params::qlimit_bytes_low_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00707">reliable_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00754">remote_eid_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00682">type_</a>.</p>

</div>
</div><p>
<a class="anchor" name="51f9db6caba35b80b20cca5259d9b8b2"></a><!-- doxytag: member="dtn::Link::queue" ref="51f9db6caba35b80b20cca5259d9b8b2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classdtn_1_1BundleList.html">BundleList</a>* dtn::Link::queue           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor for the link's queue of bundles that are awaiting transmission. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00443">443</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00719">queue_</a>.</p>

</div>
</div><p>
<a class="anchor" name="f81761808229e409927bee19494b878c"></a><!-- doxytag: member="dtn::Link::queue_has_space" ref="f81761808229e409927bee19494b878c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::queue_has_space           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return whether or not the queue has space, based on the configured queue limits. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00473">473</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00732">bundles_queued_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00733">bytes_queued_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00562">dtn::Link::Link::Params::qlimit_bundles_low_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00563">dtn::Link::Link::Params::qlimit_bytes_low_</a>.</p>

</div>
</div><p>
<a class="anchor" name="969754e20c9dd4b9995f681703c4d963"></a><!-- doxytag: member="dtn::Link::queue_is_full" ref="969754e20c9dd4b9995f681703c4d963" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::Link::queue_is_full           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return whether or not the queue is full, based on the configured queue limits. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00465">465</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00732">bundles_queued_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00733">bytes_queued_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00560">dtn::Link::Link::Params::qlimit_bundles_high_</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00561">dtn::Link::Link::Params::qlimit_bytes_high_</a>.</p>

</div>
</div><p>
<a class="anchor" name="a5c789e744e51174d1e4a2725824ed69"></a><!-- doxytag: member="dtn::Link::reconfigure_link" ref="a5c789e744e51174d1e4a2725824ed69" args="(AttributeVector &amp;params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::reconfigure_link           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacedtn.html#e203c4f515b9e88e9e3462100c257314">AttributeVector</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>params</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00207">207</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00745">clayer_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00525">dtn::Link::Link::Params::idle_close_time_</a>, <a class="el" href="Link_8cc-source.html#l00182">isdeleted()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00516">dtn::Link::Link::Params::max_retry_interval_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00507">dtn::Link::Link::Params::min_retry_interval_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00395">name()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00534">dtn::Link::Link::Params::potential_downtime_</a>, <a class="el" href="ConvergenceLayer_8cc-source.html#l00201">dtn::ConvergenceLayer::reconfigure_link()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00415">set_nexthop()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00337">set_usable()</a>.</p>

</div>
</div><p>
<a class="anchor" name="825053cfdbfb055728d4da96e1e50fb2"></a><!-- doxytag: member="dtn::Link::reconfigure_link" ref="825053cfdbfb055728d4da96e1e50fb2" args="(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::Link::reconfigure_link           </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>
Reconfigure the link parameters. 
<p>

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

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00745">clayer_</a>, <a class="el" href="Link_8cc-source.html#l00182">isdeleted()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00716">lock_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00395">name()</a>, and <a class="el" href="ConvergenceLayer_8cc-source.html#l00201">dtn::ConvergenceLayer::reconfigure_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="febda74522edf794750548f1067fa334"></a><!-- doxytag: member="dtn::Link::remote_eid" ref="febda74522edf794750548f1067fa334" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classdtn_1_1EndpointID.html">EndpointID</a>&amp; dtn::Link::remote_eid           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to the remote endpoint id. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00437">437</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00754">remote_eid_</a>.</p>

<p>Referenced by <a class="el" href="ProphetBundleCore_8cc-source.html#l00459">dtn::ProphetBundleCore::get_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="14f73bc333655104800104f5be38603a"></a><!-- doxytag: member="dtn::Link::reset_stats" ref="14f73bc333655104800104f5be38603a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::reset_stats           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reset the stats. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00639">639</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00739">stats_</a>.</p>

</div>
</div><p>
<a class="anchor" name="44fb575be36966c14ee94e056375ea44"></a><!-- doxytag: member="dtn::Link::router_info" ref="44fb575be36966c14ee94e056375ea44" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1RouterInfo.html">RouterInfo</a>* dtn::Link::router_info           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to the convergence layer state. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00385">385</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00751">router_info_</a>.</p>

</div>
</div><p>
<a class="anchor" name="2c0b330264926a57c63208bf1d6f04df"></a><!-- doxytag: member="dtn::Link::serialize" ref="2c0b330264926a57c63208bf1d6f04df" args="(oasys::SerializeAction *action)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::serialize           </td>
          <td>(</td>
          <td class="paramtype">oasys::SerializeAction *&nbsp;</td>
          <td class="paramname"> <em>action</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual from SerializableObject. 
<p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00260">260</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, <a class="el" href="contacts_2Link_8h-source.html#l00745">clayer_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00742">contact_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00546">dtn::Link::Link::Params::cost_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00688">deleted_</a>, <a class="el" href="ConvergenceLayer_8cc-source.html#l00078">dtn::ConvergenceLayer::find_clayer()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00525">dtn::Link::Link::Params::idle_close_time_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00112">LINK_INVALID</a>, <a class="el" href="contacts_2Link_8h-source.html#l00149">link_type_to_str()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00516">dtn::Link::Link::Params::max_retry_interval_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00507">dtn::Link::Link::Params::min_retry_interval_</a>, <a class="el" href="ConvergenceLayer_8h-source.html#l00205">dtn::ConvergenceLayer::name()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00704">name_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00701">nexthop_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00197">OPEN</a>, <a class="el" href="contacts_2Link_8h-source.html#l00710">params_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00534">dtn::Link::Link::Params::potential_downtime_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00707">reliable_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00754">remote_eid_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00685">state_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00161">str_to_link_type()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00280">type()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00682">type_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00285">type_str()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00698">usable_</a>.</p>

</div>
</div><p>
<a class="anchor" name="900b409fa2a3402c6f72c46a8cc207b4"></a><!-- doxytag: member="dtn::Link::set_cl_info" ref="900b409fa2a3402c6f72c46a8cc207b4" args="(CLInfo *cl_info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_cl_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdtn_1_1CLInfo.html">CLInfo</a> *&nbsp;</td>
          <td class="paramname"> <em>cl_info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Store convergence layer state associated with the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00358">358</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00748">cl_info_</a>.</p>

</div>
</div><p>
<a class="anchor" name="a9e4bd1bf4876495bc82cfa3abf5a647"></a><!-- doxytag: member="dtn::Link::set_contact" ref="a9e4bd1bf4876495bc82cfa3abf5a647" args="(Contact *contact)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_contact           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdtn_1_1Contact.html">Contact</a> *&nbsp;</td>
          <td class="paramname"> <em>contact</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the contact information. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00348">348</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00742">contact_</a>.</p>

</div>
</div><p>
<a class="anchor" name="8c091c35f14f40a8b921516620c7e8a3"></a><!-- doxytag: member="dtn::Link::set_create_pending" ref="8c091c35f14f40a8b921516620c7e8a3" args="(bool create_pending=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_create_pending           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td>
          <td class="paramname"> <em>create_pending</em> = <code>true</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set/get the create_pending_ flag on the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00330">330</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00694">create_pending_</a>.</p>

</div>
</div><p>
<a class="anchor" name="56ec91ab095a6a47bc70e3e03a400f94"></a><!-- doxytag: member="dtn::Link::set_initial_state" ref="56ec91ab095a6a47bc70e3e03a400f94" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_initial_state           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Hook for subclass to post events to control the initial link state, after all initialization is complete. 
<p>

<p>Reimplemented in <a class="el" href="classdtn_1_1AlwaysOnLink.html#abe6787c4dd2fc80c45c5af5fe653461">dtn::AlwaysOnLink</a>, and <a class="el" href="classdtn_1_1OndemandLink.html#3c0a907ff809ab2e546749cc189983fe">dtn::OndemandLink</a>.</p>

<p>Definition at line <a class="el" href="Link_8cc-source.html#l00358">358</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

</div>
</div><p>
<a class="anchor" name="a832ad2297fd784fe6e70ee5dd7a8dab"></a><!-- doxytag: member="dtn::Link::set_nexthop" ref="a832ad2297fd784fe6e70ee5dd7a8dab" args="(const std::string &amp;nexthop)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_nexthop           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>nexthop</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Override for the next hop string. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00415">415</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00701">nexthop_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00207">reconfigure_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c8a1dc207dffef1a906e23c90a876318"></a><!-- doxytag: member="dtn::Link::set_reliable" ref="c8a1dc207dffef1a906e23c90a876318" args="(bool r)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_reliable           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td>
          <td class="paramname"> <em>r</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to set the reliability bit when the link is created. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00425">425</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00707">reliable_</a>.</p>

</div>
</div><p>
<a class="anchor" name="b9308b5442c5a0f2c549b254ccd9216f"></a><!-- doxytag: member="dtn::Link::set_remote_eid" ref="b9308b5442c5a0f2c549b254ccd9216f" args="(const EndpointID &amp;remote)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_remote_eid           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdtn_1_1EndpointID.html">EndpointID</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>remote</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor to set the remote endpoint id. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00430">430</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="EndpointID_8h-source.html#l00084">dtn::EndpointID::assign()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00754">remote_eid_</a>.</p>

</div>
</div><p>
<a class="anchor" name="9f614043ee87ed559daef685e9661ef5"></a><!-- doxytag: member="dtn::Link::set_router_info" ref="9f614043ee87ed559daef685e9661ef5" args="(RouterInfo *router_info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_router_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdtn_1_1RouterInfo.html">RouterInfo</a> *&nbsp;</td>
          <td class="paramname"> <em>router_info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Store router state associated with the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00374">374</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="SDNV_8cc-source.html#l00044">ASSERT</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00751">router_info_</a>.</p>

</div>
</div><p>
<a class="anchor" name="771d7e1e57ec743d6c38b11a09274771"></a><!-- doxytag: member="dtn::Link::set_state" ref="771d7e1e57ec743d6c38b11a09274771" args="(state_t state)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_state           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">state_t</a>&nbsp;</td>
          <td class="paramname"> <em>state</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the state of the link. 
<p>
Performs various assertions to ensure the state transitions are legal.<p>
This function should only ever be called by the main <a class="el" href="classdtn_1_1BundleDaemon.html" title="Class that handles the basic event / action mechanism.">BundleDaemon</a> thread and helper classes. All other threads must use a <a class="el" href="classdtn_1_1LinkStateChangeRequest.html" title="Request class for link state change requests that are sent to the daemon thread for...">LinkStateChangeRequest</a> event to cause changes in the link state.<p>
The function isn't protected since some callers (i.e. convergence layers) are not friend classes but some functions are run by the <a class="el" href="classdtn_1_1BundleDaemon.html" title="Class that handles the basic event / action mechanism.">BundleDaemon</a> thread. 
<p>Definition at line <a class="el" href="Link_8cc-source.html#l00374">374</a> of file <a class="el" href="Link_8cc-source.html">Link.cc</a>.</p>

<p>References <a class="el" href="Link_8cc.html#2137b31c0de0208360eb8bc51f2b0bfd">ASSERT_STATE</a>, <a class="el" href="contacts_2Link_8h-source.html#l00187">AVAILABLE</a>, <a class="el" href="contacts_2Link_8h-source.html#l00197">OPEN</a>, <a class="el" href="contacts_2Link_8h-source.html#l00194">OPENING</a>, <a class="el" href="contacts_2Link_8h-source.html#l00310">state()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00685">state_</a>, <a class="el" href="contacts_2Link_8h-source.html#l00216">state_to_str()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00184">UNAVAILABLE</a>.</p>

<p>Referenced by <a class="el" href="AlwaysOnLink_8cc-source.html#l00026">dtn::AlwaysOnLink::AlwaysOnLink()</a>, <a class="el" href="OndemandLink_8cc-source.html#l00027">dtn::OndemandLink::OndemandLink()</a>, and <a class="el" href="Link_8cc-source.html#l00415">open()</a>.</p>

</div>
</div><p>
<a class="anchor" name="24dff10247d4ac8271c2c6dd7bf38d10"></a><!-- doxytag: member="dtn::Link::set_usable" ref="24dff10247d4ac8271c2c6dd7bf38d10" args="(bool usable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::Link::set_usable           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td>
          <td class="paramname"> <em>usable</em> = <code>true</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set/get the usable_ flag on the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00337">337</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00698">usable_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00207">reconfigure_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="71a8fdd921fb0e93fd4c21f08da28a8b"></a><!-- doxytag: member="dtn::Link::state" ref="71a8fdd921fb0e93fd4c21f08da28a8b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">state_t</a> dtn::Link::state           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the actual state. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00310">310</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00685">state_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00580">format()</a>, <a class="el" href="Link_8cc-source.html#l00415">open()</a>, and <a class="el" href="Link_8cc-source.html#l00374">set_state()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9681a1ea52ef3c5db6dcf37b04e5c280"></a><!-- doxytag: member="dtn::Link::state_to_str" ref="9681a1ea52ef3c5db6dcf37b04e5c280" args="(state_t state)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* dtn::Link::state_to_str           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdtn_1_1Link.html#1bf2479a21276737f73204a3c46508a3">state_t</a>&nbsp;</td>
          <td class="paramname"> <em>state</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a link state into a string. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00216">216</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00187">AVAILABLE</a>, <a class="el" href="contacts_2Link_8h-source.html#l00205">CLOSED</a>, <a class="el" href="contacts_2Link_8h-source.html#l00197">OPEN</a>, <a class="el" href="contacts_2Link_8h-source.html#l00194">OPENING</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00184">UNAVAILABLE</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="LinkCommand_8cc-source.html#l00056">dtn::LinkCommand::exec()</a>, <a class="el" href="Link_8cc-source.html#l00580">format()</a>, <a class="el" href="BundleDaemon_8cc-source.html#l01429">dtn::BundleDaemon::handle_link_state_change_request()</a>, <a class="el" href="Link_8cc-source.html#l00415">open()</a>, <a class="el" href="ContactManager_8cc-source.html#l00194">dtn::ContactManager::reopen_link()</a>, <a class="el" href="TableBasedRouter_8cc-source.html#l00520">dtn::TableBasedRouter::reroute_bundles()</a>, and <a class="el" href="Link_8cc-source.html#l00374">set_state()</a>.</p>

</div>
</div><p>
<a class="anchor" name="91f1badc160e30d2fa16b2099aae6307"></a><!-- doxytag: member="dtn::Link::stats" ref="91f1badc160e30d2fa16b2099aae6307" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structdtn_1_1Link_1_1Stats.html">Stats</a>* dtn::Link::stats           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessor for the stats structure. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00634">634</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00739">stats_</a>.</p>

</div>
</div><p>
<a class="anchor" name="fbe02d3b95149fd1fcf9d08f0d4a3518"></a><!-- doxytag: member="dtn::Link::str_to_link_type" ref="fbe02d3b95149fd1fcf9d08f0d4a3518" args="(const char *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a> dtn::Link::str_to_link_type           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00161">161</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00119">ALWAYSON</a>, <a class="el" href="contacts_2Link_8h-source.html#l00112">LINK_INVALID</a>, <a class="el" href="contacts_2Link_8h-source.html#l00128">ONDEMAND</a>, <a class="el" href="contacts_2Link_8h-source.html#l00141">OPPORTUNISTIC</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00133">SCHEDULED</a>.</p>

<p>Referenced by <a class="el" href="LinkCommand_8cc-source.html#l00056">dtn::LinkCommand::exec()</a>, and <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="75dad1b5cff2bd5e84b06ffc57504c65"></a><!-- doxytag: member="dtn::Link::type" ref="75dad1b5cff2bd5e84b06ffc57504c65" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1Link.html#a93653796d33692c67c415afd1edf61e">link_type_t</a> dtn::Link::type           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the type of the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00280">280</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00682">type_</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00580">format()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00285">type_str()</a>.</p>

</div>
</div><p>
<a class="anchor" name="53848e2ba98690abd334c658c3edc10c"></a><!-- doxytag: member="dtn::Link::type_str" ref="53848e2ba98690abd334c658c3edc10c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* dtn::Link::type_str           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the string for of the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00285">285</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>References <a class="el" href="contacts_2Link_8h-source.html#l00149">link_type_to_str()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00280">type()</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>.</p>

</div>
</div><p>
<hr><h2>Friends And Related Function Documentation</h2>
<a class="anchor" name="e81b8ce094725bbc983ec42961d8032e"></a><!-- doxytag: member="dtn::Link::BundleActions" ref="e81b8ce094725bbc983ec42961d8032e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classdtn_1_1BundleActions.html">BundleActions</a><code> [friend]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00662">662</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="fc7f6330f6d1e3b33bfc1e2e1c751537"></a><!-- doxytag: member="dtn::Link::BundleDaemon" ref="fc7f6330f6d1e3b33bfc1e2e1c751537" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classdtn_1_1BundleDaemon.html">BundleDaemon</a><code> [friend]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00663">663</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="47e77d21706e11e895af252dd4105c97"></a><!-- doxytag: member="dtn::Link::ContactManager" ref="47e77d21706e11e895af252dd4105c97" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classdtn_1_1ContactManager.html">ContactManager</a><code> [friend]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00664">664</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="2d50e0e4973c0bbd035fe4391bcf49dd"></a><!-- doxytag: member="dtn::Link::ParamCommand" ref="2d50e0e4973c0bbd035fe4391bcf49dd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classdtn_1_1ParamCommand.html">ParamCommand</a><code> [friend]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00665">665</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="a6e3ac679e8ef5bc7ad158a8487a6497"></a><!-- doxytag: member="dtn::Link::bundles_inflight_" ref="a6e3ac679e8ef5bc7ad158a8487a6497" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int <a class="el" href="classdtn_1_1Link.html#a6e3ac679e8ef5bc7ad158a8487a6497">dtn::Link::bundles_inflight_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Data counters about the link queues, both in terms of bundles and bytes.<p>
*_queued: the link queue size *_inflight: transmitted but not yet acknowledged 
<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00734">734</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00529">add_to_inflight()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00652">bundles_inflight()</a>, <a class="el" href="Link_8cc-source.html#l00552">del_from_inflight()</a>, and <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>.</p>

</div>
</div><p>
<a class="anchor" name="a1c555412ff256489d257a6c838f7b2a"></a><!-- doxytag: member="dtn::Link::bundles_queued_" ref="a1c555412ff256489d257a6c838f7b2a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int <a class="el" href="classdtn_1_1Link.html#a1c555412ff256489d257a6c838f7b2a">dtn::Link::bundles_queued_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Data counters about the link queues, both in terms of bundles and bytes.<p>
*_queued: the link queue size *_inflight: transmitted but not yet acknowledged 
<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00732">732</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00481">add_to_queue()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00650">bundles_queued()</a>, <a class="el" href="Link_8cc-source.html#l00502">del_from_queue()</a>, <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>, <a class="el" href="Link_8cc-source.html#l00473">queue_has_space()</a>, and <a class="el" href="Link_8cc-source.html#l00465">queue_is_full()</a>.</p>

</div>
</div><p>
<a class="anchor" name="bfdb39a4c12069033a21c50f12a4a0ef"></a><!-- doxytag: member="dtn::Link::bytes_inflight_" ref="bfdb39a4c12069033a21c50f12a4a0ef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int <a class="el" href="classdtn_1_1Link.html#bfdb39a4c12069033a21c50f12a4a0ef">dtn::Link::bytes_inflight_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Data counters about the link queues, both in terms of bundles and bytes.<p>
*_queued: the link queue size *_inflight: transmitted but not yet acknowledged 
<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00735">735</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00529">add_to_inflight()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00653">bytes_inflight()</a>, <a class="el" href="Link_8cc-source.html#l00552">del_from_inflight()</a>, and <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>.</p>

</div>
</div><p>
<a class="anchor" name="611750c82a1ae0fe8d2c9d22097b5bbf"></a><!-- doxytag: member="dtn::Link::bytes_queued_" ref="611750c82a1ae0fe8d2c9d22097b5bbf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int <a class="el" href="classdtn_1_1Link.html#611750c82a1ae0fe8d2c9d22097b5bbf">dtn::Link::bytes_queued_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Data counters about the link queues, both in terms of bundles and bytes.<p>
*_queued: the link queue size *_inflight: transmitted but not yet acknowledged 
<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00733">733</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00481">add_to_queue()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00651">bytes_queued()</a>, <a class="el" href="Link_8cc-source.html#l00502">del_from_queue()</a>, <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>, <a class="el" href="Link_8cc-source.html#l00473">queue_has_space()</a>, and <a class="el" href="Link_8cc-source.html#l00465">queue_is_full()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b0c8d7b3a270bb4ec6d7f018ed70aa94"></a><!-- doxytag: member="dtn::Link::cl_info_" ref="b0c8d7b3a270bb4ec6d7f018ed70aa94" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1CLInfo.html">CLInfo</a>* <a class="el" href="classdtn_1_1Link.html#b0c8d7b3a270bb4ec6d7f018ed70aa94">dtn::Link::cl_info_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convergence layer specific info, if needed. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00748">748</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="contacts_2Link_8h-source.html#l00369">cl_info()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00358">set_cl_info()</a>, and <a class="el" href="Link_8cc-source.html#l00363">~Link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="07ec2bd779b594270491dd15e03127d2"></a><!-- doxytag: member="dtn::Link::clayer_" ref="07ec2bd779b594270491dd15e03127d2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1ConvergenceLayer.html">ConvergenceLayer</a>* <a class="el" href="classdtn_1_1Link.html#07ec2bd779b594270491dd15e03127d2">dtn::Link::clayer_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pointer to convergence layer. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00745">745</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="contacts_2Link_8h-source.html#l00390">clayer()</a>, <a class="el" href="Link_8cc-source.html#l00169">delete_link()</a>, <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00107">Link()</a>, <a class="el" href="Link_8cc-source.html#l00190">reconfigure_link()</a>, and <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="71c79dccb9b64a80879000ba232f7e9a"></a><!-- doxytag: member="dtn::Link::contact_" ref="71c79dccb9b64a80879000ba232f7e9a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7">ContactRef</a> <a class="el" href="classdtn_1_1Link.html#71c79dccb9b64a80879000ba232f7e9a">dtn::Link::contact_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Current contact. contact_ != null iff link is open. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00742">742</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00441">close()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00343">contact()</a>, <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>, <a class="el" href="Link_8cc-source.html#l00415">open()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00348">set_contact()</a>.</p>

</div>
</div><p>
<a class="anchor" name="3634f13823a2ebd0bb9dfc894f0e0e60"></a><!-- doxytag: member="dtn::Link::create_pending_" ref="3634f13823a2ebd0bb9dfc894f0e0e60" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> <a class="el" href="classdtn_1_1Link.html#3634f13823a2ebd0bb9dfc894f0e0e60">dtn::Link::create_pending_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Flag, that when set to true, indicates that the creation of the link is pending; the convergence layer will post a creation event when the creation is complete. 
<p>
While creation is pending, the link cannot be opened nor can bundles be queued for it. 
<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00694">694</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="contacts_2Link_8h-source.html#l00332">is_create_pending()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00330">set_create_pending()</a>.</p>

</div>
</div><p>
<a class="anchor" name="02dff1dc43dfca75fc4ecdef8ed08845"></a><!-- doxytag: member="dtn::Link::default_params_" ref="02dff1dc43dfca75fc4ecdef8ed08845" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structdtn_1_1Link_1_1Params.html">Link::Params</a> <a class="el" href="classdtn_1_1Link.html#02dff1dc43dfca75fc4ecdef8ed08845">dtn::Link::default_params_</a><code> [static, protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Default parameters of the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00713">713</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00107">Link()</a>, and <a class="el" href="ParamCommand_8cc-source.html#l00029">dtn::ParamCommand::ParamCommand()</a>.</p>

</div>
</div><p>
<a class="anchor" name="72c1c919069f37959273f9a0379679d5"></a><!-- doxytag: member="dtn::Link::deleted_" ref="72c1c919069f37959273f9a0379679d5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> <a class="el" href="classdtn_1_1Link.html#72c1c919069f37959273f9a0379679d5">dtn::Link::deleted_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Flag, that when set to true, indicates that the link has been deleted. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00688">688</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00169">delete_link()</a>, <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00182">isdeleted()</a>, and <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="fc4fe98181a47e648d7133898949d631"></a><!-- doxytag: member="dtn::Link::inflight_" ref="fc4fe98181a47e648d7133898949d631" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1BundleList.html">BundleList</a> <a class="el" href="classdtn_1_1Link.html#fc4fe98181a47e648d7133898949d631">dtn::Link::inflight_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Queue of bundles that have been sent but not yet acknowledged. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00722">722</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00529">add_to_inflight()</a>, <a class="el" href="Link_8cc-source.html#l00552">del_from_inflight()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00462">inflight()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9a028608b541c0e3d3c4af3aa3fb8712"></a><!-- doxytag: member="dtn::Link::lock_" ref="9a028608b541c0e3d3c4af3aa3fb8712" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">oasys::SpinLock <a class="el" href="classdtn_1_1Link.html#9a028608b541c0e3d3c4af3aa3fb8712">dtn::Link::lock_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Lock to protect internal data structures and state. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00716">716</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00529">add_to_inflight()</a>, <a class="el" href="Link_8cc-source.html#l00481">add_to_queue()</a>, <a class="el" href="Link_8cc-source.html#l00552">del_from_inflight()</a>, <a class="el" href="Link_8cc-source.html#l00502">del_from_queue()</a>, <a class="el" href="Link_8cc-source.html#l00169">delete_link()</a>, <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>, <a class="el" href="Link_8cc-source.html#l00182">isdeleted()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00659">lock()</a>, and <a class="el" href="Link_8cc-source.html#l00190">reconfigure_link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="18fba654bb084c0d68d5442579393439"></a><!-- doxytag: member="dtn::Link::name_" ref="18fba654bb084c0d68d5442579393439" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classdtn_1_1Link.html#18fba654bb084c0d68d5442579393439">dtn::Link::name_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Internal name of the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00704">704</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00529">add_to_inflight()</a>, <a class="el" href="Link_8cc-source.html#l00481">add_to_queue()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00395">name()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00400">name_str()</a>, and <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4a0317c260c70581ef1a81a23bc27fba"></a><!-- doxytag: member="dtn::Link::nexthop_" ref="4a0317c260c70581ef1a81a23bc27fba" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classdtn_1_1Link.html#4a0317c260c70581ef1a81a23bc27fba">dtn::Link::nexthop_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Next hop address. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00701">701</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="contacts_2Link_8h-source.html#l00405">nexthop()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00410">nexthop_str()</a>, <a class="el" href="Link_8cc-source.html#l00308">parse_args()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00415">set_nexthop()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f2c2e7e9451ceb7a0363b3a52b38b4d8"></a><!-- doxytag: member="dtn::Link::params_" ref="f2c2e7e9451ceb7a0363b3a52b38b4d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structdtn_1_1Link_1_1Params.html">Params</a> <a class="el" href="classdtn_1_1Link.html#f2c2e7e9451ceb7a0363b3a52b38b4d8">dtn::Link::params_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parameters of the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00710">710</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00107">Link()</a>, <a class="el" href="OndemandLink_8cc-source.html#l00027">dtn::OndemandLink::OndemandLink()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00577">params()</a>, <a class="el" href="Link_8cc-source.html#l00308">parse_args()</a>, <a class="el" href="Link_8cc-source.html#l00473">queue_has_space()</a>, <a class="el" href="Link_8cc-source.html#l00465">queue_is_full()</a>, <a class="el" href="Link_8cc-source.html#l00207">reconfigure_link()</a>, and <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f7bef65eadb08fc8370eaf235b9af22a"></a><!-- doxytag: member="dtn::Link::queue_" ref="f7bef65eadb08fc8370eaf235b9af22a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1BundleList.html">BundleList</a> <a class="el" href="classdtn_1_1Link.html#f7bef65eadb08fc8370eaf235b9af22a">dtn::Link::queue_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Queue of bundles currently active or pending transmission on the <a class="el" href="classdtn_1_1Link.html" title="Abstraction for a DTN link, i.e.">Link</a>. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00719">719</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00481">add_to_queue()</a>, <a class="el" href="Link_8cc-source.html#l00502">del_from_queue()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00443">queue()</a>.</p>

</div>
</div><p>
<a class="anchor" name="713c78c93785b2e3a6462892d52b550d"></a><!-- doxytag: member="dtn::Link::reliable_" ref="713c78c93785b2e3a6462892d52b550d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> <a class="el" href="classdtn_1_1Link.html#713c78c93785b2e3a6462892d52b550d">dtn::Link::reliable_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Whether or not this link is reliable. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00707">707</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="contacts_2Link_8h-source.html#l00420">is_reliable()</a>, <a class="el" href="Link_8cc-source.html#l00308">parse_args()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00425">set_reliable()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1db82aaa68166ce7029df32710ee58f1"></a><!-- doxytag: member="dtn::Link::remote_eid_" ref="1db82aaa68166ce7029df32710ee58f1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1EndpointID.html">EndpointID</a> <a class="el" href="classdtn_1_1Link.html#1db82aaa68166ce7029df32710ee58f1">dtn::Link::remote_eid_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remote's endpoint ID (eg, <a class="el" href="namespacedtn.html" title="Namespace for the dtn daemon source code.">dtn</a>://hostname.<a class="el" href="namespacedtn.html" title="Namespace for the dtn daemon source code.">dtn</a>). 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00754">754</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00591">dump()</a>, <a class="el" href="Link_8cc-source.html#l00580">format()</a>, <a class="el" href="Link_8cc-source.html#l00308">parse_args()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00437">remote_eid()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00430">set_remote_eid()</a>.</p>

</div>
</div><p>
<a class="anchor" name="6e687c4d55d6b65efef17dcc27ccbc76"></a><!-- doxytag: member="dtn::Link::retry_interval_" ref="6e687c4d55d6b65efef17dcc27ccbc76" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int <a class="el" href="classdtn_1_1Link.html#6e687c4d55d6b65efef17dcc27ccbc76">dtn::Link::retry_interval_</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Seconds to wait between attempts to re-open an unavailable link. 
<p>
Initially set to min_retry_interval_, then doubles up to max_retry_interval_. 
<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00572">572</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00107">Link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="2dd58ea037907dc2a5e5fe30d61414b2"></a><!-- doxytag: member="dtn::Link::router_info_" ref="2dd58ea037907dc2a5e5fe30d61414b2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdtn_1_1RouterInfo.html">RouterInfo</a>* <a class="el" href="classdtn_1_1Link.html#2dd58ea037907dc2a5e5fe30d61414b2">dtn::Link::router_info_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Router specific info, if needed. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00751">751</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00385">router_info()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00374">set_router_info()</a>, and <a class="el" href="Link_8cc-source.html#l00363">~Link()</a>.</p>

</div>
</div><p>
<a class="anchor" name="19d118d1c518d09ac42bd97b9c917169"></a><!-- doxytag: member="dtn::Link::state_" ref="19d118d1c518d09ac42bd97b9c917169" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int32_t <a class="el" href="classdtn_1_1Link.html#19d118d1c518d09ac42bd97b9c917169">dtn::Link::state_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="structState.html">State</a> of the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00685">685</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="contacts_2Link_8h-source.html#l00295">isavailable()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00290">isopen()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00300">isopening()</a>, <a class="el" href="Link_8cc-source.html#l00415">open()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, <a class="el" href="Link_8cc-source.html#l00374">set_state()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00310">state()</a>.</p>

</div>
</div><p>
<a class="anchor" name="8f66801a2de483d745b7a0b619e12f0f"></a><!-- doxytag: member="dtn::Link::stats_" ref="8f66801a2de483d745b7a0b619e12f0f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structdtn_1_1Link_1_1Stats.html">Stats</a> <a class="el" href="classdtn_1_1Link.html#8f66801a2de483d745b7a0b619e12f0f">dtn::Link::stats_</a><code> [mutable, protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="structdtn_1_1Link_1_1Stats.html">Stats</a> for the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00739">739</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00633">dump_stats()</a>, <a class="el" href="Link_8cc-source.html#l00107">Link()</a>, <a class="el" href="Link_8cc-source.html#l00415">open()</a>, <a class="el" href="contacts_2Link_8h-source.html#l00639">reset_stats()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00634">stats()</a>.</p>

</div>
</div><p>
<a class="anchor" name="356a205fda65a385edee00dafd6aa546"></a><!-- doxytag: member="dtn::Link::type_" ref="356a205fda65a385edee00dafd6aa546" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classdtn_1_1Link.html#356a205fda65a385edee00dafd6aa546">dtn::Link::type_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type of the link. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00682">682</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="Link_8cc-source.html#l00308">parse_args()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00280">type()</a>.</p>

</div>
</div><p>
<a class="anchor" name="00910520baf6369869bb3ae6988172fd"></a><!-- doxytag: member="dtn::Link::usable_" ref="00910520baf6369869bb3ae6988172fd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> <a class="el" href="classdtn_1_1Link.html#00910520baf6369869bb3ae6988172fd">dtn::Link::usable_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Flag, that when set to true, indicates that the link is allowed to be used to transmit bundles. 
<p>

<p>Definition at line <a class="el" href="contacts_2Link_8h-source.html#l00698">698</a> of file <a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a>.</p>

<p>Referenced by <a class="el" href="contacts_2Link_8h-source.html#l00338">is_usable()</a>, <a class="el" href="Link_8cc-source.html#l00260">serialize()</a>, and <a class="el" href="contacts_2Link_8h-source.html#l00337">set_usable()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="contacts_2Link_8h-source.html">contacts/Link.h</a><li><a class="el" href="Link_8cc-source.html">Link.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>