#include <EmmaConvergenceLayer.h>

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 |
| UDPConvergenceLayer * | m_direct_cl |
| UDPConvergenceLayer * | m_broadcast_cl |
| Mutex | m_receivelock |
| pair< double, double > | m_position |
| DiscoverBlockFactory * | m_dfactory |
Static Private Attributes | |
| static const int | MAX_SIZE = 1024 |
| emma::EmmaConvergenceLayer::EmmaConvergenceLayer | ( | string | eid, | |
| string | bind_addr, | |||
| unsigned short | port, | |||
| string | broadcast, | |||
| unsigned int | mtu = 1280 | |||
| ) |
Constructor
| [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] |
Desktruktor
References emma::PositionEvent::className, m_broadcast_cl, m_dfactory, m_direct_cl, and terminate().
| TransmitReport emma::EmmaConvergenceLayer::transmit | ( | const Bundle & | b | ) | [virtual] |
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] |
Implements dtn::core::ConvergenceLayer.
References m_direct_cl, and dtn::core::UDPConvergenceLayer::transmit().
| void emma::EmmaConvergenceLayer::received | ( | const ConvergenceLayer & | cl, | |
| const Bundle & | b | |||
| ) | [virtual] |
Implements dtn::core::BundleReceiver.
References emma::DiscoverBlock::BLOCK_TYPE, dtn::core::FLOATING, dtn::data::Bundle::getBlocks(), emma::DiscoverBlock::getConnectionAddress(), emma::DiscoverBlock::getConnectionPort(), dtn::data::Bundle::getDestination(), emma::DiscoverBlock::getLatitude(), emma::DiscoverBlock::getLongitude(), emma::DiscoverBlock::getOptionals(), dtn::data::Bundle::getSource(), m_eid, m_receivelock, dtn::core::NODE_INFO_UPDATED, dtn::core::Node::setAddress(), dtn::core::Node::setConvergenceLayer(), dtn::core::Node::setPort(), dtn::core::Node::setPosition(), dtn::core::Node::setTimeout(), and dtn::core::Node::setURI().
| 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] |
References m_broadcast_cl, m_direct_cl, and dtn::utils::Service::start().
Referenced by EmmaConvergenceLayer().
| void emma::EmmaConvergenceLayer::terminate | ( | ) | [virtual] |
References dtn::utils::Service::abort(), m_broadcast_cl, and m_direct_cl.
Referenced by ~EmmaConvergenceLayer().
| void emma::EmmaConvergenceLayer::yell | ( | ) | [private] |
sends a bundle with a DiscoverBlock to the neighborhood (broadcast).
References dtn::data::Bundle::appendBlock(), dtn::data::EXPEDITED, dtn::data::Bundle::getPrimaryFlags(), dtn::data::LIFETIME, m_bindaddr, m_bindport, m_eid, m_position, dtn::data::BundleFactory::newBundle(), emma::DiscoverBlockFactory::newDiscoverBlock(), emma::DiscoverBlock::setConnectionAddress(), emma::DiscoverBlock::setConnectionPort(), dtn::data::Bundle::setDestination(), dtn::data::Bundle::setInteger(), emma::DiscoverBlock::setLatitude(), emma::DiscoverBlock::setLongitude(), dtn::data::Bundle::setPrimaryFlags(), dtn::data::PrimaryFlags::setPriority(), dtn::data::Bundle::setSource(), and transmit().
Referenced by raiseEvent().
| void emma::EmmaConvergenceLayer::yell | ( | Node | node | ) | [private] |
sends a bundle with a DiscoverBlock to a specific node
References dtn::data::Bundle::appendBlock(), dtn::data::EXPEDITED, dtn::data::Bundle::getPrimaryFlags(), dtn::core::Node::getURI(), dtn::data::LIFETIME, m_bindaddr, m_bindport, m_eid, m_position, dtn::data::BundleFactory::newBundle(), emma::DiscoverBlockFactory::newDiscoverBlock(), emma::DiscoverBlock::setConnectionAddress(), emma::DiscoverBlock::setConnectionPort(), dtn::data::Bundle::setDestination(), dtn::data::Bundle::setInteger(), emma::DiscoverBlock::setLatitude(), emma::DiscoverBlock::setLongitude(), dtn::data::Bundle::setPrimaryFlags(), dtn::data::PrimaryFlags::setPriority(), dtn::data::Bundle::setSource(), and transmit().
const int emma::EmmaConvergenceLayer::MAX_SIZE = 1024 [static, private] |
string emma::EmmaConvergenceLayer::m_eid [private] |
Referenced by received(), and yell().
string emma::EmmaConvergenceLayer::m_bindaddr [private] |
Referenced by yell().
unsigned int emma::EmmaConvergenceLayer::m_bindport [private] |
Referenced by yell().
Referenced by EmmaConvergenceLayer(), initialize(), terminate(), transmit(), and ~EmmaConvergenceLayer().
Referenced by EmmaConvergenceLayer(), initialize(), terminate(), transmit(), and ~EmmaConvergenceLayer().
Referenced by received().
pair<double,double> emma::EmmaConvergenceLayer::m_position [private] |
Referenced by raiseEvent(), and yell().
Referenced by EmmaConvergenceLayer(), and ~EmmaConvergenceLayer().
1.5.6