#include <ServerWebServer.h>

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 ServerWebServer * | instance () |
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_ |
| FileLogger * | logger_ |
Static Protected Attributes | |
| static ServerWebServer * | instance_ = 0 |
Private Member Functions | |
| ServerWebServer () | |
| virtual | ~ServerWebServer () |
Classes | |
| struct | HandlerEntry |
Definition at line 28 of file ServerWebServer.h.
| 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.
| 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().
ServerWebServer * ServerWebServer::instance_ = 0 [static, protected] |
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] |
unsigned int ServerWebServer::asyncTimer_ [protected] |
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] |
NetServerTCP ServerWebServer::netServer_ [protected] |
Definition at line 66 of file ServerWebServer.h.
Referenced by processMessage(), processMessages(), processQueue(), processRequest(), and start().
FileLogger* ServerWebServer::logger_ [protected] |
1.5.3