Go to the documentation of this file.
16 #include <aws/http/connection.h>
17 #include <aws/http/request_response.h>
33 class ClientBootstrap;
38 class HttpClientConnection;
40 class HttpClientStream;
51 std::function<void(
const std::shared_ptr<HttpClientConnection> &connection,
int errorCode)>;
73 enum aws_http_header_block headerBlock,
75 std::size_t headersCount)>;
84 std::function<void(
HttpStream &stream,
enum aws_http_header_block block)>;
144 virtual
int GetResponseStatusCode() const noexcept = 0;
155 void UpdateWindow(std::
size_t incrementSize) noexcept;
158 aws_http_stream *m_stream;
168 static
int s_onIncomingHeaders(
169 struct aws_http_stream *stream,
170 enum aws_http_header_block headerBlock,
171 const struct aws_http_header *headerArray,
173 void *userData) noexcept;
174 static
int s_onIncomingHeaderBlockDone(
175 struct aws_http_stream *stream,
176 enum aws_http_header_block headerBlock,
177 void *userData) noexcept;
178 static
int s_onIncomingBody(
179 struct aws_http_stream *stream,
180 const struct aws_byte_cursor *data,
181 void *userData) noexcept;
182 static
void s_onStreamComplete(struct aws_http_stream *stream,
int errorCode,
void *userData) noexcept;
207 virtual int GetResponseStatusCode() const noexcept override;
214 bool Activate() noexcept;
229 None = AWS_HPAT_NONE,
230 Basic = AWS_HPAT_BASIC,
363 Unknown = AWS_HTTP_VERSION_UNKNOWN,
364 Http1_0 = AWS_HTTP_VERSION_1_0,
365 Http1_1 = AWS_HTTP_VERSION_1_1,
366 Http2 = AWS_HTTP_VERSION_2,
392 std::shared_ptr<HttpClientStream> NewClientStream(
const HttpRequestOptions &requestOptions) noexcept;
397 bool IsOpen() const noexcept;
406 void Close() noexcept;
425 static bool CreateConnection(
437 static void s_onClientConnectionSetup(
438 struct aws_http_connection *connection,
440 void *user_data) noexcept;
441 static void s_onClientConnectionShutdown(
442 struct aws_http_connection *connection,
444 void *user_data) noexcept;
aws_allocator Allocator
Definition: StlAllocator.h:25
HttpClientStream & operator=(HttpClientStream &&)=delete
HttpRequest * request
Definition: HttpConnection.h:110
OnStreamComplete onStreamComplete
Definition: HttpConnection.h:123
OnConnectionSetup OnConnectionSetupCallback
Definition: HttpConnection.h:313
std::function< void(HttpStream &stream, enum aws_http_header_block block)> OnIncomingHeadersBlockDone
Definition: HttpConnection.h:84
HttpStream & operator=(const HttpStream &)=delete
Definition: SocketOptions.h:55
Optional< Io::TlsConnectionOptions > TlsOptions
Definition: HttpConnection.h:264
Definition: HttpConnection.h:237
AwsHttpProxyAuthenticationType AuthType
Definition: HttpConnection.h:269
uint16_t Port
Definition: HttpConnection.h:332
#define AWS_CRT_CPP_API
Definition: Exports.h:34
String HostName
Definition: HttpConnection.h:252
HttpClientConnectionOptions & operator=(const HttpClientConnectionOptions &rhs)=default
std::function< void(HttpStream &stream, int errorCode)> OnStreamComplete
Definition: HttpConnection.h:102
Allocator * allocator
Definition: HttpConnection.h:190
HttpStream(const HttpStream &)=delete
virtual ~HttpClientConnection()=default
HttpClientStream & operator=(const HttpClientStream &)=delete
~HttpClientConnectionProxyOptions()=default
Definition: HttpConnection.h:195
Definition: HttpRequestResponse.h:84
aws_byte_cursor ByteCursor
Definition: Types.h:44
String HostName
Definition: HttpConnection.h:326
bool ManualWindowManagement
Definition: HttpConnection.h:359
AWS_CRT_CPP_API int LastError() noexcept
Definition: Api.cpp:116
Definition: HttpConnection.h:188
Io::SocketOptions SocketOptions
Definition: HttpConnection.h:338
std::function< void(HttpStream &stream, enum aws_http_header_block headerBlock, const HttpHeader *headersArray, std::size_t headersCount)> OnIncomingHeaders
Definition: HttpConnection.h:75
HttpClientConnectionOptions(HttpClientConnectionOptions &&rhs)=default
HttpClientConnectionProxyOptions(HttpClientConnectionProxyOptions &&rhs)=default
Definition: HttpConnection.h:108
std::shared_ptr< HttpStream > stream
Definition: HttpConnection.h:191
AwsHttpProxyAuthenticationType
Definition: HttpConnection.h:228
OnIncomingHeaders onIncomingHeaders
Definition: HttpConnection.h:114
HttpClientStream(const HttpClientStream &)=delete
std::function< void(HttpClientConnection &connection, int errorCode)> OnConnectionShutdown
Definition: HttpConnection.h:61
HttpClientConnection & operator=(HttpClientConnection &&)=delete
HttpClientConnection(HttpClientConnection &&)=delete
String BasicAuthUsername
Definition: HttpConnection.h:274
HttpClientConnectionProxyOptions & operator=(HttpClientConnectionProxyOptions &&rhs)=default
HttpClientStream(HttpClientStream &&)=delete
Optional< Io::TlsConnectionOptions > TlsOptions
Definition: HttpConnection.h:344
~HttpClientConnectionOptions()=default
HttpStream & operator=(HttpStream &&)=delete
HttpVersion
Definition: HttpConnection.h:362
HttpClientConnectionProxyOptions & operator=(const HttpClientConnectionProxyOptions &rhs)=default
Definition: HttpConnection.h:131
OnIncomingHeadersBlockDone onIncomingHeadersBlockDone
Definition: HttpConnection.h:115
OnIncomingBody onIncomingBody
Definition: HttpConnection.h:119
Definition: Optional.h:32
HttpClientConnectionOptions(const HttpClientConnectionOptions &rhs)=default
Definition: HttpConnection.h:286
OnConnectionShutdown OnConnectionShutdownCallback
Definition: HttpConnection.h:320
ClientStreamCallbackData()
Definition: HttpConnection.h:189
aws_http_header HttpHeader
Definition: HttpConnection.h:42
aws_http_connection * m_connection
Definition: HttpConnection.h:431
std::function< void(HttpStream &stream, const ByteCursor &data)> OnIncomingBody
Definition: HttpConnection.h:92
size_t InitialWindowSize
Definition: HttpConnection.h:306
HttpClientConnectionOptions & operator=(HttpClientConnectionOptions &&rhs)=default
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition: Types.h:58
Optional< HttpClientConnectionProxyOptions > ProxyOptions
Definition: HttpConnection.h:350
Definition: Bootstrap.h:45
HttpStream(HttpStream &&)=delete
Definition: HttpConnection.h:372
std::function< void(const std::shared_ptr< HttpClientConnection > &connection, int errorCode)> OnConnectionSetup
Definition: HttpConnection.h:51
Io::ClientBootstrap * Bootstrap
Definition: HttpConnection.h:301
HttpClientConnection(const HttpClientConnection &)=delete
String BasicAuthPassword
Definition: HttpConnection.h:279
HttpClientConnection & operator=(const HttpClientConnection &)=delete
uint16_t Port
Definition: HttpConnection.h:258
HttpClientConnectionProxyOptions(const HttpClientConnectionProxyOptions &rhs)=default