#pragma once #include #include #include namespace LibProtocol { class Download; class Client : public IServerConnection , public ProtocolClientEndpoint { C_OBJECT(Client) public: Client(); virtual void handshake() override; bool is_supported_protocol(const String&); RefPtr start_download(const String& url); bool stop_download(Badge, Download&); private: virtual void handle(const ProtocolClient::DownloadProgress&) override; virtual void handle(const ProtocolClient::DownloadFinished&) override; HashMap> m_downloads; }; }