#pragma once #include "http_downloader.h" #include "common/windows_headers.h" #include namespace FrontendCommon { class HTTPDownloaderUWP final : public HTTPDownloader { public: HTTPDownloaderUWP(std::string user_agent); ~HTTPDownloaderUWP() override; protected: Request* InternalCreateRequest() override; void InternalPollRequests() override; bool StartRequest(HTTPDownloader::Request* request) override; void CloseRequest(HTTPDownloader::Request* request) override; private: struct Request : HTTPDownloader::Request { std::wstring object_name; winrt::Windows::Web::Http::HttpClient client; winrt::Windows::Foundation::IAsyncOperationWithProgress request_async{nullptr}; winrt::Windows::Foundation::IAsyncOperationWithProgress receive_async{}; }; std::string m_user_agent; }; } // namespace FrontendCommon