Sophie

Sophie

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

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: prophet::BaseTLV 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="namespaceprophet.html">prophet</a>::<a class="el" href="classprophet_1_1BaseTLV.html">BaseTLV</a>
  </div>
</div>
<div class="contents">
<h1>prophet::BaseTLV Class Reference</h1><!-- doxytag: class="prophet::BaseTLV" -->The Prophet I-D (March 2006) dictates five bytecodes for router state exchange messages.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for prophet::BaseTLV:</div>
<div class="dynsection">

<p><center><img src="classprophet_1_1BaseTLV.png" usemap="#prophet::BaseTLV_map" border="0" alt=""></center>
<map name="prophet::BaseTLV_map">
<area href="classprophet_1_1BundleTLV.html" alt="prophet::BundleTLV" shape="rect" coords="74,56,213,80">
<area href="classprophet_1_1HelloTLV.html" alt="prophet::HelloTLV" shape="rect" coords="223,56,362,80">
<area href="classprophet_1_1RIBDTLV.html" alt="prophet::RIBDTLV" shape="rect" coords="372,56,511,80">
<area href="classprophet_1_1RIBTLV.html" alt="prophet::RIBTLV" shape="rect" coords="521,56,660,80">
<area href="classprophet_1_1OfferTLV.html" alt="prophet::OfferTLV" shape="rect" coords="0,112,139,136">
<area href="classprophet_1_1ResponseTLV.html" alt="prophet::ResponseTLV" shape="rect" coords="149,112,288,136">
</map>
</div>

<p>
<a href="classprophet_1_1BaseTLV-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></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="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a> { <br>
&nbsp;&nbsp;<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d7058a0458dcadab12100c4813118e7db">UNKNOWN_TLV</a> =  0x00, 
<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d4dcc990715f37355c47fb7f197fb5a3c">HELLO_TLV</a> =  0x01, 
<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d270f859e453632bfbf1638df2609b089">ERROR_TLV</a> =  0x02, 
<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09de5615891dad0b40891a124fcff00f562">RIBD_TLV</a> =  0xA0, 
<br>
&nbsp;&nbsp;<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d1a1e57bb574af687605a82fe9f8b7f3e">RIB_TLV</a> =  0xA1, 
<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d4678012b183261a4608ea83babc8c315">OFFER_TLV</a> =  0XA2, 
<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d41b6935bfc9badb7cc041dada67836e5">RESPONSE_TLV</a> =  0XA3
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byte codes for TLV types.  <a href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">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">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#e6cae3a4e862763869c53ac6130af69f">~BaseTLV</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#e6cae3a4e862763869c53ac6130af69f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#18534e5841ee8447ca2c51cf299becd0">serialize</a> (u_char *bp, size_t len) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write out TLV from in-memory representation into provided buffer, using no more than len bytes, returning bytes written.  <a href="#18534e5841ee8447ca2c51cf299becd0"></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="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#b786adb497e8ed2e726390a579483dbc">typecode</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors.  <a href="#b786adb497e8ed2e726390a579483dbc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#85ccaab1420732e2f1e327798b8899ed">flags</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors.  <a href="#85ccaab1420732e2f1e327798b8899ed"></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="classprophet_1_1BaseTLV.html#5d6ab71b768b416bc457090d1189b291">length</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessors.  <a href="#5d6ab71b768b416bc457090d1189b291"></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="classprophet_1_1BaseTLV.html#508c517f1f80e0bb7fe6726ecc57ac17">tlv_to_str</a> (<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a> tlv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pretty print function for prophet_tlv_t.  <a href="#508c517f1f80e0bb7fe6726ecc57ac17"></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="classprophet_1_1BaseTLV.html#01468b394d8a4aa6241ac8946afa4458">BaseTLV</a> (<a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a> typecode=UNKNOWN_TLV, u_int8_t flags=0, u_int16_t length=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor is protected to force use of factory.  <a href="#01468b394d8a4aa6241ac8946afa4458"></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="classprophet_1_1BaseTLV.html#39a29c35a775a408b165921f61beec2d">deserialize</a> (const u_char *bp, size_t len)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read a TLV in from transport and copy its contents into memory.  <a href="#39a29c35a775a408b165921f61beec2d"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#88263c57b5c2760ece631ce8943c6249">typecode_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">typecode for this TLV  <a href="#88263c57b5c2760ece631ce8943c6249"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#31f1ebbf538b5b28c42e49e1eef6a34e">flags_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TLV-specific flags.  <a href="#31f1ebbf538b5b28c42e49e1eef6a34e"></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="classprophet_1_1BaseTLV.html#4c0a7b24b795bafb52c16b24a6188823">length_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">serialized length of TLV, mutable so it can be assigned by serialize() const  <a href="#4c0a7b24b795bafb52c16b24a6188823"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The Prophet I-D (March 2006) dictates five bytecodes for router state exchange messages. 
<p>
This implementation introduces a sixth to help differentiate <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> offers from <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> responses.<p>
Each Prophet router is a state machine. Each encounter with another router requires an exchange of router state. This begins with a synchronization phase (Hello), followed by an exchange of route tables (Information Exchange).<p>
<a class="el" href="classprophet_1_1BaseTLV.html" title="The Prophet I-D (March 2006) dictates five bytecodes for router state exchange messages...">BaseTLV</a> is the abstract base class from which each concrete class derives its API. 
<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00058">58</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="37c3690d6040c870b40fa0436b67b09d"></a><!-- doxytag: member="prophet::BaseTLV::prophet_tlv_t" ref="37c3690d6040c870b40fa0436b67b09d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet::BaseTLV::prophet_tlv_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Byte codes for TLV types. 
<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="37c3690d6040c870b40fa0436b67b09d7058a0458dcadab12100c4813118e7db"></a><!-- doxytag: member="UNKNOWN_TLV" ref="37c3690d6040c870b40fa0436b67b09d7058a0458dcadab12100c4813118e7db" args="" -->UNKNOWN_TLV</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="37c3690d6040c870b40fa0436b67b09d4dcc990715f37355c47fb7f197fb5a3c"></a><!-- doxytag: member="HELLO_TLV" ref="37c3690d6040c870b40fa0436b67b09d4dcc990715f37355c47fb7f197fb5a3c" args="" -->HELLO_TLV</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="37c3690d6040c870b40fa0436b67b09d270f859e453632bfbf1638df2609b089"></a><!-- doxytag: member="ERROR_TLV" ref="37c3690d6040c870b40fa0436b67b09d270f859e453632bfbf1638df2609b089" args="" -->ERROR_TLV</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="37c3690d6040c870b40fa0436b67b09de5615891dad0b40891a124fcff00f562"></a><!-- doxytag: member="RIBD_TLV" ref="37c3690d6040c870b40fa0436b67b09de5615891dad0b40891a124fcff00f562" args="" -->RIBD_TLV</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="37c3690d6040c870b40fa0436b67b09d1a1e57bb574af687605a82fe9f8b7f3e"></a><!-- doxytag: member="RIB_TLV" ref="37c3690d6040c870b40fa0436b67b09d1a1e57bb574af687605a82fe9f8b7f3e" args="" -->RIB_TLV</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="37c3690d6040c870b40fa0436b67b09d4678012b183261a4608ea83babc8c315"></a><!-- doxytag: member="OFFER_TLV" ref="37c3690d6040c870b40fa0436b67b09d4678012b183261a4608ea83babc8c315" args="" -->OFFER_TLV</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="37c3690d6040c870b40fa0436b67b09d41b6935bfc9badb7cc041dada67836e5"></a><!-- doxytag: member="RESPONSE_TLV" ref="37c3690d6040c870b40fa0436b67b09d41b6935bfc9badb7cc041dada67836e5" args="" -->RESPONSE_TLV</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00064">64</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

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

<p>
Destructor. 
<p>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00095">95</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="01468b394d8a4aa6241ac8946afa4458"></a><!-- doxytag: member="prophet::BaseTLV::BaseTLV" ref="01468b394d8a4aa6241ac8946afa4458" args="(prophet_tlv_t typecode=UNKNOWN_TLV, u_int8_t flags=0, u_int16_t length=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">prophet::BaseTLV::BaseTLV           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a>&nbsp;</td>
          <td class="paramname"> <em>typecode</em> = <code>UNKNOWN_TLV</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int8_t&nbsp;</td>
          <td class="paramname"> <em>flags</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int16_t&nbsp;</td>
          <td class="paramname"> <em>length</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor is protected to force use of factory. 
<p>

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

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="39a29c35a775a408b165921f61beec2d"></a><!-- doxytag: member="prophet::BaseTLV::deserialize" ref="39a29c35a775a408b165921f61beec2d" args="(const u_char *bp, size_t len)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> prophet::BaseTLV::deserialize           </td>
          <td>(</td>
          <td class="paramtype">const u_char *&nbsp;</td>
          <td class="paramname"> <em>bp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Read a TLV in from transport and copy its contents into memory. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1HelloTLV.html#a5c9b27b0f314b9ddc24e8550792a1f4">prophet::HelloTLV</a>, <a class="el" href="classprophet_1_1OfferTLV.html#050f140354ba636ac5b1ed5b0d4dfae6">prophet::OfferTLV</a>, <a class="el" href="classprophet_1_1ResponseTLV.html#4ebb2b665c2708911b6a83df20717164">prophet::ResponseTLV</a>, <a class="el" href="classprophet_1_1RIBDTLV.html#e5e6e89ef24b6bfa3c5d0ee0c97f3f55">prophet::RIBDTLV</a>, and <a class="el" href="classprophet_1_1RIBTLV.html#2ef063b460e46038ff251775cb621a9c">prophet::RIBTLV</a>.</p>

</div>
</div><p>
<a class="anchor" name="85ccaab1420732e2f1e327798b8899ed"></a><!-- doxytag: member="prophet::BaseTLV::flags" ref="85ccaab1420732e2f1e327798b8899ed" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int8_t prophet::BaseTLV::flags           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessors. 
<p>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00106">106</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

<p>References <a class="el" href="BaseTLV_8h-source.html#l00126">flags_</a>.</p>

<p>Referenced by <a class="el" href="BundleTLV_8cc-source.html#l00049">prophet::BundleTLV::read_bundle_entry()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5d6ab71b768b416bc457090d1189b291"></a><!-- doxytag: member="prophet::BaseTLV::length" ref="5d6ab71b768b416bc457090d1189b291" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int16_t prophet::BaseTLV::length           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessors. 
<p>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00107">107</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

<p>References <a class="el" href="BaseTLV_8h-source.html#l00127">length_</a>.</p>

<p>Referenced by <a class="el" href="ProphetTLV_8cc-source.html#l00201">prophet::ProphetTLV::add_tlv()</a>, <a class="el" href="ProphetTLV_8cc-source.html#l00113">prophet::ProphetTLV::deserialize()</a>, and <a class="el" href="ProphetTLV_8cc-source.html#l00062">prophet::ProphetTLV::serialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="18534e5841ee8447ca2c51cf299becd0"></a><!-- doxytag: member="prophet::BaseTLV::serialize" ref="18534e5841ee8447ca2c51cf299becd0" args="(u_char *bp, size_t len) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t prophet::BaseTLV::serialize           </td>
          <td>(</td>
          <td class="paramtype">u_char *&nbsp;</td>
          <td class="paramname"> <em>bp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write out TLV from in-memory representation into provided buffer, using no more than len bytes, returning bytes written. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1HelloTLV.html#606643bb367524d8407c54500ffe1fc8">prophet::HelloTLV</a>, <a class="el" href="classprophet_1_1OfferTLV.html#d010485b4fe6fec79a419fbf977be183">prophet::OfferTLV</a>, <a class="el" href="classprophet_1_1ResponseTLV.html#547a6db2abc38e7a5b7465b83f524966">prophet::ResponseTLV</a>, <a class="el" href="classprophet_1_1RIBDTLV.html#9b26b15fa1b5286d40b7eba91a8d39e6">prophet::RIBDTLV</a>, and <a class="el" href="classprophet_1_1RIBTLV.html#ce56f1f66c8a973d7a59b0c2bfa4812c">prophet::RIBTLV</a>.</p>

<p>Referenced by <a class="el" href="ProphetTLV_8cc-source.html#l00062">prophet::ProphetTLV::serialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="508c517f1f80e0bb7fe6726ecc57ac17"></a><!-- doxytag: member="prophet::BaseTLV::tlv_to_str" ref="508c517f1f80e0bb7fe6726ecc57ac17" args="(prophet_tlv_t tlv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* prophet::BaseTLV::tlv_to_str           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a>&nbsp;</td>
          <td class="paramname"> <em>tlv</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pretty print function for prophet_tlv_t. 
<p>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00078">78</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

<p>References <a class="el" href="BaseTLV_8h-source.html#l00067">ERROR_TLV</a>, <a class="el" href="BaseTLV_8h-source.html#l00066">HELLO_TLV</a>, <a class="el" href="BaseTLV_8h-source.html#l00070">OFFER_TLV</a>, <a class="el" href="BaseTLV_8h-source.html#l00071">RESPONSE_TLV</a>, <a class="el" href="BaseTLV_8h-source.html#l00069">RIB_TLV</a>, <a class="el" href="BaseTLV_8h-source.html#l00068">RIBD_TLV</a>, and <a class="el" href="BaseTLV_8h-source.html#l00065">UNKNOWN_TLV</a>.</p>

</div>
</div><p>
<a class="anchor" name="b786adb497e8ed2e726390a579483dbc"></a><!-- doxytag: member="prophet::BaseTLV::typecode" ref="b786adb497e8ed2e726390a579483dbc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a> prophet::BaseTLV::typecode           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accessors. 
<p>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00105">105</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

<p>References <a class="el" href="BaseTLV_8h-source.html#l00125">typecode_</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="31f1ebbf538b5b28c42e49e1eef6a34e"></a><!-- doxytag: member="prophet::BaseTLV::flags_" ref="31f1ebbf538b5b28c42e49e1eef6a34e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int8_t <a class="el" href="classprophet_1_1BaseTLV.html#31f1ebbf538b5b28c42e49e1eef6a34e">prophet::BaseTLV::flags_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
TLV-specific flags. 
<p>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00126">126</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

<p>Referenced by <a class="el" href="RIBTLV_8cc-source.html#l00153">prophet::RIBTLV::deserialize()</a>, <a class="el" href="RIBDTLV_8cc-source.html#l00147">prophet::RIBDTLV::deserialize()</a>, <a class="el" href="ResponseTLV_8cc-source.html#l00080">prophet::ResponseTLV::deserialize()</a>, <a class="el" href="OfferTLV_8cc-source.html#l00080">prophet::OfferTLV::deserialize()</a>, and <a class="el" href="BaseTLV_8h-source.html#l00106">flags()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4c0a7b24b795bafb52c16b24a6188823"></a><!-- doxytag: member="prophet::BaseTLV::length_" ref="4c0a7b24b795bafb52c16b24a6188823" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int16_t <a class="el" href="classprophet_1_1BaseTLV.html#4c0a7b24b795bafb52c16b24a6188823">prophet::BaseTLV::length_</a><code> [mutable, protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
serialized length of TLV, mutable so it can be assigned by serialize() const 
<p>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00127">127</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

<p>Referenced by <a class="el" href="RIBTLV_8cc-source.html#l00153">prophet::RIBTLV::deserialize()</a>, <a class="el" href="RIBDTLV_8cc-source.html#l00147">prophet::RIBDTLV::deserialize()</a>, <a class="el" href="ResponseTLV_8cc-source.html#l00080">prophet::ResponseTLV::deserialize()</a>, <a class="el" href="OfferTLV_8cc-source.html#l00080">prophet::OfferTLV::deserialize()</a>, <a class="el" href="HelloTLV_8cc-source.html#l00042">prophet::HelloTLV::deserialize()</a>, <a class="el" href="BaseTLV_8h-source.html#l00107">length()</a>, <a class="el" href="RIBDTLV_8cc-source.html#l00024">prophet::RIBDTLV::RIBDTLV()</a>, <a class="el" href="RIBTLV_8cc-source.html#l00025">prophet::RIBTLV::RIBTLV()</a>, <a class="el" href="RIBTLV_8cc-source.html#l00040">prophet::RIBTLV::serialize()</a>, <a class="el" href="RIBDTLV_8cc-source.html#l00066">prophet::RIBDTLV::serialize()</a>, <a class="el" href="ResponseTLV_8cc-source.html#l00031">prophet::ResponseTLV::serialize()</a>, <a class="el" href="OfferTLV_8cc-source.html#l00031">prophet::OfferTLV::serialize()</a>, and <a class="el" href="HelloTLV_8cc-source.html#l00072">prophet::HelloTLV::serialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="88263c57b5c2760ece631ce8943c6249"></a><!-- doxytag: member="prophet::BaseTLV::typecode_" ref="88263c57b5c2760ece631ce8943c6249" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a> <a class="el" href="classprophet_1_1BaseTLV.html#88263c57b5c2760ece631ce8943c6249">prophet::BaseTLV::typecode_</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
typecode for this TLV 
<p>

<p>Definition at line <a class="el" href="BaseTLV_8h-source.html#l00125">125</a> of file <a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>.</p>

<p>Referenced by <a class="el" href="RIBTLV_8cc-source.html#l00153">prophet::RIBTLV::deserialize()</a>, <a class="el" href="ResponseTLV_8cc-source.html#l00080">prophet::ResponseTLV::deserialize()</a>, <a class="el" href="OfferTLV_8cc-source.html#l00080">prophet::OfferTLV::deserialize()</a>, <a class="el" href="RIBTLV_8cc-source.html#l00040">prophet::RIBTLV::serialize()</a>, <a class="el" href="RIBDTLV_8cc-source.html#l00066">prophet::RIBDTLV::serialize()</a>, <a class="el" href="ResponseTLV_8cc-source.html#l00031">prophet::ResponseTLV::serialize()</a>, <a class="el" href="OfferTLV_8cc-source.html#l00031">prophet::OfferTLV::serialize()</a>, <a class="el" href="HelloTLV_8cc-source.html#l00072">prophet::HelloTLV::serialize()</a>, and <a class="el" href="BaseTLV_8h-source.html#l00105">typecode()</a>.</p>

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