00001 #ifndef HTTP_REQUEST_HANDLER_HPP
00002 #define HTTP_REQUEST_HANDLER_HPP
00003
00004 #include <string>
00005 #include <boost/noncopyable.hpp>
00006
00007 namespace http {
00008 namespace server {
00009
00010 struct reply;
00011 struct request;
00012
00014 class request_handler
00015 : private boost::noncopyable
00016 {
00017 public:
00019 explicit request_handler(const std::string& doc_root);
00020
00022 void handle_request(const request& req, reply& rep);
00023
00024 private:
00026 std::string doc_root_;
00027
00030 static bool url_decode(const std::string& in, std::string& out);
00031 };
00032
00033 }
00034 }
00035
00036 #endif // HTTP_REQUEST_HANDLER_HPP