6#include <aws/http/connection.h>
7#include <aws/http/proxy.h>
8#include <aws/http/request_response.h>
45 std::function<void(
const std::shared_ptr<HttpClientConnection> &connection,
int errorCode)>;
67 enum aws_http_header_block headerBlock,
69 std::size_t headersCount)>;
78 std::function<void(
HttpStream &stream,
enum aws_http_header_block block)>;
191 static
int s_onIncomingHeaders(
192 struct aws_http_stream *stream,
193 enum aws_http_header_block headerBlock,
194 const struct aws_http_header *headerArray,
196 void *userData) noexcept;
197 static
int s_onIncomingHeaderBlockDone(
198 struct aws_http_stream *stream,
199 enum aws_http_header_block headerBlock,
200 void *userData) noexcept;
201 static
int s_onIncomingBody(
202 struct aws_http_stream *stream,
203 const struct aws_byte_cursor *data,
204 void *userData) noexcept;
205 static
void s_onStreamComplete(struct aws_http_stream *stream,
int errorCode,
void *userData) noexcept;
247 bool endStream = false) noexcept;
528 Unknown = AWS_HTTP_VERSION_UNKNOWN,
563 bool IsOpen() const noexcept;
572 void Close() noexcept;
592 static bool CreateConnection(
604 static void s_onClientConnectionSetup(
605 struct aws_http_connection *connection,
607 void *user_data)
noexcept;
608 static void s_onClientConnectionShutdown(
609 struct aws_http_connection *connection,
611 void *user_data)
noexcept;
Definition HttpConnection.h:538
HttpVersion GetVersion() noexcept
Definition HttpConnection.cpp:279
void Close() noexcept
Definition HttpConnection.cpp:274
virtual ~HttpClientConnection()=default
HttpClientConnection & operator=(HttpClientConnection &&)=delete
aws_http_connection * m_connection
Definition HttpConnection.h:598
std::shared_ptr< HttpClientStream > NewClientStream(const HttpRequestOptions &requestOptions) noexcept
Definition HttpConnection.cpp:213
HttpClientConnection & operator=(const HttpClientConnection &)=delete
int LastError() const noexcept
Definition HttpConnection.h:582
HttpClientConnection(const HttpClientConnection &)=delete
bool IsOpen() const noexcept
Definition HttpConnection.cpp:269
HttpClientConnection(HttpClientConnection &&)=delete
Definition HttpConnection.h:443
Optional< HttpClientConnectionProxyOptions > ProxyOptions
Definition HttpConnection.h:508
HttpClientConnectionOptions(HttpClientConnectionOptions &&rhs)=default
HttpClientConnectionOptions & operator=(const HttpClientConnectionOptions &rhs)=default
Optional< Io::TlsConnectionOptions > TlsOptions
Definition HttpConnection.h:502
std::shared_ptr< Aws::Crt::Io::L4ProxyConfig > L4ProxyOptions
Definition HttpConnection.h:514
size_t InitialWindowSize
Definition HttpConnection.h:464
HttpClientConnectionOptions(const HttpClientConnectionOptions &rhs)=default
OnConnectionSetup OnConnectionSetupCallback
Definition HttpConnection.h:471
Io::SocketOptions SocketOptions
Definition HttpConnection.h:496
String HostName
Definition HttpConnection.h:484
OnConnectionShutdown OnConnectionShutdownCallback
Definition HttpConnection.h:478
Io::ClientBootstrap * Bootstrap
Definition HttpConnection.h:459
HttpClientConnectionOptions()
Definition HttpConnection.cpp:471
~HttpClientConnectionOptions()=default
HttpClientConnectionOptions & operator=(HttpClientConnectionOptions &&rhs)=default
bool ManualWindowManagement
Definition HttpConnection.h:523
uint32_t Port
Definition HttpConnection.h:490
HttpClientConnectionProxyOptions & operator=(const HttpClientConnectionProxyOptions &rhs)=default
AwsHttpProxyConnectionType ProxyConnectionType
Definition HttpConnection.h:342
HttpClientConnectionProxyOptions()
Definition HttpConnection.cpp:421
~HttpClientConnectionProxyOptions()=default
void InitializeRawProxyOptions(struct aws_http_proxy_options &raw_options) const
Definition HttpConnection.cpp:427
HttpClientConnectionProxyOptions(const HttpClientConnectionProxyOptions &rhs)=default
HttpClientConnectionProxyOptions(HttpClientConnectionProxyOptions &&rhs)=default
Optional< Io::TlsConnectionOptions > TlsOptions
Definition HttpConnection.h:337
String BasicAuthPassword
Definition HttpConnection.h:370
uint32_t Port
Definition HttpConnection.h:331
std::shared_ptr< HttpProxyStrategy > ProxyStrategy
Definition HttpConnection.h:348
AwsHttpProxyAuthenticationType AuthType
Definition HttpConnection.h:358
String BasicAuthUsername
Definition HttpConnection.h:364
HttpClientConnectionProxyOptions & operator=(HttpClientConnectionProxyOptions &&rhs)=default
String HostName
Definition HttpConnection.h:325
Definition HttpConnection.h:223
friend class HttpClientConnection
Definition HttpConnection.h:253
HttpClientStream & operator=(const HttpClientStream &)=delete
virtual int GetResponseStatusCode() const noexcept override
Definition HttpConnection.cpp:364
bool Activate() noexcept
Definition HttpConnection.cpp:375
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:393
HttpClientStream(HttpClientStream &&)=delete
Definition HttpProxyStrategy.h:82
Definition HttpRequestResponse.h:110
Definition HttpConnection.h:151
aws_http_stream * m_stream
Definition HttpConnection.h:181
HttpStream(const HttpStream &)=delete
friend class HttpClientConnection
Definition HttpConnection.h:207
HttpClientConnection & GetConnection() const noexcept
Definition HttpConnection.cpp:352
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:416
std::shared_ptr< HttpClientConnection > m_connection
Definition HttpConnection.h:182
~ProxyEnvVarOptions()=default
void InitializeRawProxyOptions(struct proxy_env_var_settings &raw_options) const
Definition HttpConnection.cpp:459
ProxyEnvVarOptions & operator=(const ProxyEnvVarOptions &rhs)=default
Optional< Io::TlsConnectionOptions > TlsOptions
Definition HttpConnection.h:436
ProxyEnvVarOptions()
Definition HttpConnection.cpp:453
ProxyEnvVarOptions & operator=(ProxyEnvVarOptions &&rhs)=default
ProxyEnvVarOptions(const ProxyEnvVarOptions &rhs)=default
ProxyEnvVarType proxyEnvVarType
Definition HttpConnection.h:422
ProxyEnvVarOptions(ProxyEnvVarOptions &&rhs)=default
AwsHttpProxyConnectionType connectionType
Definition HttpConnection.h:430
Definition Bootstrap.h:35
Definition SocketOptions.h:70
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition Credentials.h:28
AwsHttpProxyConnectionType
Definition HttpConnection.h:273
@ Legacy
Definition HttpConnection.h:281
@ Forwarding
Definition HttpConnection.h:287
@ Tunneling
Definition HttpConnection.h:293
std::function< void(HttpStream &stream, enum aws_http_header_block block)> OnIncomingHeadersBlockDone
Definition HttpConnection.h:77
std::function< void(HttpStream &stream, const ByteCursor &data)> OnIncomingBody
Definition HttpConnection.h:86
ProxyEnvVarType
Definition HttpConnection.h:377
@ Enabled
Definition HttpConnection.h:391
@ Disabled
Definition HttpConnection.h:382
std::function< void(HttpStream &stream, int errorCode)> OnStreamComplete
Definition HttpConnection.h:96
std::function< void( HttpStream &stream, enum aws_http_header_block headerBlock, const HttpHeader *headersArray, std::size_t headersCount)> OnIncomingHeaders
Definition HttpConnection.h:65
std::function< void(HttpClientConnection &connection, int errorCode)> OnConnectionShutdown
Definition HttpConnection.h:55
std::function< void(const std::shared_ptr< HttpClientConnection > &connection, int errorCode)> OnConnectionSetup
Definition HttpConnection.h:44
std::function< void(std::shared_ptr< HttpStream > &stream, int errorCode)> OnWriteDataComplete
Definition HttpConnection.h:217
aws_http_header HttpHeader
Definition HttpConnection.h:36
AwsHttpProxyAuthenticationType
Definition HttpConnection.h:263
@ Basic
Definition HttpConnection.h:265
HttpVersion
Definition HttpConnection.h:527
@ Http1_1
Definition HttpConnection.h:530
@ Http1_0
Definition HttpConnection.h:529
@ Http2
Definition HttpConnection.h:531
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:211
ClientStreamCallbackData()
Definition HttpConnection.h:212
Allocator * allocator
Definition HttpConnection.h:213
std::shared_ptr< HttpStream > stream
Definition HttpConnection.h:214
Definition HttpConnection.h:102
OnStreamComplete onStreamComplete
Definition HttpConnection.h:122
OnIncomingHeaders onIncomingHeaders
Definition HttpConnection.h:111
bool UseManualDataWrites
Definition HttpConnection.h:143
OnIncomingHeadersBlockDone onIncomingHeadersBlockDone
Definition HttpConnection.h:112
HttpRequest * request
Definition HttpConnection.h:106
OnIncomingBody onIncomingBody
Definition HttpConnection.h:117