X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fhttp%2Fserver.h;h=dd054201d1bf421e136a97c4c2365e8f408cac70;hb=13c6c5f4431aeeb3432c8692bc18990db0a3283f;hp=41894db99d6141dc89c901c354d06b4f25ca25b3;hpb=debe1004676d5431e571d9c4361072661dcc88c4;p=libs%2Fnet.git diff --git a/source/http/server.h b/source/http/server.h index 41894db..dd05420 100644 --- a/source/http/server.h +++ b/source/http/server.h @@ -23,6 +23,7 @@ private: std::string in_buf; Request *request; Response *response; + bool keepalive; bool async; bool stale; @@ -32,17 +33,24 @@ private: Net::StreamServerSocket sock; std::list clients; + std::map responses; IO::EventDispatcher *event_disp; public: + Server(); Server(unsigned); + ~Server(); + + void listen(unsigned); unsigned get_port() const; void use_event_dispatcher(IO::EventDispatcher *); void delay_response(Response &); void submit_response(Response &); + void cancel_keepalive(Response &); private: void data_available(); void client_data_available(Client &); + void send_response(Client &, Response &); void client_end_of_file(Client &); Client &get_client_by_response(Response &); };