6#include <aws/core/Core_EXPORTS.h>
8#include <aws/core/http/HttpClient.h>
9#include <aws/core/http/standard/StandardHttpResponse.h>
10#include <aws/core/client/ClientConfiguration.h>
12#include <aws/crt/io/TlsOptions.h>
13#include <aws/crt/http/HttpConnection.h>
21 class HttpClientConnectionManager;
22 class HttpClientConnectionOptions;
27 class ClientBootstrap;
33 struct ClientConfiguration;
51 std::shared_ptr<HttpResponse>
MakeRequest(
const std::shared_ptr<HttpRequest>& request,
58 const std::shared_ptr<HttpRequest>& request,
59 const std::function<
void(std::shared_ptr<Aws::Http::Connection>,
int)>& onClientConnectionAvailable)
override;
65 mutable std::unordered_map<Aws::String, const std::shared_ptr<Crt::Http::HttpClientConnectionManager>> m_connectionPools;
66 mutable std::mutex m_connectionPoolLock;
68 Crt::Optional<Crt::Io::TlsContext> m_context;
69 Crt::Optional<Crt::Http::HttpClientConnectionProxyOptions> m_proxyOptions;
71 Crt::Io::ClientBootstrap& m_bootstrap;
74 std::shared_ptr<Crt::Http::HttpClientConnectionManager> GetWithCreateConnectionManagerForRequest(
const std::shared_ptr<HttpRequest>& request,
const Crt::Http::HttpClientConnectionOptions& connectionOptions)
const;
75 Crt::Http::HttpClientConnectionOptions CreateConnectionOptionsForRequest(
const std::shared_ptr<HttpRequest>& request)
const;
~CRTHttpClient() override
std::shared_ptr< HttpResponse > MakeRequest(const std::shared_ptr< HttpRequest > &request, Aws::Utils::RateLimits::RateLimiterInterface *readLimiter, Aws::Utils::RateLimits::RateLimiterInterface *writeLimiter) const override
bool IsDefaultAwsHttpClient() const override
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) override
CRTHttpClient(const Aws::Client::ClientConfiguration &clientConfig, Crt::Io::ClientBootstrap &bootstrap)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String