8#include <aws/core/Core_EXPORTS.h>
9#include <aws/core/http/HttpConnection.h>
10#include <aws/core/utils/Outcome.h>
11#include <aws/core/client/AWSError.h>
14#include <condition_variable>
24 class RateLimiterInterface;
45 virtual std::shared_ptr<HttpResponse>
MakeRequest(
const std::shared_ptr<HttpRequest>& request,
78 explicit operator bool()
const
83 virtual Aws::Crt::Optional<Aws::Client::AWSError<Aws::Client::CoreErrors>>
AcquireConnection(
84 const std::shared_ptr<HttpRequest>& request,
85 const std::function<
void(std::shared_ptr<Aws::Http::Connection>,
int)>& onClientConnectionAvailable) {
86 AWS_UNREFERENCED_PARAM(request);
87 AWS_UNREFERENCED_PARAM(onClientConnectionAvailable);
90 "creating a connection is not supported on this http client",
99 std::atomic< bool > m_disableRequestProcessing;
100 std::mutex m_requestProcessingSignalLock;
101 std::condition_variable m_requestProcessingSignal;
void RetryRequestSleep(std::chrono::milliseconds sleepTime)
virtual bool SupportsChunkedTransferEncoding() const
bool ContinueRequest(const Aws::Http::HttpRequest &) const
void EnableRequestProcessing()
bool IsRequestProcessingEnabled() const
virtual Aws::Crt::Optional< Aws::Client::AWSError< Aws::Client::CoreErrors > > AcquireConnection(const std::shared_ptr< HttpRequest > &request, const std::function< void(std::shared_ptr< Aws::Http::Connection >, int)> &onClientConnectionAvailable)
void DisableRequestProcessing()
virtual bool IsDefaultAwsHttpClient() const
virtual std::shared_ptr< HttpResponse > MakeRequest(const std::shared_ptr< HttpRequest > &request, Aws::Utils::RateLimits::RateLimiterInterface *readLimiter=nullptr, Aws::Utils::RateLimits::RateLimiterInterface *writeLimiter=nullptr) const =0