tgbot-cpp
Toggle main menu visibility
Loading...
Searching...
No Matches
HttpClient.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
tgbot/HttpFormField.h
"
4
#include "
tgbot/export.h
"
5
6
#include <atomic>
7
#include <cstdint>
8
#include <span>
9
#include <string>
10
11
namespace
TgBot
{
12
18
class
TGBOT_API
HttpClient
{
19
public
:
20
virtual
~HttpClient
() =
default
;
21
27
virtual
std::string
makeRequest
(
const
std::string& url, std::span<const HttpFormField> fields)
const
= 0;
28
29
std::int32_t
_timeout
= 25;
30
34
virtual
int
getRequestMaxRetries
()
const
{
35
return
requestMaxRetries;
36
}
37
41
virtual
int
getRequestBackoff
()
const
{
42
return
requestBackoff;
43
}
44
51
virtual
void
cancel
(
const
bool
eternal =
false
)
const
{
52
if
(eternal) {
53
_isEternalCancel
.store(
true
);
54
}
else
{
55
_cancelEpoch
.fetch_add(1);
56
}
57
}
58
62
virtual
bool
isEternalCancelled
()
const
{
63
return
_isEternalCancel
.load();
64
}
65
69
virtual
const
std::string&
getCancelExceptionText
()
const
{
70
return
cancelExceptionText;
71
}
72
73
protected
:
77
mutable
std::atomic<bool>
_isEternalCancel
{
false
};
78
82
mutable
std::atomic<uint64_t>
_cancelEpoch
{ 0 };
83
84
private
:
85
int
requestMaxRetries = 3;
86
int
requestBackoff = 1;
87
const
std::string cancelExceptionText =
"request cancelled"
;
88
};
89
90
}
// namespace TgBot
HttpFormField.h
TgBot::HttpClient
This class makes http requests.
Definition
HttpClient.h:18
TgBot::HttpClient::cancel
virtual void cancel(const bool eternal=false) const
Cancels the requests.
Definition
HttpClient.h:51
TgBot::HttpClient::~HttpClient
virtual ~HttpClient()=default
TgBot::HttpClient::getCancelExceptionText
virtual const std::string & getCancelExceptionText() const
Get the exception message that occurs when the request is aborted.
Definition
HttpClient.h:69
TgBot::HttpClient::_cancelEpoch
std::atomic< uint64_t > _cancelEpoch
Counter used to invalidate current requests.
Definition
HttpClient.h:82
TgBot::HttpClient::isEternalCancelled
virtual bool isEternalCancelled() const
Checks if the HTTP client is permanently disabled.
Definition
HttpClient.h:62
TgBot::HttpClient::makeRequest
virtual std::string makeRequest(const std::string &url, std::span< const HttpFormField > fields) const =0
Sends a request to the url.
TgBot::HttpClient::_timeout
std::int32_t _timeout
Definition
HttpClient.h:29
TgBot::HttpClient::getRequestBackoff
virtual int getRequestBackoff() const
Get the makeRequest() backoff duration between retries, in seconds.
Definition
HttpClient.h:41
TgBot::HttpClient::getRequestMaxRetries
virtual int getRequestMaxRetries() const
Get the maximum number of makeRequest() retries before giving up and throwing an exception.
Definition
HttpClient.h:34
TgBot::HttpClient::_isEternalCancel
std::atomic< bool > _isEternalCancel
Flag indicating whether the HTTP client is permanently disabled.
Definition
HttpClient.h:77
export.h
TGBOT_API
#define TGBOT_API
Definition
export.h:5
TgBot
Definition
Api.h:17
include
tgbot
HttpClient.h
Generated on
for tgbot-cpp by
1.17.0