From fc58a0bec8bf779af3afecbc6ca59a7b9c9c0b67 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Mon, 7 Nov 2016 10:42:23 +0100 Subject: Added basic HTTP server, not active yet, based on ASIO example with small refactoring included (nw) --- src/lib/http/reply.hpp | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/lib/http/reply.hpp (limited to 'src/lib/http/reply.hpp') diff --git a/src/lib/http/reply.hpp b/src/lib/http/reply.hpp new file mode 100644 index 00000000000..7e05752f3e0 --- /dev/null +++ b/src/lib/http/reply.hpp @@ -0,0 +1,57 @@ +// license:Boost +// copyright-holders:Christopher M. Kohlhoff + +#ifndef HTTP_REPLY_HPP +#define HTTP_REPLY_HPP + +#include +#include +#include "asio.h" +#include "header.hpp" + +namespace http { +namespace server { + +/// A reply to be sent to a client. +struct reply +{ + /// The status of the reply. + enum status_type + { + ok = 200, + created = 201, + accepted = 202, + no_content = 204, + multiple_choices = 300, + moved_permanently = 301, + moved_temporarily = 302, + not_modified = 304, + bad_request = 400, + unauthorized = 401, + forbidden = 403, + not_found = 404, + internal_server_error = 500, + not_implemented = 501, + bad_gateway = 502, + service_unavailable = 503 + } status; + + /// The headers to be included in the reply. + std::vector
headers; + + /// The content to be sent in the reply. + std::string content; + + /// Convert the reply into a vector of buffers. The buffers do not own the + /// underlying memory blocks, therefore the reply object must remain valid and + /// not be changed until the write operation has completed. + std::vector to_buffers(); + + /// Get a stock reply. + static reply stock_reply(status_type status); +}; + +} // namespace server +} // namespace http + +#endif // HTTP_REPLY_HPP -- cgit v1.2.3-70-g09d2