IBR-DTNSuite  0.8
dtn::net::TCPConnection Class Reference

#include <TCPConvergenceLayer.h>

Inheritance diagram for dtn::net::TCPConnection:
Collaboration diagram for dtn::net::TCPConnection:

List of all members.

Classes

class  KeepaliveSender
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 StreamContactHeadergetHeader () const
const dtn::core::NodegetNode () 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 connect ()
void run ()
void finally ()
void __cancellation ()
void clearQueue ()
void keepalive ()
bool good () const

Friends

TCPConnectionoperator>> (TCPConnection &conn, dtn::data::Bundle &bundle)
TCPConnectionoperator<< (TCPConnection &conn, const dtn::data::Bundle &bundle)

Detailed Description

Definition at line 45 of file TCPConvergenceLayer.h.


Constructor & Destructor Documentation

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.

Parameters:
tcpsrv
streamTCP stream to talk to the other peer.
name
timeout
Returns:

Definition at line 49 of file TCPConnection.cpp.

References ibrcommon::tcpstream::enableNoDelay(), dtn::daemon::Configuration::getInstance(), dtn::streams::StreamContactHeader::REQUEST_ACKNOWLEDGMENTS, dtn::streams::StreamContactHeader::REQUEST_FRAGMENTATION, and dtn::streams::StreamContactHeader::REQUEST_NEGATIVE_ACKNOWLEDGMENTS.

Here is the call graph for this function:

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.

Parameters:
tcpsrv
nodeThe node to talk to.
name
timeout
Returns:

Definition at line 83 of file TCPConnection.cpp.

References dtn::daemon::Configuration::getInstance(), dtn::streams::StreamContactHeader::REQUEST_ACKNOWLEDGMENTS, dtn::streams::StreamContactHeader::REQUEST_FRAGMENTATION, and dtn::streams::StreamContactHeader::REQUEST_NEGATIVE_ACKNOWLEDGMENTS.

Here is the call graph for this function:

Destructor

Returns:

Definition at line 103 of file TCPConnection.cpp.


Member Function Documentation

void dtn::net::TCPConnection::__cancellation ( ) [protected, virtual]

Implements ibrcommon::Thread.

Definition at line 295 of file TCPConnection.cpp.

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 267 of file TCPConnection.cpp.

This method is called if a bundle is refused by the peer.

Implements dtn::streams::StreamConnection::Callback.

Definition at line 231 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.

Here is the call graph for this function:

This method is called if a error occured in the stream.

Implements dtn::streams::StreamConnection::Callback.

Definition at line 145 of file TCPConnection.cpp.

callback methods for tcpstream

Implements dtn::streams::StreamConnection::Callback.

Definition at line 132 of file TCPConnection.cpp.

This method is called if the stream is closed by a TIMEOUT.

Implements dtn::streams::StreamConnection::Callback.

Definition at line 136 of file TCPConnection.cpp.

References dtn::net::ConnectionEvent::CONNECTION_TIMEOUT, dtn::net::ConnectionEvent::raise(), and ibrcommon::DetachedThread::stop().

Here is the call graph for this function:

void dtn::net::TCPConnection::finally ( void  ) [protected, virtual]

This method is called when the run() method finishes.

Reimplemented from ibrcommon::Thread.

Definition at line 306 of file TCPConnection.cpp.

References clearQueue(), IBRCOMMON_LOGGER_DEBUG, and IBRCOMMON_LOGGER_ENDL.

Here is the call graph for this function:

Get the header of this connection

Returns:

Definition at line 117 of file TCPConnection.cpp.

Get the associated Node object

Returns:

Definition at line 122 of file TCPConnection.cpp.

Referenced by dtn::net::operator<<(), and dtn::net::TCPConvergenceLayer::queue().

bool dtn::net::TCPConnection::good ( ) const [protected]

Definition at line 693 of file TCPConnection.cpp.

void dtn::net::TCPConnection::keepalive ( ) [protected]

Definition at line 688 of file TCPConnection.cpp.

bool dtn::net::TCPConnection::match ( const dtn::data::EID destination) const

Definition at line 707 of file TCPConnection.cpp.

References dtn::data::EID::getNode().

Here is the call graph for this function:

Definition at line 712 of file TCPConnection.cpp.

References dtn::core::NodeEvent::getNode().

Here is the call graph for this function:

queue a bundle for this connection

Parameters:
bundle

Definition at line 112 of file TCPConnection.cpp.

Referenced by dtn::net::TCPConvergenceLayer::queue().

Definition at line 127 of file TCPConnection.cpp.

References dtn::streams::StreamConnection::reject().

Referenced by run().

Here is the call graph for this function:

void dtn::net::TCPConnection::setup ( void  ) [protected, virtual]

This method is called before the run.

Reimplemented from ibrcommon::Thread.

Definition at line 331 of file TCPConnection.cpp.

shutdown the whole tcp connection

Definition at line 282 of file TCPConnection.cpp.

References IBRCOMMON_LOGGER_DEBUG, IBRCOMMON_LOGGER_ENDL, dtn::streams::StreamConnection::shutdown(), ibrcommon::DetachedThread::stop(), and ibrcommon::Exception::what().

Here is the call graph for this function:


Friends And Related Function Documentation

TCPConnection& operator<< ( TCPConnection conn,
const dtn::data::Bundle bundle 
) [friend]

Definition at line 473 of file TCPConnection.cpp.

TCPConnection& operator>> ( TCPConnection conn,
dtn::data::Bundle bundle 
) [friend]

Definition at line 454 of file TCPConnection.cpp.


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