IBR-DTN
1.0.0
|
#include <UDPConvergenceLayer.h>
Public Member Functions | |
UDPConvergenceLayer (ibrcommon::vinterface net, int port, dtn::data::Length mtu=1280) | |
virtual | ~UDPConvergenceLayer () |
void | onUpdateBeacon (const ibrcommon::vinterface &iface, DiscoveryBeacon &announcement) throw (dtn::net::DiscoveryBeaconHandler::NoServiceHereException) |
dtn::core::Node::Protocol | getDiscoveryProtocol () const |
void | queue (const dtn::core::Node &n, const dtn::net::BundleTransfer &job) |
virtual const std::string | getName () const |
void | eventNotify (const ibrcommon::LinkEvent &evt) |
virtual void | resetStats () |
virtual void | getStats (ConvergenceLayer::stats_data &data) const |
![]() | |
virtual | ~ConvergenceLayer ()=0 |
virtual void | open (const dtn::core::Node &) |
![]() | |
IndependentComponent () | |
virtual | ~IndependentComponent () |
virtual void | initialize () throw () |
virtual void | startup () throw () |
virtual void | terminate () throw () |
![]() | |
virtual | ~Component ()=0 |
![]() | |
virtual | ~DiscoveryBeaconHandler ()=0 |
virtual void | onAdvertiseBeacon (const ibrcommon::vinterface &iface, const DiscoveryBeacon &beacon) throw () |
Protected Member Functions | |
virtual void | componentUp () throw () |
virtual void | componentRun () throw () |
virtual void | componentDown () throw () |
void | __cancellation () throw () |
![]() | |
void | run () throw () |
Additional Inherited Members | |
![]() | |
typedef std::pair< string, string > | stats_pair |
typedef std::map< string, string > | stats_data |
This class implement a ConvergenceLayer for UDP/IP. Each bundle is sent in exact one UDP datagram.
Definition at line 43 of file UDPConvergenceLayer.h.
dtn::net::UDPConvergenceLayer::UDPConvergenceLayer | ( | ibrcommon::vinterface | net, |
int | port, | ||
dtn::data::Length | mtu = 1280 |
||
) |
Constructor
[in] | bind_addr | The address to bind. |
[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. |
Definition at line 60 of file UDPConvergenceLayer.cpp.
|
virtual |
Desktruktor
Definition at line 65 of file UDPConvergenceLayer.cpp.
References componentDown().
|
protectedvirtual |
This method is called after componentDown() and should should guarantee that blocking calls in componentRun() will unblock.
Implements dtn::daemon::IndependentComponent.
Definition at line 486 of file UDPConvergenceLayer.cpp.
|
protectedvirtual |
This method is called if the component should stop. Clean-up code should be inserted here.
Implements dtn::daemon::IndependentComponent.
Definition at line 433 of file UDPConvergenceLayer.cpp.
References dtn::core::BundleCore::getDiscoveryAgent(), dtn::core::BundleCore::getInstance(), and dtn::net::DiscoveryAgent::unregisterService().
Referenced by ~UDPConvergenceLayer().
|
protectedvirtual |
This is the run method. The component should loop in there until componentDown() or __cancellation() is called.
Implements dtn::daemon::IndependentComponent.
Definition at line 446 of file UDPConvergenceLayer.cpp.
References dtn::core::BundleCore::filter(), getDiscoveryProtocol(), dtn::core::BundleCore::getInstance(), dtn::core::BundleFilter::INPUT, dtn::net::BundleReceivedEvent::raise(), dtn::core::FilterContext::setBundle(), and dtn::core::FilterContext::setProtocol().
|
protectedvirtual |
Is called in preparation of the component. Before componentRun() is called.
Implements dtn::daemon::IndependentComponent.
Definition at line 392 of file UDPConvergenceLayer.cpp.
References dtn::core::BundleCore::getDiscoveryAgent(), dtn::core::BundleCore::getInstance(), and dtn::net::DiscoveryAgent::registerService().
void dtn::net::UDPConvergenceLayer::eventNotify | ( | const ibrcommon::LinkEvent & | evt | ) |
Definition at line 338 of file UDPConvergenceLayer.cpp.
|
virtual |
Implements dtn::net::ConvergenceLayer.
Definition at line 91 of file UDPConvergenceLayer.cpp.
References dtn::core::Node::CONN_UDPIP.
Referenced by componentRun(), getStats(), and queue().
|
virtual |
Implements dtn::daemon::Component.
Definition at line 492 of file UDPConvergenceLayer.cpp.
|
virtual |
Reimplemented from dtn::net::ConvergenceLayer.
Definition at line 76 of file UDPConvergenceLayer.cpp.
References getDiscoveryProtocol(), and dtn::core::Node::toString().
|
virtual |
this method updates the given values
Reimplemented from dtn::net::DiscoveryBeaconHandler.
Definition at line 96 of file UDPConvergenceLayer.cpp.
References dtn::daemon::Configuration::Discovery::enableCrosslayer(), dtn::daemon::Configuration::getDiscovery(), and dtn::daemon::Configuration::getInstance().
|
virtual |
Implements dtn::net::ConvergenceLayer.
Definition at line 162 of file UDPConvergenceLayer.cpp.
References dtn::net::BundleTransfer::abort(), dtn::net::BundleTransfer::complete(), dtn::core::Node::CONN_UDPIP, dtn::core::Node::URI::decode(), dtn::data::PrimaryBlock::DONT_FRAGMENT, dtn::core::BundleCore::filter(), dtn::storage::BundleStorage::get(), dtn::data::PrimaryBlock::get(), dtn::core::Node::get(), dtn::net::BundleTransfer::getBundle(), getDiscoveryProtocol(), dtn::core::Node::getEID(), dtn::core::BundleCore::getInstance(), dtn::daemon::Configuration::getInstance(), dtn::data::DefaultSerializer::getLength(), dtn::core::BundleCore::getStorage(), dtn::core::BundleFilter::OUTPUT, dtn::net::TransferAbortedEvent::REASON_BUNDLE_DELETED, dtn::net::TransferAbortedEvent::REASON_CONNECTION_DOWN, dtn::net::TransferAbortedEvent::REASON_REFUSED_BY_FILTER, dtn::net::TransferAbortedEvent::REASON_UNDEFINED, dtn::core::FilterContext::setBundle(), dtn::core::FilterContext::setPeer(), and dtn::core::FilterContext::setProtocol().
|
virtual |
Reimplemented from dtn::net::ConvergenceLayer.
Definition at line 70 of file UDPConvergenceLayer.cpp.