<!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="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.6 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="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" --><code>#include <<a class="el" href="BaseTLV_8h-source.html">BaseTLV.h</a>></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><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's Bundle representation...">Bundle</a> offers from <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation'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> <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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#37c3690d6040c870b40fa0436b67b09d">prophet_tlv_t</a> { <br> <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> <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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#e6cae3a4e862763869c53ac6130af69f">~BaseTLV</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#e6cae3a4e862763869c53ac6130af69f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t </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"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#b786adb497e8ed2e726390a579483dbc">typecode</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accessors. <a href="#b786adb497e8ed2e726390a579483dbc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">u_int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#85ccaab1420732e2f1e327798b8899ed">flags</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accessors. <a href="#85ccaab1420732e2f1e327798b8899ed"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">u_int16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#5d6ab71b768b416bc457090d1189b291">length</a> () const </td></tr> <tr><td class="mdescLeft"> </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 * </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"> </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"> </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"> </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> </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"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#88263c57b5c2760ece631ce8943c6249">typecode_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#31f1ebbf538b5b28c42e49e1eef6a34e">flags_</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BaseTLV.html#4c0a7b24b795bafb52c16b24a6188823">length_</a></td></tr> <tr><td class="mdescLeft"> </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><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> </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> </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> </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> </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> </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> </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> </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 & 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> ) </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> </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 </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 </td> <td class="paramname"> <em>length</em> = <code>0</code></td><td> </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="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> </td> <td class="paramname"> <em>tlv</em> </td> <td> ) </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="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 * </td> <td class="paramname"> <em>bp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em></td><td> </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="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> ) </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> <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> ) </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> ) </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="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 * </td> <td class="paramname"> <em>bp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em></td><td> </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> <hr><h2>Member Data Documentation</h2> <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> <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> <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 Mon Jul 21 14:09:55 2008 for DTN Reference Implementation by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address> </body> </html>