WOscTcpServer Class Reference

List of all members.

Public Types

enum  Error {
  WOS_TCPS_ERR_NO_ERR = 0, WOS_TCPS_ERR_OPEN_SOCKET, WOS_TCPS_ERR_BIND, WOS_TCPS_ERR_CREATE_THREAD,
  WOS_TCPS_ERR_NO_SERVER_SOCKET, WOS_TCPS_ERR_ACCEPT, WOS_TCPS_ERR_SET_NONBLOCKING, WOS_TCPS_ERR_ALREADY_BOUND,
  WOS_TCPS_ERR_SERVER_RUNNING, WOS_TCPS_ERR_LISTEN
}

Public Member Functions

 WOscTcpServer (bool threading=true)
Error Bind (int port, in_addr_t addr=INADDR_ANY)
Error Start ()
Error Stop ()
virtual WOscTcpServerHandler::Error SetupHandlerForNewConnection (WOscTcpServerHandler **handler, int socket, const TheNetReturnAddress &peer)=0
int GetServerSocket () const

Static Public Member Functions

static const char * GetErrStr (Error err)

Protected Member Functions

Error Accept ()
void Register (WOscTcpServerHandler *handler)
bool UnRegister (WOscTcpServerHandler *handler)

Friends

class WOscTcpServerHandler
void * wosc_tcp_server_thread (void *argument)

Detailed Description

Examples:

WOscStreamingServer.cpp.

Definition at line 49 of file WOscTcpServer.h.


Member Function Documentation

virtual WOscTcpServerHandler::Error WOscTcpServer::SetupHandlerForNewConnection ( WOscTcpServerHandler **  handler,
int  socket,
const TheNetReturnAddress peer 
) [pure virtual]

This member is called from the server thread if a new client has connected to the server. The final server implementation must override this abstract member to launch its own connection handler. Please see the streaming server example how to do this. In short:

    {
        WOscTcpServerHandler* h = new WOscStreamingHandler(this);
        WOscTcpServerHandler::Error err = h->Start(socket, peer);
        if (err != WOscTcpServerHandler::WOS_ERR_NO_ERROR ) {
            delete h;
        } else {
            *handler = h;
        }
        return err;
    }
Examples:
WOscStreamingServer.cpp.

Friends And Related Function Documentation

void* wosc_tcp_server_thread ( void *  argument  )  [friend]

Bootstrapper for receive thread member function.

Definition at line 42 of file WOscTcpServer.cpp.

00043 {
00044     WOSC_DBG_PRT("Server thread entered.");
00045     WOscTcpServer* server = static_cast<WOscTcpServer*>(argument);
00046     server->Accept();
00047     WOSC_DBG_PRT("Server thread terminated.");
00048     pthread_exit(NULL);
00049 }


The documentation for this class was generated from the following files:
Generated on Sat Oct 23 03:05:59 2010 for WOscLib by  doxygen 1.6.3