prophet::Dictionary Class Reference

#include <Dictionary.h>

List of all members.


Detailed Description

Utility class to facilitate converting to and from routing string (endpoint ID) and 16-bit string IDs.

Definition at line 33 of file prophet/Dictionary.h.


Public Types

typedef std::map< u_int16_t,
std::string > 
rribd
typedef std::map< u_int16_t,
std::string >::const_iterator 
const_iterator

Public Member Functions

 Dictionary (const std::string &sender="", const std::string &receiver="")
 Default constructor.
 Dictionary (const Dictionary &d)
 Copy constructor.
 ~Dictionary ()
 Destructor.
u_int16_t find (const std::string &dest_id) const
 If dest_id is valid, returns sid; else returns INVALID_SID.
const std::string & find (u_int16_t sid) const
 If id is valid, returns dest_id; else returns empty string.
const std::string & sender () const
 Convenience function; sender is defined as sid == 0.
const std::string & receiver () const
 Convenience function; receiver is defined as sid == 1.
u_int16_t insert (const std::string &dest_id)
 Insert dest_id and return valid id upon success; else returns INVALID_SID.
u_int16_t insert (const Bundle *b)
 Convenience wrapper that accepts const Bundle* and passes through a call to insert(const std::string&).
bool assign (const std::string &dest_id, u_int16_t sid)
 Assign dest_id to arbitrary id (used by TLV deserialization); return true upon success, false upon collision.
size_t size () const
 Return the number of elements in the dictionary.
size_t guess_ribd_size (size_t RASsz) const
 Helper function for serializing, where RASsz is the sizeof(RoutingAddressString), the overhead per RIBD entry.
void clear ()
 Wipe out dictionary and prepare to deserialize new one.
Dictionaryoperator= (const Dictionary &d)
 Assignment operator.
void dump (BundleCore *core, const char *file, u_int line) const
 Debug method for printing out internal state to log.
const_iterator begin () const
 Iterators.
const_iterator end () const
 Iterators.

Static Public Attributes

static const u_int16_t INVALID_SID = 0xffff
 Reserve 0xffff for in-band error signal.
static const std::string NULL_STR
 Used for in-band error signal.

Protected Types

typedef std::map< std::string,
u_int16_t, less_string
ribd

Protected Attributes

std::string sender_
 destination id of peering initiator
std::string receiver_
 destination id of passive peer
ribd ribd_
 forward lookup, dest_id to string id
rribd rribd_
 reverse lookup from string id to dest_id

Member Typedef Documentation

typedef std::map<u_int16_t,std::string> prophet::Dictionary::rribd

Definition at line 36 of file prophet/Dictionary.h.

typedef std::map<u_int16_t,std::string>::const_iterator prophet::Dictionary::const_iterator

Definition at line 38 of file prophet/Dictionary.h.

typedef std::map<std::string,u_int16_t,less_string> prophet::Dictionary::ribd [protected]

Definition at line 143 of file prophet/Dictionary.h.


Constructor & Destructor Documentation

prophet::Dictionary::Dictionary ( const std::string &  sender = "",
const std::string &  receiver = "" 
)

Default constructor.

Definition at line 26 of file prophet/Dictionary.cc.

prophet::Dictionary::Dictionary ( const Dictionary d  ) 

Copy constructor.

Definition at line 30 of file prophet/Dictionary.cc.

prophet::Dictionary::~Dictionary (  )  [inline]

Destructor.

Definition at line 64 of file prophet/Dictionary.h.


Member Function Documentation

u_int16_t prophet::Dictionary::find ( const std::string &  dest_id  )  const

If dest_id is valid, returns sid; else returns INVALID_SID.

Definition at line 35 of file prophet/Dictionary.cc.

References INVALID_SID, receiver_, ribd_, and sender_.

Referenced by prophet::Table::assign(), prophet::BundleOffer::get_bundle_offer(), insert(), and prophet::Table::update_transitive().

const std::string & prophet::Dictionary::find ( u_int16_t  sid  )  const

If id is valid, returns dest_id; else returns empty string.

Definition at line 53 of file prophet/Dictionary.cc.

References NULL_STR, receiver_, rribd_, and sender_.

const std::string& prophet::Dictionary::sender (  )  const [inline]

Convenience function; sender is defined as sid == 0.

Definition at line 79 of file prophet/Dictionary.h.

References sender_.

const std::string& prophet::Dictionary::receiver (  )  const [inline]

Convenience function; receiver is defined as sid == 1.

Definition at line 84 of file prophet/Dictionary.h.

References receiver_.

u_int16_t prophet::Dictionary::insert ( const std::string &  dest_id  ) 

Insert dest_id and return valid id upon success; else returns INVALID_SID.

Definition at line 68 of file prophet/Dictionary.cc.

References assign(), find(), INVALID_SID, and ribd_.

u_int16_t prophet::Dictionary::insert ( const Bundle b  ) 

Convenience wrapper that accepts const Bundle* and passes through a call to insert(const std::string&).

bool prophet::Dictionary::assign ( const std::string &  dest_id,
u_int16_t  sid 
)

Assign dest_id to arbitrary id (used by TLV deserialization); return true upon success, false upon collision.

Definition at line 96 of file prophet/Dictionary.cc.

References INVALID_SID, receiver_, ribd_, rribd_, and sender_.

Referenced by prophet::RIBDTLV::deserialize(), insert(), and prophet::RIBDTLV::ribd().

const_iterator prophet::Dictionary::begin (  )  const [inline]

Iterators.

Definition at line 105 of file prophet/Dictionary.h.

References rribd_.

Referenced by prophet::RIBDTLV::serialize().

const_iterator prophet::Dictionary::end (  )  const [inline]

Iterators.

Definition at line 106 of file prophet/Dictionary.h.

References rribd_.

Referenced by prophet::RIBDTLV::serialize().

size_t prophet::Dictionary::size (  )  const [inline]

Return the number of elements in the dictionary.

Definition at line 112 of file prophet/Dictionary.h.

References ribd_.

size_t prophet::Dictionary::guess_ribd_size ( size_t  RASsz  )  const

Helper function for serializing, where RASsz is the sizeof(RoutingAddressString), the overhead per RIBD entry.

Definition at line 143 of file prophet/Dictionary.cc.

References FOUR_BYTE_ALIGN, and rribd_.

Referenced by prophet::RIBDTLV::RIBDTLV(), and prophet::RIBDTLV::serialize().

void prophet::Dictionary::clear (  ) 

Wipe out dictionary and prepare to deserialize new one.

Definition at line 154 of file prophet/Dictionary.cc.

References receiver_, ribd_, rribd_, and sender_.

Referenced by prophet::RIBDTLV::deserialize().

Dictionary& prophet::Dictionary::operator= ( const Dictionary d  )  [inline]

Assignment operator.

Definition at line 128 of file prophet/Dictionary.h.

References receiver_, ribd_, rribd_, and sender_.

void prophet::Dictionary::dump ( BundleCore core,
const char *  file,
u_int  line 
) const

Debug method for printing out internal state to log.

Definition at line 164 of file prophet/Dictionary.cc.

References prophet::BundleCore::LOG_DEBUG, prophet::BundleCore::print_log(), receiver_, rribd_, and sender_.


Member Data Documentation

const u_int16_t prophet::Dictionary::INVALID_SID = 0xffff [static]

Reserve 0xffff for in-band error signal.

Definition at line 43 of file prophet/Dictionary.h.

Referenced by assign(), find(), prophet::BundleOffer::get_bundle_offer(), insert(), and prophet::Table::update_transitive().

const std::string prophet::Dictionary::NULL_STR [static]

Used for in-band error signal.

Definition at line 48 of file prophet/Dictionary.h.

Referenced by find().

std::string prophet::Dictionary::sender_ [protected]

destination id of peering initiator

Definition at line 145 of file prophet/Dictionary.h.

Referenced by assign(), clear(), dump(), find(), operator=(), and sender().

std::string prophet::Dictionary::receiver_ [protected]

destination id of passive peer

Definition at line 146 of file prophet/Dictionary.h.

Referenced by assign(), clear(), dump(), find(), operator=(), and receiver().

forward lookup, dest_id to string id

Definition at line 147 of file prophet/Dictionary.h.

Referenced by assign(), clear(), find(), insert(), operator=(), and size().

reverse lookup from string id to dest_id

Definition at line 148 of file prophet/Dictionary.h.

Referenced by assign(), begin(), clear(), dump(), end(), find(), guess_ribd_size(), and operator=().


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

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