1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-15 17:11:20 +01:00

Adds lib-network-manager

This commit is contained in:
Dmitry Vedenko
2021-05-25 16:07:23 +03:00
parent 52a835bd61
commit 77cc7bed6f
22 changed files with 2249 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
/*!********************************************************************
Audacity: A Digital Audio Editor
@file NetworkManager.cpp
@brief Define a class for preforming HTTP requests.
Dmitry Vedenko
**********************************************************************/
/*!********************************************************************
@class NetworkManager
@brief Class for preforming HTTP requests.
**********************************************************************/
#include "NetworkManager.h"
#include "IResponseFactory.h"
#include "curl/CurlResponseFactory.h"
namespace audacity
{
namespace network_manager
{
NetworkManager::NetworkManager ()
{
mResponseFactory = std::make_unique<CurlResponseFactory> ();
}
NetworkManager::~NetworkManager ()
{}
NetworkManager& NetworkManager::GetInstance ()
{
static NetworkManager instance;
return instance;
}
void NetworkManager::Terminate ()
{
GetInstance ().mResponseFactory->terminate ();
}
ResponsePtr NetworkManager::doGet (const Request& request)
{
return mResponseFactory->performRequest (RequestVerb::Get, request);
}
ResponsePtr NetworkManager::doHead (const Request& request)
{
return mResponseFactory->performRequest (RequestVerb::Head, request);
}
ResponsePtr NetworkManager::doDelete (const Request& request)
{
return mResponseFactory->performRequest (RequestVerb::Delete, request);
}
ResponsePtr NetworkManager::doPost (const Request& request, const void* data, size_t size)
{
return mResponseFactory->performRequest (RequestVerb::Post, request, data, size);
}
ResponsePtr NetworkManager::doPut (const Request& request, const void* data, size_t size)
{
return mResponseFactory->performRequest (RequestVerb::Put, request, data, size);
}
void NetworkManager::setProxy (const std::string& proxy)
{
mResponseFactory->setProxy (proxy);
}
}
}