dtntunnel::TCPTunnel Class Reference

#include <TCPTunnel.h>

Inheritance diagram for dtntunnel::TCPTunnel:

dtntunnel::IPTunnel oasys::Logger

List of all members.


Detailed Description

Class to manage TCP <-> DTN tunnels.

Definition at line 37 of file TCPTunnel.h.


Public Member Functions

 TCPTunnel ()
 Constructor.
void add_listener (in_addr_t listen_addr, u_int16_t listen_port, in_addr_t remote_addr, u_int16_t remote_port)
 Add a new listening to from the given listening address/port to the given remote address/port.
void handle_bundle (dtn::APIBundle *bundle)
 Handle a newly arriving bundle.

Protected Types

typedef std::map
< ConnKey,
Connection * > 
ConnTable
 Table of connection classes indexed by the remote address/port.

Protected Member Functions

void new_connection (Connection *c)
 Hook called by the listener when a new connection comes in.
void kill_connection (Connection *c)
 Hook called when a new connection dies.

Protected Attributes

ConnTable connections_
oasys::SpinLock lock_
 Lock to protect the connections table.

Classes

class  Connection
 Helper class to handle an actively proxied connection. More...
struct  ConnKey
 Helper struct used as the index key into the connection table. More...
class  Listener
 Helper class to accept incoming TCP connections. More...

Member Typedef Documentation

typedef std::map<ConnKey, Connection*> dtntunnel::TCPTunnel::ConnTable [protected]

Table of connection classes indexed by the remote address/port.

Definition at line 155 of file TCPTunnel.h.


Constructor & Destructor Documentation

dtntunnel::TCPTunnel::TCPTunnel (  ) 

Constructor.

Definition at line 26 of file TCPTunnel.cc.


Member Function Documentation

void dtntunnel::TCPTunnel::add_listener ( in_addr_t  listen_addr,
u_int16_t  listen_port,
in_addr_t  remote_addr,
u_int16_t  remote_port 
) [virtual]

Add a new listening to from the given listening address/port to the given remote address/port.

Implements dtntunnel::IPTunnel.

Definition at line 33 of file TCPTunnel.cc.

Referenced by dtntunnel::DTNTunnel::init_tunnel().

void dtntunnel::TCPTunnel::handle_bundle ( dtn::APIBundle bundle  )  [virtual]

Handle a newly arriving bundle.

Implements dtntunnel::IPTunnel.

Definition at line 94 of file TCPTunnel.cc.

References ASSERT, oasys::ScratchBuffer< _memory_t, _static_size >::buf(), connections_, dtntunnel::TCPTunnel::Connection::handle_bundle(), intoa, ExamineDump::l, oasys::ExpandableBuffer::len(), lock_, log_debug, log_info, dtn::APIBundle::payload_, dtn_bundle_spec_t::source, dtn::APIBundle::spec_, and oasys::Thread::start().

Referenced by dtntunnel::DTNTunnel::handle_bundle().

void dtntunnel::TCPTunnel::new_connection ( Connection c  )  [protected]

Hook called by the listener when a new connection comes in.

Definition at line 42 of file TCPTunnel.cc.

References dtntunnel::TCPTunnel::Connection::client_addr_, dtntunnel::TCPTunnel::Connection::client_port_, connections_, intoa, ExamineDump::l, lock_, log_err, dtntunnel::TCPTunnel::Connection::remote_addr_, and dtntunnel::TCPTunnel::Connection::remote_port_.

Referenced by dtntunnel::TCPTunnel::Listener::accepted().

void dtntunnel::TCPTunnel::kill_connection ( Connection c  )  [protected]

Hook called when a new connection dies.

Definition at line 68 of file TCPTunnel.cc.

References dtntunnel::TCPTunnel::Connection::client_addr_, dtntunnel::TCPTunnel::Connection::client_port_, connections_, intoa, ExamineDump::l, lock_, log_err, dtntunnel::TCPTunnel::Connection::remote_addr_, and dtntunnel::TCPTunnel::Connection::remote_port_.

Referenced by dtntunnel::TCPTunnel::Connection::run().


Member Data Documentation

ConnTable dtntunnel::TCPTunnel::connections_ [protected]

Definition at line 156 of file TCPTunnel.h.

Referenced by handle_bundle(), kill_connection(), and new_connection().

oasys::SpinLock dtntunnel::TCPTunnel::lock_ [protected]

Lock to protect the connections table.

Definition at line 159 of file TCPTunnel.h.

Referenced by handle_bundle(), kill_connection(), and new_connection().


The documentation for this class was generated from the following files:
Generated on Sat Sep 8 08:43:50 2007 for DTN Reference Implementation by  doxygen 1.5.3