emma::EmmaConvergenceLayer Class Reference

#include <EmmaConvergenceLayer.h>

Inheritance diagram for emma::EmmaConvergenceLayer:

dtn::core::ConvergenceLayer dtn::core::BundleReceiver dtn::core::EventReceiver

List of all members.

Public Member Functions

 EmmaConvergenceLayer (string eid, string bind_addr, unsigned short port, string broadcast, unsigned int mtu=1280)
virtual ~EmmaConvergenceLayer ()
virtual TransmitReport transmit (const Bundle &b)
virtual TransmitReport transmit (const Bundle &b, const Node &node)
void received (const ConvergenceLayer &cl, const Bundle &b)
void raiseEvent (const Event *evt)
virtual void initialize ()
virtual void terminate ()

Private Member Functions

void yell ()
void yell (Node node)

Private Attributes

string m_eid
string m_bindaddr
unsigned int m_bindport
UDPConvergenceLayerm_direct_cl
UDPConvergenceLayerm_broadcast_cl
Mutex m_receivelock
pair< double, double > m_position
DiscoverBlockFactorym_dfactory

Static Private Attributes

static const int MAX_SIZE = 1024


Detailed Description

This class implements a ConvergenceLayer for UDP/IP. The integrated discovery mechanism detects neighboring nodes and notify the BundleRouter with the detected node. For this mechanism a broadcast is necessary (like in IEEE 802.11).

Constructor & Destructor Documentation

emma::EmmaConvergenceLayer::EmmaConvergenceLayer ( string  eid,
string  bind_addr,
unsigned short  port,
string  broadcast,
unsigned int  mtu = 1280 
)

Constructor

Parameters:
[in] eid The own eid for broadcasting discovery bundles.
[in] bind_addr The own ip address to bind on.
[in] port The udp port to use.
[in] broadcast The broadcast ip address.
[in] mtu The maximum bundle size.

References emma::PositionEvent::className, initialize(), m_broadcast_cl, m_dfactory, m_direct_cl, and dtn::core::ConvergenceLayer::setBundleReceiver().

emma::EmmaConvergenceLayer::~EmmaConvergenceLayer (  )  [virtual]


Member Function Documentation

TransmitReport emma::EmmaConvergenceLayer::transmit ( const Bundle b  )  [virtual]

See also:
protocol::ConvergenceLayer::transmit(Bundle *b)

Implements dtn::core::ConvergenceLayer.

References m_broadcast_cl, and dtn::core::UDPConvergenceLayer::transmit().

Referenced by yell().

TransmitReport emma::EmmaConvergenceLayer::transmit ( const Bundle b,
const Node node 
) [virtual]

See also:
protocol::ConvergenceLayer::transmit(Bundle *b, Node &node)

Implements dtn::core::ConvergenceLayer.

References m_direct_cl, and dtn::core::UDPConvergenceLayer::transmit().

void emma::EmmaConvergenceLayer::received ( const ConvergenceLayer cl,
const Bundle b 
) [virtual]

void emma::EmmaConvergenceLayer::raiseEvent ( const Event evt  )  [virtual]

method to receive PositionEvent from EventSwitch

Implements dtn::core::EventReceiver.

References m_position, and yell().

void emma::EmmaConvergenceLayer::initialize (  )  [virtual]

void emma::EmmaConvergenceLayer::terminate (  )  [virtual]

void emma::EmmaConvergenceLayer::yell (  )  [private]

void emma::EmmaConvergenceLayer::yell ( Node  node  )  [private]


Member Data Documentation

const int emma::EmmaConvergenceLayer::MAX_SIZE = 1024 [static, private]

Referenced by received(), and yell().

Referenced by yell().

Referenced by yell().

Referenced by received().

pair<double,double> emma::EmmaConvergenceLayer::m_position [private]

Referenced by raiseEvent(), and yell().


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

Generated on Wed Mar 25 12:41:51 2009 for IBR-DTN by  doxygen 1.5.6