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::PingRegistration 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 42 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, int 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 PING_REGID = 2
static const u_int32_t EXTERNALROUTER_REGID = 3
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_
int 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 57 of file Registration.h.


Constructor & Destructor Documentation

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

Constructor for deserialization.

Definition at line 64 of file Registration.cc.

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

Constructor.

Definition at line 40 of file Registration.cc.

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

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

Destructor.

Definition at line 79 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 28 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::PingRegistration, 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 94 of file Registration.h.

References regid_.

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

Accessors.

Definition at line 95 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 96 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 97 of file Registration.h.

References failure_action_.

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

Accessors.

Definition at line 99 of file Registration.h.

References script_.

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

Accessors.

Definition at line 100 of file Registration.h.

References expiration_.

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

Accessors.

Definition at line 101 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 102 of file Registration.h.

References active_.

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

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

Accessors.

Definition at line 103 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 104 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 116 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 86 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 135 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 96 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 47 of file Registration.h.

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

Definition at line 48 of file Registration.h.

const u_int32_t dtn::Registration::PING_REGID = 2 [static]

Definition at line 49 of file Registration.h.

const u_int32_t dtn::Registration::EXTERNALROUTER_REGID = 3 [static]

Definition at line 50 of file Registration.h.

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

Definition at line 51 of file Registration.h.

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

u_int32_t dtn::Registration::regid_ [protected]

Definition at line 137 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 138 of file Registration.h.

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

int dtn::Registration::failure_action_ [protected]

Definition at line 139 of file Registration.h.

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

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

Definition at line 140 of file Registration.h.

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

u_int32_t dtn::Registration::expiration_ [protected]

Definition at line 141 of file Registration.h.

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

u_int32_t dtn::Registration::creation_time_ [protected]

Definition at line 142 of file Registration.h.

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

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

Definition at line 143 of file Registration.h.

Referenced by cleanup_expiration_timer(), and init_expiration_timer().

bool dtn::Registration::active_ [protected]

Definition at line 144 of file Registration.h.

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

bool dtn::Registration::bound_ [protected]

Definition at line 145 of file Registration.h.

bool dtn::Registration::expired_ [protected]

Definition at line 146 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 Thu Jun 7 16:56:58 2007 for DTN Reference Implementation by  doxygen 1.5.1