6#include <aws/http/connection.h>
7#include <aws/http/proxy.h>
8#include <aws/http/request_response.h>
44 std::function<void(
const std::shared_ptr<HttpClientConnection> &connection,
int errorCode)>;
66 enum aws_http_header_block headerBlock,
68 std::size_t headersCount)>;
77 std::function<void(
HttpStream &stream,
enum aws_http_header_block block)>;
190 static
int s_onIncomingHeaders(
191 struct aws_http_stream *stream,
192 enum aws_http_header_block headerBlock,
193 const struct aws_http_header *headerArray,
195 void *userData) noexcept;
196 static
int s_onIncomingHeaderBlockDone(
197 struct aws_http_stream *stream,
198 enum aws_http_header_block headerBlock,
199 void *userData) noexcept;
200 static
int s_onIncomingBody(
201 struct aws_http_stream *stream,
202 const struct aws_byte_cursor *data,
203 void *userData) noexcept;
204 static
void s_onStreamComplete(struct aws_http_stream *stream,
int errorCode,
void *userData) noexcept;
246 bool endStream = false) noexcept;
521 Unknown = AWS_HTTP_VERSION_UNKNOWN,
556 bool IsOpen() const noexcept;
565 void Close() noexcept;
585 static bool CreateConnection(
597 static void s_onClientConnectionSetup(
598 struct aws_http_connection *connection,
600 void *user_data)
noexcept;
601 static void s_onClientConnectionShutdown(
602 struct aws_http_connection *connection,
604 void *user_data)
noexcept;
Definition HttpConnection.h:531
HttpVersion GetVersion() noexcept
Definition HttpConnection.cpp:263
void Close() noexcept
Definition HttpConnection.cpp:258
virtual ~HttpClientConnection()=default
HttpClientConnection & operator=(HttpClientConnection &&)=delete
aws_http_connection * m_connection
Definition HttpConnection.h:591
std::shared_ptr< HttpClientStream > NewClientStream(const HttpRequestOptions &requestOptions) noexcept
Definition HttpConnection.cpp:197
HttpClientConnection & operator=(const HttpClientConnection &)=delete
int LastError() const noexcept
Definition HttpConnection.h:575
HttpClientConnection(const HttpClientConnection &)=delete
bool IsOpen() const noexcept
Definition HttpConnection.cpp:253
HttpClientConnection(HttpClientConnection &&)=delete
Definition HttpConnection.h:442
Optional< HttpClientConnectionProxyOptions > ProxyOptions
Definition HttpConnection.h:507
HttpClientConnectionOptions(HttpClientConnectionOptions &&rhs)=default
HttpClientConnectionOptions & operator=(const HttpClientConnectionOptions &rhs)=default
Optional< Io::TlsConnectionOptions > TlsOptions
Definition HttpConnection.h:501
size_t InitialWindowSize
Definition HttpConnection.h:463
HttpClientConnectionOptions(const HttpClientConnectionOptions &rhs)=default
OnConnectionSetup OnConnectionSetupCallback
Definition HttpConnection.h:470
Io::SocketOptions SocketOptions
Definition HttpConnection.h:495
String HostName
Definition HttpConnection.h:483
OnConnectionShutdown OnConnectionShutdownCallback
Definition HttpConnection.h:477
Io::ClientBootstrap * Bootstrap
Definition HttpConnection.h:458
HttpClientConnectionOptions()
Definition HttpConnection.cpp:455
~HttpClientConnectionOptions()=default
HttpClientConnectionOptions & operator=(HttpClientConnectionOptions &&rhs)=default
bool ManualWindowManagement
Definition HttpConnection.h:516
uint32_t Port
Definition HttpConnection.h:489
HttpClientConnectionProxyOptions & operator=(const HttpClientConnectionProxyOptions &rhs)=default
AwsHttpProxyConnectionType ProxyConnectionType
Definition HttpConnection.h:341
HttpClientConnectionProxyOptions()
Definition HttpConnection.cpp:405
~HttpClientConnectionProxyOptions()=default
void InitializeRawProxyOptions(struct aws_http_proxy_options &raw_options) const
Definition HttpConnection.cpp:411
HttpClientConnectionProxyOptions(const HttpClientConnectionProxyOptions &rhs)=default
HttpClientConnectionProxyOptions(HttpClientConnectionProxyOptions &&rhs)=default
Optional< Io::TlsConnectionOptions > TlsOptions
Definition HttpConnection.h:336
String BasicAuthPassword
Definition HttpConnection.h:369
uint32_t Port
Definition HttpConnection.h:330
std::shared_ptr< HttpProxyStrategy > ProxyStrategy
Definition HttpConnection.h:347
AwsHttpProxyAuthenticationType AuthType
Definition HttpConnection.h:357
String BasicAuthUsername
Definition HttpConnection.h:363
HttpClientConnectionProxyOptions & operator=(HttpClientConnectionProxyOptions &&rhs)=default
String HostName
Definition HttpConnection.h:324
Definition HttpConnection.h:222
friend class HttpClientConnection
Definition HttpConnection.h:252
HttpClientStream & operator=(const HttpClientStream &)=delete
virtual int GetResponseStatusCode() const noexcept override
Definition HttpConnection.cpp:348
bool Activate() noexcept
Definition HttpConnection.cpp:359
HttpClientStream & operator=(HttpClientStream &&)=delete
HttpClientStream(const HttpClientStream &)=delete
int WriteData(std::shared_ptr< Aws::Crt::Io::InputStream > stream, const OnWriteDataComplete &onComplete, bool endStream=false) noexcept
Definition HttpConnection.cpp:377
HttpClientStream(HttpClientStream &&)=delete
Definition HttpProxyStrategy.h:82
Definition HttpRequestResponse.h:110
Definition HttpConnection.h:150
aws_http_stream * m_stream
Definition HttpConnection.h:180
HttpStream(const HttpStream &)=delete
friend class HttpClientConnection
Definition HttpConnection.h:206
HttpClientConnection & GetConnection() const noexcept
Definition HttpConnection.cpp:336
HttpStream & operator=(const HttpStream &)=delete
HttpStream(HttpStream &&)=delete
virtual int GetResponseStatusCode() const noexcept=0
HttpStream & operator=(HttpStream &&)=delete
void UpdateWindow(std::size_t incrementSize) noexcept
Definition HttpConnection.cpp:400
std::shared_ptr< HttpClientConnection > m_connection
Definition HttpConnection.h:181
~ProxyEnvVarOptions()=default
void InitializeRawProxyOptions(struct proxy_env_var_settings &raw_options) const
Definition HttpConnection.cpp:443
ProxyEnvVarOptions & operator=(const ProxyEnvVarOptions &rhs)=default
Optional< Io::TlsConnectionOptions > TlsOptions
Definition HttpConnection.h:435
ProxyEnvVarOptions()
Definition HttpConnection.cpp:437
ProxyEnvVarOptions & operator=(ProxyEnvVarOptions &&rhs)=default
ProxyEnvVarOptions(const ProxyEnvVarOptions &rhs)=default
ProxyEnvVarType proxyEnvVarType
Definition HttpConnection.h:421
ProxyEnvVarOptions(ProxyEnvVarOptions &&rhs)=default
AwsHttpProxyConnectionType connectionType
Definition HttpConnection.h:429
Definition Bootstrap.h:35
Definition SocketOptions.h:48
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition Credentials.h:28
AwsHttpProxyConnectionType
Definition HttpConnection.h:272
@ Legacy
Definition HttpConnection.h:280
@ Forwarding
Definition HttpConnection.h:286
@ Tunneling
Definition HttpConnection.h:292
std::function< void(HttpStream &stream, enum aws_http_header_block block)> OnIncomingHeadersBlockDone
Definition HttpConnection.h:76
std::function< void(HttpStream &stream, const ByteCursor &data)> OnIncomingBody
Definition HttpConnection.h:85
ProxyEnvVarType
Definition HttpConnection.h:376
@ Enabled
Definition HttpConnection.h:390
@ Disabled
Definition HttpConnection.h:381
std::function< void(HttpStream &stream, int errorCode)> OnStreamComplete
Definition HttpConnection.h:95
std::function< void( HttpStream &stream, enum aws_http_header_block headerBlock, const HttpHeader *headersArray, std::size_t headersCount)> OnIncomingHeaders
Definition HttpConnection.h:64
std::function< void(HttpClientConnection &connection, int errorCode)> OnConnectionShutdown
Definition HttpConnection.h:54
std::function< void(const std::shared_ptr< HttpClientConnection > &connection, int errorCode)> OnConnectionSetup
Definition HttpConnection.h:43
std::function< void(std::shared_ptr< HttpStream > &stream, int errorCode)> OnWriteDataComplete
Definition HttpConnection.h:216
aws_http_header HttpHeader
Definition HttpConnection.h:35
AwsHttpProxyAuthenticationType
Definition HttpConnection.h:262
@ Basic
Definition HttpConnection.h:264
HttpVersion
Definition HttpConnection.h:520
@ Http1_1
Definition HttpConnection.h:523
@ Http1_0
Definition HttpConnection.h:522
@ Http2
Definition HttpConnection.h:524
Definition Credentials.h:23
Definition Allocator.h:13
aws_byte_cursor ByteCursor
Definition Types.h:31
@ None
Definition Api.h:23
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition Types.h:45
aws_allocator Allocator
Definition Allocator.h:14
Definition Allocator.h:11
Definition StringView.h:862
Definition HttpConnection.h:210
ClientStreamCallbackData()
Definition HttpConnection.h:211
Allocator * allocator
Definition HttpConnection.h:212
std::shared_ptr< HttpStream > stream
Definition HttpConnection.h:213
Definition HttpConnection.h:101
OnStreamComplete onStreamComplete
Definition HttpConnection.h:121
OnIncomingHeaders onIncomingHeaders
Definition HttpConnection.h:110
bool UseManualDataWrites
Definition HttpConnection.h:142
OnIncomingHeadersBlockDone onIncomingHeadersBlockDone
Definition HttpConnection.h:111
HttpRequest * request
Definition HttpConnection.h:105
OnIncomingBody onIncomingBody
Definition HttpConnection.h:116