Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Examples  

ost::TCPSession Class Reference

The TCP session is used to primarily to represent a client connection that can be managed on a seperate thread. Threaded streamable socket with non-blocking constructor. More...

#include <socket.h>

Inheritance diagram for ost::TCPSession::

ost::Thread ost::TCPStream std::streambuf ost::Socket std::iostream List of all members.

Public Methods

 TCPSession (const IPV4Host &host, tpport_t port, size_t size=536, int pri=0, size_t stack=0)
 Create a TCP socket that will be connected to a remote TCP server and that will execute under it's own thread. More...

 TCPSession (const IPV6Host &host, tpport_t port, size_t size=536, int pri=0, size_t stack=0)
 TCPSession (TCPSocket &server, int pri=0, size_t stack=0)
 Create a TCP socket from a bound TCP server by accepting a pending connection from that server and execute a thread for the accepted connection. More...

 TCPSession (TCPV6Socket &server, int pri=0, size_t stack=0)
virtual ~TCPSession ()
 Make sure destruction happens through a virtual... More...


Protected Methods

int waitConnection (timeout_t timeout=TIMEOUT_INF)
 Normally called during the thread Initial() method by default, this will wait for the socket connection to complete when connecting to a remote socket. More...

void initial (void)
 The initial method is used to esablish a connection when delayed completion is used. More...


Detailed Description

The TCP session is used to primarily to represent a client connection that can be managed on a seperate thread. Threaded streamable socket with non-blocking constructor.

The TCP session also supports a non-blocking connection scheme which prevents blocking during the constructor and moving the process of completing a connection into the thread that executes for the session.

Author:
David Sugar <dyfet@ostel.com>


Constructor & Destructor Documentation

ost::TCPSession::TCPSession ( const IPV4Host & host,
tpport_t port,
size_t size = 536,
int pri = 0,
size_t stack = 0 )
 

Create a TCP socket that will be connected to a remote TCP server and that will execute under it's own thread.

Parameters:
host   internet address of remote TCP server.
port   number of remote server.
size   of streaming buffer.
pri   execution priority relative to parent.
stack   allocation needed on some platforms.

ost::TCPSession::TCPSession ( const IPV6Host & host,
tpport_t port,
size_t size = 536,
int pri = 0,
size_t stack = 0 )
 

ost::TCPSession::TCPSession ( TCPSocket & server,
int pri = 0,
size_t stack = 0 )
 

Create a TCP socket from a bound TCP server by accepting a pending connection from that server and execute a thread for the accepted connection.

Parameters:
server   tcp socket to accept a connection from.
pri   execution priority relative to parent.
stack   allocation needed on some platforms.

ost::TCPSession::TCPSession ( TCPV6Socket & server,
int pri = 0,
size_t stack = 0 )
 

ost::TCPSession::~TCPSession ( ) [virtual]
 

Make sure destruction happens through a virtual...


Member Function Documentation

void ost::TCPSession::initial ( void ) [protected, virtual]
 

The initial method is used to esablish a connection when delayed completion is used.

This assures the constructor terminates without having to wait for a connection request to complete.

Reimplemented from ost::Thread.

int ost::TCPSession::waitConnection ( timeout_t timeout = TIMEOUT_INF ) [protected]
 

Normally called during the thread Initial() method by default, this will wait for the socket connection to complete when connecting to a remote socket.

One might wish to use setCompletion() to change the socket back to blocking I/O calls after the connection completes. To implement the session one must create a derived class which implements run().

Returns:
0 if successful, -1 if timed out.
Parameters:
timeout   to wait for completion in milliseconds.


The documentation for this class was generated from the following file:
Generated at Sat May 12 18:59:46 2007 for GNU CommonC++ by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001