Sirikata
|
#include <HttpServer.hpp>
Public Member Functions | |
HttpServer (Context *ctx, const String &host, uint16 port) | |
~HttpServer () | |
void | response (HttpRequestID id, HttpStatus status, const Headers &headers, const String &body) |
Private Types | |
typedef boost::recursive_mutex | Mutex |
typedef boost::lock_guard< Mutex > | Lock |
typedef std::set< HttpRequestPtr > | RequestSet |
typedef std::map < HttpRequestID, HttpRequestPtr > | RequestMap |
Private Member Functions | |
void | acceptConnection () |
void | handleConnection (TCPSocketPtr socket) |
void | readRequestData (HttpRequestPtr req) |
void | handleReadRequestData (HttpRequestPtr req, const boost::system::error_code &ec, std::size_t bytes_transferred) |
void | handleRequest (HttpRequestPtr req) |
void | writeResponseData (HttpRequestPtr req, uint32 offset) |
void | handleWriteResponseData (HttpRequestPtr req, uint32 offset, const boost::system::error_code &ec, std::size_t bytes_transferred) |
Private Attributes | |
Context * | mContext |
String | mHost |
uint16 | mPort |
TCPListenerPtr | mAcceptor |
Mutex | mMutex |
RequestSet | mRequests |
HttpRequestID | mRequestIDSource |
RequestMap | mProcessingRequests |
typedef boost::lock_guard<Mutex> Sirikata::Command::HttpServer::Lock [private] |
typedef boost::recursive_mutex Sirikata::Command::HttpServer::Mutex [private] |
typedef std::map<HttpRequestID, HttpRequestPtr> Sirikata::Command::HttpServer::RequestMap [private] |
typedef std::set<HttpRequestPtr> Sirikata::Command::HttpServer::RequestSet [private] |
References acceptConnection(), Sirikata::Context::ioService, mAcceptor, mContext, and mPort.
Sirikata::Command::HttpServer::~HttpServer | ( | ) |
void Sirikata::Command::HttpServer::acceptConnection | ( | ) | [private] |
References handleConnection(), Sirikata::Context::ioService, mAcceptor, and mContext.
Referenced by handleConnection(), and HttpServer().
void Sirikata::Command::HttpServer::handleConnection | ( | TCPSocketPtr | socket | ) | [private] |
References acceptConnection(), mMutex, mRequestIDSource, mRequests, and readRequestData().
Referenced by acceptConnection().
void Sirikata::Command::HttpServer::handleReadRequestData | ( | HttpRequestPtr | req, |
const boost::system::error_code & | ec, | ||
std::size_t | bytes_transferred | ||
) | [private] |
void Sirikata::Command::HttpServer::handleRequest | ( | HttpRequestPtr | req | ) | [private] |
void Sirikata::Command::HttpServer::handleWriteResponseData | ( | HttpRequestPtr | req, |
uint32 | offset, | ||
const boost::system::error_code & | ec, | ||
std::size_t | bytes_transferred | ||
) | [private] |
References Sirikata::Logging::error, HTTP_LOG, mMutex, mProcessingRequests, response(), and writeResponseData().
Referenced by writeResponseData().
void Sirikata::Command::HttpServer::readRequestData | ( | HttpRequestPtr | req | ) | [private] |
References Sirikata::Logging::error, and handleReadRequestData().
Referenced by handleConnection(), and handleReadRequestData().
void Sirikata::Command::HttpServer::response | ( | HttpRequestID | id, |
HttpStatus | status, | ||
const Headers & | headers, | ||
const String & | body | ||
) |
References Sirikata::Logging::error, HTTP_LOG, Sirikata::Logging::insane, mMutex, mProcessingRequests, and writeResponseData().
Referenced by handleWriteResponseData(), and Sirikata::Command::HttpCommander::sendResponse().
void Sirikata::Command::HttpServer::writeResponseData | ( | HttpRequestPtr | req, |
uint32 | offset | ||
) | [private] |
References Sirikata::Logging::error, and handleWriteResponseData().
Referenced by handleWriteResponseData(), and response().
Referenced by acceptConnection(), and HttpServer().
Context* Sirikata::Command::HttpServer::mContext [private] |
Referenced by acceptConnection(), and HttpServer().
String Sirikata::Command::HttpServer::mHost [private] |
Mutex Sirikata::Command::HttpServer::mMutex [private] |
Referenced by handleConnection(), handleReadRequestData(), handleRequest(), handleWriteResponseData(), and response().
uint16 Sirikata::Command::HttpServer::mPort [private] |
Referenced by HttpServer().
Referenced by handleRequest(), handleWriteResponseData(), and response().
Referenced by handleConnection().
Referenced by handleConnection(), handleReadRequestData(), and handleRequest().