Public Member Functions | Protected Member Functions

dtn::net::UDPConvergenceLayer Class Reference

#include <UDPConvergenceLayer.h>

Inherits dtn::net::ConvergenceLayer, dtn::daemon::IndependentComponent, and dtn::net::DiscoveryServiceProvider.

Collaboration diagram for dtn::net::UDPConvergenceLayer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 UDPConvergenceLayer (ibrcommon::vinterface net, int port, unsigned int mtu=1280)
virtual ~UDPConvergenceLayer ()
void update (const ibrcommon::vinterface &iface, std::string &name, std::string &data) throw (dtn::net::DiscoveryServiceProvider::NoServiceHereException)
dtn::core::Node::Protocol getDiscoveryProtocol () const
void queue (const dtn::core::Node &n, const ConvergenceLayer::Job &job)
UDPConvergenceLayeroperator>> (dtn::data::Bundle &)
virtual const std::string getName () const

Protected Member Functions

virtual void componentUp ()
virtual void componentRun ()
virtual void componentDown ()
bool __cancellation ()

Detailed Description

This class implement a ConvergenceLayer for UDP/IP. Each bundle is sent in exact one UDP datagram.

Definition at line 22 of file UDPConvergenceLayer.h.


Constructor & Destructor Documentation

dtn::net::UDPConvergenceLayer::UDPConvergenceLayer ( ibrcommon::vinterface  net,
int  port,
unsigned int  mtu = 1280 
)

Constructor

Parameters:
[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 45 of file UDPConvergenceLayer.cpp.

dtn::net::UDPConvergenceLayer::~UDPConvergenceLayer (  )  [virtual]

Desktruktor

Definition at line 51 of file UDPConvergenceLayer.cpp.

References componentDown().

Here is the call graph for this function:


Member Function Documentation

bool dtn::net::UDPConvergenceLayer::__cancellation (  )  [protected]

Definition at line 246 of file UDPConvergenceLayer.cpp.

void dtn::net::UDPConvergenceLayer::componentDown (  )  [protected, virtual]

Definition at line 213 of file UDPConvergenceLayer.cpp.

References ibrcommon::JoinableThread::join(), ibrcommon::udpsocket::shutdown(), and ibrcommon::JoinableThread::stop().

Referenced by ~UDPConvergenceLayer().

Here is the call graph for this function:

void dtn::net::UDPConvergenceLayer::componentRun (  )  [protected, virtual]

Definition at line 221 of file UDPConvergenceLayer.cpp.

References IBRCOMMON_LOGGER, dtn::net::BundleReceivedEvent::raise(), ibrcommon::Exception::what(), and ibrcommon::Thread::yield().

Here is the call graph for this function:

void dtn::net::UDPConvergenceLayer::componentUp (  )  [protected, virtual]

Definition at line 198 of file UDPConvergenceLayer.cpp.

References ibrcommon::UnicastSocket::bind(), IBRCOMMON_LOGGER, ibrcommon::vinterface::toString(), and ibrcommon::Exception::what().

Here is the call graph for this function:

dtn::core::Node::Protocol dtn::net::UDPConvergenceLayer::getDiscoveryProtocol (  )  const

Definition at line 57 of file UDPConvergenceLayer.cpp.

const std::string dtn::net::UDPConvergenceLayer::getName (  )  const [virtual]
See also:
Component::getName()

Definition at line 252 of file UDPConvergenceLayer.cpp.

UDPConvergenceLayer & dtn::net::UDPConvergenceLayer::operator>> ( dtn::data::Bundle bundle  ) 

Definition at line 176 of file UDPConvergenceLayer.cpp.

References dtn::core::BundleCore::getInstance(), and ibrcommon::udpsocket::receive().

Here is the call graph for this function:

void dtn::net::UDPConvergenceLayer::queue ( const dtn::core::Node n,
const ConvergenceLayer::Job job 
)
void dtn::net::UDPConvergenceLayer::update ( const ibrcommon::vinterface iface,
std::string &  name,
std::string &  data 
) throw (dtn::net::DiscoveryServiceProvider::NoServiceHereException) [virtual]

this method updates the given values

Implements dtn::net::DiscoveryServiceProvider.

Definition at line 62 of file UDPConvergenceLayer.cpp.

References ibrcommon::vaddress::VADDRESS_INET.


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