Classes | Public Member Functions | Protected Member Functions | Friends

dtn::net::TCPConnection Class Reference

#include <TCPConvergenceLayer.h>

Inherits dtn::streams::StreamConnection::Callback, and ibrcommon::DetachedThread.

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

List of all members.

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 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 run ()
void finally ()
void clearQueue ()
void keepalive ()

Friends

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

Detailed Description

Definition at line 43 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 
stream TCP stream to talk to the other peer.
name 
timeout 
Returns:

Definition at line 41 of file TCPConnection.cpp.

References ibrcommon::tcpstream::enableKeepalive(), ibrcommon::tcpstream::enableLinger(), ibrcommon::tcpstream::enableNoDelay(), dtn::daemon::Configuration::getInstance(), and dtn::core::Node::setProtocol().

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 
node The node to talk to.
name 
timeout 
Returns:

Definition at line 57 of file TCPConnection.cpp.

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

Destructor

Returns:

Definition at line 64 of file TCPConnection.cpp.


Member Function Documentation

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

Definition at line 456 of file TCPConnection.cpp.

References ibrcommon::Queue< T >::getnpop(), dtn::core::Node::getURI(), and dtn::routing::RequeueBundleEvent::raise().

Referenced by finally().

Here is the call graph for this function:

void dtn::net::TCPConnection::eventBundleAck ( size_t  ack  )  [virtual]

Definition at line 169 of file TCPConnection.cpp.

void dtn::net::TCPConnection::eventBundleForwarded (  )  [virtual]
void dtn::net::TCPConnection::eventBundleRefused (  )  [virtual]
void dtn::net::TCPConnection::eventConnectionDown (  )  [virtual]
void dtn::net::TCPConnection::eventConnectionUp ( const StreamContactHeader header  )  [virtual]
void dtn::net::TCPConnection::eventError (  )  [virtual]

Definition at line 101 of file TCPConnection.cpp.

void dtn::net::TCPConnection::eventShutdown ( StreamConnection::ConnectionShutdownCases  csc  )  [virtual]

callback methods for tcpstream

Definition at line 88 of file TCPConnection.cpp.

void dtn::net::TCPConnection::eventTimeout (  )  [virtual]

Definition at line 92 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 197 of file TCPConnection.cpp.

References clearQueue(), and IBRCOMMON_LOGGER_DEBUG.

Here is the call graph for this function:

dtn::core::Node::Protocol dtn::net::TCPConnection::getDiscoveryProtocol (  )  const
const StreamContactHeader & dtn::net::TCPConnection::getHeader (  )  const

Get the header of this connection

Returns:

Definition at line 73 of file TCPConnection.cpp.

const dtn::core::Node & dtn::net::TCPConnection::getNode (  )  const

Get the associated Node object

Returns:

Definition at line 78 of file TCPConnection.cpp.

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

void dtn::net::TCPConnection::initialize (  )  [virtual]

This method is called after accept()

Definition at line 174 of file TCPConnection.cpp.

References IBRCOMMON_LOGGER, ibrcommon::DetachedThread::start(), and ibrcommon::Exception::what().

Referenced by dtn::net::TCPConvergenceLayer::componentRun(), dtn::net::TCPConvergenceLayer::open(), and dtn::net::TCPConvergenceLayer::queue().

Here is the call graph for this function:

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

Definition at line 497 of file TCPConnection.cpp.

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

Here is the call graph for this function:

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

Definition at line 516 of file TCPConnection.cpp.

References dtn::data::EID::getNodeEID(), and dtn::core::Node::getURI().

Here is the call graph for this function:

bool dtn::net::TCPConnection::match ( const dtn::core::NodeEvent evt  )  const

Definition at line 521 of file TCPConnection.cpp.

References dtn::core::NodeEvent::getNode(), and match().

Here is the call graph for this function:

void dtn::net::TCPConnection::queue ( const dtn::data::BundleID bundle  ) 

queue a bundle for this connection

Parameters:
bundle 

Definition at line 68 of file TCPConnection.cpp.

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

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

Definition at line 83 of file TCPConnection.cpp.

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

Referenced by run().

Here is the call graph for this function:

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

shutdown the whole tcp connection

Definition at line 184 of file TCPConnection.cpp.

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

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

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

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

Definition at line 305 of file TCPConnection.cpp.


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