5 #include <boost/beast/http/string_body.hpp> 6 #include <boost/beast/http/file_body.hpp> 8 #include "absl/strings/string_view.h" 9 #include "util/asio_stream_adapter.h" 18 using QueryParam = std::pair<absl::string_view, absl::string_view>;
19 typedef std::vector<QueryParam> QueryArgs;
21 typedef ::boost::beast::http::response<::boost::beast::http::string_body>
24 inline StringResponse MakeStringResponse(
25 ::boost::beast::http::status st = ::boost::beast::http::status::ok) {
26 return StringResponse(st, 11);
29 inline void SetMime(
const char* mime, ::boost::beast::http::fields* dest) {
30 dest->set(::boost::beast::http::field::content_type, mime);
33 inline absl::string_view as_absl(::boost::string_view s) {
34 return absl::string_view(s.data(), s.size());
37 extern const char kHtmlMime[];
38 extern const char kJsonMime[];
39 extern const char kSvgMime[];
40 extern const char kTextMime[];
41 extern const char kXmlMime[];
42 extern const char kBinMime[];
44 QueryParam ParseQuery(absl::string_view str);
45 QueryArgs SplitQuery(absl::string_view query);
46 StringResponse ParseFlagz(
const QueryArgs& args);
48 StringResponse BuildStatusPage(
const QueryArgs& args,
const char* resource_prefix);
49 StringResponse ProfilezHandler(
const QueryArgs& args);
51 using FileResponse = ::boost::beast::http::response<::boost::beast::http::file_body>;
52 ::boost::system::error_code LoadFileResponse(absl::string_view fname, FileResponse* resp);