#include <Session.h>
Public Types | |
enum | flags_t { NONE = 0, SUBSCRIBE = 1<<1, RESUBSCRIBE = 1<<2, UNSUBSCRIBE = 1<<3, SUBSCRIPTION_ACK = 1<<4, PUBLISH = 1<<5, CUSTODY = 1<<6 } |
Type for session-related flags. More... | |
Public Member Functions | |
Session (const EndpointID &eid) | |
virtual | ~Session () |
virtual int | format (char *buf, size_t sz) const |
virtual from Formatter | |
void | set_upstream (const Subscriber &subscriber) |
void | add_subscriber (const Subscriber &subscriber) |
void | set_resubscribe_timer (oasys::Timer *t) |
u_int32_t | id () const |
const EndpointID & | eid () const |
const Subscriber & | upstream () const |
const SubscriberList & | subscribers () const |
BundleList * | bundles () |
SequenceID * | sequence_id () |
oasys::Timer * | resubscribe_timer () |
Static Public Member Functions | |
static const char * | flag_str (u_int flags) |
Pretty print function for session flags. | |
Protected Attributes | |
u_int32_t | id_ |
Unique session id (for logging). | |
EndpointID | eid_ |
EndpointID naming the session. | |
Subscriber | upstream_ |
Subscriber in direction of a custodian. | |
SubscriberList | subscribers_ |
Local + downstream subscribers. | |
BundleList | bundles_ |
Currently-resident session bundles. | |
SequenceID | sequence_id_ |
SequenceID that covers all bundles. | |
oasys::Timer * | resubscribe_timer_ |
Timer to re-send subscribe message. |
Definition at line 38 of file Session.h.
dtn::Session::Session | ( | const EndpointID & | eid | ) |
dtn::Session::~Session | ( | ) | [virtual] |
Definition at line 42 of file Session.cc.
void dtn::Session::add_subscriber | ( | const Subscriber & | subscriber | ) |
Definition at line 85 of file Session.cc.
References subscribers_.
Referenced by dtn::TableBasedRouter::add_subscriber(), dtn::TableBasedRouter::handle_registration_added(), and set_upstream().
BundleList* dtn::Session::bundles | ( | ) | [inline] |
Definition at line 78 of file Session.h.
References bundles_.
Referenced by dtn::TableBasedRouter::add_bundle_to_session(), dtn::TableBasedRouter::add_subscriber(), and dtn::TableBasedRouter::delete_bundle().
const EndpointID& dtn::Session::eid | ( | ) | const [inline] |
Definition at line 75 of file Session.h.
References eid_.
Referenced by dtn::SessionTable::add_session(), dtn::TableBasedRouter::add_subscriber(), dtn::SessionTable::dump(), dtn::TableBasedRouter::find_session_upstream(), format(), and dtn::TableBasedRouter::subscribe_to_session().
const char * dtn::Session::flag_str | ( | u_int | flags | ) | [static] |
Pretty print function for session flags.
Definition at line 55 of file Session.cc.
References buf, CUSTODY, PUBLISH, RESUBSCRIBE, SUBSCRIBE, and UNSUBSCRIBE.
Referenced by dtn::TableBasedRouter::handle_session_bundle(), and dtn::APIClient::handle_session_update().
int dtn::Session::format | ( | char * | buf, | |
size_t | sz | |||
) | const [virtual] |
u_int32_t dtn::Session::id | ( | ) | const [inline] |
oasys::Timer* dtn::Session::resubscribe_timer | ( | ) | [inline] |
Definition at line 80 of file Session.h.
References resubscribe_timer_.
Referenced by dtn::TableBasedRouter::subscribe_to_session().
SequenceID* dtn::Session::sequence_id | ( | ) | [inline] |
Definition at line 79 of file Session.h.
References sequence_id_.
Referenced by dtn::TableBasedRouter::add_bundle_to_session(), and dtn::TableBasedRouter::subscribe_to_session().
void dtn::Session::set_resubscribe_timer | ( | oasys::Timer * | t | ) | [inline] |
Definition at line 72 of file Session.h.
References resubscribe_timer_.
Referenced by dtn::TableBasedRouter::subscribe_to_session(), and dtn::TableBasedRouter::TableBasedRouter::ResubscribeTimer::timeout().
void dtn::Session::set_upstream | ( | const Subscriber & | subscriber | ) |
Definition at line 75 of file Session.cc.
References add_subscriber(), and upstream_.
Referenced by dtn::TableBasedRouter::find_session_upstream().
const SubscriberList& dtn::Session::subscribers | ( | ) | const [inline] |
Definition at line 77 of file Session.h.
References subscribers_.
Referenced by dtn::TableBasedRouter::can_delete_bundle(), and dtn::SessionTable::dump().
const Subscriber& dtn::Session::upstream | ( | ) | const [inline] |
Definition at line 76 of file Session.h.
References upstream_.
Referenced by dtn::SessionTable::dump(), dtn::TableBasedRouter::find_session_upstream(), and dtn::TableBasedRouter::subscribe_to_session().
BundleList dtn::Session::bundles_ [protected] |
EndpointID dtn::Session::eid_ [protected] |
u_int32_t dtn::Session::id_ [protected] |
oasys::Timer* dtn::Session::resubscribe_timer_ [protected] |
Timer to re-send subscribe message.
Definition at line 89 of file Session.h.
Referenced by resubscribe_timer(), and set_resubscribe_timer().
SequenceID dtn::Session::sequence_id_ [protected] |
SequenceID that covers all bundles.
Definition at line 88 of file Session.h.
Referenced by sequence_id().
SubscriberList dtn::Session::subscribers_ [protected] |
Local + downstream subscribers.
Definition at line 86 of file Session.h.
Referenced by add_subscriber(), and subscribers().
Subscriber dtn::Session::upstream_ [protected] |
Subscriber in direction of a custodian.
Definition at line 85 of file Session.h.
Referenced by set_upstream(), and upstream().