Serenity Operating System
at master 43 lines 1.6 kB view raw
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/HashMap.h> 10#include <LibIPC/ConnectionFromClient.h> 11#include <RequestServer/Forward.h> 12#include <RequestServer/RequestClientEndpoint.h> 13#include <RequestServer/RequestServerEndpoint.h> 14 15namespace RequestServer { 16 17class ConnectionFromClient final 18 : public IPC::ConnectionFromClient<RequestClientEndpoint, RequestServerEndpoint> { 19 C_OBJECT(ConnectionFromClient); 20 21public: 22 ~ConnectionFromClient() override = default; 23 24 virtual void die() override; 25 26 void did_receive_headers(Badge<Request>, Request&); 27 void did_finish_request(Badge<Request>, Request&, bool success); 28 void did_progress_request(Badge<Request>, Request&); 29 void did_request_certificates(Badge<Request>, Request&); 30 31private: 32 explicit ConnectionFromClient(NonnullOwnPtr<Core::LocalSocket>); 33 34 virtual Messages::RequestServer::IsSupportedProtocolResponse is_supported_protocol(DeprecatedString const&) override; 35 virtual Messages::RequestServer::StartRequestResponse start_request(DeprecatedString const&, URL const&, IPC::Dictionary const&, ByteBuffer const&, Core::ProxyData const&) override; 36 virtual Messages::RequestServer::StopRequestResponse stop_request(i32) override; 37 virtual Messages::RequestServer::SetCertificateResponse set_certificate(i32, DeprecatedString const&, DeprecatedString const&) override; 38 virtual void ensure_connection(URL const& url, ::RequestServer::CacheLevel const& cache_level) override; 39 40 HashMap<i32, OwnPtr<Request>> m_requests; 41}; 42 43}