6#include <aws/crt/Config.h>
20 class ClientBootstrap;
22 class TlsContextOptions;
23 class WebsocketConfig;
138 const char *certPath,
139 const char *pkeyPath,
206 const char *windowsCertStorePath,
410 uint64_t minConnectedTimeToResetReconnectDelayMs)
noexcept;
477 std::shared_ptr<Mqtt5Client>
Build() noexcept;
482 explicit operator
bool() const noexcept {
return m_lastError == 0; }
487 int LastError() const noexcept {
return m_lastError ? m_lastError : AWS_ERROR_UNKNOWN; }
560 const char *certPath,
561 const char *pkeyPath,
568 const
Crt::String hostName,
569 const
Crt::ByteCursor &cert,
570 const
Crt::ByteCursor &pkey,
571 Crt::Allocator *allocator =
Crt::ApiAllocator()) noexcept;
577 const
Crt::String hostName,
578 const
Crt::
Io::TlsContextPkcs11Options &pkcs11Options,
579 Crt::Allocator *allocator =
Crt::ApiAllocator()) noexcept;
585 const
Crt::String hostName,
587 Crt::Allocator *allocator =
Crt::ApiAllocator()) noexcept;
593 const
Crt::String hostName,
594 const
char *windowsCertStorePath,
595 Crt::Allocator *allocator =
Crt::ApiAllocator()) noexcept;
601 const
Crt::String hostName,
603 Crt::Allocator *allocator =
Crt::ApiAllocator()) noexcept;
609 const
Crt::String hostName,
611 Crt::Allocator *allocator) noexcept;
617 const
Crt::String hostName,
620 Crt::Allocator *allocator) noexcept;
632 Crt::Allocator *allocator =
Crt::ApiAllocator()) noexcept;
634 Crt::Allocator *m_allocator;
645 Crt::Optional<
Crt::
Io::TlsContextOptions> m_tlsConnectionOptions;
650 Crt::Optional<
Crt::Http::HttpClientConnectionProxyOptions> m_proxyOptions;
674 bool m_enableMetricsCollection;
675 Crt::String m_sdkName;
676# ifdef AWS_IOT_SDK_VERSION
Definition HttpConnection.h:299
Definition Bootstrap.h:35
Definition SocketOptions.h:70
Definition TlsOptions.h:242
Definition Mqtt5Packets.h:672
Definition Mqtt5Client.h:498
static std::shared_ptr< Mqtt5ClientBuilder > CreateMqtt5ClientBuilderWithCustomAuthorizerWebsocket(const Crt::String &hostName, const Mqtt5CustomAuthConfig &customAuthConfig, const WebsocketConfig &config, Crt::Allocator *allocator) noexcept
Definition Mqtt5Client.cpp:285
Mqtt5ClientBuilder & WithPort(uint32_t port) noexcept
Definition Mqtt5Client.cpp:315
Mqtt5ClientBuilder & operator=(const Mqtt5ClientBuilder &)=delete
static std::shared_ptr< Mqtt5ClientBuilder > CreateMqtt5ClientBuilderWithWindowsCertStorePath(const Crt::String &hostName, const char *windowsCertStorePath, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:219
Mqtt5ClientBuilder & WithPublishReceivedCallback(OnPublishReceivedHandler callback) noexcept
Definition Mqtt5Client.cpp:488
static std::shared_ptr< Mqtt5ClientBuilder > CreateMqtt5ClientBuilderWithMtlsFromPath(const Crt::String &hostName, const char *certPath, const char *pkeyPath, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:130
static Mqtt5ClientBuilder * NewMqtt5ClientBuilderWithCustomAuthorizerWebsocket(const Crt::String hostName, const Mqtt5CustomAuthConfig &customAuthConfig, const WebsocketConfig &config, Crt::Allocator *allocator) noexcept
Definition Mqtt5Client.cpp:961
Mqtt5ClientBuilder & WithAckTimeoutSeconds(uint32_t ackTimeoutSec) noexcept
Definition Mqtt5Client.cpp:437
static std::shared_ptr< Mqtt5ClientBuilder > CreateMqtt5ClientBuilderWithCustomAuthorizer(const Crt::String &hostName, const Mqtt5CustomAuthConfig &customAuthConfig, Crt::Allocator *allocator) noexcept
Definition Mqtt5Client.cpp:263
Mqtt5ClientBuilder & WithCustomAuthorizer(const Iot::Mqtt5CustomAuthConfig &config) noexcept
Definition Mqtt5Client.cpp:373
Mqtt5ClientBuilder & WithConnectOptions(std::shared_ptr< ConnectPacket > packetConnect) noexcept
Definition Mqtt5Client.cpp:379
Mqtt5ClientBuilder & WithHttpProxyOptions(const Crt::Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept
Definition Mqtt5Client.cpp:366
Mqtt5ClientBuilder & WithHostName(Crt::String hostname)
Definition Mqtt5Client.cpp:309
static std::shared_ptr< Mqtt5ClientBuilder > CreateMqtt5ClientBuilderWithMtlsPkcs11(const Crt::String &hostName, const Crt::Io::TlsContextPkcs11Options &pkcs11Options, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:175
Mqtt5ClientBuilder(const Mqtt5ClientBuilder &)=delete
Mqtt5ClientBuilder & WithConnackTimeoutMs(uint32_t connackTimeoutMs) noexcept
Definition Mqtt5Client.cpp:425
Mqtt5ClientBuilder & WithClientStoppedCallback(OnStoppedHandler callback) noexcept
Definition Mqtt5Client.cpp:475
Mqtt5ClientBuilder & WithCertificateAuthority(const char *caPath) noexcept
Definition Mqtt5Client.cpp:327
Mqtt5ClientBuilder & operator=(Mqtt5ClientBuilder &&)=delete
Mqtt5ClientBuilder(Mqtt5ClientBuilder &&)=delete
std::shared_ptr< Mqtt5Client > Build() noexcept
Definition Mqtt5Client.cpp:494
Mqtt5ClientBuilder & WithOfflineQueueBehavior(ClientOperationQueueBehaviorType offlineQueueBehavior) noexcept
Definition Mqtt5Client.cpp:399
static Mqtt5ClientBuilder * NewMqtt5ClientBuilderWithWebsocket(const Crt::String hostName, const WebsocketConfig &config, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:915
static Mqtt5ClientBuilder * NewMqtt5ClientBuilderWithMtlsPkcs11(const Crt::String hostName, const Crt::Io::TlsContextPkcs11Options &pkcs11Options, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:846
static Mqtt5ClientBuilder * NewMqtt5ClientBuilderWithMtlsPkcs12(const Crt::String hostName, const struct Pkcs12Options &options, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:869
Mqtt5ClientBuilder & WithMinConnectedTimeToResetReconnectDelayMs(uint64_t minConnectedTimeToResetReconnectDelayMs) noexcept
static Mqtt5ClientBuilder * NewMqtt5ClientBuilderWithWindowsCertStorePath(const Crt::String hostName, const char *windowsCertStorePath, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:892
Mqtt5ClientBuilder & WithClientAttemptingConnectCallback(OnAttemptingConnectHandler callback) noexcept
Definition Mqtt5Client.cpp:481
Mqtt5ClientBuilder & WithPingTimeoutMs(uint32_t pingTimeoutMs) noexcept
Definition Mqtt5Client.cpp:419
static std::shared_ptr< Mqtt5ClientBuilder > CreateMqtt5ClientBuilderWithWebsocket(const Crt::String &hostName, const WebsocketConfig &config, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:241
Mqtt5ClientBuilder & WithAckTimeoutSec(uint32_t ackTimeoutSec) noexcept
Definition Mqtt5Client.cpp:431
static Mqtt5ClientBuilder * NewMqtt5ClientBuilderWithMtlsFromPath(const Crt::String hostName, const char *certPath, const char *pkeyPath, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:799
Mqtt5ClientBuilder & WithClientConnectionFailureCallback(OnConnectionFailureHandler callback) noexcept
Definition Mqtt5Client.cpp:461
Mqtt5ClientBuilder & WithBootstrap(Crt::Io::ClientBootstrap *bootStrap) noexcept
Definition Mqtt5Client.cpp:321
~Mqtt5ClientBuilder()
Definition Mqtt5Client.h:489
static std::shared_ptr< Mqtt5ClientBuilder > CreateMqtt5ClientBuilderWithMtlsPkcs12(const Crt::String &hostName, const struct Pkcs12Options &options, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:197
int LastError() const noexcept
Definition Mqtt5Client.h:487
Mqtt5ClientBuilder & WithClientExtendedValidationAndFlowControl(ClientExtendedValidationAndFlowControl clientExtendedValidationAndFlowControl) noexcept
Definition Mqtt5Client.cpp:392
Mqtt5ClientBuilder & WithSessionBehavior(ClientSessionBehaviorType sessionBehavior) noexcept
Definition Mqtt5Client.cpp:386
static Mqtt5ClientBuilder * NewMqtt5ClientBuilderWithMtlsFromMemory(const Crt::String hostName, const Crt::ByteCursor &cert, const Crt::ByteCursor &pkey, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:823
Mqtt5ClientBuilder & WithSocketOptions(Crt::Io::SocketOptions socketOptions) noexcept
Definition Mqtt5Client.cpp:360
Mqtt5ClientBuilder & WithClientConnectionSuccessCallback(OnConnectionSuccessHandler callback) noexcept
Definition Mqtt5Client.cpp:454
Mqtt5ClientBuilder & WithSdkVersion(const Crt::String &sdkVersion)
Definition Mqtt5Client.cpp:448
static std::shared_ptr< Mqtt5ClientBuilder > CreateMqtt5ClientBuilderWithMtlsFromMemory(const Crt::String &hostName, const Crt::ByteCursor &cert, const Crt::ByteCursor &pkey, Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:153
Mqtt5ClientBuilder & WithTlsCipherPreference(aws_tls_cipher_pref cipherPref) noexcept
Definition Mqtt5Client.cpp:351
static Mqtt5ClientBuilder * NewMqtt5ClientBuilderWithCustomAuthorizer(const Crt::String hostName, const Mqtt5CustomAuthConfig &customAuthConfig, Crt::Allocator *allocator) noexcept
Definition Mqtt5Client.cpp:938
Mqtt5ClientBuilder & WithReconnectOptions(ReconnectOptions reconnectOptions) noexcept
Definition Mqtt5Client.cpp:406
Mqtt5ClientBuilder & WithClientDisconnectionCallback(OnDisconnectionHandler callback) noexcept
Definition Mqtt5Client.cpp:468
Mqtt5ClientBuilder & WithTopicAliasingOptions(TopicAliasingOptions topicAliasingOptions) noexcept
Definition Mqtt5Client.cpp:412
Mqtt5ClientBuilder & WithSdkName(const Crt::String &sdkName)
Definition Mqtt5Client.cpp:442
Definition Mqtt5Client.h:33
const Crt::Optional< Crt::String > & GetTokenKeyName()
Definition Mqtt5Client.cpp:735
Mqtt5CustomAuthConfig & WithUsername(Crt::String username)
Definition Mqtt5Client.cpp:756
const Crt::Optional< Crt::String > & GetUsername()
Definition Mqtt5Client.cpp:725
Mqtt5CustomAuthConfig(Crt::Allocator *allocator=Crt::ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:639
Mqtt5CustomAuthConfig & operator=(Mqtt5CustomAuthConfig &&rhs)=delete
Mqtt5CustomAuthConfig & WithAuthorizerName(Crt::String authName)
Definition Mqtt5Client.cpp:750
const Crt::Optional< Crt::String > & GetTokenValue()
Definition Mqtt5Client.cpp:740
const Crt::Optional< Crt::String > & GetTokenSignature()
Definition Mqtt5Client.cpp:745
Mqtt5CustomAuthConfig(Mqtt5CustomAuthConfig &&rhs)=delete
Mqtt5CustomAuthConfig & WithTokenSignature(Crt::String tokenSignature)
Definition Mqtt5Client.cpp:783
const Crt::Optional< Crt::String > & GetAuthorizerName()
Definition Mqtt5Client.cpp:720
Mqtt5CustomAuthConfig & WithTokenKeyName(Crt::String tokenKeyName)
Definition Mqtt5Client.cpp:771
Mqtt5CustomAuthConfig & WithTokenValue(Crt::String tokenValue)
Definition Mqtt5Client.cpp:777
const Crt::Optional< Crt::ByteCursor > & GetPassword()
Definition Mqtt5Client.cpp:730
Mqtt5CustomAuthConfig & WithPassword(Crt::ByteCursor password)
Definition Mqtt5Client.cpp:762
Mqtt5CustomAuthConfig & operator=(const Mqtt5CustomAuthConfig &rhs)
Definition Mqtt5Client.cpp:684
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition HttpRequestResponse.h:24
aws_mqtt5_client_session_behavior_type ClientSessionBehaviorType
Definition Mqtt5Types.h:186
aws_mqtt5_extended_validation_and_flow_control_options ClientExtendedValidationAndFlowControl
Definition Mqtt5Types.h:200
std::function< void(const OnConnectionSuccessEventData &)> OnConnectionSuccessHandler
Definition Mqtt5Client.h:289
std::function< void(const OnConnectionFailureEventData &)> OnConnectionFailureHandler
Definition Mqtt5Client.h:294
std::function< void(const OnDisconnectionEventData &)> OnDisconnectionHandler
Definition Mqtt5Client.h:299
std::function< void(const OnAttemptingConnectEventData &)> OnAttemptingConnectHandler
Definition Mqtt5Client.h:305
aws_mqtt5_client_operation_queue_behavior_type ClientOperationQueueBehaviorType
Definition Mqtt5Types.h:223
std::function< void(const PublishReceivedEventData &)> OnPublishReceivedHandler
Definition Mqtt5Client.h:339
std::function< void(const OnStoppedEventData &)> OnStoppedHandler
Definition Mqtt5Client.h:311
Definition Allocator.h:13
aws_byte_cursor ByteCursor
Definition Types.h:31
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition Types.h:45
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition Allocator.cpp:24
aws_allocator Allocator
Definition Allocator.h:14
aws_byte_buf ByteBuf
Definition Types.h:30
Definition Mqtt5Client.h:19
Definition Mqtt5Client.h:27
Definition Allocator.h:11
Definition StringView.h:862
Definition Mqtt5Client.h:153
Definition Mqtt5Client.h:109
Definition MqttCommon.h:105
Definition MqttCommon.h:24