6 #include <aws/http/connection.h>
7 #include <aws/http/proxy.h>
8 #include <aws/http/request_response.h>
24 class ClientBootstrap;
29 class HttpClientConnection;
31 class HttpClientStream;
33 class HttpProxyStrategy;
43 std::function<void(const std::shared_ptr<HttpClientConnection> &connection,
int errorCode)>;
65 enum aws_http_header_block headerBlock,
67 std::size_t headersCount)>;
76 std::function<void(HttpStream &stream, enum aws_http_header_block block)>;
84 using OnIncomingBody = std::function<void(HttpStream &stream, const ByteCursor &data)>;
144 virtual int GetResponseStatusCode()
const noexcept = 0;
155 void UpdateWindow(std::size_t incrementSize) noexcept;
160 HttpStream(
const std::shared_ptr<HttpClientConnection> &connection) noexcept;
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;
210 virtual int GetResponseStatusCode()
const noexcept
override;
217 bool Activate() noexcept;
220 HttpClientStream(
const std::shared_ptr<HttpClientConnection> &connection) noexcept;
251 Legacy = AWS_HPCT_HTTP_LEGACY,
289 void InitializeRawProxyOptions(
struct aws_http_proxy_options &raw_options)
const;
426 Unknown = AWS_HTTP_VERSION_UNKNOWN,
427 Http1_0 = AWS_HTTP_VERSION_1_0,
428 Http1_1 = AWS_HTTP_VERSION_1_1,
429 Http2 = AWS_HTTP_VERSION_2,
456 std::shared_ptr<HttpClientStream> NewClientStream(
const HttpRequestOptions &requestOptions) noexcept;
461 bool IsOpen()
const noexcept;
470 void Close() noexcept;
490 static bool CreateConnection(
502 static void s_onClientConnectionSetup(
503 struct aws_http_connection *connection,
505 void *user_data) noexcept;
506 static void s_onClientConnectionShutdown(
507 struct aws_http_connection *connection,
509 void *user_data) noexcept;
String HostName
Definition: HttpConnection.h:388
String HostName
Definition: HttpConnection.h:295
OnIncomingHeadersBlockDone onIncomingHeadersBlockDone
Definition: HttpConnection.h:110
aws_http_stream * m_stream
Definition: HttpConnection.h:158
#define AWS_CRT_CPP_API
Definition: Exports.h:36
HttpRequest * request
Definition: HttpConnection.h:104
OnIncomingHeaders onIncomingHeaders
Definition: HttpConnection.h:109
std::shared_ptr< HttpStream > stream
Definition: HttpConnection.h:191
Definition: HttpConnection.h:99
OnConnectionShutdown OnConnectionShutdownCallback
Definition: HttpConnection.h:382
AwsHttpProxyConnectionType ProxyConnectionType
Definition: HttpConnection.h:312
Definition: HttpConnection.h:197
String BasicAuthUsername
Definition: HttpConnection.h:334
std::function< void(HttpClientConnection &connection, int errorCode)> OnConnectionShutdown
Definition: HttpConnection.h:53
String BasicAuthPassword
Definition: HttpConnection.h:340
std::basic_string< char, std::char_traits< char >, StlAllocator< char >> String
Definition: Types.h:45
std::shared_ptr< HttpProxyStrategy > ProxyStrategy
Definition: HttpConnection.h:318
bool ManualWindowManagement
Definition: HttpConnection.h:421
aws_allocator Allocator
Definition: Allocator.h:14
uint32_t Port
Definition: HttpConnection.h:394
Definition: HttpRequestResponse.h:109
Definition: HttpConnection.h:187
Definition: HttpConnection.h:269
Allocator * allocator
Definition: HttpConnection.h:190
Definition: HttpConnection.h:435
Optional< HttpClientConnectionProxyOptions > ProxyOptions
Definition: HttpConnection.h:412
AwsHttpProxyAuthenticationType AuthType
Definition: HttpConnection.h:328
Optional< Io::TlsConnectionOptions > TlsOptions
Definition: HttpConnection.h:307
size_t InitialWindowSize
Definition: HttpConnection.h:368
Definition: HttpConnection.h:346
AwsHttpProxyAuthenticationType
Definition: HttpConnection.h:232
std::function< void(HttpStream &stream, const ByteCursor &data)> OnIncomingBody
Definition: HttpConnection.h:84
std::function< void(HttpStream &stream, int errorCode)> OnStreamComplete
Definition: HttpConnection.h:94
ClientStreamCallbackData()
Definition: HttpConnection.h:189
Definition: Bootstrap.h:34
Io::ClientBootstrap * Bootstrap
Definition: HttpConnection.h:363
Definition: HttpConnection.h:127
std::function< void(const std::shared_ptr< HttpClientConnection > &connection, int errorCode)> OnConnectionSetup
Definition: HttpConnection.h:43
aws_http_header HttpHeader
Definition: HttpConnection.h:34
Io::SocketOptions SocketOptions
Definition: HttpConnection.h:400
std::function< void(HttpStream &stream, enum aws_http_header_block headerBlock, const HttpHeader *headersArray, std::size_t headersCount)> OnIncomingHeaders
Definition: HttpConnection.h:67
std::shared_ptr< HttpClientConnection > m_connection
Definition: HttpConnection.h:159
std::function< void(HttpStream &stream, enum aws_http_header_block block)> OnIncomingHeadersBlockDone
Definition: HttpConnection.h:76
OnStreamComplete onStreamComplete
Definition: HttpConnection.h:120
aws_http_connection * m_connection
Definition: HttpConnection.h:496
HttpVersion
Definition: HttpConnection.h:424
int LastError() const noexcept
Definition: HttpConnection.h:480
OnIncomingBody onIncomingBody
Definition: HttpConnection.h:115
AwsHttpProxyConnectionType
Definition: HttpConnection.h:242
uint32_t Port
Definition: HttpConnection.h:301
OnConnectionSetup OnConnectionSetupCallback
Definition: HttpConnection.h:375
Definition: SocketOptions.h:47
Definition: Allocator.h:10
Optional< Io::TlsConnectionOptions > TlsOptions
Definition: HttpConnection.h:406