dtn::Session Class Reference

#include <Session.h>

Inheritance diagram for dtn::Session:

dtn::RouteEntryInfo

List of all members.


Detailed Description

Class to manage a session.

Definition at line 38 of file 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 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.

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

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().

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().

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

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

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

Definition at line 74 of file Session.h.

References id_.

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

const Subscriber& dtn::Session::upstream (  )  const [inline]

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().

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

SequenceID* dtn::Session::sequence_id (  )  [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().


Member Data Documentation

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().

EndpointID naming the session.

Definition at line 84 of file Session.h.

Referenced by eid().

Subscriber in direction of a custodian.

Definition at line 85 of file Session.h.

Referenced by set_upstream(), and upstream().

Local + downstream subscribers.

Definition at line 86 of file Session.h.

Referenced by add_subscriber(), and subscribers().

Currently-resident session bundles.

Definition at line 87 of file Session.h.

Referenced by bundles().

SequenceID that covers all bundles.

Definition at line 88 of file Session.h.

Referenced by sequence_id().

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().


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

Generated on Mon Jul 21 14:12:21 2008 for DTN Reference Implementation by  doxygen 1.5.6