dtn::Registration Class Reference

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

#include <Registration.h>

Inheritance diagram for dtn::Registration:

dtn::AdminRegistration dtn::APIRegistration dtn::DTLSRRouter::DTLSRRouter::Reg dtn::LoggingRegistration dtn::PingRegistration dtn::TclRegistration dtnsim::SimRegistration

List of all members.

Classes

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

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, u_int32_t failure_action, u_int32_t session_flags, 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.
bool deliver_if_not_duplicate (Bundle *bundle)
 Deliver the bundle if it isn't a duplicate.
virtual void session_notify (Bundle *bundle)
 Hook for subclasses to handle a new session notification on this registration.
int format (char *buf, size_t sz) const
 Virtual from Formatter.
void serialize (oasys::SerializeAction *a)
 Virtual from SerializableObject.
void force_expire ()
 Force the registration to expire immediately.
const u_int32_t durable_key () const
 Accessors.
const u_int32_t regid () const
 Accessors.
const EndpointIDPatternendpoint () const
 Accessors.
failure_action_t failure_action () const
 Accessors.
const u_int32_t session_flags () const
 Accessors.
const std::string & script () const
 Accessors.
const u_int32_t expiration () const
 Accessors.
const bool active () const
 Accessors.
const bool expired () const
 Accessors.
void set_active (bool a)
 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 DTLSR_REGID = 4
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_
u_int32_t failure_action_
u_int32_t session_flags_
std::string script_
u_int32_t expiration_
u_int32_t creation_time_
ExpirationTimerexpiration_timer_
bool active_
bool bound_
bool expired_
BundleInfoCache delivery_cache_


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 43 of file Registration.h.


Member Enumeration Documentation

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 62 of file Registration.h.


Constructor & Destructor Documentation

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

Constructor for deserialization.

Definition at line 71 of file Registration.cc.

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

Constructor.

Definition at line 44 of file Registration.cc.

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

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

Destructor.

Definition at line 87 of file Registration.cc.

References cleanup_expiration_timer().


Member Function Documentation

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

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

Definition at line 126 of file Registration.cc.

References ASSERT, expiration_timer_, and expired_.

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

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

bool dtn::Registration::deliver_if_not_duplicate ( Bundle bundle  ) 

Deliver the bundle if it isn't a duplicate.

Definition at line 94 of file Registration.cc.

References dtn::BundleInfoCache::add_entry(), deliver_bundle(), delivery_cache_, and dtn::EndpointID::NULL_EID().

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

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

Accessors.

Definition at line 113 of file Registration.h.

References regid_.

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

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

Accessors.

Definition at line 122 of file Registration.h.

References expiration_.

Referenced by format().

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

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

Accessors.

Definition at line 116 of file Registration.h.

References failure_action_.

Referenced by format().

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

Get a string representation of a failure action.

Definition at line 32 of file Registration.cc.

References DEFER, DROP, and EXEC.

Referenced by format().

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 116 of file Registration.cc.

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

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

int dtn::Registration::format ( char *  buf,
size_t  sz 
) const

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

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

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

Accessors.

Definition at line 121 of file Registration.h.

References script_.

Referenced by format().

void dtn::Registration::serialize ( oasys::SerializeAction *  a  ) 

Virtual from SerializableObject.

Reimplemented in dtn::APIRegistration.

Definition at line 146 of file Registration.cc.

References creation_time_, endpoint_, expiration_, failure_action_, init_expiration_timer(), regid_, script_, and session_flags_.

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

const u_int32_t dtn::Registration::session_flags (  )  const [inline]

void dtn::Registration::session_notify ( Bundle bundle  )  [virtual]

Hook for subclasses to handle a new session notification on this registration.

Must be implemented by any custody registration subclasses since the default implementation just panics.

Reimplemented in dtn::APIRegistration.

Definition at line 108 of file Registration.cc.

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

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


Member Data Documentation

Definition at line 173 of file Registration.h.

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

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

Reserved registration identifiers.

Definition at line 51 of file Registration.h.

Definition at line 174 of file Registration.h.

u_int32_t dtn::Registration::creation_time_ [protected]

Definition at line 171 of file Registration.h.

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

Definition at line 176 of file Registration.h.

Referenced by deliver_if_not_duplicate().

const u_int32_t dtn::Registration::DTLSR_REGID = 4 [static]

Definition at line 55 of file Registration.h.

u_int32_t dtn::Registration::expiration_ [protected]

Definition at line 170 of file Registration.h.

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

Definition at line 172 of file Registration.h.

Referenced by cleanup_expiration_timer(), and init_expiration_timer().

Definition at line 175 of file Registration.h.

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

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

Definition at line 54 of file Registration.h.

u_int32_t dtn::Registration::failure_action_ [protected]

Definition at line 167 of file Registration.h.

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

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

Definition at line 52 of file Registration.h.

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

Definition at line 56 of file Registration.h.

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

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

Definition at line 53 of file Registration.h.

u_int32_t dtn::Registration::regid_ [protected]

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

Definition at line 169 of file Registration.h.

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

u_int32_t dtn::Registration::session_flags_ [protected]

Definition at line 168 of file Registration.h.

Referenced by serialize(), dtn::APIRegistration::serialize(), and session_flags().


The documentation for this class was generated from the following files:

Generated on Fri Jan 30 09:27:04 2009 for DTN Reference Implementation by  doxygen 1.5.8