NetServerTCP2 Class Reference

#include <NetServerTCP2.h>

Inheritance diagram for NetServerTCP2:

NetInterface NetMessageHandlerI

List of all members.

Public Member Functions

 NetServerTCP2 ()
virtual ~NetServerTCP2 ()
virtual bool started ()
virtual bool connect (const char *hostName, int portNo)
virtual bool start (int portNo)
virtual void stop ()
virtual int processMessages ()
virtual void setMessageHandler (NetMessageHandlerI *handler)
virtual void disconnectAllClients ()
virtual void disconnectClient (unsigned int client)
virtual void sendMessageServer (NetBuffer &buffer, unsigned int flags=0)
virtual void sendMessageDest (NetBuffer &buffer, unsigned int destination, unsigned int flags=0)
virtual void processMessage (NetMessage &message)

Protected Member Functions

void checkNewConnections ()
void checkClients ()
bool startProcessing ()
void actualSendRecvFunc ()
void destroyDestination (unsigned int destinationId, NetMessage::DisconnectFlags type)
unsigned int addDestination (TCPsocket &socket)

Static Protected Member Functions

static int sendRecvThreadFunc (void *)

Protected Attributes

NetMessageHandler outgoingMessageHandler_
NetMessageHandler incomingMessageHandler_
TCPsocket serverSock_
SDLNet_SocketSet serverSockSet_
SDL_Thread * sendRecvThread_
bool stopped_
std::map< unsigned
int,
NetServerTCP2Destination * > 
destinations_
std::list
< NetServerTCP2Destination * > 
finishedDestinations_
unsigned int serverDestinationId_
unsigned int nextDestinationId_

Friends

class NetServerTCP2Destination


Detailed Description

Definition at line 27 of file NetServerTCP2.h.


Constructor & Destructor Documentation

NetServerTCP2::NetServerTCP2 (  ) 

Definition at line 28 of file NetServerTCP2.cpp.

References NetOptions::instance(), NetOptions::readOptionsFromFile(), serverSockSet_, and NetOptions::writeOptionsToFile().

NetServerTCP2::~NetServerTCP2 (  )  [virtual]

Definition at line 40 of file NetServerTCP2.cpp.

References serverSockSet_.


Member Function Documentation

bool NetServerTCP2::started (  )  [virtual]

Implements NetInterface.

Definition at line 46 of file NetServerTCP2.cpp.

References sendRecvThread_.

Referenced by stop().

bool NetServerTCP2::connect ( const char *  hostName,
int  portNo 
) [virtual]

Implements NetInterface.

Definition at line 52 of file NetServerTCP2.cpp.

References addDestination(), S3D::formatStringBuffer(), Logger::log(), serverDestinationId_, startProcessing(), and stop().

bool NetServerTCP2::start ( int  portNo  )  [virtual]

Implements NetInterface.

Definition at line 89 of file NetServerTCP2.cpp.

References S3D::formatStringBuffer(), Logger::log(), NULL, serverSock_, serverSockSet_, startProcessing(), and stop().

void NetServerTCP2::stop (  )  [virtual]

Implements NetInterface.

Definition at line 123 of file NetServerTCP2.cpp.

References disconnectAllClients(), and started().

Referenced by connect(), and start().

int NetServerTCP2::processMessages (  )  [virtual]

Implements NetInterface.

Definition at line 360 of file NetServerTCP2.cpp.

References incomingMessageHandler_, and NetMessageHandler::processMessages().

void NetServerTCP2::setMessageHandler ( NetMessageHandlerI handler  )  [virtual]

Implements NetInterface.

Definition at line 366 of file NetServerTCP2.cpp.

References incomingMessageHandler_, and NetMessageHandler::setMessageHandler().

void NetServerTCP2::disconnectAllClients (  )  [virtual]

Implements NetInterface.

Definition at line 315 of file NetServerTCP2.cpp.

References NetMessageHandler::addMessage(), NetMessage::DisconnectAllMessage, NetMessagePool::instance(), and outgoingMessageHandler_.

Referenced by stop().

void NetServerTCP2::disconnectClient ( unsigned int  client  )  [virtual]

Implements NetInterface.

Definition at line 325 of file NetServerTCP2.cpp.

References NetMessageHandler::addMessage(), NetMessage::DisconnectMessage, NetMessagePool::instance(), and outgoingMessageHandler_.

void NetServerTCP2::sendMessageServer ( NetBuffer buffer,
unsigned int  flags = 0 
) [virtual]

Implements NetInterface.

Definition at line 335 of file NetServerTCP2.cpp.

References sendMessageDest(), and serverDestinationId_.

void NetServerTCP2::sendMessageDest ( NetBuffer buffer,
unsigned int  destination,
unsigned int  flags = 0 
) [virtual]

Implements NetInterface.

Definition at line 342 of file NetServerTCP2.cpp.

References NetMessageHandler::addMessage(), NetBuffer::allocate(), NetMessage::BufferMessage, NetBuffer::getBuffer(), NetMessage::getBuffer(), NetBuffer::getBufferUsed(), NetMessagePool::instance(), outgoingMessageHandler_, and NetBuffer::setBufferUsed().

Referenced by sendMessageServer().

void NetServerTCP2::processMessage ( NetMessage message  )  [virtual]

Implements NetMessageHandlerI.

Definition at line 255 of file NetServerTCP2.cpp.

References NetServerTCP2Destination::addMessage(), NetBuffer::allocate(), destinations_, destroyDestination(), NetMessage::DisconnectAllMessage, NetMessage::DisconnectMessage, NetBuffer::getBuffer(), NetMessage::getBuffer(), NetBuffer::getBufferUsed(), NetMessage::getDestinationId(), NetMessage::getFlags(), NetMessagePool::getFromPool(), NetMessage::getIpAddress(), NetMessage::getMessageType(), NetMessagePool::instance(), NetMessage::KickDisconnect, NetBuffer::setBufferUsed(), and stopped_.

void NetServerTCP2::checkNewConnections (  )  [protected]

Definition at line 209 of file NetServerTCP2.cpp.

References addDestination(), serverSock_, and serverSockSet_.

Referenced by actualSendRecvFunc().

void NetServerTCP2::checkClients (  )  [protected]

Definition at line 228 of file NetServerTCP2.cpp.

References destinations_, destroyDestination(), NetServerTCP2Destination::finished(), finishedDestinations_, and NetMessage::UserDisconnect.

Referenced by actualSendRecvFunc().

bool NetServerTCP2::startProcessing (  )  [protected]

Definition at line 132 of file NetServerTCP2.cpp.

References DIALOG_ASSERT, S3D::formatStringBuffer(), Logger::log(), outgoingMessageHandler_, sendRecvThread_, sendRecvThreadFunc(), and NetMessageHandler::setMessageHandler().

Referenced by connect(), and start().

void NetServerTCP2::actualSendRecvFunc (  )  [protected]

Definition at line 163 of file NetServerTCP2.cpp.

References checkClients(), checkNewConnections(), S3D::formatStringBuffer(), Clock::getTimeDifference(), Logger::log(), outgoingMessageHandler_, NetMessageHandler::processMessages(), serverSock_, and stopped_.

Referenced by sendRecvThreadFunc().

int NetServerTCP2::sendRecvThreadFunc ( void *  c  )  [static, protected]

Definition at line 152 of file NetServerTCP2.cpp.

References actualSendRecvFunc(), S3D::formatStringBuffer(), Logger::log(), and sendRecvThread_.

Referenced by startProcessing().

void NetServerTCP2::destroyDestination ( unsigned int  destinationId,
NetMessage::DisconnectFlags  type 
) [protected]

Definition at line 372 of file NetServerTCP2.cpp.

References NetMessageHandler::addMessage(), destinations_, NetMessage::DisconnectMessage, finishedDestinations_, NetServerTCP2Destination::getIpAddress(), incomingMessageHandler_, NetMessagePool::instance(), NetServerTCP2Destination::printStats(), serverDestinationId_, NetMessage::setFlags(), NetServerTCP2Destination::stop(), and stopped_.

Referenced by checkClients(), and processMessage().

unsigned int NetServerTCP2::addDestination ( TCPsocket &  socket  )  [protected]

Definition at line 406 of file NetServerTCP2.cpp.

References NetMessageHandler::addMessage(), NetMessage::ConnectMessage, destinations_, NetInterface::getConnects(), NetServerTCP2Destination::getIpAddress(), incomingMessageHandler_, NetMessagePool::instance(), NetServerTCP2Destination, and nextDestinationId_.

Referenced by checkNewConnections(), and connect().


Friends And Related Function Documentation

friend class NetServerTCP2Destination [friend]

Definition at line 55 of file NetServerTCP2.h.

Referenced by addDestination().


Member Data Documentation

NetMessageHandler NetServerTCP2::outgoingMessageHandler_ [protected]

Definition at line 57 of file NetServerTCP2.h.

Referenced by actualSendRecvFunc(), disconnectAllClients(), disconnectClient(), sendMessageDest(), and startProcessing().

NetMessageHandler NetServerTCP2::incomingMessageHandler_ [protected]

Definition at line 58 of file NetServerTCP2.h.

Referenced by addDestination(), destroyDestination(), processMessages(), and setMessageHandler().

TCPsocket NetServerTCP2::serverSock_ [protected]

Definition at line 59 of file NetServerTCP2.h.

Referenced by actualSendRecvFunc(), checkNewConnections(), and start().

SDLNet_SocketSet NetServerTCP2::serverSockSet_ [protected]

Definition at line 60 of file NetServerTCP2.h.

Referenced by checkNewConnections(), NetServerTCP2(), start(), and ~NetServerTCP2().

SDL_Thread* NetServerTCP2::sendRecvThread_ [protected]

Definition at line 61 of file NetServerTCP2.h.

Referenced by sendRecvThreadFunc(), started(), and startProcessing().

bool NetServerTCP2::stopped_ [protected]

Definition at line 62 of file NetServerTCP2.h.

Referenced by actualSendRecvFunc(), destroyDestination(), and processMessage().

std::map<unsigned int, NetServerTCP2Destination *> NetServerTCP2::destinations_ [protected]

Definition at line 63 of file NetServerTCP2.h.

Referenced by addDestination(), checkClients(), destroyDestination(), and processMessage().

std::list<NetServerTCP2Destination *> NetServerTCP2::finishedDestinations_ [protected]

Definition at line 64 of file NetServerTCP2.h.

Referenced by checkClients(), and destroyDestination().

unsigned int NetServerTCP2::serverDestinationId_ [protected]

Definition at line 65 of file NetServerTCP2.h.

Referenced by connect(), destroyDestination(), and sendMessageServer().

unsigned int NetServerTCP2::nextDestinationId_ [protected]

Definition at line 66 of file NetServerTCP2.h.

Referenced by addDestination().


The documentation for this class was generated from the following files:
Generated on Mon Feb 16 15:15:04 2009 for Scorched3D by  doxygen 1.5.3