Audacity 3.2.0
CurlResponseFactory.h
Go to the documentation of this file.
1/*!********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 @file CurlResponseFactory.h
6 @brief Declare an implementation of IResponseFactory using libcurl.
7
8 Dmitry Vedenko
9 **********************************************************************/
10
11#pragma once
12
13#include <thread>
14#include <vector>
15#include <memory>
16#include <mutex>
17
18#include "../IResponseFactory.h"
19
20#include "CurlHandleManager.h"
21#include "ThreadPool/ThreadPool.h"
22
23namespace audacity
24{
25namespace network_manager
26{
27
29{
30public:
32
33 void setProxy (const std::string& proxy) override;
34
35 ResponsePtr performRequest (RequestVerb verb, const Request& request) override;
36 ResponsePtr performRequest (RequestVerb verb, const Request& request, const void* data, size_t size) override;
37 ResponsePtr performRequest (RequestVerb verb, const Request& request, std::unique_ptr<MultipartData> form) override;
38
39 void terminate () override;
40
41private:
42 std::unique_ptr<CurlHandleManager> mHandleManager { std::make_unique<CurlHandleManager> () };
43 std::unique_ptr<ThreadPool> mThreadPool;
44};
45
46}
47}
Declare a class responsible for reuse of CURL handles.
ResponsePtr performRequest(RequestVerb verb, const Request &request) override
std::unique_ptr< CurlHandleManager > mHandleManager
void setProxy(const std::string &proxy) override
std::shared_ptr< IResponse > ResponsePtr