Audacity 3.2.0
IResponseFactory.h
Go to the documentation of this file.
1/*!********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 @file IResponse.h
6 @brief Declare an interface for HTTP response factory.
7
8 Dmitry Vedenko
9 **********************************************************************/
10
11#pragma once
12
13#include <memory>
14#include <string>
15#include <memory>
16
17namespace audacity
18{
19namespace network_manager
20{
21
22class IResponse;
23class Request;
24class MultipartData;
25
26using ResponsePtr = std::shared_ptr<IResponse>;
27
28enum class RequestVerb
29{
30 Head,
31 Get,
32 Post,
33 Put,
34 Delete,
35 Patch
36};
37
39{
40public:
41 virtual ~IResponseFactory () = default;
42
43 virtual void setProxy (const std::string& proxy) = 0;
44
45 virtual ResponsePtr performRequest (RequestVerb verb, const Request& request) = 0;
46 virtual ResponsePtr performRequest (RequestVerb verb, const Request& request, const void* data, size_t size) = 0;
47 virtual ResponsePtr performRequest (RequestVerb verb, const Request& request, std::unique_ptr<MultipartData> form) = 0;
48
49 virtual void terminate () = 0;
50};
51
52}
53}
Class to construct the HTTP request.
virtual void setProxy(const std::string &proxy)=0
virtual ResponsePtr performRequest(RequestVerb verb, const Request &request, const void *data, size_t size)=0
virtual ResponsePtr performRequest(RequestVerb verb, const Request &request, std::unique_ptr< MultipartData > form)=0
virtual ResponsePtr performRequest(RequestVerb verb, const Request &request)=0
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
Definition: BasicUI.cpp:196
std::shared_ptr< IResponse > ResponsePtr