dtn::Session Class Reference

Class to manage a session. More...

#include <Session.h>

Inheritance diagram for dtn::Session:

dtn::RouteEntryInfo

List of all members.

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 EndpointIDeid () const
const Subscriberupstream () const
const SubscriberListsubscribers () const
BundleListbundles ()
SequenceIDsequence_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.


Detailed Description

Class to manage a session.

Definition at line 38 of file Session.h.


Member Enumeration Documentation

Type for session-related flags.

XXX/demmer should split these into two enums.

Enumerator:
NONE 
SUBSCRIBE 
RESUBSCRIBE 
UNSUBSCRIBE 
SUBSCRIPTION_ACK 
PUBLISH 
CUSTODY 

Definition at line 49 of file Session.h.


Constructor & Destructor Documentation

dtn::Session::Session ( const EndpointID eid  ) 

Definition at line 28 of file Session.cc.

References dtn::EndpointID::c_str(), and id_.

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

Definition at line 42 of file Session.cc.


Member Function Documentation

void dtn::Session::add_subscriber ( const Subscriber subscriber  ) 

BundleList* dtn::Session::bundles (  )  [inline]

const EndpointID& dtn::Session::eid (  )  const [inline]

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]

virtual from Formatter

Definition at line 48 of file Session.cc.

References eid().

u_int32_t dtn::Session::id (  )  const [inline]

Definition at line 74 of file Session.h.

References id_.

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]

void dtn::Session::set_resubscribe_timer ( oasys::Timer *  t  )  [inline]

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]


Member Data Documentation

Currently-resident session bundles.

Definition at line 87 of file Session.h.

Referenced by bundles().

EndpointID naming the session.

Definition at line 84 of file Session.h.

Referenced by eid().

u_int32_t dtn::Session::id_ [protected]

Unique session id (for logging).

Definition at line 83 of file Session.h.

Referenced by id(), and Session().

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 that covers all bundles.

Definition at line 88 of file Session.h.

Referenced by sequence_id().

Local + downstream subscribers.

Definition at line 86 of file Session.h.

Referenced by add_subscriber(), and subscribers().

Subscriber in direction of a custodian.

Definition at line 85 of file Session.h.

Referenced by set_upstream(), and upstream().


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

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