Sophie

Sophie

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

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: TrAgent.cc Source File</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><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<h1>TrAgent.cc</h1><a href="TrAgent_8cc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> *    Copyright 2004-2006 Intel Corporation</span>
<a name="l00003"></a>00003 <span class="comment"> * </span>
<a name="l00004"></a>00004 <span class="comment"> *    Licensed under the Apache License, Version 2.0 (the "License");</span>
<a name="l00005"></a>00005 <span class="comment"> *    you may not use this file except in compliance with the License.</span>
<a name="l00006"></a>00006 <span class="comment"> *    You may obtain a copy of the License at</span>
<a name="l00007"></a>00007 <span class="comment"> * </span>
<a name="l00008"></a>00008 <span class="comment"> *        http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00009"></a>00009 <span class="comment"> * </span>
<a name="l00010"></a>00010 <span class="comment"> *    Unless required by applicable law or agreed to in writing, software</span>
<a name="l00011"></a>00011 <span class="comment"> *    distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00012"></a>00012 <span class="comment"> *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00013"></a>00013 <span class="comment"> *    See the License for the specific language governing permissions and</span>
<a name="l00014"></a>00014 <span class="comment"> *    limitations under the License.</span>
<a name="l00015"></a>00015 <span class="comment"> */</span>
<a name="l00016"></a>00016 
<a name="l00017"></a>00017 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#  include &lt;<a class="code" href="dtn-config_8h.html">dtn-config.h</a>&gt;</span>
<a name="l00019"></a>00019 <span class="preprocessor">#endif</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;math.h&gt;</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;oasys/util/Options.h&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;oasys/util/OptParser.h&gt;</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="TrAgent_8h.html">TrAgent.h</a>"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="Simulator_8h.html">Simulator.h</a>"</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="sim_2Node_8h.html">Node.h</a>"</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="SimEvent_8h.html">SimEvent.h</a>"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="SimLog_8h.html">SimLog.h</a>"</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="bundling_2Bundle_8h.html">bundling/Bundle.h</a>"</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="BundleTimestamp_8h.html">bundling/BundleTimestamp.h</a>"</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 <span class="keyword">namespace </span>dtnsim {
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 <span class="comment">//----------------------------------------------------------------------</span>
<a name="l00037"></a><a class="code" href="classdtnsim_1_1TrAgent.html#cca183c2ba9107432e9d42fd9c573291">00037</a> <a class="code" href="classdtnsim_1_1TrAgent.html#cca183c2ba9107432e9d42fd9c573291">TrAgent::TrAgent</a>(<span class="keyword">const</span> <a class="code" href="classdtn_1_1EndpointID.html">EndpointID</a>&amp; <a class="code" href="dtnmoteproxy_8c.html#e1ade0f5a1b32f6c8be72f31a99e2a18">src</a>, <span class="keyword">const</span> <a class="code" href="classdtn_1_1EndpointID.html">EndpointID</a>&amp; dst)
<a name="l00038"></a>00038     : <a class="code" href="classoasys_1_1Logger.html">Logger</a>(<span class="stringliteral">"TrAgent"</span>, <span class="stringliteral">"/sim/tragent/%s"</span>, <a class="code" href="classdtnsim_1_1Node.html" title="Class representing a node in the simulator (i.e.">Node</a>::active_node()-&gt;name()),
<a name="l00039"></a>00039       src_(src), dst_(dst),
<a name="l00040"></a>00040       size_(0), expiration_(30), reps_(0), batch_(1), interval_(0)
<a name="l00041"></a>00041 {
<a name="l00042"></a>00042 }
<a name="l00043"></a>00043 
<a name="l00044"></a>00044 <span class="comment">//----------------------------------------------------------------------</span>
<a name="l00045"></a>00045 <a class="code" href="classdtnsim_1_1TrAgent.html">TrAgent</a>*
<a name="l00046"></a><a class="code" href="classdtnsim_1_1TrAgent.html#fd95a265bd004460b9e650aaf409f101">00046</a> <a class="code" href="classdtnsim_1_1TrAgent.html#fd95a265bd004460b9e650aaf409f101">TrAgent::init</a>(<span class="keyword">const</span> <a class="code" href="classdtn_1_1EndpointID.html">EndpointID</a>&amp; <a class="code" href="dtnmoteproxy_8c.html#e1ade0f5a1b32f6c8be72f31a99e2a18">src</a>, <span class="keyword">const</span> <a class="code" href="classdtn_1_1EndpointID.html">EndpointID</a>&amp; dst,
<a name="l00047"></a>00047               <span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>** argv)
<a name="l00048"></a>00048 {
<a name="l00049"></a>00049     <a class="code" href="classdtnsim_1_1TrAgent.html">TrAgent</a>* a = <span class="keyword">new</span> <a class="code" href="classdtnsim_1_1TrAgent.html#cca183c2ba9107432e9d42fd9c573291">TrAgent</a>(src, dst);
<a name="l00050"></a>00050 
<a name="l00051"></a>00051     oasys::OptParser p;
<a name="l00052"></a>00052     p.addopt(<span class="keyword">new</span> oasys::SizeOpt(<span class="stringliteral">"size"</span>, &amp;a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#6dde1de2967c07cd2b5d8acecf87f75f" title="size of each message">size_</a>));
<a name="l00053"></a>00053     p.addopt(<span class="keyword">new</span> oasys::UIntOpt(<span class="stringliteral">"expiration"</span>, &amp;a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#a1b1308b36757b354ac2a50faf35bb7e" title="expiration time for each bundle">expiration_</a>));
<a name="l00054"></a>00054     p.addopt(<span class="keyword">new</span> oasys::UIntOpt(<span class="stringliteral">"reps"</span>, &amp;a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#d251baadb1444ed2c0a67c1cf6844d9f" title="total number of reps/batches">reps_</a>));
<a name="l00055"></a>00055     p.addopt(<span class="keyword">new</span> oasys::UIntOpt(<span class="stringliteral">"batch"</span>, &amp;a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#ca61012a825fc10acd0401056793e4b8" title="no of messages in each batch">batch_</a>));
<a name="l00056"></a>00056     p.addopt(<span class="keyword">new</span> oasys::DoubleOpt(<span class="stringliteral">"interval"</span>, &amp;a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#6a8f2fd05fbc16448879ad0941eb306e" title="time gap between two batches">interval_</a>));
<a name="l00057"></a>00057 
<a name="l00058"></a>00058     <span class="keyword">const</span> <span class="keywordtype">char</span>* invalid;
<a name="l00059"></a>00059     <span class="keywordflow">if</span> (! p.parse(argc, argv, &amp;invalid)) {
<a name="l00060"></a>00060         a-&gt;logf(oasys::LOG_ERR, <span class="stringliteral">"invalid option: %s"</span>, invalid);
<a name="l00061"></a>00061         <span class="keywordflow">return</span> NULL;
<a name="l00062"></a>00062     }
<a name="l00063"></a>00063 
<a name="l00064"></a>00064     <span class="keywordflow">if</span> (a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#6dde1de2967c07cd2b5d8acecf87f75f" title="size of each message">size_</a> == 0) {
<a name="l00065"></a>00065         a-&gt;logf(oasys::LOG_ERR, <span class="stringliteral">"size must be set in configuration"</span>);
<a name="l00066"></a>00066         <span class="keywordflow">return</span> NULL;
<a name="l00067"></a>00067     }
<a name="l00068"></a>00068 
<a name="l00069"></a>00069     <span class="keywordflow">if</span> (a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#d251baadb1444ed2c0a67c1cf6844d9f" title="total number of reps/batches">reps_</a> == 0) {
<a name="l00070"></a>00070         a-&gt;logf(oasys::LOG_ERR, <span class="stringliteral">"reps must be set in configuration"</span>);
<a name="l00071"></a>00071         <span class="keywordflow">return</span> NULL;
<a name="l00072"></a>00072     }
<a name="l00073"></a>00073 
<a name="l00074"></a>00074     <span class="keywordflow">if</span> (a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#d251baadb1444ed2c0a67c1cf6844d9f" title="total number of reps/batches">reps_</a> != 1 &amp;&amp; a-&gt;<a class="code" href="classdtnsim_1_1TrAgent.html#6a8f2fd05fbc16448879ad0941eb306e" title="time gap between two batches">interval_</a> == 0) {
<a name="l00075"></a>00075         a-&gt;logf(oasys::LOG_ERR, <span class="stringliteral">"interval must be set in configuration"</span>);
<a name="l00076"></a>00076         <span class="keywordflow">return</span> NULL;
<a name="l00077"></a>00077     }
<a name="l00078"></a>00078 
<a name="l00079"></a>00079     a-&gt;schedule_immediate();
<a name="l00080"></a>00080     <span class="keywordflow">return</span> a;
<a name="l00081"></a>00081 }
<a name="l00082"></a>00082 
<a name="l00083"></a>00083 <span class="comment">//----------------------------------------------------------------------</span>
<a name="l00084"></a>00084 <span class="keywordtype">void</span>
<a name="l00085"></a><a class="code" href="classdtnsim_1_1TrAgent.html#f39edc821f25235592382166afa25ce1">00085</a> <a class="code" href="classdtnsim_1_1TrAgent.html#f39edc821f25235592382166afa25ce1">TrAgent::timeout</a>(<span class="keyword">const</span> <span class="keyword">struct</span> timeval&amp; <span class="comment">/* now */</span>)
<a name="l00086"></a>00086 {
<a name="l00087"></a>00087     <span class="keywordflow">for</span> (u_int i = 0; i &lt; <a class="code" href="classdtnsim_1_1TrAgent.html#ca61012a825fc10acd0401056793e4b8" title="no of messages in each batch">batch_</a>; i++) {
<a name="l00088"></a>00088         <a class="code" href="classdtnsim_1_1TrAgent.html#7c270bf46a9aaa763a63970d6ed9831e">send_bundle</a>();
<a name="l00089"></a>00089     }
<a name="l00090"></a>00090         
<a name="l00091"></a>00091     <span class="keywordflow">if</span> (--<a class="code" href="classdtnsim_1_1TrAgent.html#d251baadb1444ed2c0a67c1cf6844d9f" title="total number of reps/batches">reps_</a> &gt; 0) {
<a name="l00092"></a>00092         log_debug(<span class="stringliteral">"scheduling timer in %u ms"</span>, (u_int)(<a class="code" href="classdtnsim_1_1TrAgent.html#6a8f2fd05fbc16448879ad0941eb306e" title="time gap between two batches">interval_</a> * 1000));
<a name="l00093"></a>00093         schedule_in((<span class="keywordtype">int</span>)(<a class="code" href="classdtnsim_1_1TrAgent.html#6a8f2fd05fbc16448879ad0941eb306e" title="time gap between two batches">interval_</a> * 1000));
<a name="l00094"></a>00094     } <span class="keywordflow">else</span> {
<a name="l00095"></a>00095         log_debug(<span class="stringliteral">"all batches finished"</span>);
<a name="l00096"></a>00096     }
<a name="l00097"></a>00097 }
<a name="l00098"></a>00098 
<a name="l00099"></a>00099 <span class="comment">//----------------------------------------------------------------------</span>
<a name="l00100"></a>00100 <span class="keywordtype">void</span>
<a name="l00101"></a><a class="code" href="classdtnsim_1_1TrAgent.html#7c270bf46a9aaa763a63970d6ed9831e">00101</a> <a class="code" href="classdtnsim_1_1TrAgent.html#7c270bf46a9aaa763a63970d6ed9831e">TrAgent::send_bundle</a>()
<a name="l00102"></a>00102 {
<a name="l00103"></a>00103     <a class="code" href="classdtn_1_1Bundle.html" title="The internal representation of a bundle.">Bundle</a>* b = <span class="keyword">new</span> <a class="code" href="classdtn_1_1Bundle.html" title="The internal representation of a bundle.">Bundle</a>(BundlePayload::NODATA);
<a name="l00104"></a>00104         
<a name="l00105"></a>00105     <span class="comment">//oasys::StaticStringBuffer&lt;1024&gt; buf;</span>
<a name="l00106"></a>00106     <span class="comment">//b-&gt;format_verbose(&amp;buf);</span>
<a name="l00107"></a>00107     <span class="comment">//log_multiline(oasys::LOG_DEBUG, buf.c_str());</span>
<a name="l00108"></a>00108         
<a name="l00109"></a>00109     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#69c35928ca050eb4bb2ec67641f1b6bb" title="Setters and mutable accessors.">mutable_source</a>()-&gt;<a class="code" href="classdtn_1_1EndpointID.html#ec39752e4da3107b16ff5da58d2aa5ab" title="Assign this endpoint ID as a copy of the other.">assign</a>(<a class="code" href="classdtnsim_1_1TrAgent.html#296c76113761dd8230bd98a57db2192c" title="source eid">src_</a>);
<a name="l00110"></a>00110     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#7c2091e44637889b9ad6f94a82ae7f83" title="Setters and mutable accessors.">mutable_replyto</a>()-&gt;<a class="code" href="classdtn_1_1EndpointID.html#ec39752e4da3107b16ff5da58d2aa5ab" title="Assign this endpoint ID as a copy of the other.">assign</a>(<a class="code" href="classdtnsim_1_1TrAgent.html#296c76113761dd8230bd98a57db2192c" title="source eid">src_</a>);
<a name="l00111"></a>00111     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#96698085719d88c0b5c86d4cb388324c" title="Setters and mutable accessors.">mutable_custodian</a>()-&gt;<a class="code" href="classdtn_1_1EndpointID.html#ec39752e4da3107b16ff5da58d2aa5ab" title="Assign this endpoint ID as a copy of the other.">assign</a>(EndpointID::NULL_EID());
<a name="l00112"></a>00112     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#fedf6ad0537f7e3a3f958162d1fc935e" title="Setters and mutable accessors.">mutable_dest</a>()-&gt;<a class="code" href="classdtn_1_1EndpointID.html#ec39752e4da3107b16ff5da58d2aa5ab" title="Assign this endpoint ID as a copy of the other.">assign</a>(<a class="code" href="classdtnsim_1_1TrAgent.html#8f87d9c8041db735ec36eeed15fdce2b" title="destination eid">dst_</a>);
<a name="l00113"></a>00113     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#857079bad68497626f75c2985b69052f" title="Setters and mutable accessors.">mutable_payload</a>()-&gt;<a class="code" href="classdtn_1_1BundlePayload.html#af1ede6096a6d625fb83c001a9d490d6" title="Set the payload length in preparation for filling in with data.">set_length</a>(<a class="code" href="classdtnsim_1_1TrAgent.html#6dde1de2967c07cd2b5d8acecf87f75f" title="size of each message">size_</a>);
<a name="l00114"></a>00114         
<a name="l00115"></a>00115     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#6025475ff9104e2720ddb5ecbc9ec923" title="Setters and mutable accessors.">set_priority</a>(0);
<a name="l00116"></a>00116     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#ac195072e859df4e1e8ae28dd299d03e" title="Setters and mutable accessors.">set_custody_requested</a>(<span class="keyword">false</span>);
<a name="l00117"></a>00117     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#1574534ce46a32052b604c3cdf5a5921" title="Setters and mutable accessors.">set_local_custody</a>(<span class="keyword">false</span>);
<a name="l00118"></a>00118     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#3b35e450cfd2504a5980d379f71f222c" title="Setters and mutable accessors.">set_singleton_dest</a>(<span class="keyword">false</span>);
<a name="l00119"></a>00119     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#ddbc653176fbf0ba1bf7702a72a55321" title="Setters and mutable accessors.">set_receive_rcpt</a>(<span class="keyword">false</span>);
<a name="l00120"></a>00120     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#8ed9f01350133711a4cd23aef1f4e941" title="Setters and mutable accessors.">set_custody_rcpt</a>(<span class="keyword">false</span>);
<a name="l00121"></a>00121     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#398c69ef798e99ea2f82e03f460d4aff" title="Setters and mutable accessors.">set_forward_rcpt</a>(<span class="keyword">false</span>);
<a name="l00122"></a>00122     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#fc9cb55b202687f98d31f4bba7859f73" title="Setters and mutable accessors.">set_delivery_rcpt</a>(<span class="keyword">false</span>);
<a name="l00123"></a>00123     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#c59da17a98c6ac9f32da043dc967f151" title="Setters and mutable accessors.">set_deletion_rcpt</a>(<span class="keyword">false</span>);
<a name="l00124"></a>00124     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#6a1c62659602921671e0d0d1e0b2f126" title="Setters and mutable accessors.">set_app_acked_rcpt</a>(<span class="keyword">false</span>);
<a name="l00125"></a>00125     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#f719a866982138aac40bc5f9ed52fa89" title="Setters and mutable accessors.">set_creation_ts</a>(<a class="code" href="structdtn_1_1BundleTimestamp.html" title="Simple struct definition for bundle creation timestamps.">BundleTimestamp</a>(BundleTimestamp::get_current_time(),
<a name="l00126"></a>00126                                        b-&gt;<a class="code" href="classdtn_1_1Bundle.html#7031e2e5e4078445bf4ad39cdcdea3b2" title="Accessors.">bundleid</a>()));
<a name="l00127"></a>00127     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#7623ecfe9e47e5dc075ebd872fb9a237" title="Setters and mutable accessors.">set_expiration</a>(<a class="code" href="classdtnsim_1_1TrAgent.html#a1b1308b36757b354ac2a50faf35bb7e" title="expiration time for each bundle">expiration_</a>);
<a name="l00128"></a>00128     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#fc3bc80899d4f0c92b163b2d662cd637" title="Setters and mutable accessors.">set_is_fragment</a>(<span class="keyword">false</span>);
<a name="l00129"></a>00129     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#1cb30932516cd93a9d1127fb3f3352d1" title="Setters and mutable accessors.">set_is_admin</a>(<span class="keyword">false</span>);
<a name="l00130"></a>00130     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#ce75b35784c110dc09986632e9d9eba1" title="Setters and mutable accessors.">set_do_not_fragment</a>(<span class="keyword">false</span>);
<a name="l00131"></a>00131     b-&gt;<a class="code" href="classdtn_1_1Bundle.html#657235d527f722a449ddc3c254e345c1" title="Setters and mutable accessors.">set_in_datastore</a>(<span class="keyword">false</span>);
<a name="l00132"></a>00132     <span class="comment">//b-&gt;orig_length_   = 0;</span>
<a name="l00133"></a>00133     <span class="comment">//b-&gt;frag_offset_   = 0;    </span>
<a name="l00134"></a>00134     
<a name="l00135"></a>00135     log_info(<span class="stringliteral">"N[%s]: GEN id:%d %s -&gt; %s size:%llu"</span>,
<a name="l00136"></a>00136              <a class="code" href="classdtnsim_1_1Node.html#0092d41cdd29927ede0833a8164885e9" title="Return the current active node.">Node::active_node</a>()-&gt;name(), b-&gt;<a class="code" href="classdtn_1_1Bundle.html#7031e2e5e4078445bf4ad39cdcdea3b2" title="Accessors.">bundleid</a>(),
<a name="l00137"></a>00137              <a class="code" href="classdtnsim_1_1TrAgent.html#296c76113761dd8230bd98a57db2192c" title="source eid">src_</a>.<a class="code" href="classdtn_1_1EndpointID.html#c9d8a72806359621f4d2850c1e78269c">c_str</a>(), <a class="code" href="classdtnsim_1_1TrAgent.html#8f87d9c8041db735ec36eeed15fdce2b" title="destination eid">dst_</a>.<a class="code" href="classdtn_1_1EndpointID.html#c9d8a72806359621f4d2850c1e78269c">c_str</a>(), U64FMT(<a class="code" href="classdtnsim_1_1TrAgent.html#6dde1de2967c07cd2b5d8acecf87f75f" title="size of each message">size_</a>));
<a name="l00138"></a>00138 
<a name="l00139"></a>00139     SimLog::instance()-&gt;log_gen(<a class="code" href="classdtnsim_1_1Node.html#0092d41cdd29927ede0833a8164885e9" title="Return the current active node.">Node::active_node</a>(), b);
<a name="l00140"></a>00140                 
<a name="l00141"></a>00141     BundleDaemon::post(<span class="keyword">new</span> <a class="code" href="classdtn_1_1BundleReceivedEvent.html" title="Event class for new bundle arrivals.">BundleReceivedEvent</a>(b, <a class="code" href="namespacedtn.html#60ee39c9672604f59fe1b12d4e1d142bf3e56dfb4e624d4f62d7099b60472072" title="a local application">EVENTSRC_APP</a>,
<a name="l00142"></a>00142                                                NULL <span class="comment">/* registration? */</span>));
<a name="l00143"></a>00143 }
<a name="l00144"></a>00144 
<a name="l00145"></a>00145 
<a name="l00146"></a>00146 } <span class="comment">// namespace dtnsim</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 30 09:26:58 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>