31 template<
typename R,
typename E>
59 class HttpClientFactory;
70 template<
typename ERROR_TYPE>
73 class AWSRestfulJsonErrorMarshaller;
93 const std::shared_ptr<Aws::Client::AWSAuthSigner>& signer,
94 const std::shared_ptr<AWSErrorMarshaller>& errorMarshaller);
108 void DisableRequestProcessing();
113 void EnableRequestProcessing();
120 HttpResponseOutcome AttemptExhaustively(
const Aws::String& uri,
134 HttpResponseOutcome AttemptOneRequest(
const Aws::String& uri,
148 StreamOutcome MakeRequestWithUnparsedResponse(
const Aws::String& uri,
155 virtual AWSError<CoreErrors> BuildAWSError(
const std::shared_ptr<Aws::Http::HttpResponse>& response)
const = 0;
161 const std::shared_ptr<Aws::Http::HttpRequest>& httpRequest)
const;
168 return m_errorMarshaller;
172 void AddHeadersToRequest(
const std::shared_ptr<Aws::Http::HttpRequest>& httpRequest,
const Http::HeaderValueCollection& headerValues)
const;
173 void AddContentBodyToRequest(
const std::shared_ptr<Aws::Http::HttpRequest>& httpRequest,
174 const std::shared_ptr<Aws::IOStream>& body,
bool needsContentMd5 =
false)
const;
176 void InitializeGlobalStatics();
177 void CleanupGlobalStatics();
179 std::shared_ptr<Aws::Http::HttpClient> m_httpClient;
180 std::shared_ptr<Aws::Client::AWSAuthSigner> m_signer;
181 std::shared_ptr<AWSErrorMarshaller> m_errorMarshaller;
182 std::shared_ptr<RetryStrategy> m_retryStrategy;
183 std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> m_writeRateLimiter;
184 std::shared_ptr<Aws::Utils::RateLimits::RateLimiterInterface> m_readRateLimiter;
186 std::shared_ptr<Aws::Utils::Crypto::Hash> m_hash;
187 static std::atomic<int> s_refCount;
205 const std::shared_ptr<Aws::Client::AWSAuthSigner>& signer,
206 const std::shared_ptr<AWSErrorMarshaller>& errorMarshaller);
214 virtual AWSError<CoreErrors> BuildAWSError(
const std::shared_ptr<Aws::Http::HttpResponse>& response)
const override;
250 const std::shared_ptr<Aws::Client::AWSAuthSigner>& signer,
251 const std::shared_ptr<AWSErrorMarshaller>& errorMarshaller);
259 virtual AWSError<CoreErrors> BuildAWSError(
const std::shared_ptr<Aws::Http::HttpResponse>& response)
const override;
Utils::Outcome< AmazonWebServiceResult< Utils::Stream::ResponseStream >, AWSError< CoreErrors > > StreamOutcome
Aws::Map< Aws::String, Aws::String > HeaderValueCollection
const std::shared_ptr< AWSErrorMarshaller > & GetErrorMarshaller() const
Utils::Outcome< std::shared_ptr< Aws::Http::HttpResponse >, AWSError< CoreErrors > > HttpResponseOutcome
Utils::Outcome< AmazonWebServiceResult< Utils::Json::JsonValue >, AWSError< CoreErrors > > JsonOutcome
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Utils::Outcome< AmazonWebServiceResult< Utils::Xml::XmlDocument >, AWSError< CoreErrors > > XmlOutcome
JSON (JavaScript Object Notation).