/*!******************************************************************** Audacity: A Digital Audio Editor @file NetworkManager.h @brief Declare a class for preforming HTTP requests. Dmitry Vedenko **********************************************************************/ #pragma once #include #include #include "NetworkManagerApi.h" namespace audacity { namespace network_manager { class Request; class IResponse; class IResponseFactory; using ResponsePtr = std::shared_ptr; class NETWORK_MANAGER_API NetworkManager final { NetworkManager (); ~NetworkManager (); public: static NetworkManager& GetInstance(); static void Terminate (); ResponsePtr doGet (const Request& request); ResponsePtr doHead (const Request& request); ResponsePtr doDelete (const Request& request); ResponsePtr doPost (const Request& request, const void* data, size_t size); ResponsePtr doPut (const Request& request, const void* data, size_t size); void setProxy (const std::string& proxy); private: std::unique_ptr mResponseFactory; }; } }