dtn::Registration Class Reference

#include <Registration.h>

Inheritance diagram for dtn::Registration:

oasys::SerializableObject oasys::Logger dtn::AdminRegistration dtn::APIRegistration dtn::LinkStateRouter::LSRegistration dtn::LoggingRegistration dtn::TclRegistration dtnsim::SimRegistration List of all members.

Detailed Description

Class used to represent an "application" registration, loosely defined to also include internal router mechanisms that consume bundles.

Stored in the RegistrationTable, indexed by regid.

Registration state is stored persistently in the database.

Definition at line 63 of file Registration.h.

Public Types

enum  failure_action_t { DROP, DEFER, EXEC }
 Type enumerating the option requested by the registration for how to handle bundles when not connected. More...

Public Member Functions

 Registration (const oasys::Builder &)
 Constructor for deserialization.
 Registration (u_int32_t regid, const EndpointIDPattern &endpoint, failure_action_t action, u_int32_t expiration, const std::string &script="")
 Constructor.
virtual ~Registration ()
 Destructor.
virtual void deliver_bundle (Bundle *bundle)=0
 Abstract hook for subclasses to deliver a bundle to this registration.
void serialize (oasys::SerializeAction *a)
 Virtual from SerializableObject.
void force_expire ()
 Force the registration to expire immediately.
u_int32_t durable_key ()
 Accessors.
u_int32_t regid ()
 Accessors.
const EndpointIDPatternendpoint ()
 Accessors.
failure_action_t failure_action ()
 Accessors.
const std::string & script ()
 Accessors.
u_int32_t expiration ()
 Accessors.
bool active ()
 Accessors.
void set_active (bool a)
 Accessors.
bool expired ()
 Accessors.
void set_expired (bool e)
 Accessors.

Static Public Member Functions

static const char * failure_action_toa (failure_action_t action)
 Get a string representation of a failure action.

Static Public Attributes

static const u_int32_t ADMIN_REGID = 0
 Reserved registration identifiers.
static const u_int32_t LINKSTATEROUTER_REGID = 1
static const u_int32_t MAX_RESERVED_REGID = 9

Protected Member Functions

void init_expiration_timer ()
void cleanup_expiration_timer ()

Protected Attributes

u_int32_t regid_
EndpointIDPattern endpoint_
failure_action_t failure_action_
std::string script_
u_int32_t expiration_
u_int32_t creation_time_
ExpirationTimerexpiration_timer_
bool active_
bool bound_
bool expired_

Classes

class  ExpirationTimer
 Class to implement registration expirations. More...


Member Enumeration Documentation

enum dtn::Registration::failure_action_t

Type enumerating the option requested by the registration for how to handle bundles when not connected.

Enumerator:
DROP  Drop bundles.
DEFER  Spool bundles until requested.
EXEC  Execute the specified callback procedure.

Definition at line 76 of file Registration.h.


Constructor & Destructor Documentation

dtn::Registration::Registration ( const oasys::Builder  ) 

Constructor for deserialization.

Definition at line 85 of file Registration.cc.

dtn::Registration::Registration ( u_int32_t  regid,
const EndpointIDPattern endpoint,
failure_action_t  action,
u_int32_t  expiration,
const std::string &  script = "" 
)

Constructor.

Definition at line 61 of file Registration.cc.

References creation_time_, dtnsim::gettimeofday(), and init_expiration_timer().

dtn::Registration::~Registration (  )  [virtual]

Destructor.

Definition at line 100 of file Registration.cc.

References cleanup_expiration_timer().


Member Function Documentation

const char * dtn::Registration::failure_action_toa ( failure_action_t  action  )  [static]

Get a string representation of a failure action.

Definition at line 49 of file Registration.cc.

References DEFER, DROP, and EXEC.

Referenced by dtn::RegistrationTable::dump().

virtual void dtn::Registration::deliver_bundle ( Bundle bundle  )  [pure virtual]

Abstract hook for subclasses to deliver a bundle to this registration.

Implemented in dtn::AdminRegistration, dtn::APIRegistration, dtn::LoggingRegistration, dtn::TclRegistration, dtn::LinkStateRouter::LSRegistration, and dtnsim::SimRegistration.

Referenced by dtn::BundleDaemon::deliver_to_registration().

u_int32_t dtn::Registration::durable_key (  )  [inline]

Accessors.

Definition at line 113 of file Registration.h.

References regid_.

u_int32_t dtn::Registration::regid (  )  [inline]

Accessors.

Definition at line 114 of file Registration.h.

References regid_.

Referenced by dtn::RegistrationTable::add(), dtn::APIClient::close_session(), dtn::BundleDaemon::deliver_to_registration(), dtn::RegistrationTable::find(), dtn::RegistrationTable::get_matching(), dtn::APIClient::handle_bind(), dtn::BundleDaemon::handle_bundle_delivered(), dtn::APIClient::handle_find_registration(), dtn::APIClient::handle_recv(), dtn::BundleDaemon::handle_registration_added(), dtn::BundleDaemon::handle_registration_expired(), dtn::BundleDaemon::handle_registration_removed(), dtn::APIClient::handle_unregister(), dtn::Registration::ExpirationTimer::timeout(), dtn::RegistrationTable::update(), and dtn::APIClient::wait_for_bundle().

const EndpointIDPattern& dtn::Registration::endpoint (  )  [inline]

Accessors.

Definition at line 115 of file Registration.h.

References endpoint_.

Referenced by dtn::RegistrationTable::add(), dtn::BundleDaemon::deliver_to_registration(), dtn::RegistrationTable::get(), dtn::RegistrationTable::get_matching(), dtn::BundleDaemon::handle_bundle_delivered(), dtn::BundleDaemon::handle_registration_added(), dtn::BundleDaemon::handle_registration_removed(), dtn::LoggingRegistration::LoggingRegistration(), dtn::TclRegistration::TclRegistration(), and dtn::RegistrationTable::update().

failure_action_t dtn::Registration::failure_action (  )  [inline]

Accessors.

Definition at line 116 of file Registration.h.

References failure_action_.

const std::string& dtn::Registration::script (  )  [inline]

Accessors.

Definition at line 117 of file Registration.h.

References script_.

u_int32_t dtn::Registration::expiration (  )  [inline]

Accessors.

Definition at line 118 of file Registration.h.

References expiration_.

bool dtn::Registration::active (  )  [inline]

Accessors.

Definition at line 119 of file Registration.h.

References active_.

Referenced by dtn::APIRegistration::deliver_bundle(), dtn::APIClient::handle_bind(), dtn::BundleDaemon::handle_registration_expired(), dtn::APIClient::handle_unbind(), dtn::APIClient::handle_unregister(), and dtn::Registration::ExpirationTimer::timeout().

void dtn::Registration::set_active ( bool  a  )  [inline]

Accessors.

Definition at line 120 of file Registration.h.

References active_.

Referenced by dtn::APIClient::close_session(), dtn::APIClient::handle_bind(), dtn::APIClient::handle_register(), dtn::APIClient::handle_unbind(), dtn::LoggingRegistration::LoggingRegistration(), and dtn::TclRegistration::TclRegistration().

bool dtn::Registration::expired (  )  [inline]

Accessors.

Definition at line 121 of file Registration.h.

References expired_.

Referenced by dtn::APIClient::close_session(), and dtn::APIClient::handle_unregister().

void dtn::Registration::set_expired ( bool  e  )  [inline]

Accessors.

Definition at line 122 of file Registration.h.

References expired_.

Referenced by force_expire(), dtn::BundleDaemon::handle_registration_expired(), init_expiration_timer(), and dtn::Registration::ExpirationTimer::timeout().

void dtn::Registration::serialize ( oasys::SerializeAction a  )  [virtual]

Virtual from SerializableObject.

Implements oasys::SerializableObject.

Definition at line 137 of file Registration.cc.

References oasys::SerializeAction::action_code(), creation_time_, endpoint_, expiration_, failure_action_, init_expiration_timer(), oasys::Logger::logpathf(), oasys::SerializeAction::process(), regid_, script_, and oasys::Serialize::UNMARSHAL.

Referenced by dtn::RegistrationCommand::exec().

void dtn::Registration::force_expire (  ) 

Force the registration to expire immediately.

This hook is used to allow applications to call unregister on a bound registration, which causes the registration to be cleaned up once the app quits.

Definition at line 107 of file Registration.cc.

References active_, ASSERT, cleanup_expiration_timer(), and set_expired().

Referenced by dtn::APIClient::handle_unregister().

void dtn::Registration::init_expiration_timer (  )  [protected]

Definition at line 156 of file Registration.cc.

References creation_time_, expiration_, expiration_timer_, dtnsim::gettimeofday(), log_debug, log_warn, regid_, oasys::Timer::schedule_at(), set_expired(), and TIMEVAL_DIFF_MSEC.

Referenced by Registration(), and serialize().

void dtn::Registration::cleanup_expiration_timer (  )  [protected]

Definition at line 117 of file Registration.cc.

References ASSERT, oasys::Timer::cancel(), expiration_timer_, and expired_.

Referenced by force_expire(), and ~Registration().


Member Data Documentation

const u_int32_t dtn::Registration::ADMIN_REGID = 0 [static]

Reserved registration identifiers.

Definition at line 68 of file Registration.h.

const u_int32_t dtn::Registration::LINKSTATEROUTER_REGID = 1 [static]

Definition at line 69 of file Registration.h.

const u_int32_t dtn::Registration::MAX_RESERVED_REGID = 9 [static]

Definition at line 70 of file Registration.h.

Referenced by dtn::RegistrationTable::add(), and dtn::GlobalStore::do_init().

u_int32_t dtn::Registration::regid_ [protected]

Definition at line 155 of file Registration.h.

Referenced by dtn::APIRegistration::deliver_bundle(), durable_key(), init_expiration_timer(), dtn::LoggingRegistration::LoggingRegistration(), regid(), serialize(), dtnsim::SimRegistration::SimRegistration(), and dtn::TclRegistration::TclRegistration().

EndpointIDPattern dtn::Registration::endpoint_ [protected]

Definition at line 156 of file Registration.h.

Referenced by dtn::APIRegistration::deliver_bundle(), endpoint(), and serialize().

failure_action_t dtn::Registration::failure_action_ [protected]

Definition at line 157 of file Registration.h.

Referenced by dtn::APIRegistration::deliver_bundle(), failure_action(), and serialize().

std::string dtn::Registration::script_ [protected]

Definition at line 158 of file Registration.h.

Referenced by dtn::APIRegistration::deliver_bundle(), script(), and serialize().

u_int32_t dtn::Registration::expiration_ [protected]

Definition at line 159 of file Registration.h.

Referenced by expiration(), init_expiration_timer(), and serialize().

u_int32_t dtn::Registration::creation_time_ [protected]

Definition at line 160 of file Registration.h.

Referenced by init_expiration_timer(), Registration(), and serialize().

ExpirationTimer* dtn::Registration::expiration_timer_ [protected]

Definition at line 161 of file Registration.h.

Referenced by cleanup_expiration_timer(), and init_expiration_timer().

bool dtn::Registration::active_ [protected]

Definition at line 162 of file Registration.h.

Referenced by active(), force_expire(), and set_active().

bool dtn::Registration::bound_ [protected]

Definition at line 163 of file Registration.h.

bool dtn::Registration::expired_ [protected]

Definition at line 164 of file Registration.h.

Referenced by cleanup_expiration_timer(), expired(), and set_expired().


The documentation for this class was generated from the following files:
Generated on Fri Dec 22 14:48:04 2006 for DTN Reference Implementation by  doxygen 1.5.1