ServerWebServer Class Reference

#include <ServerWebServer.h>

Inheritance diagram for ServerWebServer:

NetMessageHandlerI

List of all members.

Public Member Functions

void start (int port)
void processMessages ()
void addRequestHandler (const char *url, ServerWebServerI *handler)
void addThrededRequestHandler (const char *url, ServerWebServerI *handler)
void addAsyncRequestHandler (const char *url, ServerWebServerI *handler)

Static Public Member Functions

static ServerWebServerinstance ()

Protected Member Functions

bool processRequest (unsigned int destinationId, const char *ip, const char *url, std::map< std::string, std::string > &fields, std::map< std::string, NetMessage * > &parts)
bool validateUser (const char *ip, const char *url, std::map< std::string, std::string > &fields)
unsigned int validateSession (const char *ip, const char *url, std::map< std::string, std::string > &fields)
bool processQueue (ServerWebServerQueue &queue, bool keepEntries)
virtual void processMessage (NetMessage &message)

Static Protected Member Functions

static int sendThreadFunc (void *)

Protected Attributes

std::map
< std::string,
HandlerEntry
handlers_
ServerWebServerQueue asyncQueue_
ServerWebServerQueue threadedQueue_
ServerWebServerQueue normalQueue_
unsigned int asyncTimer_
std::list< std::pair
< unsigned int,
NetMessage * > > 
delayedMessages_
SDL_Thread * sendThread_
NetServerTCP netServer_
FileLoggerlogger_

Static Protected Attributes

static ServerWebServerinstance_ = 0

Private Member Functions

 ServerWebServer ()
virtual ~ServerWebServer ()

Classes

struct  HandlerEntry


Detailed Description

Definition at line 28 of file ServerWebServer.h.


Constructor & Destructor Documentation

ServerWebServer::ServerWebServer (  )  [private]

Definition at line 49 of file ServerWebServer.cpp.

References addAsyncRequestHandler(), addRequestHandler(), addThrededRequestHandler(), S3D::formatStringBuffer(), Logger::log(), sendThread_, and sendThreadFunc().

Referenced by instance().

ServerWebServer::~ServerWebServer (  )  [private, virtual]

Definition at line 81 of file ServerWebServer.cpp.


Member Function Documentation

ServerWebServer * ServerWebServer::instance (  )  [static]

Definition at line 40 of file ServerWebServer.cpp.

References instance_, and ServerWebServer().

Referenced by serverLoop(), and serverMain().

void ServerWebServer::start ( int  port  ) 

Definition at line 97 of file ServerWebServer.cpp.

References S3D::formatStringBuffer(), ScorchedServer::instance(), Logger::log(), logger_, netServer_, NetServerTCP::setMessageHandler(), NetServerTCP::start(), and LangStringUtil::strcmp().

Referenced by serverMain().

void ServerWebServer::processMessages (  ) 

Definition at line 133 of file ServerWebServer.cpp.

References NetMessagePool::addToPool(), asyncQueue_, asyncTimer_, delayedMessages_, NetMessage::getBuffer(), NetMessage::getDestinationId(), NetMessagePool::instance(), int(), netServer_, NetServerTCP::processMessages(), processQueue(), and NetServerTCP::sendMessageDest().

Referenced by serverLoop().

void ServerWebServer::addRequestHandler ( const char *  url,
ServerWebServerI handler 
)

Definition at line 112 of file ServerWebServer.cpp.

References handlers_.

Referenced by ServerWebServer().

void ServerWebServer::addThrededRequestHandler ( const char *  url,
ServerWebServerI handler 
)

Definition at line 119 of file ServerWebServer.cpp.

References ServerWebServer::HandlerEntry::eThreaded, and handlers_.

Referenced by ServerWebServer().

void ServerWebServer::addAsyncRequestHandler ( const char *  url,
ServerWebServerI handler 
)

Definition at line 126 of file ServerWebServer.cpp.

References ServerWebServer::HandlerEntry::eAsync, and handlers_.

Referenced by ServerWebServer().

bool ServerWebServer::processRequest ( unsigned int  destinationId,
const char *  ip,
const char *  url,
std::map< std::string, std::string > &  fields,
std::map< std::string, NetMessage * > &  parts 
) [protected]

Definition at line 334 of file ServerWebServer.cpp.

References NetBuffer::addDataToBuffer(), ServerWebServerQueue::addEntry(), NetMessagePool::addToPool(), asyncQueue_, NetMessage::BufferMessage, delayedMessages_, ServerWebServer::HandlerEntry::eAsync, ServerWebServer::HandlerEntry::eThreaded, S3D::formatStringBuffer(), NetMessage::getBuffer(), NetMessage::getDestinationId(), NetMessagePool::getFromPool(), ServerWebServerUtil::getHtmlNotFound(), ServerWebServerUtil::getHtmlRedirect(), ServerWebServerUtil::getHtmlTemplate(), handlers_, NetMessagePool::instance(), int(), netServer_, normalQueue_, processQueue(), NetServerTCP::sendMessageDest(), LangStringUtil::strcmp(), threadedQueue_, validateSession(), and validateUser().

Referenced by processMessage().

bool ServerWebServer::validateUser ( const char *  ip,
const char *  url,
std::map< std::string, std::string > &  fields 
) [protected]

Definition at line 470 of file ServerWebServer.cpp.

References ServerAdminSessions::SessionParams::credentials, S3D::formatStringBuffer(), ServerAdminSessions::getSession(), ServerChannelManager::instance(), ServerAdminSessions::instance(), Logger::log(), ServerAdminSessions::login(), and ServerChannelManager::sendText().

Referenced by processRequest().

unsigned int ServerWebServer::validateSession ( const char *  ip,
const char *  url,
std::map< std::string, std::string > &  fields 
) [protected]

Definition at line 442 of file ServerWebServer.cpp.

References ServerAdminSessions::getFirstSession(), ServerAdminSessions::getSession(), ServerAdminSessions::instance(), int(), ServerAdminSessions::SessionParams::sid, and LangStringUtil::strcmp().

Referenced by processRequest().

int ServerWebServer::sendThreadFunc ( void *   )  [static, protected]

Definition at line 85 of file ServerWebServer.cpp.

References instance_, processQueue(), and threadedQueue_.

Referenced by ServerWebServer().

bool ServerWebServer::processQueue ( ServerWebServerQueue queue,
bool  keepEntries 
) [protected]

Definition at line 506 of file ServerWebServer.cpp.

References NetBuffer::addDataToBuffer(), ServerWebServerQueue::addEntry(), NetMessagePool::addToPool(), NetMessage::BufferMessage, NetMessage::getBuffer(), NetMessage::getDestinationId(), ServerWebServerQueueEntry::getDestinationId(), ServerWebServerQueue::getEntry(), NetMessagePool::getFromPool(), ServerWebServerQueueEntry::getHandler(), ServerWebServerQueueEntry::getRequest(), ServerAdminSessions::getSession(), ServerWebServerQueueEntry::getSid(), NetMessagePool::instance(), ServerAdminSessions::instance(), netServer_, ServerWebServerI::processRequest(), NetServerTCP::sendMessageDest(), and ServerWebServerIRequest::setSession().

Referenced by processMessages(), processRequest(), and sendThreadFunc().

void ServerWebServer::processMessage ( NetMessage message  )  [protected, virtual]

Implements NetMessageHandlerI.

Definition at line 166 of file ServerWebServer.cpp.

References NetBuffer::addToBuffer(), NetMessagePool::addToPool(), asyncQueue_, NetMessage::BufferMessage, ServerAdminSessions::SessionParams::credentials, NetServerTCP::disconnectClient(), NetMessage::DisconnectMessage, ServerWebServerUtil::extractMultiPartPost(), ServerWebServerUtil::extractQueryFields(), S3D::formatStringBuffer(), NetBuffer::getBuffer(), NetMessage::getBuffer(), NetBuffer::getBufferUsed(), NetMessage::getDestinationId(), NetMessage::getIpAddress(), NetInterface::getIpName(), NetMessage::getMessageType(), ServerAdminSessions::getSession(), ServerWebServerQueue::hasEntry(), NetMessagePool::instance(), ServerAdminSessions::instance(), int(), logger_, FileLogger::logMessage(), netServer_, processRequest(), ServerWebServerQueue::removeEntry(), NetMessage::SentMessage, LangStringUtil::strcmp(), LangStringUtil::strlen(), and LangStringUtil::strstr().


Member Data Documentation

ServerWebServer * ServerWebServer::instance_ = 0 [static, protected]

Definition at line 43 of file ServerWebServer.h.

Referenced by instance(), and sendThreadFunc().

std::map<std::string, HandlerEntry> ServerWebServer::handlers_ [protected]

Definition at line 56 of file ServerWebServer.h.

Referenced by addAsyncRequestHandler(), addRequestHandler(), addThrededRequestHandler(), and processRequest().

ServerWebServerQueue ServerWebServer::asyncQueue_ [protected]

Definition at line 58 of file ServerWebServer.h.

Referenced by processMessage(), processMessages(), and processRequest().

ServerWebServerQueue ServerWebServer::threadedQueue_ [protected]

Definition at line 59 of file ServerWebServer.h.

Referenced by processRequest(), and sendThreadFunc().

ServerWebServerQueue ServerWebServer::normalQueue_ [protected]

Definition at line 60 of file ServerWebServer.h.

Referenced by processRequest().

unsigned int ServerWebServer::asyncTimer_ [protected]

Definition at line 62 of file ServerWebServer.h.

Referenced by processMessages().

std::list<std::pair<unsigned int, NetMessage *> > ServerWebServer::delayedMessages_ [protected]

Definition at line 63 of file ServerWebServer.h.

Referenced by processMessages(), and processRequest().

SDL_Thread* ServerWebServer::sendThread_ [protected]

Definition at line 65 of file ServerWebServer.h.

Referenced by ServerWebServer().

NetServerTCP ServerWebServer::netServer_ [protected]

Definition at line 66 of file ServerWebServer.h.

Referenced by processMessage(), processMessages(), processQueue(), processRequest(), and start().

FileLogger* ServerWebServer::logger_ [protected]

Definition at line 67 of file ServerWebServer.h.

Referenced by processMessage(), and start().


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