GNU CommonC++
|
The TCP session is used to primarily to represent a client connection that can be managed on a seperate thread. More...
#include <socket.h>
Public Member Functions | |
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. | |
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. | |
TCPSession (TCPV6Socket &server, int pri=0, size_t stack=0) | |
virtual | ~TCPSession () |
Make sure destruction happens through a virtual... | |
Protected Member Functions | |
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. | |
void | initial (void) |
The initial method is used to esablish a connection when delayed completion is used. |
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.
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.
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.
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 |
||
) |
virtual ost::TCPSession::~TCPSession | ( | ) | [virtual] |
Make sure destruction happens through a virtual...
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().
timeout | to wait for completion in milliseconds. |