Files
Andreas Kling 8994dcb4f9 Everywhere: Use HTTP::HeaderMap for request headers
No longer just for response headers! The same type is obviously useful
and ergonomic when making requests as well.

(cherry picked from commit 260c5c50ad19f19d0d4c30984e512f56c055ecff)

Updated various SerenityOS components to make it build.
2024-06-10 12:01:57 +02:00

41 lines
952 B
C++

/*
* Copyright (c) 2018-2020, Andreas Kling <[email protected]>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/RefPtr.h>
#include <LibCore/Proxy.h>
#include <LibHTTP/HeaderMap.h>
#include <LibURL/URL.h>
#include <RequestServer/Forward.h>
namespace RequestServer {
class Protocol {
public:
virtual ~Protocol() = default;
ByteString const& name() const { return m_name; }
virtual OwnPtr<Request> start_request(i32, ConnectionFromClient&, ByteString const& method, URL::URL const&, HTTP::HeaderMap const& headers, ReadonlyBytes body, Core::ProxyData proxy_data = {}) = 0;
static Protocol* find_by_name(ByteString const&);
protected:
explicit Protocol(ByteString const& name);
struct Pipe {
int read_fd { -1 };
int write_fd { -1 };
};
static ErrorOr<Pipe> get_pipe_for_request();
static void install(NonnullOwnPtr<Protocol>);
private:
ByteString m_name;
};
}