Sophie

Sophie

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

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::IPDiscovery 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_1IPDiscovery.html">IPDiscovery</a>
  </div>
</div>
<div class="contents">
<h1>dtn::IPDiscovery Class Reference</h1><!-- doxytag: class="dtn::IPDiscovery" --><!-- doxytag: inherits="dtn::Discovery" --><a class="el" href="classdtn_1_1IPDiscovery.html" title="IPDiscovery is the main thread in IP-based neighbor discovery, configured via config...">IPDiscovery</a> is the main thread in IP-based neighbor discovery, configured via config file or command console to listen to a specified UDP port for unicast, broadcast, or multicast beacons from advertising neighbors.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for dtn::IPDiscovery:</div>
<div class="dynsection">

<p><center><img src="classdtn_1_1IPDiscovery.png" usemap="#dtn::IPDiscovery_map" border="0" alt=""></center>
<map name="dtn::IPDiscovery_map">
<area href="classdtn_1_1Discovery.html" alt="dtn::Discovery" shape="rect" coords="0,0,104,24">
</map>
</div>

<p>
<a href="classdtn_1_1IPDiscovery-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_1IPDiscovery_1_1DiscoveryHeader.html">DiscoveryHeader</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">On-the-wire (radio, whatever) representation of IP address family's advertisement beacon.  <a href="structdtn_1_1IPDiscovery_1_1DiscoveryHeader.html#_details">More...</a><br></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_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4d">cl_type_t</a> { <a class="el" href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4da1050e8e6503c2c97a1bc73d6a81eef5">UNDEFINED</a> =  0, 
<a class="el" href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4d6d63305412b48547e0769f25bb2829c9">TCPCL</a> =  1, 
<a class="el" href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4dab0183b990af8abb3b948d2c35077ead">UDPCL</a> =  2
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enumerate which type of CL is advertised.  <a href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4d">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">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#94633c542ce6d031e5583899e0496f00">shutdown</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close main socket, causing thread to exit.  <a href="#94633c542ce6d031e5583899e0496f00"></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_1IPDiscovery.html#79f93179608551c7c8b2bd8310e979cd">~IPDiscovery</a> ()</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_1IPDiscovery.html#b8d11e70af91ec4342bb5be2016de212">type_to_str</a> (<a class="el" href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4d">cl_type_t</a> t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4d">cl_type_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#f3bcef2eded36d54a1411992bebc058c">str_to_type</a> (const char *cltype)</td></tr>

<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <br class="typebreak">
<a class="el" href="structdtn_1_1IPDiscovery_1_1DiscoveryHeader.html">dtn::IPDiscovery::DiscoveryHeader</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#8f3f429b61a5a093b489aebb5b396cdd">packed</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">On-the-wire (radio, whatever) representation of IP address family's advertisement beacon.  <a href="#8f3f429b61a5a093b489aebb5b396cdd"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const u_int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#545fd19e7aaca3eab08b4ff279fc63b4">DEFAULT_DST_ADDR</a> = 0xffffffff</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If no other options are set for destination, default to sending to the IPv4 broadcast address.  <a href="#545fd19e7aaca3eab08b4ff279fc63b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const u_int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#7f1787a9f154ff88952209924f02e273">DEFAULT_SRC_ADDR</a> = INADDR_ANY</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If no other options are set for source, use this as default local address.  <a href="#7f1787a9f154ff88952209924f02e273"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const u_int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#dacf3f66ee13744990d8cb0c54c37585">DEFAULT_MCAST_TTL</a> = 1</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If no other options are set for multicast TTL, set to 1.  <a href="#dacf3f66ee13744990d8cb0c54c37585"></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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#ac1eecdacc9c8cc817b1fe781d4b8310">IPDiscovery</a> (const std::string &amp;name)</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_1IPDiscovery.html#3705ccea8c5e02f26aa9082a0bcca0c8">configure</a> (int argc, const char *argv[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set internal state using parameter list; return true on success, else false.  <a href="#3705ccea8c5e02f26aa9082a0bcca0c8"></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_1IPDiscovery.html#4ba6e7fe4ee9f19945b4c1aaf7d7ab8a">run</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">virtual from oasys::Thread  <a href="#4ba6e7fe4ee9f19945b4c1aaf7d7ab8a"></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_1IPDiscovery.html#ac535bfa53ab2daf771e65c48db9781c">parse_advertisement</a> (u_char *<a class="el" href="num2sdnv_8c.html#a81cdcc7ff6987bc85c073253e32715f">buf</a>, size_t len, in_addr_t remote_addr, u_int8_t &amp;cl_type, std::string &amp;nexthop, <a class="el" href="classdtn_1_1EndpointID.html">EndpointID</a> &amp;remote_eid)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience method to pull the relevant items out of the inbound packet.  <a href="#ac535bfa53ab2daf771e65c48db9781c"></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_1IPDiscovery.html#f111297820476cf22fc94d9bcd1a0b4b">handle_announce</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1Discovery.html" title="Abstraction of neighbor discovery agent.">Discovery</a>.  <a href="#f111297820476cf22fc94d9bcd1a0b4b"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">volatile <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#004f9f774345cd25eb73ea4558b86bd7">shutdown_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">signal to close down thread  <a href="#004f9f774345cd25eb73ea4558b86bd7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#45216229a536034944802a1bf0e3f866">local_addr_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">address for bind() to receive beacons  <a href="#45216229a536034944802a1bf0e3f866"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#54a253ff502020915fa2521ca9a83e3e">port_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">local and remote  <a href="#54a253ff502020915fa2521ca9a83e3e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">in_addr_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#92c069ec1b1e15bad6cf52d926442213">remote_addr_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">whether unicast, multicast, or broadcast  <a href="#92c069ec1b1e15bad6cf52d926442213"></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_1IPDiscovery.html#83213d3cb154802ff76e9b07763b95d3">mcast_ttl_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TTL hop count for multicast option.  <a href="#83213d3cb154802ff76e9b07763b95d3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">oasys::UDPClient&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1IPDiscovery.html#d2d28582fc8830ca107cc07aa9b79a5e">socket_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the socket for beacons in- and out-bound  <a href="#d2d28582fc8830ca107cc07aa9b79a5e"></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_1IPDiscovery.html#18f8ef2702f024cdc5a87cbc2e676b74">persist_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">whether to exit thread on send/recv failures  <a href="#18f8ef2702f024cdc5a87cbc2e676b74"></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_1IPDiscovery.html#135e7ff6ba537b610e4d0db2968d9a2a">Discovery</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="classdtn_1_1IPDiscovery.html" title="IPDiscovery is the main thread in IP-based neighbor discovery, configured via config...">IPDiscovery</a> is the main thread in IP-based neighbor discovery, configured via config file or command console to listen to a specified UDP port for unicast, broadcast, or multicast beacons from advertising neighbors. 
<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00035">35</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="dba811f3518ddee9d6e16317af505e4d"></a><!-- doxytag: member="dtn::IPDiscovery::cl_type_t" ref="dba811f3518ddee9d6e16317af505e4d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4d">dtn::IPDiscovery::cl_type_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enumerate which type of CL is advertised. 
<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="dba811f3518ddee9d6e16317af505e4da1050e8e6503c2c97a1bc73d6a81eef5"></a><!-- doxytag: member="UNDEFINED" ref="dba811f3518ddee9d6e16317af505e4da1050e8e6503c2c97a1bc73d6a81eef5" args="" -->UNDEFINED</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="dba811f3518ddee9d6e16317af505e4d6d63305412b48547e0769f25bb2829c9"></a><!-- doxytag: member="TCPCL" ref="dba811f3518ddee9d6e16317af505e4d6d63305412b48547e0769f25bb2829c9" args="" -->TCPCL</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="dba811f3518ddee9d6e16317af505e4dab0183b990af8abb3b948d2c35077ead"></a><!-- doxytag: member="UDPCL" ref="dba811f3518ddee9d6e16317af505e4dab0183b990af8abb3b948d2c35077ead" args="" -->UDPCL</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00076">76</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="79f93179608551c7c8b2bd8310e979cd"></a><!-- doxytag: member="dtn::IPDiscovery::~IPDiscovery" ref="79f93179608551c7c8b2bd8310e979cd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual dtn::IPDiscovery::~IPDiscovery           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00112">112</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

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

<p>

<p>Definition at line <a class="el" href="IPDiscovery_8cc-source.html#l00037">37</a> of file <a class="el" href="IPDiscovery_8cc-source.html">IPDiscovery.cc</a>.</p>

<p>References <a class="el" href="IPDiscovery_8h-source.html#l00044">DEFAULT_DST_ADDR</a>, <a class="el" href="IPDiscovery_8h-source.html#l00055">DEFAULT_MCAST_TTL</a>, <a class="el" href="IPDiscovery_8h-source.html#l00050">DEFAULT_SRC_ADDR</a>, <a class="el" href="IPDiscovery_8h-source.html#l00149">local_addr_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00152">mcast_ttl_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00154">persist_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00150">port_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00151">remote_addr_</a>, and <a class="el" href="IPDiscovery_8h-source.html#l00148">shutdown_</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="3705ccea8c5e02f26aa9082a0bcca0c8"></a><!-- doxytag: member="dtn::IPDiscovery::configure" ref="3705ccea8c5e02f26aa9082a0bcca0c8" 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::IPDiscovery::configure           </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> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set internal state using parameter list; return true on success, else false. 
<p>

<p>Implements <a class="el" href="classdtn_1_1Discovery.html#ddea830e6b09b41a73d98deaba7733a1">dtn::Discovery</a>.</p>

<p>Definition at line <a class="el" href="IPDiscovery_8cc-source.html#l00051">51</a> of file <a class="el" href="IPDiscovery_8cc-source.html">IPDiscovery.cc</a>.</p>

<p>References <a class="el" href="num2sdnv_8c-source.html#l00035">buf</a>, <a class="el" href="Discovery_8h-source.html#l00132">dtn::Discovery::local_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00149">local_addr_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00152">mcast_ttl_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00154">persist_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00150">port_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00151">remote_addr_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00153">socket_</a>, and <a class="el" href="Discovery_8h-source.html#l00131">dtn::Discovery::to_addr_</a>.</p>

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

<p>
Virtual from <a class="el" href="classdtn_1_1Discovery.html" title="Abstraction of neighbor discovery agent.">Discovery</a>. 
<p>

<p>Reimplemented from <a class="el" href="classdtn_1_1Discovery.html#08dc1eadc966b0cd59ee5fcc11b8d0d8">dtn::Discovery</a>.</p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00143">143</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>References <a class="el" href="IPDiscovery_8h-source.html#l00153">socket_</a>.</p>

</div>
</div><p>
<a class="anchor" name="ac535bfa53ab2daf771e65c48db9781c"></a><!-- doxytag: member="dtn::IPDiscovery::parse_advertisement" ref="ac535bfa53ab2daf771e65c48db9781c" args="(u_char *buf, size_t len, in_addr_t remote_addr, u_int8_t &amp;cl_type, std::string &amp;nexthop, EndpointID &amp;remote_eid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> dtn::IPDiscovery::parse_advertisement           </td>
          <td>(</td>
          <td class="paramtype">u_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>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">in_addr_t&nbsp;</td>
          <td class="paramname"> <em>remote_addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int8_t &amp;&nbsp;</td>
          <td class="paramname"> <em>cl_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>nexthop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdtn_1_1EndpointID.html">EndpointID</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>remote_eid</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convenience method to pull the relevant items out of the inbound packet. 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8cc-source.html#l00278">278</a> of file <a class="el" href="IPDiscovery_8cc-source.html">IPDiscovery.cc</a>.</p>

<p>References <a class="el" href="EndpointID_8h-source.html#l00084">dtn::EndpointID::assign()</a>, <a class="el" href="num2sdnv_8c-source.html#l00035">buf</a>, <a class="el" href="IPDiscovery_8h-source.html#l00063">dtn::IPDiscovery::IPDiscovery::DiscoveryHeader::cl_type</a>, <a class="el" href="IPDiscovery_8h-source.html#l00066">dtn::IPDiscovery::IPDiscovery::DiscoveryHeader::inet_addr</a>, <a class="el" href="IPDiscovery_8h-source.html#l00067">dtn::IPDiscovery::IPDiscovery::DiscoveryHeader::inet_port</a>, <a class="el" href="IPDiscovery_8h-source.html#l00065">dtn::IPDiscovery::IPDiscovery::DiscoveryHeader::length</a>, <a class="el" href="IPDiscovery_8h-source.html#l00068">dtn::IPDiscovery::IPDiscovery::DiscoveryHeader::name_len</a>, and <a class="el" href="IPDiscovery_8h-source.html#l00069">dtn::IPDiscovery::IPDiscovery::DiscoveryHeader::sender_name</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00122">run()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4ba6e7fe4ee9f19945b4c1aaf7d7ab8a"></a><!-- doxytag: member="dtn::IPDiscovery::run" ref="4ba6e7fe4ee9f19945b4c1aaf7d7ab8a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::IPDiscovery::run           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
virtual from oasys::Thread 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8cc-source.html#l00122">122</a> of file <a class="el" href="IPDiscovery_8cc-source.html">IPDiscovery.cc</a>.</p>

<p>References <a class="el" href="Discovery_8cc-source.html#l00108">dtn::Discovery::announce()</a>, <a class="el" href="num2sdnv_8c-source.html#l00035">buf</a>, <a class="el" href="IPAnnounce_8h-source.html#l00042">dtn::IPAnnounce::cl_addr()</a>, <a class="el" href="EndpointID_8h-source.html#l00126">dtn::EndpointID::equals()</a>, <a class="el" href="IPDiscovery_8cc.html#d65a8842cc674e3ddf69355898c0ecbf">errno</a>, <a class="el" href="IPAnnounce_8cc-source.html#l00082">dtn::IPAnnounce::format_advertisement()</a>, <a class="el" href="Discovery_8cc-source.html#l00181">dtn::Discovery::handle_neighbor_discovered()</a>, <a class="el" href="Announce_8h-source.html#l00094">dtn::Announce::interval()</a>, <a class="el" href="Announce_8h-source.html#l00073">dtn::Announce::interval_remaining()</a>, <a class="el" href="num2sdnv_8c-source.html#l00034">len</a>, <a class="el" href="Discovery_8h-source.html#l00133">dtn::Discovery::list_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00149">local_addr_</a>, <a class="el" href="IPDiscovery_8cc-source.html#l00278">parse_advertisement()</a>, <a class="el" href="IPDiscovery_8h-source.html#l00154">persist_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00150">port_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00151">remote_addr_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00148">shutdown_</a>, <a class="el" href="IPDiscovery_8h-source.html#l00153">socket_</a>, and <a class="el" href="IPDiscovery_8h-source.html#l00084">type_to_str()</a>.</p>

</div>
</div><p>
<a class="anchor" name="94633c542ce6d031e5583899e0496f00"></a><!-- doxytag: member="dtn::IPDiscovery::shutdown" ref="94633c542ce6d031e5583899e0496f00" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtn::IPDiscovery::shutdown           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Close main socket, causing thread to exit. 
<p>

<p>Implements <a class="el" href="classdtn_1_1Discovery.html#f9d87f0da923ab6ede111146b3348771">dtn::Discovery</a>.</p>

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

<p>References <a class="el" href="IPDiscovery_8h-source.html#l00148">shutdown_</a>, and <a class="el" href="IPDiscovery_8h-source.html#l00153">socket_</a>.</p>

</div>
</div><p>
<a class="anchor" name="f3bcef2eded36d54a1411992bebc058c"></a><!-- doxytag: member="dtn::IPDiscovery::str_to_type" ref="f3bcef2eded36d54a1411992bebc058c" args="(const char *cltype)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4d">cl_type_t</a> dtn::IPDiscovery::str_to_type           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>cltype</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="IPDiscovery_8h-source.html#l00095">95</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>References <a class="el" href="IPDiscovery_8h-source.html#l00079">TCPCL</a>, and <a class="el" href="IPDiscovery_8h-source.html#l00080">UDPCL</a>.</p>

<p>Referenced by <a class="el" href="IPAnnounce_8cc-source.html#l00082">dtn::IPAnnounce::format_advertisement()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b8d11e70af91ec4342bb5be2016de212"></a><!-- doxytag: member="dtn::IPDiscovery::type_to_str" ref="b8d11e70af91ec4342bb5be2016de212" args="(cl_type_t t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* dtn::IPDiscovery::type_to_str           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdtn_1_1IPDiscovery.html#dba811f3518ddee9d6e16317af505e4d">cl_type_t</a>&nbsp;</td>
          <td class="paramname"> <em>t</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="IPDiscovery_8h-source.html#l00084">84</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>References <a class="el" href="IPDiscovery_8h-source.html#l00079">TCPCL</a>, <a class="el" href="IPDiscovery_8h-source.html#l00080">UDPCL</a>, and <a class="el" href="IPDiscovery_8h-source.html#l00078">UNDEFINED</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00122">run()</a>.</p>

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

<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00115">115</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="545fd19e7aaca3eab08b4ff279fc63b4"></a><!-- doxytag: member="dtn::IPDiscovery::DEFAULT_DST_ADDR" ref="545fd19e7aaca3eab08b4ff279fc63b4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const u_int32_t <a class="el" href="classdtn_1_1IPDiscovery.html#545fd19e7aaca3eab08b4ff279fc63b4">dtn::IPDiscovery::DEFAULT_DST_ADDR</a> = 0xffffffff<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If no other options are set for destination, default to sending to the IPv4 broadcast address. 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00044">44</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>.</p>

</div>
</div><p>
<a class="anchor" name="dacf3f66ee13744990d8cb0c54c37585"></a><!-- doxytag: member="dtn::IPDiscovery::DEFAULT_MCAST_TTL" ref="dacf3f66ee13744990d8cb0c54c37585" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const u_int <a class="el" href="classdtn_1_1IPDiscovery.html#dacf3f66ee13744990d8cb0c54c37585">dtn::IPDiscovery::DEFAULT_MCAST_TTL</a> = 1<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If no other options are set for multicast TTL, set to 1. 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00055">55</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7f1787a9f154ff88952209924f02e273"></a><!-- doxytag: member="dtn::IPDiscovery::DEFAULT_SRC_ADDR" ref="7f1787a9f154ff88952209924f02e273" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const u_int32_t <a class="el" href="classdtn_1_1IPDiscovery.html#7f1787a9f154ff88952209924f02e273">dtn::IPDiscovery::DEFAULT_SRC_ADDR</a> = INADDR_ANY<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If no other options are set for source, use this as default local address. 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00050">50</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>.</p>

</div>
</div><p>
<a class="anchor" name="45216229a536034944802a1bf0e3f866"></a><!-- doxytag: member="dtn::IPDiscovery::local_addr_" ref="45216229a536034944802a1bf0e3f866" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">in_addr_t <a class="el" href="classdtn_1_1IPDiscovery.html#45216229a536034944802a1bf0e3f866">dtn::IPDiscovery::local_addr_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
address for bind() to receive beacons 
<p>

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

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00051">configure()</a>, <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>, and <a class="el" href="IPDiscovery_8cc-source.html#l00122">run()</a>.</p>

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

<p>
TTL hop count for multicast option. 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00152">152</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00051">configure()</a>, and <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>.</p>

</div>
</div><p>
<a class="anchor" name="8f3f429b61a5a093b489aebb5b396cdd"></a><!-- doxytag: member="dtn::IPDiscovery::packed" ref="8f3f429b61a5a093b489aebb5b396cdd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structdtn_1_1IPDiscovery_1_1DiscoveryHeader.html">dtn::IPDiscovery::DiscoveryHeader</a> <a class="el" href="classdtn_1_1IPDiscovery.html#8f3f429b61a5a093b489aebb5b396cdd">dtn::IPDiscovery::packed</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
On-the-wire (radio, whatever) representation of IP address family's advertisement beacon. 
<p>

</div>
</div><p>
<a class="anchor" name="18f8ef2702f024cdc5a87cbc2e676b74"></a><!-- doxytag: member="dtn::IPDiscovery::persist_" ref="18f8ef2702f024cdc5a87cbc2e676b74" 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_1IPDiscovery.html#18f8ef2702f024cdc5a87cbc2e676b74">dtn::IPDiscovery::persist_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
whether to exit thread on send/recv failures 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00154">154</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00051">configure()</a>, <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>, and <a class="el" href="IPDiscovery_8cc-source.html#l00122">run()</a>.</p>

</div>
</div><p>
<a class="anchor" name="54a253ff502020915fa2521ca9a83e3e"></a><!-- doxytag: member="dtn::IPDiscovery::port_" ref="54a253ff502020915fa2521ca9a83e3e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int16_t <a class="el" href="classdtn_1_1IPDiscovery.html#54a253ff502020915fa2521ca9a83e3e">dtn::IPDiscovery::port_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
local and remote 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00150">150</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00051">configure()</a>, <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>, and <a class="el" href="IPDiscovery_8cc-source.html#l00122">run()</a>.</p>

</div>
</div><p>
<a class="anchor" name="92c069ec1b1e15bad6cf52d926442213"></a><!-- doxytag: member="dtn::IPDiscovery::remote_addr_" ref="92c069ec1b1e15bad6cf52d926442213" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">in_addr_t <a class="el" href="classdtn_1_1IPDiscovery.html#92c069ec1b1e15bad6cf52d926442213">dtn::IPDiscovery::remote_addr_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
whether unicast, multicast, or broadcast 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00151">151</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00051">configure()</a>, <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>, and <a class="el" href="IPDiscovery_8cc-source.html#l00122">run()</a>.</p>

</div>
</div><p>
<a class="anchor" name="004f9f774345cd25eb73ea4558b86bd7"></a><!-- doxytag: member="dtn::IPDiscovery::shutdown_" ref="004f9f774345cd25eb73ea4558b86bd7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> <a class="el" href="classdtn_1_1IPDiscovery.html#004f9f774345cd25eb73ea4558b86bd7">dtn::IPDiscovery::shutdown_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
signal to close down thread 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00148">148</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00037">IPDiscovery()</a>, <a class="el" href="IPDiscovery_8cc-source.html#l00122">run()</a>, and <a class="el" href="IPDiscovery_8h-source.html#l00110">shutdown()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d2d28582fc8830ca107cc07aa9b79a5e"></a><!-- doxytag: member="dtn::IPDiscovery::socket_" ref="d2d28582fc8830ca107cc07aa9b79a5e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">oasys::UDPClient <a class="el" href="classdtn_1_1IPDiscovery.html#d2d28582fc8830ca107cc07aa9b79a5e">dtn::IPDiscovery::socket_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
the socket for beacons in- and out-bound 
<p>

<p>Definition at line <a class="el" href="IPDiscovery_8h-source.html#l00153">153</a> of file <a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a>.</p>

<p>Referenced by <a class="el" href="IPDiscovery_8cc-source.html#l00051">configure()</a>, <a class="el" href="IPDiscovery_8h-source.html#l00143">handle_announce()</a>, <a class="el" href="IPDiscovery_8cc-source.html#l00122">run()</a>, and <a class="el" href="IPDiscovery_8h-source.html#l00110">shutdown()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="IPDiscovery_8h-source.html">IPDiscovery.h</a><li><a class="el" href="IPDiscovery_8cc-source.html">IPDiscovery.cc</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 30 09:27:04 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>