AWS SDK for C++
AWS SDK for C++
Loading...
Searching...
No Matches
AmazonWebServiceRequest.h
Go to the documentation of this file.
1
6#pragma once
7
9
19
20namespace Aws
21{
22 namespace Http
23 {
24 class URI;
25 } // namespace Http
26
28
32 typedef std::function<void(const AmazonWebServiceRequest&)> RequestRetryHandler;
33 typedef std::function<void(const Aws::Http::HttpRequest&)> RequestSignedHandler;
34
39 {
40 public:
45 virtual ~AmazonWebServiceRequest() = default;
46
50 virtual std::shared_ptr<Aws::IOStream> GetBody() const = 0;
62 virtual void SetAdditionalCustomHeaderValue(const Aws::String& headerName, const Aws::String& headerValue);
63
68
73 virtual void PutToPresignedUrl(Aws::Http::URI& uri) const { DumpBodyToUrl(uri); AddQueryStringParameters(uri); }
74
78 virtual bool IsStreaming() const { return false; }
79
83 inline virtual bool IsEventStreamRequest() const { return false; }
87 virtual bool SignBody() const { return true; }
88
92 virtual bool HasEmbeddedError(Aws::IOStream& body, const Aws::Http::HeaderValueCollection& header) const {
93 (void) body;
94 (void) header;
95 return false;
96 }
97
101 virtual bool IsChunked() const { return false; }
102
106 inline virtual void SetRequestSignedHandler(const RequestSignedHandler& handler) { m_onRequestSigned = handler; }
110 inline virtual const RequestSignedHandler& GetRequestSignedHandler() const { return m_onRequestSigned; }
111
115 const Aws::IOStreamFactory& GetResponseStreamFactory() const { return m_responseStreamFactory; }
119 void SetResponseStreamFactory(const Aws::IOStreamFactory& factory) { m_responseStreamFactory = factory; }
123 inline virtual void SetDataReceivedEventHandler(const Aws::Http::DataReceivedEventHandler& dataReceivedEventHandler) { m_onDataReceived = dataReceivedEventHandler; }
127 inline virtual void SetDataSentEventHandler(const Aws::Http::DataSentEventHandler& dataSentEventHandler) { m_onDataSent = dataSentEventHandler; }
131 inline virtual void SetContinueRequestHandler(const Aws::Http::ContinueRequestHandler& continueRequestHandler) { m_continueRequest = continueRequestHandler; }
135 inline virtual void SetDataReceivedEventHandler(Aws::Http::DataReceivedEventHandler&& dataReceivedEventHandler) { m_onDataReceived = std::move(dataReceivedEventHandler); }
139 inline virtual void SetDataSentEventHandler(Aws::Http::DataSentEventHandler&& dataSentEventHandler) { m_onDataSent = std::move(dataSentEventHandler); }
143 inline virtual void SetContinueRequestHandler(Aws::Http::ContinueRequestHandler&& continueRequestHandler) { m_continueRequest = std::move(continueRequestHandler); }
147 inline virtual void SetRequestRetryHandler(const RequestRetryHandler& handler) { m_requestRetryHandler = handler; }
151 inline virtual void SetRequestRetryHandler(RequestRetryHandler&& handler) { m_requestRetryHandler = std::move(handler); }
155 inline virtual const Aws::Http::DataReceivedEventHandler& GetDataReceivedEventHandler() const { return m_onDataReceived; }
159 inline virtual const Aws::Http::DataSentEventHandler& GetDataSentEventHandler() const { return m_onDataSent; }
163 inline virtual const Aws::Http::ContinueRequestHandler& GetContinueRequestHandler() const { return m_continueRequest; }
167 inline virtual const RequestRetryHandler& GetRequestRetryHandler() const { return m_requestRetryHandler; }
171 inline virtual bool ShouldComputeContentMd5() const { return false; }
172
173 inline virtual bool ShouldValidateResponseChecksum() const { return false; }
174
176
177 inline virtual Aws::String GetChecksumAlgorithmName() const { return {}; }
178
179 virtual const char* GetServiceRequestName() const = 0;
180
183
184 protected:
189 virtual void DumpBodyToUrl(Aws::Http::URI& uri) const { AWS_UNREFERENCED_PARAM(uri); }
190
192 private:
193 Aws::IOStreamFactory m_responseStreamFactory;
194
197 Aws::Http::ContinueRequestHandler m_continueRequest;
198 RequestSignedHandler m_onRequestSigned;
199 RequestRetryHandler m_requestRetryHandler;
200 };
201
202} // namespace Aws
203
#define AWS_CORE_API
Definition: Core_EXPORTS.h:26
#define AWS_UNREFERENCED_PARAM(x)
virtual void SetContinueRequestHandler(Aws::Http::ContinueRequestHandler &&continueRequestHandler)
virtual bool ShouldValidateResponseChecksum() const
virtual const Aws::Http::HeaderValueCollection & GetAdditionalCustomHeaders() const
virtual void DumpBodyToUrl(Aws::Http::URI &uri) const
virtual void SetContinueRequestHandler(const Aws::Http::ContinueRequestHandler &continueRequestHandler)
virtual std::shared_ptr< Aws::IOStream > GetBody() const =0
virtual void PutToPresignedUrl(Aws::Http::URI &uri) const
Aws::Vector< Aws::Endpoint::EndpointParameter > EndpointParameters
virtual bool IsEventStreamRequest() const
virtual Aws::String GetChecksumAlgorithmName() const
virtual void SetDataReceivedEventHandler(const Aws::Http::DataReceivedEventHandler &dataReceivedEventHandler)
virtual const Aws::Http::DataSentEventHandler & GetDataSentEventHandler() const
virtual const RequestSignedHandler & GetRequestSignedHandler() const
virtual void SetDataReceivedEventHandler(Aws::Http::DataReceivedEventHandler &&dataReceivedEventHandler)
virtual void AddQueryStringParameters(Aws::Http::URI &uri) const
const Aws::IOStreamFactory & GetResponseStreamFactory() const
virtual bool ShouldComputeContentMd5() const
virtual EndpointParameters GetEndpointContextParams() const
virtual void SetAdditionalCustomHeaderValue(const Aws::String &headerName, const Aws::String &headerValue)
virtual ~AmazonWebServiceRequest()=default
void SetResponseStreamFactory(const Aws::IOStreamFactory &factory)
virtual void SetDataSentEventHandler(Aws::Http::DataSentEventHandler &&dataSentEventHandler)
virtual Aws::Http::HeaderValueCollection GetHeaders() const =0
virtual const Aws::Http::ContinueRequestHandler & GetContinueRequestHandler() const
virtual const RequestRetryHandler & GetRequestRetryHandler() const
virtual const char * GetServiceRequestName() const =0
virtual const Aws::Http::DataReceivedEventHandler & GetDataReceivedEventHandler() const
virtual Aws::Vector< Aws::String > GetResponseChecksumAlgorithmNames() const
virtual void SetRequestSignedHandler(const RequestSignedHandler &handler)
virtual bool HasEmbeddedError(Aws::IOStream &body, const Aws::Http::HeaderValueCollection &header) const
Aws::Http::HeaderValueCollection m_additionalCustomHeaders
virtual void SetRequestRetryHandler(const RequestRetryHandler &handler)
virtual void SetRequestRetryHandler(RequestRetryHandler &&handler)
virtual void SetDataSentEventHandler(const Aws::Http::DataSentEventHandler &dataSentEventHandler)
std::function< void(const HttpRequest *, HttpResponse *, long long)> DataReceivedEventHandler
Definition: HttpRequest.h:72
std::function< void(const HttpRequest *, long long)> DataSentEventHandler
Definition: HttpRequest.h:76
std::function< bool(const HttpRequest *)> ContinueRequestHandler
Definition: HttpRequest.h:80
Aws::Map< Aws::String, Aws::String > HeaderValueCollection
Definition: HttpTypes.h:53
std::function< void(const AmazonWebServiceRequest &)> RequestRetryHandler
std::basic_iostream< char, std::char_traits< char > > IOStream
Definition: AWSStreamFwd.h:22
std::function< Aws::IOStream *(void) > IOStreamFactory
Definition: AWSStreamFwd.h:25
std::function< void(const Aws::Http::HttpRequest &)> RequestSignedHandler
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition: AWSString.h:97
std::vector< T, Aws::Allocator< T > > Vector
Definition: AWSVector.h:17