#include <Registration.h>
Inheritance diagram for dtn::Registration:
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 EndpointIDPattern & | endpoint () |
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_ |
ExpirationTimer * | expiration_timer_ |
bool | active_ |
bool | bound_ |
bool | expired_ |
Classes | |
class | ExpirationTimer |
Class to implement registration expirations. More... |
Type enumerating the option requested by the registration for how to handle bundles when not connected.
DROP | Drop bundles. |
DEFER | Spool bundles until requested. |
EXEC | Execute the specified callback procedure. |
Definition at line 76 of file Registration.h.
dtn::Registration::Registration | ( | const oasys::Builder & | ) |
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] |
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] |
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] |
const std::string& dtn::Registration::script | ( | ) | [inline] |
u_int32_t dtn::Registration::expiration | ( | ) | [inline] |
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().
const u_int32_t dtn::Registration::ADMIN_REGID = 0 [static] |
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().