ucommon
Public Member Functions | Protected Member Functions
ost::TCPSession Class Reference

The TCP session is used to primarily to represent a client connection that can be managed on a seperate thread. More...

#include <tcp.h>

Inheritance diagram for ost::TCPSession:
Inheritance graph
[legend]
Collaboration diagram for ost::TCPSession:
Collaboration graph
[legend]

Public Member Functions

 TCPSession (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.
 TCPSession (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.
 TCPSession (TCPV6Socket &server, int pri=0, size_t stack=0)
virtual ~TCPSession ()
 Make sure destruction happens through a virtual...

Protected Member Functions

void initial (void)
 The initial method is used to esablish a connection when delayed completion is used.
int waitConnection (timeout_t timeout=ucommon::Timer::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.

Detailed Description

The TCP session is used to primarily to represent a client connection that can be managed on a seperate thread.

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> Threaded streamable socket with non-blocking constructor.

Definition at line 546 of file tcp.h.


Constructor & Destructor Documentation

ost::TCPSession::TCPSession ( 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:
hostinternet address of remote TCP server.
portnumber of remote server.
sizeof streaming buffer.
priexecution priority relative to parent.
stackallocation needed on some platforms.
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:
servertcp socket to accept a connection from.
priexecution priority relative to parent.
stackallocation needed on some platforms.

Member Function Documentation

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

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.

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:
timeoutto wait for completion in milliseconds.

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