Sophie

Sophie

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

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::BundleCore 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_1BundleCore.html">BundleCore</a>
  </div>
</div>
<div class="contents">
<h1>prophet::BundleCore Class Reference</h1><!-- doxytag: class="prophet::BundleCore" -->Prophet facade's abstract interface into DTN host's bundle core.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for prophet::BundleCore:</div>
<div class="dynsection">

<p><center><img src="classprophet_1_1BundleCore.png" usemap="#prophet::BundleCore_map" border="0" alt=""></center>
<map name="prophet::BundleCore_map">
<area href="classdtn_1_1ProphetBundleCore.html" alt="dtn::ProphetBundleCore" shape="rect" coords="0,56,173,80">
<area href="classprophet_1_1BundleCoreTestImpl.html" alt="prophet::BundleCoreTestImpl" shape="rect" coords="183,56,356,80">
</map>
</div>

<p>
<a href="classprophet_1_1BundleCore-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 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_1BundleCore.html#097b224442dd5ad1a4913a96d47a5a44">~BundleCore</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#097b224442dd5ad1a4913a96d47a5a44"></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_1BundleCore.html#5e824264e8b32a0628c0f913f98641c5">is_route</a> (const std::string &amp;dest_id, const std::string &amp;route) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Answers whether dest_id matches route.  <a href="#5e824264e8b32a0628c0f913f98641c5"></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_1BundleCore.html#650956d33fee47c1248dc12d52eedaaf">should_fwd</a> (const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *bundle, const <a class="el" href="classprophet_1_1Link.html">Link</a> *link) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> core for route status.  <a href="#650956d33fee47c1248dc12d52eedaaf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#5ee789c3c5a49bbcb0624658e7f524c6">get_route</a> (const std::string &amp;dest_id) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a Bundle's destination, return the route.  <a href="#5ee789c3c5a49bbcb0624658e7f524c6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#815e1260c74a81dae5097a6a6b7a8490">get_route_pattern</a> (const std::string &amp;dest_id) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a Bundle's destination, return the route pattern.  <a href="#815e1260c74a81dae5097a6a6b7a8490"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual u_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#fada528d72ff3e773f0b65fef41d6e95">max_bundle_quota</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback method for Prophet to query storage_quota().  <a href="#fada528d72ff3e773f0b65fef41d6e95"></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_1BundleCore.html#ffd383db5ed0821c36856bc38b74a398">custody_accepted</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback method for Prophet to query whether <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> host is willing to accept custody transfers.  <a href="#ffd383db5ed0821c36856bc38b74a398"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classprophet_1_1BundleList.html">BundleList</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#a156b55d2608ca3afabd0d8b2d6a6eed">bundles</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enumerate Bundles in host's store.  <a href="#a156b55d2608ca3afabd0d8b2d6a6eed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#f8fd7decf0b2a558bae75feb006dcc55">drop_bundle</a> (const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *bundle)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback method for Prophet to request for a bundle to be deleted; required by Repository's evict() routine.  <a href="#f8fd7decf0b2a558bae75feb006dcc55"></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_1BundleCore.html#b70b98a3464dbe553705ac2d19d27e7c">send_bundle</a> (const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *bundle, const <a class="el" href="classprophet_1_1Link.html">Link</a> *link)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> and a candidate <a class="el" href="classprophet_1_1Link.html">Link</a>, attempt to send a <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a>.  <a href="#b70b98a3464dbe553705ac2d19d27e7c"></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_1BundleCore.html#d49a3399ed8255db84ef114da4a9ce37">write_bundle</a> (const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *bundle, const u_char *<a class="el" href="num2sdnv_8c.html#a81cdcc7ff6987bc85c073253e32715f">buf</a>, size_t len)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transfer buffer into Bundle's payload.  <a href="#d49a3399ed8255db84ef114da4a9ce37"></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_1BundleCore.html#fe02f454860601b5d9f1823d8608f5ed">read_bundle</a> (const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *bundle, u_char *buffer, size_t &amp;len) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Request a Bundle's payload from <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> host.  <a href="#fe02f454860601b5d9f1823d8608f5ed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#642382193c7db88ad80e13a7c6aec9de">create_bundle</a> (const std::string &amp;<a class="el" href="dtnmoteproxy_8c.html#e1ade0f5a1b32f6c8be72f31a99e2a18">src</a>, const std::string &amp;dst, u_int exp)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Factory method to request new <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> from bundle host.  <a href="#642382193c7db88ad80e13a7c6aec9de"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#832e66fc3b84631e20e086e766ecd0a7">find</a> (const <a class="el" href="classprophet_1_1BundleList.html">BundleList</a> &amp;list, const std::string &amp;eid, u_int32_t creation_ts, u_int32_t seqno) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given a <a class="el" href="classprophet_1_1BundleList.html" title="List of Prophet&#39;s Bundle facade objects.">BundleList</a>, a route, a creation ts, and a sequence number, find the <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a>.  <a href="#832e66fc3b84631e20e086e766ecd0a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#9a18d0c8e3f692d4dd7cc81022177933">update_node</a> (const <a class="el" href="classprophet_1_1Node.html">Node</a> *node)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update (or create) a persistent <a class="el" href="classprophet_1_1Node.html" title="Node represents a route to another Prophet node, and as such, tracks destination...">Node</a> to reflect handle's info.  <a href="#9a18d0c8e3f692d4dd7cc81022177933"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#e799b610b984ebd900dcf1c0bb9e9afc">delete_node</a> (const <a class="el" href="classprophet_1_1Node.html">Node</a> *node)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove this <a class="el" href="classprophet_1_1Node.html" title="Node represents a route to another Prophet node, and as such, tracks destination...">Node</a> from persistent storage.  <a href="#e799b610b984ebd900dcf1c0bb9e9afc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#6c838e6ee0d2b4fd4c069259786de5a5">local_eid</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the local endpoint ID.  <a href="#6c838e6ee0d2b4fd4c069259786de5a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#d204c1ad96fff0acc5f93dcbac199853">prophet_id</a> (const <a class="el" href="classprophet_1_1Link.html">Link</a> *link) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query for the endpoint ID to the Prophet node on the remote end of this link.  <a href="#d204c1ad96fff0acc5f93dcbac199853"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#be11e2096b64c414ae1cc8bbe4e2edab">prophet_id</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query for the endpoint ID to the local Prophet instance.  <a href="#be11e2096b64c414ae1cc8bbe4e2edab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classprophet_1_1Alarm.html">Alarm</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#e3c7647861e87e6d3563231f3548c093">create_alarm</a> (<a class="el" href="classprophet_1_1ExpirationHandler.html">ExpirationHandler</a> *handler, u_int timeout, <a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a> jitter=false)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Factory method to allocate memory for and return pointer to new <a class="el" href="classprophet_1_1Alarm.html" title="Alarm registration.">Alarm</a> object that will invoke handler-&gt;handle_timeout() after timeout milliseconds.  <a href="#e3c7647861e87e6d3563231f3548c093"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#b5b505b3d20c6302ae818426cf27f35d">print_log</a> (const char *name, int level, const char *fmt,...)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defer implementation of logging to host system .  <a href="#b5b505b3d20c6302ae818426cf27f35d"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#494b3a7c2b761b5b79873ea016ab8cc8">LOG_DEBUG</a> = 1</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Log level.  <a href="#494b3a7c2b761b5b79873ea016ab8cc8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#8dc0db4bcd5c66a3645483d1f965538e">LOG_INFO</a> = 2</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Log level.  <a href="#8dc0db4bcd5c66a3645483d1f965538e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#a66c2439e291e2a9bd474c5bd3f148bd">LOG_NOTICE</a> = 3</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Log level.  <a href="#a66c2439e291e2a9bd474c5bd3f148bd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#14d5632cd3bc4a67c13ee2a037ae389c">LOG_WARN</a> = 4</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Log level.  <a href="#14d5632cd3bc4a67c13ee2a037ae389c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#93059ed93100c378c019b05d3adf5029">LOG_ERR</a> = 5</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Log level.  <a href="#93059ed93100c378c019b05d3adf5029"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#c14ce5abdaf56396aba6b0a2d378cf36">LOG_CRIT</a> = 6</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Log level.  <a href="#c14ce5abdaf56396aba6b0a2d378cf36"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprophet_1_1BundleCore.html#fdbc5c653fd620a81ffb9f31f6667c0e">LOG_ALWAYS</a> = 7</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Log level.  <a href="#fdbc5c653fd620a81ffb9f31f6667c0e"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Prophet facade's abstract interface into DTN host's bundle core. 
<p>
Prophet requires <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> handling (create, read, write, send, find), routing functions, preferences and parameters, persistent storage, timers and timeout handling, and debug logging. <a class="el" href="classprophet_1_1BundleCore.html" title="Prophet facade&#39;s abstract interface into DTN host&#39;s bundle core.">BundleCore</a> decouples the Prophet facade library from its host implementation by abstracting away the specifics of implmentation for these core functions. 
<p>Definition at line <a class="el" href="BundleCore_8h-source.html#l00048">48</a> of file <a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="097b224442dd5ad1a4913a96d47a5a44"></a><!-- doxytag: member="prophet::BundleCore::~BundleCore" ref="097b224442dd5ad1a4913a96d47a5a44" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual prophet::BundleCore::~BundleCore           </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="BundleCore_8h-source.html#l00055">55</a> of file <a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a156b55d2608ca3afabd0d8b2d6a6eed"></a><!-- doxytag: member="prophet::BundleCore::bundles" ref="a156b55d2608ca3afabd0d8b2d6a6eed" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classprophet_1_1BundleList.html">BundleList</a>&amp; prophet::BundleCore::bundles           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enumerate Bundles in host's store. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#708f677b31c0016f84c0dbd68f4ea4dd">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#8977fbd7babe7accd434e8fa8426ce90">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="e3c7647861e87e6d3563231f3548c093"></a><!-- doxytag: member="prophet::BundleCore::create_alarm" ref="e3c7647861e87e6d3563231f3548c093" args="(ExpirationHandler *handler, u_int timeout, bool jitter=false)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classprophet_1_1Alarm.html">Alarm</a>* prophet::BundleCore::create_alarm           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classprophet_1_1ExpirationHandler.html">ExpirationHandler</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int&nbsp;</td>
          <td class="paramname"> <em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="serialsource_8c.html#1062901a7428fdd9c7f180f5e01ea056">bool</a>&nbsp;</td>
          <td class="paramname"> <em>jitter</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Factory method to allocate memory for and return pointer to new <a class="el" href="classprophet_1_1Alarm.html" title="Alarm registration.">Alarm</a> object that will invoke handler-&gt;handle_timeout() after timeout milliseconds. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#b0b938ccb50f384873ae18336ab42a6a">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#49ab45f3e7d06f040f727edb815de465">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="642382193c7db88ad80e13a7c6aec9de"></a><!-- doxytag: member="prophet::BundleCore::create_bundle" ref="642382193c7db88ad80e13a7c6aec9de" args="(const std::string &amp;src, const std::string &amp;dst, u_int exp)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classprophet_1_1Bundle.html">Bundle</a>* prophet::BundleCore::create_bundle           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int&nbsp;</td>
          <td class="paramname"> <em>exp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Factory method to request new <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> from bundle host. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>Route of bundle originator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dst</em>&nbsp;</td><td>Route of bundle destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>exp</em>&nbsp;</td><td>Lifespan in seconds </td></tr>
  </table>
</dl>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#2757539f7652d15192cfb02e41683795">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#f4d2996b411b94787d8df7654c1e4ecf">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="ffd383db5ed0821c36856bc38b74a398"></a><!-- doxytag: member="prophet::BundleCore::custody_accepted" ref="ffd383db5ed0821c36856bc38b74a398" args="() const =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::BundleCore::custody_accepted           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Callback method for Prophet to query whether <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> host is willing to accept custody transfers. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#8da6b9cd62aa539e3a3b08b11e19c721">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#67a65fc972b64f8cba3dd73e2edbe0a5">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="e799b610b984ebd900dcf1c0bb9e9afc"></a><!-- doxytag: member="prophet::BundleCore::delete_node" ref="e799b610b984ebd900dcf1c0bb9e9afc" args="(const Node *node)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void prophet::BundleCore::delete_node           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove this <a class="el" href="classprophet_1_1Node.html" title="Node represents a route to another Prophet node, and as such, tracks destination...">Node</a> from persistent storage. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#d62f1bfcb1636e09cc00fcc4afbba00f">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#73191dd5279e1298a7fbde2a54a61c13">dtn::ProphetBundleCore</a>.</p>

<p>Referenced by <a class="el" href="Table_8cc-source.html#l00448">prophet::Table::remove()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f8fd7decf0b2a558bae75feb006dcc55"></a><!-- doxytag: member="prophet::BundleCore::drop_bundle" ref="f8fd7decf0b2a558bae75feb006dcc55" args="(const Bundle *bundle)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void prophet::BundleCore::drop_bundle           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *&nbsp;</td>
          <td class="paramname"> <em>bundle</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Callback method for Prophet to request for a bundle to be deleted; required by Repository's evict() routine. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#67a5fe8f2b6c7df6420c50a11e329764">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#02bf8a64669d954187436f6d129a8715">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="832e66fc3b84631e20e086e766ecd0a7"></a><!-- doxytag: member="prophet::BundleCore::find" ref="832e66fc3b84631e20e086e766ecd0a7" args="(const BundleList &amp;list, const std::string &amp;eid, u_int32_t creation_ts, u_int32_t seqno) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a>* prophet::BundleCore::find           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1BundleList.html">BundleList</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>eid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int32_t&nbsp;</td>
          <td class="paramname"> <em>creation_ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int32_t&nbsp;</td>
          <td class="paramname"> <em>seqno</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>
Given a <a class="el" href="classprophet_1_1BundleList.html" title="List of Prophet&#39;s Bundle facade objects.">BundleList</a>, a route, a creation ts, and a sequence number, find the <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a>. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#1fa48f495ad79af86831bd4645011865">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#75d40cd7e91c7b5d8ca026f5a4943cf3">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="5ee789c3c5a49bbcb0624658e7f524c6"></a><!-- doxytag: member="prophet::BundleCore::get_route" ref="5ee789c3c5a49bbcb0624658e7f524c6" args="(const std::string &amp;dest_id) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string prophet::BundleCore::get_route           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>dest_id</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given a Bundle's destination, return the route. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#813d77f4af7f59d4eec153ecd5896002">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#3af8d47db2a95a24cae949a7ae182c88">dtn::ProphetBundleCore</a>.</p>

<p>Referenced by <a class="el" href="BundleOffer_8cc-source.html#l00064">prophet::BundleOffer::get_bundle_offer()</a>, <a class="el" href="AckList_8cc-source.html#l00045">prophet::AckList::insert()</a>, and <a class="el" href="Table_8cc-source.html#l00100">prophet::Table::p_value()</a>.</p>

</div>
</div><p>
<a class="anchor" name="815e1260c74a81dae5097a6a6b7a8490"></a><!-- doxytag: member="prophet::BundleCore::get_route_pattern" ref="815e1260c74a81dae5097a6a6b7a8490" args="(const std::string &amp;dest_id) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string prophet::BundleCore::get_route_pattern           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>dest_id</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given a Bundle's destination, return the route pattern. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#b2653ab7d4a230a59dd32d142c1cd048">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#9fa1cc138d96df53f2984dedab3495b7">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="5e824264e8b32a0628c0f913f98641c5"></a><!-- doxytag: member="prophet::BundleCore::is_route" ref="5e824264e8b32a0628c0f913f98641c5" args="(const std::string &amp;dest_id, const std::string &amp;route) const =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::BundleCore::is_route           </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>dest_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>route</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>
Answers whether dest_id matches route. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#36fb50a55469d088c223e0c9cd1959db">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#90e8d30f6e84420cb0dedf94e7f0584b">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="6c838e6ee0d2b4fd4c069259786de5a5"></a><!-- doxytag: member="prophet::BundleCore::local_eid" ref="6c838e6ee0d2b4fd4c069259786de5a5" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string prophet::BundleCore::local_eid           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query the local endpoint ID. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#83883585ab8f644eab630539dcf1fbc0">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#91b31ede5c10693731653108fc46699d">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="fada528d72ff3e773f0b65fef41d6e95"></a><!-- doxytag: member="prophet::BundleCore::max_bundle_quota" ref="fada528d72ff3e773f0b65fef41d6e95" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual u_int64_t prophet::BundleCore::max_bundle_quota           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Callback method for Prophet to query storage_quota(). 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#849e4ff47c3e591d807a3c9a233d075f">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#ce3e0bbd59d7c7af4ea8d985f5e982bc">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="b5b505b3d20c6302ae818426cf27f35d"></a><!-- doxytag: member="prophet::BundleCore::print_log" ref="b5b505b3d20c6302ae818426cf27f35d" args="(const char *name, int level, const char *fmt,...)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void prophet::BundleCore::print_log           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Defer implementation of logging to host system . 
<p>
.. but still propagate messages up to host system from within <a class="el" href="namespaceprophet.html">prophet</a> namespace 
<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#f3a09501640bcdce8b64d16220abe5dc">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#ff15d52706f454338dc3b85b5e27af28">dtn::ProphetBundleCore</a>.</p>

<p>Referenced by <a class="el" href="Table_8cc-source.html#l00424">prophet::Table::age_nodes()</a>, <a class="el" href="Table_8cc-source.html#l00383">prophet::Table::assign()</a>, <a class="el" href="prophet_2Dictionary_8cc-source.html#l00164">prophet::Dictionary::dump()</a>, <a class="el" href="Table_8cc-source.html#l00460">prophet::Table::enforce_quota()</a>, <a class="el" href="Table_8cc-source.html#l00320">prophet::Table::truncate()</a>, <a class="el" href="Table_8cc-source.html#l00112">prophet::Table::update()</a>, <a class="el" href="Table_8cc-source.html#l00158">prophet::Table::update_route()</a>, and <a class="el" href="Table_8cc-source.html#l00200">prophet::Table::update_transitive()</a>.</p>

</div>
</div><p>
<a class="anchor" name="be11e2096b64c414ae1cc8bbe4e2edab"></a><!-- doxytag: member="prophet::BundleCore::prophet_id" ref="be11e2096b64c414ae1cc8bbe4e2edab" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string prophet::BundleCore::prophet_id           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query for the endpoint ID to the local Prophet instance. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#220967e9f1b214eaf354a864f517ad55">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#4de78b6c6e8e99f23b0958c499c99378">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="d204c1ad96fff0acc5f93dcbac199853"></a><!-- doxytag: member="prophet::BundleCore::prophet_id" ref="d204c1ad96fff0acc5f93dcbac199853" args="(const Link *link) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string prophet::BundleCore::prophet_id           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Link.html">Link</a> *&nbsp;</td>
          <td class="paramname"> <em>link</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query for the endpoint ID to the Prophet node on the remote end of this link. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#221800394f0b3eeede0a06a305c15855">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#c64d3b6f19bdb469bf00e93b5feee89c">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="fe02f454860601b5d9f1823d8608f5ed"></a><!-- doxytag: member="prophet::BundleCore::read_bundle" ref="fe02f454860601b5d9f1823d8608f5ed" args="(const Bundle *bundle, u_char *buffer, size_t &amp;len) const =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::BundleCore::read_bundle           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *&nbsp;</td>
          <td class="paramname"> <em>bundle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&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>
Request a Bundle's payload from <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> host. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>bundle</em>&nbsp;</td><td>bundle metadata object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>in/out memory into which to write <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> payload </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>in/out size of inbound buffer, amount written into outbound buffer </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>success </dd></dl>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#28081fde0b0be4348edc2f13db7c5280">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#db5e1bc9d1959fb5a2bfce5fef463fc5">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="b70b98a3464dbe553705ac2d19d27e7c"></a><!-- doxytag: member="prophet::BundleCore::send_bundle" ref="b70b98a3464dbe553705ac2d19d27e7c" args="(const Bundle *bundle, const Link *link)=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::BundleCore::send_bundle           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *&nbsp;</td>
          <td class="paramname"> <em>bundle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Link.html">Link</a> *&nbsp;</td>
          <td class="paramname"> <em>link</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given a <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> and a candidate <a class="el" href="classprophet_1_1Link.html">Link</a>, attempt to send a <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a>. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#db480cf167caa39713c260c0e338fef4">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#533cbc680bb1c333fdac808b0de80476">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="650956d33fee47c1248dc12d52eedaaf"></a><!-- doxytag: member="prophet::BundleCore::should_fwd" ref="650956d33fee47c1248dc12d52eedaaf" args="(const Bundle *bundle, const Link *link) const =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::BundleCore::should_fwd           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *&nbsp;</td>
          <td class="paramname"> <em>bundle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Link.html">Link</a> *&nbsp;</td>
          <td class="paramname"> <em>link</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>
Query the <a class="el" href="classprophet_1_1Bundle.html" title="Facade interface between Prophet router and host implmentation&#39;s Bundle representation...">Bundle</a> core for route status. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#c1f88ebc5929179d04fe08cd5f2f02b2">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#41b8f2fddbfebd06f18e9ba8fce619b5">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<a class="anchor" name="9a18d0c8e3f692d4dd7cc81022177933"></a><!-- doxytag: member="prophet::BundleCore::update_node" ref="9a18d0c8e3f692d4dd7cc81022177933" args="(const Node *node)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void prophet::BundleCore::update_node           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Node.html">Node</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Update (or create) a persistent <a class="el" href="classprophet_1_1Node.html" title="Node represents a route to another Prophet node, and as such, tracks destination...">Node</a> to reflect handle's info. 
<p>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#344d8427ecc8717507c1bd18373f9b06">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#fbf59008d115bb77da64e173028e918c">dtn::ProphetBundleCore</a>.</p>

<p>Referenced by <a class="el" href="Table_8cc-source.html#l00424">prophet::Table::age_nodes()</a>, <a class="el" href="Table_8cc-source.html#l00112">prophet::Table::update()</a>, <a class="el" href="Table_8cc-source.html#l00158">prophet::Table::update_route()</a>, and <a class="el" href="Table_8cc-source.html#l00200">prophet::Table::update_transitive()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d49a3399ed8255db84ef114da4a9ce37"></a><!-- doxytag: member="prophet::BundleCore::write_bundle" ref="d49a3399ed8255db84ef114da4a9ce37" args="(const Bundle *bundle, const u_char *buf, 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::BundleCore::write_bundle           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classprophet_1_1Bundle.html">Bundle</a> *&nbsp;</td>
          <td class="paramname"> <em>bundle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const 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><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transfer buffer into Bundle's payload. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>bundle</em>&nbsp;</td><td>bundle metadata object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>Buffer to write into payload </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>success </dd></dl>

<p>Implemented in <a class="el" href="classprophet_1_1BundleCoreTestImpl.html#ff98dc2c96bdd8d51554fdb108be3711">prophet::BundleCoreTestImpl</a>, and <a class="el" href="classdtn_1_1ProphetBundleCore.html#1a8696244a7ce2d07a065b04787b6d8b">dtn::ProphetBundleCore</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="fdbc5c653fd620a81ffb9f31f6667c0e"></a><!-- doxytag: member="prophet::BundleCore::LOG_ALWAYS" ref="fdbc5c653fd620a81ffb9f31f6667c0e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classprophet_1_1BundleCore.html#fdbc5c653fd620a81ffb9f31f6667c0e">prophet::BundleCore::LOG_ALWAYS</a> = 7<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Log level. 
<p>

<p>Definition at line <a class="el" href="BundleCore_8h-source.html#l00187">187</a> of file <a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c14ce5abdaf56396aba6b0a2d378cf36"></a><!-- doxytag: member="prophet::BundleCore::LOG_CRIT" ref="c14ce5abdaf56396aba6b0a2d378cf36" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classprophet_1_1BundleCore.html#c14ce5abdaf56396aba6b0a2d378cf36">prophet::BundleCore::LOG_CRIT</a> = 6<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Log level. 
<p>

<p>Definition at line <a class="el" href="BundleCore_8h-source.html#l00186">186</a> of file <a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="494b3a7c2b761b5b79873ea016ab8cc8"></a><!-- doxytag: member="prophet::BundleCore::LOG_DEBUG" ref="494b3a7c2b761b5b79873ea016ab8cc8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classprophet_1_1BundleCore.html#494b3a7c2b761b5b79873ea016ab8cc8">prophet::BundleCore::LOG_DEBUG</a> = 1<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Log level. 
<p>

<p>Definition at line <a class="el" href="BundleCore_8h-source.html#l00181">181</a> of file <a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>.</p>

<p>Referenced by <a class="el" href="prophet_2Dictionary_8cc-source.html#l00164">prophet::Dictionary::dump()</a>, and <a class="el" href="ProphetBundleCore_8cc-source.html#l00081">dtn::ProphetBundleCore::should_fwd()</a>.</p>

</div>
</div><p>
<a class="anchor" name="93059ed93100c378c019b05d3adf5029"></a><!-- doxytag: member="prophet::BundleCore::LOG_ERR" ref="93059ed93100c378c019b05d3adf5029" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classprophet_1_1BundleCore.html#93059ed93100c378c019b05d3adf5029">prophet::BundleCore::LOG_ERR</a> = 5<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Log level. 
<p>

<p>Definition at line <a class="el" href="BundleCore_8h-source.html#l00185">185</a> of file <a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8dc0db4bcd5c66a3645483d1f965538e"></a><!-- doxytag: member="prophet::BundleCore::LOG_INFO" ref="8dc0db4bcd5c66a3645483d1f965538e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classprophet_1_1BundleCore.html#8dc0db4bcd5c66a3645483d1f965538e">prophet::BundleCore::LOG_INFO</a> = 2<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Log level. 
<p>

<p>Definition at line <a class="el" href="BundleCore_8h-source.html#l00182">182</a> of file <a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>.</p>

<p>Referenced by <a class="el" href="Table_8cc-source.html#l00424">prophet::Table::age_nodes()</a>, <a class="el" href="Table_8cc-source.html#l00383">prophet::Table::assign()</a>, <a class="el" href="Table_8cc-source.html#l00460">prophet::Table::enforce_quota()</a>, <a class="el" href="Table_8cc-source.html#l00320">prophet::Table::truncate()</a>, <a class="el" href="Table_8cc-source.html#l00112">prophet::Table::update()</a>, <a class="el" href="Table_8cc-source.html#l00158">prophet::Table::update_route()</a>, and <a class="el" href="Table_8cc-source.html#l00200">prophet::Table::update_transitive()</a>.</p>

</div>
</div><p>
<a class="anchor" name="a66c2439e291e2a9bd474c5bd3f148bd"></a><!-- doxytag: member="prophet::BundleCore::LOG_NOTICE" ref="a66c2439e291e2a9bd474c5bd3f148bd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classprophet_1_1BundleCore.html#a66c2439e291e2a9bd474c5bd3f148bd">prophet::BundleCore::LOG_NOTICE</a> = 3<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Log level. 
<p>

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

</div>
</div><p>
<a class="anchor" name="14d5632cd3bc4a67c13ee2a037ae389c"></a><!-- doxytag: member="prophet::BundleCore::LOG_WARN" ref="14d5632cd3bc4a67c13ee2a037ae389c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classprophet_1_1BundleCore.html#14d5632cd3bc4a67c13ee2a037ae389c">prophet::BundleCore::LOG_WARN</a> = 4<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Log level. 
<p>

<p>Definition at line <a class="el" href="BundleCore_8h-source.html#l00184">184</a> of file <a class="el" href="BundleCore_8h-source.html">BundleCore.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="BundleCore_8h-source.html">BundleCore.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>