|
IBR-DTNSuite 0.6
|
#include <TCPConvergenceLayer.h>


Classes | |
| class | Sender |
Public Member Functions | |
| TCPConnection (TCPConvergenceLayer &tcpsrv, ibrcommon::tcpstream *stream, const dtn::data::EID &name, const size_t timeout=10) | |
| TCPConnection (TCPConvergenceLayer &tcpsrv, const dtn::core::Node &node, const dtn::data::EID &name, const size_t timeout=10) | |
| virtual | ~TCPConnection () |
| virtual void | initialize () |
| void | shutdown () |
| const StreamContactHeader & | getHeader () const |
| const dtn::core::Node & | getNode () const |
| virtual void | eventShutdown (StreamConnection::ConnectionShutdownCases csc) |
| virtual void | eventTimeout () |
| virtual void | eventError () |
| virtual void | eventConnectionUp (const StreamContactHeader &header) |
| virtual void | eventConnectionDown () |
| virtual void | eventBundleRefused () |
| virtual void | eventBundleForwarded () |
| virtual void | eventBundleAck (size_t ack) |
| dtn::core::Node::Protocol | getDiscoveryProtocol () const |
| void | queue (const dtn::data::BundleID &bundle) |
| bool | match (const dtn::core::Node &n) const |
| bool | match (const dtn::data::EID &destination) const |
| bool | match (const dtn::core::NodeEvent &evt) const |
Protected Member Functions | |
| void | rejectTransmission () |
| void | setup () |
| void | run () |
| void | finally () |
| bool | __cancellation () |
| void | clearQueue () |
| void | keepalive () |
| bool | good () const |
Friends | |
| TCPConnection & | operator>> (TCPConnection &conn, dtn::data::Bundle &bundle) |
| TCPConnection & | operator<< (TCPConnection &conn, const dtn::data::Bundle &bundle) |
Definition at line 45 of file TCPConvergenceLayer.h.
| dtn::net::TCPConnection::TCPConnection | ( | TCPConvergenceLayer & | tcpsrv, |
| ibrcommon::tcpstream * | stream, | ||
| const dtn::data::EID & | name, | ||
| const size_t | timeout = 10 |
||
| ) |
Constructor for a new TCPConnection object.
| tcpsrv | |
| stream | TCP stream to talk to the other peer. |
| name | |
| timeout |
Definition at line 47 of file TCPConnection.cpp.
References ibrcommon::tcpstream::enableNoDelay(), dtn::daemon::Configuration::getInstance(), dtn::streams::StreamContactHeader::REQUEST_ACKNOWLEDGMENTS, and dtn::streams::StreamContactHeader::REQUEST_NEGATIVE_ACKNOWLEDGMENTS.

| dtn::net::TCPConnection::TCPConnection | ( | TCPConvergenceLayer & | tcpsrv, |
| const dtn::core::Node & | node, | ||
| const dtn::data::EID & | name, | ||
| const size_t | timeout = 10 |
||
| ) |
Constructor for a new TCPConnection object.
| tcpsrv | |
| node | The node to talk to. |
| name | |
| timeout |
Definition at line 76 of file TCPConnection.cpp.
References dtn::streams::StreamContactHeader::REQUEST_ACKNOWLEDGMENTS, and dtn::streams::StreamContactHeader::REQUEST_NEGATIVE_ACKNOWLEDGMENTS.
| dtn::net::TCPConnection::~TCPConnection | ( | ) | [virtual] |
| bool dtn::net::TCPConnection::__cancellation | ( | ) | [protected, virtual] |
Reimplemented from ibrcommon::Thread.
Definition at line 270 of file TCPConnection.cpp.
| void dtn::net::TCPConnection::clearQueue | ( | ) | [protected] |
Definition at line 549 of file TCPConnection.cpp.
References dtn::routing::RequeueBundleEvent::raise().
Referenced by finally().

| void dtn::net::TCPConnection::eventBundleAck | ( | size_t | ack | ) | [virtual] |
This method is called if a ACK is received.
Implements dtn::streams::StreamConnection::Callback.
Definition at line 242 of file TCPConnection.cpp.
| void dtn::net::TCPConnection::eventBundleForwarded | ( | ) | [virtual] |
This method is called if a bundle is refused by the peer.
Implements dtn::streams::StreamConnection::Callback.
Definition at line 223 of file TCPConnection.cpp.
References dtn::core::BUNDLE_FORWARDED, dtn::core::Node::getEID(), ibrcommon::Queue< T >::getnpop(), IBRCOMMON_LOGGER, IBRCOMMON_LOGGER_ENDL, dtn::core::BundleEvent::raise(), and dtn::net::TransferCompletedEvent::raise().

| void dtn::net::TCPConnection::eventBundleRefused | ( | ) | [virtual] |
This method is called if a bundle is refused by the peer.
Implements dtn::streams::StreamConnection::Callback.
Definition at line 206 of file TCPConnection.cpp.
References dtn::core::Node::getEID(), ibrcommon::Queue< T >::getnpop(), IBRCOMMON_LOGGER, IBRCOMMON_LOGGER_ENDL, dtn::net::TransferAbortedEvent::raise(), and dtn::net::TransferAbortedEvent::REASON_REFUSED.

| void dtn::net::TCPConnection::eventConnectionDown | ( | ) | [virtual] |
This method is called if a connection went down.
Implements dtn::streams::StreamConnection::Callback.
Definition at line 188 of file TCPConnection.cpp.
References dtn::net::ConnectionEvent::CONNECTION_DOWN, IBRCOMMON_LOGGER_DEBUG, IBRCOMMON_LOGGER_ENDL, dtn::net::ConnectionEvent::raise(), and ibrcommon::Exception::what().

| void dtn::net::TCPConnection::eventConnectionUp | ( | const StreamContactHeader & | header | ) | [virtual] |
This method is called if a handshake was successful.
| header |
Implements dtn::streams::StreamConnection::Callback.
Definition at line 134 of file TCPConnection.cpp.
References dtn::net::ConnectionEvent::CONNECTION_UP, dtn::daemon::Configuration::getInstance(), IBRCOMMON_LOGGER, IBRCOMMON_LOGGER_ENDL, dtn::net::ConnectionEvent::raise(), dtn::streams::StreamContactHeader::REQUEST_TLS, and dtn::security::SecurityCertificateManager::validateSubject().

| void dtn::net::TCPConnection::eventError | ( | ) | [virtual] |
This method is called if a error occured in the stream.
Implements dtn::streams::StreamConnection::Callback.
Definition at line 130 of file TCPConnection.cpp.
| void dtn::net::TCPConnection::eventShutdown | ( | StreamConnection::ConnectionShutdownCases | csc | ) | [virtual] |
callback methods for tcpstream
Implements dtn::streams::StreamConnection::Callback.
Definition at line 117 of file TCPConnection.cpp.
| void dtn::net::TCPConnection::eventTimeout | ( | ) | [virtual] |
This method is called if the stream is closed by a TIMEOUT.
Implements dtn::streams::StreamConnection::Callback.
Definition at line 121 of file TCPConnection.cpp.
References dtn::net::ConnectionEvent::CONNECTION_TIMEOUT, dtn::net::ConnectionEvent::raise(), and ibrcommon::DetachedThread::stop().

| void dtn::net::TCPConnection::finally | ( | void | ) | [protected, virtual] |
This method is called when the run() method finishes.
Reimplemented from ibrcommon::Thread.
Definition at line 280 of file TCPConnection.cpp.
References clearQueue(), IBRCOMMON_LOGGER_DEBUG, and IBRCOMMON_LOGGER_ENDL.

| dtn::core::Node::Protocol dtn::net::TCPConnection::getDiscoveryProtocol | ( | ) | const |
| const StreamContactHeader & dtn::net::TCPConnection::getHeader | ( | ) | const |
| const dtn::core::Node & dtn::net::TCPConnection::getNode | ( | ) | const |
Get the associated Node object
Definition at line 107 of file TCPConnection.cpp.
Referenced by dtn::net::TCPConvergenceLayer::queue().
| bool dtn::net::TCPConnection::good | ( | ) | const [protected] |
Definition at line 602 of file TCPConnection.cpp.
| void dtn::net::TCPConnection::initialize | ( | ) | [virtual] |
This method is called after accept()
Definition at line 247 of file TCPConnection.cpp.
References IBRCOMMON_LOGGER, IBRCOMMON_LOGGER_ENDL, ibrcommon::DetachedThread::start(), and ibrcommon::Exception::what().
Referenced by dtn::net::TCPConvergenceLayer::componentRun(), dtn::net::TCPConvergenceLayer::open(), and dtn::net::TCPConvergenceLayer::queue().

| void dtn::net::TCPConnection::keepalive | ( | ) | [protected] |
Definition at line 597 of file TCPConnection.cpp.
| bool dtn::net::TCPConnection::match | ( | const dtn::data::EID & | destination | ) | const |
Definition at line 621 of file TCPConnection.cpp.
References dtn::data::EID::getNode().

| bool dtn::net::TCPConnection::match | ( | const dtn::core::NodeEvent & | evt | ) | const |
| bool dtn::net::TCPConnection::match | ( | const dtn::core::Node & | n | ) | const |
Definition at line 616 of file TCPConnection.cpp.
Referenced by dtn::net::TCPConvergenceLayer::open(), and dtn::net::TCPConvergenceLayer::queue().
| void dtn::net::TCPConnection::queue | ( | const dtn::data::BundleID & | bundle | ) |
queue a bundle for this connection
| bundle |
Definition at line 97 of file TCPConnection.cpp.
Referenced by dtn::net::TCPConvergenceLayer::queue().
| void dtn::net::TCPConnection::rejectTransmission | ( | ) | [protected] |
Definition at line 112 of file TCPConnection.cpp.
Referenced by run().
| void dtn::net::TCPConnection::run | ( | ) | [protected, virtual] |
Abstract interface for thread context run method.
Implements ibrcommon::Thread.
Definition at line 347 of file TCPConnection.cpp.
References IBRCOMMON_LOGGER, IBRCOMMON_LOGGER_DEBUG, IBRCOMMON_LOGGER_ENDL, dtn::data::ScopeControlHopLimitBlock::increment(), dtn::net::BundleReceivedEvent::raise(), rejectTransmission(), ibrcommon::Exception::what(), and ibrcommon::Thread::yield().

| void dtn::net::TCPConnection::setup | ( | void | ) | [protected, virtual] |
This method is called before the run.
Reimplemented from ibrcommon::Thread.
Definition at line 302 of file TCPConnection.cpp.
References dtn::core::Node::add(), dtn::core::Node::clear(), dtn::core::Node::CONN_TCPIP, dtn::core::Node::URI::decode(), dtn::core::Node::get(), dtn::daemon::Configuration::getInstance(), IBRCOMMON_LOGGER, IBRCOMMON_LOGGER_ENDL, ibrcommon::tcpclient::open(), dtn::core::Node::toString(), and dtn::core::Node::URI::value.

| void dtn::net::TCPConnection::shutdown | ( | ) |
shutdown the whole tcp connection
Definition at line 257 of file TCPConnection.cpp.
References IBRCOMMON_LOGGER_DEBUG, IBRCOMMON_LOGGER_ENDL, ibrcommon::DetachedThread::stop(), and ibrcommon::Exception::what().

| TCPConnection& operator<< | ( | TCPConnection & | conn, |
| const dtn::data::Bundle & | bundle | ||
| ) | [friend] |
Definition at line 420 of file TCPConnection.cpp.
| TCPConnection& operator>> | ( | TCPConnection & | conn, |
| dtn::data::Bundle & | bundle | ||
| ) | [friend] |
Definition at line 409 of file TCPConnection.cpp.