IBR-DTNSuite  0.10
dtn::routing::DeliveryPredictabilityMap Class Reference

This class keeps track of the predictablities to see a specific EID. More...

#include <DeliveryPredictabilityMap.h>

Inheritance diagram for dtn::routing::DeliveryPredictabilityMap:
Inheritance graph
Collaboration diagram for dtn::routing::DeliveryPredictabilityMap:
Collaboration graph

Classes

class  ValueNotFoundException
 

Public Member Functions

 DeliveryPredictabilityMap ()
 
 DeliveryPredictabilityMap (const size_t &time_unit, const float &beta, const float &gamma)
 
virtual ~DeliveryPredictabilityMap ()
 
virtual const dtn::data::NumbergetIdentifier () const
 
virtual dtn::data::Length getLength () const
 
virtual std::ostream & serialize (std::ostream &stream) const
 
virtual std::istream & deserialize (std::istream &stream)
 
float get (const dtn::data::EID &neighbor) const throw (ValueNotFoundException)
 
void set (const dtn::data::EID &neighbor, float value)
 
void clear ()
 
void update (const dtn::data::EID &origin, const DeliveryPredictabilityMap &dpm, const float &p_encounter_first)
 
void age (const float &p_first_threshold)
 
void toString (std::ostream &stream) const
 
- Public Member Functions inherited from dtn::routing::NeighborDataSetImpl
 NeighborDataSetImpl (const dtn::data::Number &id)
 
virtual ~NeighborDataSetImpl ()=0
 
- Public Member Functions inherited from dtn::routing::NodeHandshakeItem
virtual ~NodeHandshakeItem ()
 
- Public Member Functions inherited from ibrcommon::Mutex
 Mutex (MUTEX_TYPE type=MUTEX_NORMAL)
 
virtual ~Mutex ()
 
virtual void trylock () throw (MutexException)
 
virtual void enter () throw (MutexException)
 
virtual void leave () throw (MutexException)
 
- Public Member Functions inherited from ibrcommon::MutexInterface
virtual ~MutexInterface ()=0
 

Static Public Attributes

static const dtn::data::Number identifier = NodeHandshakeItem::DELIVERY_PREDICTABILITY_MAP
 

Friends

std::ostream & operator<< (std::ostream &stream, const DeliveryPredictabilityMap &map)
 

Additional Inherited Members

- Public Types inherited from dtn::routing::NodeHandshakeItem
enum  IDENTIFIER { BLOOM_FILTER_SUMMARY_VECTOR = 1, BLOOM_FILTER_PURGE_VECTOR = 2, DELIVERY_PREDICTABILITY_MAP = 3, PROPHET_ACKNOWLEDGEMENT_SET = 4 }
 
- Public Types inherited from ibrcommon::Mutex
enum  MUTEX_TYPE { MUTEX_NORMAL = PTHREAD_MUTEX_NORMAL, MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE, MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK }
 
- Static Public Member Functions inherited from ibrcommon::Mutex
static MutexInterfacedummy ()
 
- Public Attributes inherited from dtn::routing::NeighborDataSetImpl
const dtn::data::Number _dataset_id
 
- Protected Attributes inherited from ibrcommon::Mutex
pthread_mutex_t m_mutex
 
pthread_mutexattr_t m_attr
 

Detailed Description

This class keeps track of the predictablities to see a specific EID.

This class can be used as a map from EID to float. Also, it can be serialized as a NodeHandshakeItem to be exchanged with neighbors.

Definition at line 27 of file DeliveryPredictabilityMap.h.

Constructor & Destructor Documentation

dtn::routing::DeliveryPredictabilityMap::DeliveryPredictabilityMap ( )

Definition at line 20 of file DeliveryPredictabilityMap.cpp.

dtn::routing::DeliveryPredictabilityMap::DeliveryPredictabilityMap ( const size_t &  time_unit,
const float &  beta,
const float &  gamma 
)

Definition at line 25 of file DeliveryPredictabilityMap.cpp.

dtn::routing::DeliveryPredictabilityMap::~DeliveryPredictabilityMap ( )
virtual

Definition at line 30 of file DeliveryPredictabilityMap.cpp.

Member Function Documentation

void dtn::routing::DeliveryPredictabilityMap::age ( const float &  p_first_threshold)

Age all entries in the DeliveryPredictabilityMap.

Warning
The _deliveryPredictabilityMap has to be locked before calling this function

Definition at line 190 of file DeliveryPredictabilityMap.cpp.

References dtn::data::SDNV< E >::get(), dtn::utils::Clock::getUnixTimestamp(), and dtn::core::BundleCore::local.

Here is the call graph for this function:

void dtn::routing::DeliveryPredictabilityMap::clear ( )

Definition at line 154 of file DeliveryPredictabilityMap.cpp.

std::istream & dtn::routing::DeliveryPredictabilityMap::deserialize ( std::istream &  stream)
virtual
float dtn::routing::DeliveryPredictabilityMap::get ( const dtn::data::EID neighbor) const throw (ValueNotFoundException)
const dtn::data::Number & dtn::routing::DeliveryPredictabilityMap::getIdentifier ( ) const
virtual
dtn::data::Length dtn::routing::DeliveryPredictabilityMap::getLength ( ) const
virtual
See Also
NodeHandshakeItem::getLength

Implements dtn::routing::NodeHandshakeItem.

Definition at line 38 of file DeliveryPredictabilityMap.cpp.

References dtn::data::SDNV< E >::getLength().

Here is the call graph for this function:

std::ostream & dtn::routing::DeliveryPredictabilityMap::serialize ( std::ostream &  stream) const
virtual
void dtn::routing::DeliveryPredictabilityMap::set ( const dtn::data::EID neighbor,
float  value 
)
void dtn::routing::DeliveryPredictabilityMap::toString ( std::ostream &  stream) const

Print out the content as readable text.

Definition at line 221 of file DeliveryPredictabilityMap.cpp.

Referenced by dtn::routing::operator<<().

void dtn::routing::DeliveryPredictabilityMap::update ( const dtn::data::EID origin,
const DeliveryPredictabilityMap dpm,
const float &  p_encounter_first 
)

Updates the DeliveryPredictabilityMap with one recieved by a neighbor.

Parameters
dpmthe DeliveryPredictabilityMap recieved from the neighbor
Warning
The _deliveryPredictabilityMap has to be locked before calling this function

Calculate transitive values

Definition at line 159 of file DeliveryPredictabilityMap.cpp.

References dtn::core::BundleCore::local.

Referenced by dtn::routing::ProphetRoutingExtension::processHandshake().

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  stream,
const DeliveryPredictabilityMap map 
)
friend

Definition at line 230 of file DeliveryPredictabilityMap.cpp.

Member Data Documentation


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