Kyoto Tycoon
Classes | Public Member Functions | Static Public Member Functions
kyototycoon::HTTPServer Class Reference

HTTP server. More...

#include <kthttp.h>

List of all members.

Classes

class  Logger
 Interface to log internal information and errors. More...
class  Session
 Interface to access each session data. More...
class  Worker
 Interface to process each request. More...
class  WorkerAdapter
 Adapter for the worker.

Public Member Functions

 HTTPServer ()
 Default constructor.
 ~HTTPServer ()
 Destructor.
void set_network (const std::string &expr, double timeout=-1, const std::string &name="")
 Set the network configurations.
void set_logger (Logger *logger, uint32_t kinds=Logger::SYSTEM|Logger::ERROR)
 Set the logger to process each log message.
void set_worker (Worker *worker, size_t thnum=1)
 Set the worker to process each request.
bool start ()
 Start the service.
bool stop ()
 Stop the service.
bool finish ()
 Finish the service.
void log (Logger::Kind kind, const char *format,...)
 Log a message.
void log_v (Logger::Kind kind, const char *format, va_list ap)
 Log a message.
ThreadedServerreveal_core ()
 Reveal the internal TCP server.

Static Public Member Functions

static const char * status_name (int32_t code)
 Get the name of a status code.
static const char * media_type (const std::string &url)
 Guess the media type of a URL.
static std::string localize_path (const std::string &path)
 Convert the path element of a URL into the local path.

Detailed Description

HTTP server.


Constructor & Destructor Documentation

Default constructor.

Destructor.


Member Function Documentation

void kyototycoon::HTTPServer::set_network ( const std::string &  expr,
double  timeout = -1,
const std::string &  name = "" 
)

Set the network configurations.

Parameters:
expran expression of the address and the port of the server.
timeoutthe timeout of each network operation in seconds. If it is not more than 0, no timeout is specified.
namethe name of the server. If it is an empty string, the host name is specified.
void kyototycoon::HTTPServer::set_logger ( Logger logger,
uint32_t  kinds = Logger::SYSTEM | Logger::ERROR 
)

Set the logger to process each log message.

Parameters:
loggerthe logger object.
kindskinds of logged messages by bitwise-or: Logger::DEBUG for debugging, Logger::INFO for normal information, Logger::SYSTEM for system information, and Logger::ERROR for fatal error.
void kyototycoon::HTTPServer::set_worker ( Worker worker,
size_t  thnum = 1 
)

Set the worker to process each request.

Parameters:
workerthe worker object.
thnumthe number of worker threads.

Start the service.

Returns:
true on success, or false on failure.
Note:
This function blocks until the server stops by the HTTPServer::stop method.

Stop the service.

Returns:
true on success, or false on failure.

Finish the service.

Returns:
true on success, or false on failure.
void kyototycoon::HTTPServer::log ( Logger::Kind  kind,
const char *  format,
  ... 
)

Log a message.

Parameters:
kindthe kind of the event. Logger::DEBUG for debugging, Logger::INFO for normal information, Logger::SYSTEM for system information, and Logger::ERROR for fatal error.
formatthe printf-like format string. The conversion character `' can be used with such flag characters as `s', `d', `o', `u', `x', `X', `c', `e', `E', `f', `g', `G', and `'.
...used according to the format string.
void kyototycoon::HTTPServer::log_v ( Logger::Kind  kind,
const char *  format,
va_list  ap 
)

Log a message.

Note:
Equal to the original Cursor::set_value method except that the last parameters is va_list.

Reveal the internal TCP server.

Returns:
the internal TCP server.
static const char* kyototycoon::HTTPServer::status_name ( int32_t  code) [static]

Get the name of a status code.

Returns:
the name of a status code.
static const char* kyototycoon::HTTPServer::media_type ( const std::string &  url) [static]

Guess the media type of a URL.

Parameters:
urlthe URL.
Returns:
the media type string, or NULL on failure.
static std::string kyototycoon::HTTPServer::localize_path ( const std::string &  path) [static]

Convert the path element of a URL into the local path.

Parameters:
paththe path element of a URL.
Returns:
the local path.