#include <TCPConvergenceLayer.h>
Inherits dtn::daemon::IndependentComponent, dtn::net::ConvergenceLayer, dtn::net::DiscoveryServiceProvider, and dtn::core::EventReceiver.

Public Member Functions | |
| TCPConvergenceLayer () | |
| virtual | ~TCPConvergenceLayer () |
| void | bind (const ibrcommon::vinterface &net, int port) |
| void | raiseEvent (const dtn::core::Event *evt) |
| void | queue (const dtn::core::Node &n, const ConvergenceLayer::Job &job) |
| void | open (const dtn::core::Node &n) |
| virtual const std::string | getName () const |
| dtn::core::Node::Protocol | getDiscoveryProtocol () const |
| void | update (const ibrcommon::vinterface &iface, std::string &name, std::string &data) throw (dtn::net::DiscoveryServiceProvider::NoServiceHereException) |
Protected Member Functions | |
| bool | __cancellation () |
| void | componentUp () |
| void | componentRun () |
| void | componentDown () |
Friends | |
| class | TCPConnection |
This class implement a ConvergenceLayer for TCP/IP. http://tools.ietf.org/html/draft-irtf-dtnrg-tcp-clayer-02
Definition at line 176 of file TCPConvergenceLayer.h.
| dtn::net::TCPConvergenceLayer::TCPConvergenceLayer | ( | ) |
Constructor
| [in] | bind_addr | The address to bind. |
| [in] | port | The port to use. |
Definition at line 35 of file TCPConvergenceLayer.cpp.
References dtn::core::EventReceiver::bindEvent().

| dtn::net::TCPConvergenceLayer::~TCPConvergenceLayer | ( | ) | [virtual] |
Destructor
Definition at line 40 of file TCPConvergenceLayer.cpp.
References ibrcommon::JoinableThread::join(), and dtn::core::EventReceiver::unbindEvent().

| bool dtn::net::TCPConvergenceLayer::__cancellation | ( | ) | [protected] |
Definition at line 260 of file TCPConvergenceLayer.cpp.
References ibrcommon::tcpserver::close(), ibrcommon::Thread::interrupt(), and ibrcommon::tcpserver::shutdown().

| void dtn::net::TCPConvergenceLayer::bind | ( | const ibrcommon::vinterface & | net, | |
| int | port | |||
| ) |
Bind on a interface
| net | ||
| port |
Definition at line 46 of file TCPConvergenceLayer.cpp.
References ibrcommon::tcpserver::bind().
Referenced by createConvergenceLayers().

| void dtn::net::TCPConvergenceLayer::componentDown | ( | ) | [protected] |
Definition at line 287 of file TCPConvergenceLayer.cpp.
References ibrcommon::tcpserver::close(), ibrcommon::Thread::interrupt(), ibrcommon::tcpserver::shutdown(), and ibrcommon::Conditional::wait().

| void dtn::net::TCPConvergenceLayer::componentRun | ( | ) | [protected] |
Definition at line 231 of file TCPConvergenceLayer.cpp.
References ibrcommon::tcpserver::accept(), ibrcommon::Thread::enable_interruption(), dtn::net::TCPConnection::initialize(), dtn::core::BundleCore::local, TCPConnection, and ibrcommon::Thread::yield().

| void dtn::net::TCPConvergenceLayer::componentUp | ( | ) | [protected] |
Definition at line 281 of file TCPConvergenceLayer.cpp.
References ibrcommon::tcpserver::listen().

| dtn::core::Node::Protocol dtn::net::TCPConvergenceLayer::getDiscoveryProtocol | ( | ) | const |
| const std::string dtn::net::TCPConvergenceLayer::getName | ( | ) | const [virtual] |
Definition at line 93 of file TCPConvergenceLayer.cpp.
| void dtn::net::TCPConvergenceLayer::open | ( | const dtn::core::Node & | n | ) |
Open a connection to the given node.
| n |
Definition at line 98 of file TCPConvergenceLayer.cpp.
References dtn::net::ConnectionEvent::CONNECTION_SETUP, dtn::net::TCPConnection::initialize(), dtn::core::BundleCore::local, dtn::net::TCPConnection::match(), dtn::net::ConnectionEvent::raise(), ibrcommon::Conditional::signal(), and TCPConnection.

| void dtn::net::TCPConvergenceLayer::queue | ( | const dtn::core::Node & | n, | |
| const ConvergenceLayer::Job & | job | |||
| ) |
Queue a new transmission job for this convergence layer.
| job |
Definition at line 131 of file TCPConvergenceLayer.cpp.
References dtn::net::ConvergenceLayer::Job::_bundle, dtn::net::ConnectionEvent::CONNECTION_SETUP, dtn::core::Node::getEID(), dtn::net::TCPConnection::getNode(), dtn::data::EID::getString(), IBRCOMMON_LOGGER_DEBUG, dtn::net::TCPConnection::initialize(), dtn::core::BundleCore::local, dtn::net::TCPConnection::match(), dtn::net::TCPConnection::queue(), dtn::net::ConnectionEvent::raise(), ibrcommon::Conditional::signal(), and TCPConnection.

| void dtn::net::TCPConvergenceLayer::raiseEvent | ( | const dtn::core::Event * | evt | ) | [virtual] |
handler for events
Implements dtn::core::EventReceiver.
Definition at line 170 of file TCPConvergenceLayer.cpp.
References dtn::core::NodeEvent::getAction(), dtn::net::TCPConnection::match(), and dtn::net::TCPConnection::shutdown().

| void dtn::net::TCPConvergenceLayer::update | ( | const ibrcommon::vinterface & | iface, | |
| std::string & | name, | |||
| std::string & | data | |||
| ) | throw (dtn::net::DiscoveryServiceProvider::NoServiceHereException) |
this method updates the given values
Definition at line 58 of file TCPConvergenceLayer.cpp.
References ibrcommon::vinterface::getAddresses(), and ibrcommon::vaddress::VADDRESS_INET.

friend class TCPConnection [friend] |
Definition at line 178 of file TCPConvergenceLayer.h.
Referenced by componentRun(), open(), and queue().
1.7.1