mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-03 17:19:43 +02:00
50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
/*!********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
@file NetworkManager.h
|
|
@brief Declare a class for preforming HTTP requests.
|
|
|
|
Dmitry Vedenko
|
|
**********************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
#include "NetworkManagerApi.h"
|
|
|
|
namespace audacity
|
|
{
|
|
namespace network_manager
|
|
{
|
|
|
|
class Request;
|
|
class IResponse;
|
|
class IResponseFactory;
|
|
|
|
using ResponsePtr = std::shared_ptr<IResponse>;
|
|
|
|
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<IResponseFactory> mResponseFactory;
|
|
};
|
|
|
|
}
|
|
}
|