#include <UDPConvergenceLayer.h>

Public Member Functions | |
| UDPConvergenceLayer (string bind_addr, unsigned short port, bool broadcast=false, unsigned int mtu=1280) | |
| virtual | ~UDPConvergenceLayer () |
| virtual TransmitReport | transmit (const Bundle &b) |
| virtual TransmitReport | transmit (const Bundle &b, const Node &node) |
| virtual void | tick () |
Private Member Functions | |
| void | receiveBundle () |
Private Attributes | |
| int | m_socket |
| unsigned int | m_maxmsgsize |
| string | m_selfaddr |
| unsigned int | m_selfport |
| Mutex | m_writelock |
Static Private Attributes | |
| static const int | DEFAULT_PORT = 4556 |
| dtn::core::UDPConvergenceLayer::UDPConvergenceLayer | ( | string | bind_addr, | |
| unsigned short | port, | |||
| bool | broadcast = false, |
|||
| unsigned int | mtu = 1280 | |||
| ) |
Constructor
| [in] | bind_addr | The own eid for broadcasting discovery bundles. |
| [in] | port | The udp port to use. |
| [in] | broadcast | If true, the broadcast feature for this socket is enabled. |
| [in] | mtu | The maximum bundle size. |
References m_socket.
| dtn::core::UDPConvergenceLayer::~UDPConvergenceLayer | ( | ) | [virtual] |
Desktruktor
References m_socket, and m_writelock.
| TransmitReport dtn::core::UDPConvergenceLayer::transmit | ( | const Bundle & | b | ) | [virtual] |
Implements dtn::core::ConvergenceLayer.
References dtn::core::CONVERGENCE_LAYER_BUSY, dtn::data::Bundle::getData(), dtn::data::Bundle::getLength(), m_maxmsgsize, m_selfaddr, m_selfport, m_socket, m_writelock, dtn::core::EventSwitch::raiseEvent(), dtn::core::ROUTE_PROCESS_BUNDLE, and dtn::core::TRANSMIT_SUCCESSFUL.
Referenced by emma::EmmaConvergenceLayer::transmit(), and transmit().
| TransmitReport dtn::core::UDPConvergenceLayer::transmit | ( | const Bundle & | b, | |
| const Node & | node | |||
| ) | [virtual] |
Implements dtn::core::ConvergenceLayer.
References dtn::core::CONVERGENCE_LAYER_BUSY, dtn::core::Node::getAddress(), dtn::data::Bundle::getData(), dtn::data::Bundle::getLength(), dtn::core::Node::getPort(), m_maxmsgsize, m_socket, m_writelock, dtn::core::EventSwitch::raiseEvent(), dtn::core::ROUTE_PROCESS_BUNDLE, transmit(), and dtn::core::TRANSMIT_SUCCESSFUL.
| void dtn::core::UDPConvergenceLayer::tick | ( | ) | [virtual] |
| void dtn::core::UDPConvergenceLayer::receiveBundle | ( | ) | [private] |
Receives a bundle from the socket.
References dtn::core::ConvergenceLayer::eventBundleReceived(), m_maxmsgsize, m_socket, dtn::data::BundleFactory::parse(), and dtn::exceptions::Exception::what().
Referenced by tick().
int dtn::core::UDPConvergenceLayer::m_socket [private] |
Referenced by receiveBundle(), transmit(), UDPConvergenceLayer(), and ~UDPConvergenceLayer().
const int dtn::core::UDPConvergenceLayer::DEFAULT_PORT = 4556 [static, private] |
unsigned int dtn::core::UDPConvergenceLayer::m_maxmsgsize [private] |
Referenced by receiveBundle(), and transmit().
string dtn::core::UDPConvergenceLayer::m_selfaddr [private] |
Referenced by transmit().
unsigned int dtn::core::UDPConvergenceLayer::m_selfport [private] |
Referenced by transmit().
Referenced by transmit(), and ~UDPConvergenceLayer().
1.5.6