Serenity Operating System
1/*
2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <AK/ByteBuffer.h>
10#include <AK/DeprecatedString.h>
11#include <AK/HashMap.h>
12#include <AK/OwnPtr.h>
13#include <AK/URL.h>
14#include <LibHTTP/Job.h>
15#include <RequestServer/ConnectionFromClient.h>
16#include <RequestServer/HttpRequest.h>
17#include <RequestServer/Protocol.h>
18#include <RequestServer/Request.h>
19
20namespace RequestServer {
21
22class HttpProtocol final : public Protocol {
23public:
24 using JobType = HTTP::Job;
25 using RequestType = HttpRequest;
26
27 HttpProtocol();
28 ~HttpProtocol() override = default;
29
30 virtual OwnPtr<Request> start_request(ConnectionFromClient&, DeprecatedString const& method, const URL&, HashMap<DeprecatedString, DeprecatedString> const& headers, ReadonlyBytes body, Core::ProxyData proxy_data = {}) override;
31};
32
33}