tgbot-cpp
Toggle main menu visibility
Loading...
Searching...
No Matches
CurlHttpClient.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
tgbot/HttpClient.h
"
4
#include "
tgbot/export.h
"
5
6
#include <curl/curl.h>
7
8
#include <mutex>
9
#include <span>
10
#include <string>
11
#include <thread>
12
#include <unordered_map>
13
14
namespace
TgBot
{
15
21
class
TGBOT_API
CurlHttpClient
:
public
HttpClient
{
22
public
:
23
CurlHttpClient
();
24
~CurlHttpClient
()
override
;
25
31
std::string
makeRequest
(
const
std::string& url, std::span<const HttpFormField> fields)
const override
;
32
36
std::unordered_map<std::thread::id, CURL*>
curlHandles
;
37
41
std::mutex
curlHandlesMutex
;
42
46
void
setProxy
(
const
char
* url = NULL,
long
timeout = 20L) {
47
_proxyUrl = url;
48
_connectTimeout = timeout;
49
}
50
51
private
:
52
const
char
* _proxyUrl = NULL;
53
long
_connectTimeout = 20L;
54
};
55
56
}
// namespace TgBot
HttpClient.h
TgBot::CurlHttpClient::curlHandles
std::unordered_map< std::thread::id, CURL * > curlHandles
Raw curl handles, each thread has its own handle.
Definition
CurlHttpClient.h:36
TgBot::CurlHttpClient::makeRequest
std::string makeRequest(const std::string &url, std::span< const HttpFormField > fields) const override
Sends a request to the url.
TgBot::CurlHttpClient::curlHandlesMutex
std::mutex curlHandlesMutex
Lock for curlHandles access.
Definition
CurlHttpClient.h:41
TgBot::CurlHttpClient::CurlHttpClient
CurlHttpClient()
TgBot::CurlHttpClient::setProxy
void setProxy(const char *url=NULL, long timeout=20L)
Proxy URL (NULL = no proxy).
Definition
CurlHttpClient.h:46
TgBot::CurlHttpClient::~CurlHttpClient
~CurlHttpClient() override
TgBot::HttpClient
This class makes http requests.
Definition
HttpClient.h:18
export.h
TGBOT_API
#define TGBOT_API
Definition
export.h:5
TgBot
Definition
Api.h:17
include
tgbot
CurlHttpClient.h
Generated on
for tgbot-cpp by
1.17.0