<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>DTN Reference Implementation: dtn::APIRegistration 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 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="namespacedtn.html">dtn</a>::<a class="el" href="classdtn_1_1APIRegistration.html">APIRegistration</a> </div> </div> <div class="contents"> <h1>dtn::APIRegistration Class Reference</h1><!-- doxytag: class="dtn::APIRegistration" --><!-- doxytag: inherits="dtn::Registration" --><a class="el" href="classdtn_1_1Registration.html" title="Class used to represent an "application" registration, loosely defined...">Registration</a> class to represent an actual attached application over the client api. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="APIRegistration_8h-source.html">APIRegistration.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for dtn::APIRegistration:</div> <div class="dynsection"> <p><center><img src="classdtn_1_1APIRegistration.png" usemap="#dtn::APIRegistration_map" border="0" alt=""></center> <map name="dtn::APIRegistration_map"> <area href="classdtn_1_1Registration.html" alt="dtn::Registration" shape="rect" coords="0,0,121,24"> </map> </div> <p> <a href="classdtn_1_1APIRegistration-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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#655c811c051e82c6ef0d1089bb6cd641">APIRegistration</a> (const oasys::Builder &builder)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor for deserialization. <a href="#655c811c051e82c6ef0d1089bb6cd641"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#be72e7c2e0fba7c2a3320604d34fb536">APIRegistration</a> (u_int32_t regid, const <a class="el" href="classdtn_1_1EndpointIDPattern.html">EndpointIDPattern</a> &endpoint, <a class="el" href="classdtn_1_1Registration.html#7f4eb0e60d645c02fb6f7738de198cee">failure_action_t</a> action, u_int32_t session_flags, u_int32_t expiration, const std::string &script="")</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#be72e7c2e0fba7c2a3320604d34fb536"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#6dbe7c6e426a34d303a0088f17cba57f">~APIRegistration</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#176d274dfae1c74dd7f9b559f878d5d8">serialize</a> (oasys::SerializeAction *a)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Virtual from SerializableObject. <a href="#176d274dfae1c74dd7f9b559f878d5d8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#6f726b18f6b40dc2d06515e8faf73fc5">deliver_bundle</a> (<a class="el" href="classdtn_1_1Bundle.html">Bundle</a> *bundle)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Virtual from <a class="el" href="classdtn_1_1Registration.html" title="Class used to represent an "application" registration, loosely defined...">Registration</a>. <a href="#6f726b18f6b40dc2d06515e8faf73fc5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#a33ea2487250a89197cddd76c12b53df">session_notify</a> (<a class="el" href="classdtn_1_1Bundle.html">Bundle</a> *bundle)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Hook for subclasses to handle a new session notification on this registration. <a href="#a33ea2487250a89197cddd76c12b53df"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1BlockingBundleList.html">BlockingBundleList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#3aad0d8a4f5603f63cb9f09adc1050e6">bundle_list</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accessor for the queue of bundles for the registration. <a href="#3aad0d8a4f5603f63cb9f09adc1050e6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1BlockingBundleList.html">BlockingBundleList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#dd7acdd55f2afbe277a26258195dc0a2">session_notify_list</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accessor for notification of session subscribers / unsubscribers (currently just the subscription bundles). <a href="#dd7acdd55f2afbe277a26258195dc0a2"></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="classdtn_1_1BlockingBundleList.html">BlockingBundleList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#4932a64058476cc73138682306cd1aa6">bundle_list_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Queue of bundles for the registration. <a href="#4932a64058476cc73138682306cd1aa6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classdtn_1_1BlockingBundleList.html">BlockingBundleList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdtn_1_1APIRegistration.html#b4159c1472529a1a7f89c4523cd22ec7">session_notify_list_</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Queue of subscription notification bundles. <a href="#b4159c1472529a1a7f89c4523cd22ec7"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <a class="el" href="classdtn_1_1Registration.html" title="Class used to represent an "application" registration, loosely defined...">Registration</a> class to represent an actual attached application over the client api. <p>Definition at line <a class="el" href="APIRegistration_8h-source.html#l00031">31</a> of file <a class="el" href="APIRegistration_8h-source.html">APIRegistration.h</a>.</p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="655c811c051e82c6ef0d1089bb6cd641"></a><!-- doxytag: member="dtn::APIRegistration::APIRegistration" ref="655c811c051e82c6ef0d1089bb6cd641" args="(const oasys::Builder &builder)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dtn::APIRegistration::APIRegistration </td> <td>(</td> <td class="paramtype">const oasys::Builder & </td> <td class="paramname"> <em>builder</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor for deserialization. <p> <p>Definition at line <a class="el" href="APIRegistration_8cc-source.html#l00030">30</a> of file <a class="el" href="APIRegistration_8cc-source.html">APIRegistration.cc</a>.</p> <p>References <a class="el" href="APIRegistration_8h-source.html#l00070">bundle_list_</a>, and <a class="el" href="APIRegistration_8h-source.html#l00073">session_notify_list_</a>.</p> </div> </div><p> <a class="anchor" name="be72e7c2e0fba7c2a3320604d34fb536"></a><!-- doxytag: member="dtn::APIRegistration::APIRegistration" ref="be72e7c2e0fba7c2a3320604d34fb536" args="(u_int32_t regid, const EndpointIDPattern &endpoint, failure_action_t action, u_int32_t session_flags, u_int32_t expiration, const std::string &script="")" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dtn::APIRegistration::APIRegistration </td> <td>(</td> <td class="paramtype">u_int32_t </td> <td class="paramname"> <em>regid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classdtn_1_1EndpointIDPattern.html">EndpointIDPattern</a> & </td> <td class="paramname"> <em>endpoint</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classdtn_1_1Registration.html#7f4eb0e60d645c02fb6f7738de198cee">failure_action_t</a> </td> <td class="paramname"> <em>action</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">u_int32_t </td> <td class="paramname"> <em>session_flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">u_int32_t </td> <td class="paramname"> <em>expiration</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>script</em> = <code>""</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor. <p> <p>Definition at line <a class="el" href="APIRegistration_8cc-source.html#l00038">38</a> of file <a class="el" href="APIRegistration_8cc-source.html">APIRegistration.cc</a>.</p> <p>References <a class="el" href="APIRegistration_8h-source.html#l00070">bundle_list_</a>, <a class="el" href="Session_8h-source.html#l00056">dtn::Session::CUSTODY</a>, and <a class="el" href="APIRegistration_8h-source.html#l00073">session_notify_list_</a>.</p> </div> </div><p> <a class="anchor" name="6dbe7c6e426a34d303a0088f17cba57f"></a><!-- doxytag: member="dtn::APIRegistration::~APIRegistration" ref="6dbe7c6e426a34d303a0088f17cba57f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dtn::APIRegistration::~APIRegistration </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="APIRegistration_8cc-source.html#l00070">70</a> of file <a class="el" href="APIRegistration_8cc-source.html">APIRegistration.cc</a>.</p> <p>References <a class="el" href="APIRegistration_8h-source.html#l00070">bundle_list_</a>, and <a class="el" href="APIRegistration_8h-source.html#l00073">session_notify_list_</a>.</p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="3aad0d8a4f5603f63cb9f09adc1050e6"></a><!-- doxytag: member="dtn::APIRegistration::bundle_list" ref="3aad0d8a4f5603f63cb9f09adc1050e6" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdtn_1_1BlockingBundleList.html">BlockingBundleList</a>* dtn::APIRegistration::bundle_list </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Accessor for the queue of bundles for the registration. <p> <p>Definition at line <a class="el" href="APIRegistration_8h-source.html#l00060">60</a> of file <a class="el" href="APIRegistration_8h-source.html">APIRegistration.h</a>.</p> <p>References <a class="el" href="APIRegistration_8h-source.html#l00070">bundle_list_</a>.</p> <p>Referenced by <a class="el" href="APIServer_8cc-source.html#l01187">dtn::APIClient::handle_recv()</a>, and <a class="el" href="APIServer_8cc-source.html#l01620">dtn::APIClient::wait_for_notify()</a>.</p> </div> </div><p> <a class="anchor" name="6f726b18f6b40dc2d06515e8faf73fc5"></a><!-- doxytag: member="dtn::APIRegistration::deliver_bundle" ref="6f726b18f6b40dc2d06515e8faf73fc5" args="(Bundle *bundle)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dtn::APIRegistration::deliver_bundle </td> <td>(</td> <td class="paramtype"><a class="el" href="classdtn_1_1Bundle.html">Bundle</a> * </td> <td class="paramname"> <em>bundle</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Virtual from <a class="el" href="classdtn_1_1Registration.html" title="Class used to represent an "application" registration, loosely defined...">Registration</a>. <p> <p>Implements <a class="el" href="classdtn_1_1Registration.html#6e66f84ad64d676654ea7ef89f24cd69">dtn::Registration</a>.</p> <p>Definition at line <a class="el" href="APIRegistration_8cc-source.html#l00080">80</a> of file <a class="el" href="APIRegistration_8cc-source.html">APIRegistration.cc</a>.</p> <p>References <a class="el" href="Registration_8h-source.html#l00123">dtn::Registration::active()</a>, <a class="el" href="APIRegistration_8h-source.html#l00070">bundle_list_</a>, <a class="el" href="bundling_2Bundle_8h-source.html#l00201">dtn::Bundle::bundleid()</a>, <a class="el" href="EndpointID_8h-source.html#l00264">dtn::EndpointID::c_str()</a>, <a class="el" href="Registration_8h-source.html#l00063">dtn::Registration::DROP</a>, <a class="el" href="Registration_8h-source.html#l00166">dtn::Registration::endpoint_</a>, <a class="el" href="Registration_8h-source.html#l00065">dtn::Registration::EXEC</a>, <a class="el" href="Registration_8h-source.html#l00167">dtn::Registration::failure_action_</a>, <a class="el" href="BundleList_8cc-source.html#l00174">dtn::BundleList::insert_random()</a>, <a class="el" href="BundleDaemon_8cc-source.html#l00134">dtn::BundleDaemon::post()</a>, <a class="el" href="BundleList_8cc-source.html#l00130">dtn::BundleList::push_back()</a>, <a class="el" href="Registration_8h-source.html#l00165">dtn::Registration::regid_</a>, and <a class="el" href="Registration_8h-source.html#l00169">dtn::Registration::script_</a>.</p> </div> </div><p> <a class="anchor" name="176d274dfae1c74dd7f9b559f878d5d8"></a><!-- doxytag: member="dtn::APIRegistration::serialize" ref="176d274dfae1c74dd7f9b559f878d5d8" args="(oasys::SerializeAction *a)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dtn::APIRegistration::serialize </td> <td>(</td> <td class="paramtype">oasys::SerializeAction * </td> <td class="paramname"> <em>a</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Virtual from SerializableObject. <p> <p>Reimplemented from <a class="el" href="classdtn_1_1Registration.html#392bf27256b230ef7d93cc6054fbbcef">dtn::Registration</a>.</p> <p>Definition at line <a class="el" href="APIRegistration_8cc-source.html#l00057">57</a> of file <a class="el" href="APIRegistration_8cc-source.html">APIRegistration.cc</a>.</p> <p>References <a class="el" href="Session_8h-source.html#l00056">dtn::Session::CUSTODY</a>, <a class="el" href="Registration_8h-source.html#l00168">dtn::Registration::session_flags_</a>, and <a class="el" href="APIRegistration_8h-source.html#l00073">session_notify_list_</a>.</p> </div> </div><p> <a class="anchor" name="a33ea2487250a89197cddd76c12b53df"></a><!-- doxytag: member="dtn::APIRegistration::session_notify" ref="a33ea2487250a89197cddd76c12b53df" args="(Bundle *bundle)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dtn::APIRegistration::session_notify </td> <td>(</td> <td class="paramtype"><a class="el" href="classdtn_1_1Bundle.html">Bundle</a> * </td> <td class="paramname"> <em>bundle</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Hook for subclasses to handle a new session notification on this registration. <p> Must be implemented by any custody registration subclasses since the default implementation just panics. <p>Reimplemented from <a class="el" href="classdtn_1_1Registration.html#94ef089f390f2aad0e99ecfbd53b3819">dtn::Registration</a>.</p> <p>Definition at line <a class="el" href="APIRegistration_8cc-source.html#l00117">117</a> of file <a class="el" href="APIRegistration_8cc-source.html">APIRegistration.cc</a>.</p> <p>References <a class="el" href="BundleList_8cc-source.html#l00130">dtn::BundleList::push_back()</a>, and <a class="el" href="APIRegistration_8h-source.html#l00073">session_notify_list_</a>.</p> </div> </div><p> <a class="anchor" name="dd7acdd55f2afbe277a26258195dc0a2"></a><!-- doxytag: member="dtn::APIRegistration::session_notify_list" ref="dd7acdd55f2afbe277a26258195dc0a2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdtn_1_1BlockingBundleList.html">BlockingBundleList</a>* dtn::APIRegistration::session_notify_list </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Accessor for notification of session subscribers / unsubscribers (currently just the subscription bundles). <p> <p>Definition at line <a class="el" href="APIRegistration_8h-source.html#l00066">66</a> of file <a class="el" href="APIRegistration_8h-source.html">APIRegistration.h</a>.</p> <p>References <a class="el" href="APIRegistration_8h-source.html#l00073">session_notify_list_</a>.</p> <p>Referenced by <a class="el" href="APIServer_8cc-source.html#l00506">dtn::APIClient::handle_register()</a>, <a class="el" href="APIServer_8cc-source.html#l01553">dtn::APIClient::handle_session_update()</a>, and <a class="el" href="APIServer_8cc-source.html#l01620">dtn::APIClient::wait_for_notify()</a>.</p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="4932a64058476cc73138682306cd1aa6"></a><!-- doxytag: member="dtn::APIRegistration::bundle_list_" ref="4932a64058476cc73138682306cd1aa6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdtn_1_1BlockingBundleList.html">BlockingBundleList</a>* <a class="el" href="classdtn_1_1APIRegistration.html#4932a64058476cc73138682306cd1aa6">dtn::APIRegistration::bundle_list_</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Queue of bundles for the registration. <p> <p>Definition at line <a class="el" href="APIRegistration_8h-source.html#l00070">70</a> of file <a class="el" href="APIRegistration_8h-source.html">APIRegistration.h</a>.</p> <p>Referenced by <a class="el" href="APIRegistration_8cc-source.html#l00030">APIRegistration()</a>, <a class="el" href="APIRegistration_8h-source.html#l00060">bundle_list()</a>, <a class="el" href="APIRegistration_8cc-source.html#l00080">deliver_bundle()</a>, and <a class="el" href="APIRegistration_8cc-source.html#l00070">~APIRegistration()</a>.</p> </div> </div><p> <a class="anchor" name="b4159c1472529a1a7f89c4523cd22ec7"></a><!-- doxytag: member="dtn::APIRegistration::session_notify_list_" ref="b4159c1472529a1a7f89c4523cd22ec7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdtn_1_1BlockingBundleList.html">BlockingBundleList</a>* <a class="el" href="classdtn_1_1APIRegistration.html#b4159c1472529a1a7f89c4523cd22ec7">dtn::APIRegistration::session_notify_list_</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Queue of subscription notification bundles. <p> <p>Definition at line <a class="el" href="APIRegistration_8h-source.html#l00073">73</a> of file <a class="el" href="APIRegistration_8h-source.html">APIRegistration.h</a>.</p> <p>Referenced by <a class="el" href="APIRegistration_8cc-source.html#l00030">APIRegistration()</a>, <a class="el" href="APIRegistration_8cc-source.html#l00057">serialize()</a>, <a class="el" href="APIRegistration_8cc-source.html#l00117">session_notify()</a>, <a class="el" href="APIRegistration_8h-source.html#l00066">session_notify_list()</a>, and <a class="el" href="APIRegistration_8cc-source.html#l00070">~APIRegistration()</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="APIRegistration_8h-source.html">APIRegistration.h</a><li><a class="el" href="APIRegistration_8cc-source.html">APIRegistration.cc</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jan 30 09:27:04 2009 for DTN Reference Implementation by <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>