1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- //
- // request_handler.hpp
- // ~~~~~~~~~~~~~~~~~~~
- //
- // Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com)
- //
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- //
- #ifndef HTTP_REQUEST_HANDLER_HPP
- #define HTTP_REQUEST_HANDLER_HPP
- #include <string>
- namespace http {
- namespace server {
- struct reply;
- struct request;
- /// The common handler for all incoming requests.
- class request_handler
- {
- public:
- request_handler(const request_handler&) = delete;
- request_handler& operator=(const request_handler&) = delete;
- /// Construct with a directory containing files to be served.
- explicit request_handler(const std::string& doc_root);
- /// Handle a request and produce a reply.
- void handle_request(const request& req, reply& rep);
- private:
- /// The directory containing the files to be served.
- std::string doc_root_;
- /// Perform URL-decoding on a string. Returns false if the encoding was
- /// invalid.
- static bool url_decode(const std::string& in, std::string& out);
- };
- } // namespace server
- } // namespace http
- #endif // HTTP_REQUEST_HANDLER_HPP
|