16 struct IoTDeviceSDKMetrics;
33 class Mqtt5ClientCore;
35 class Mqtt5to3AdapterOptions;
37 struct PublishAcknowledgementHandle;
68 LRU = AWS_MQTT5_COTABT_LRU,
344 std::function<void(
const std::shared_ptr<Http::HttpRequest> &,
int)>;
360 class AWS_CRT_CPP_API Mqtt5Client final :
public std::enable_shared_from_this<Mqtt5Client>
382 std::shared_ptr<Mqtt5Client>
getptr() {
return shared_from_this(); }
387 operator bool() const noexcept;
401 bool Start() const noexcept;
409 bool Stop() noexcept;
476 bool InvokePublishAcknowledgement(
477 const PublishAcknowledgementHandle &publishAcknowledgementHandle) noexcept;
481 struct aws_mqtt5_client *GetUnderlyingHandle() const noexcept;
487 std::shared_ptr<Mqtt5ClientCore> m_client_core;
560 const
Crt::
Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept;
815 Io::ClientBootstrap *m_bootstrap;
821 Crt::
Io::SocketOptions m_socketOptions;
867 aws_mqtt5_client_topic_alias_options m_topicAliasingOptions;
873 uint32_t m_pingTimeoutMs;
879 uint32_t m_connackTimeoutMs;
885 uint32_t m_ackTimeoutSec;
887 bool m_enableMetrics = true;
892 aws_http_proxy_options m_httpProxyOptionsStorage;
893 aws_mqtt5_packet_connect_view m_packetConnectViewStorage;
894 struct aws_mqtt_iot_metrics m_metricsStorage;
Definition Mqtt5Packets.h:1180
Definition Mqtt5Packets.h:672
Definition Mqtt5Packets.h:1560
Definition Mqtt5Client.h:361
std::shared_ptr< Mqtt5Client > getptr()
Definition Mqtt5Client.h:382
static std::shared_ptr< Mqtt5Client > NewMqtt5Client(const Mqtt5ClientOptions &options, Allocator *allocator=ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:40
Definition Mqtt5Client.h:496
Mqtt5ClientOptions & WithHostName(Crt::String hostname)
Definition Mqtt5Client.cpp:269
Mqtt5ClientOptions & WithPublishReceivedCallback(OnPublishReceivedHandler callback) noexcept
Definition Mqtt5Client.cpp:432
Mqtt5ClientOptions & WithClientDisconnectionCallback(OnDisconnectionHandler callback) noexcept
Definition Mqtt5Client.cpp:412
Mqtt5ClientOptions & WithClientStoppedCallback(OnStoppedHandler callback) noexcept
Definition Mqtt5Client.cpp:419
Mqtt5ClientOptions & WithTlsConnectionOptions(const Io::TlsConnectionOptions &tslOptions) noexcept
Definition Mqtt5Client.cpp:293
Mqtt5ClientOptions & WithReconnectOptions(ReconnectOptions reconnectOptions) noexcept
Definition Mqtt5Client.cpp:337
Mqtt5ClientOptions & WithHttpProxyOptions(const Crt::Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept
Definition Mqtt5Client.cpp:300
friend class Mqtt5ClientCore
Definition Mqtt5Client.h:497
Mqtt5ClientOptions & WithMetricsCollection(bool enabled) noexcept
Definition Mqtt5Client.cpp:439
Mqtt5ClientOptions & WithSessionBehavior(ClientSessionBehaviorType sessionBehavior) noexcept
Definition Mqtt5Client.cpp:316
Mqtt5ClientOptions & WithBootstrap(Io::ClientBootstrap *bootStrap) noexcept
Definition Mqtt5Client.cpp:281
Mqtt5ClientOptions & WithAckTimeoutSeconds(uint32_t ackTimeoutSec) noexcept
Definition Mqtt5Client.cpp:380
Mqtt5ClientOptions & WithSocketOptions(Io::SocketOptions socketOptions) noexcept
Definition Mqtt5Client.cpp:287
Mqtt5ClientOptions & WithPingTimeoutMs(uint32_t pingTimeoutMs) noexcept
Definition Mqtt5Client.cpp:368
Mqtt5ClientOptions & WithClientAttemptingConnectCallback(OnAttemptingConnectHandler callback) noexcept
Definition Mqtt5Client.cpp:425
Mqtt5ClientOptions & WithConnectOptions(std::shared_ptr< ConnectPacket > connectPacket) noexcept
Definition Mqtt5Client.cpp:308
Mqtt5ClientOptions & WithPort(uint32_t port) noexcept
Definition Mqtt5Client.cpp:275
Mqtt5ClientOptions & WithClientConnectionFailureCallback(OnConnectionFailureHandler callback) noexcept
Definition Mqtt5Client.cpp:405
Mqtt5ClientOptions & WithClientExtendedValidationAndFlowControl(ClientExtendedValidationAndFlowControl clientExtendedValidationAndFlowControl) noexcept
Definition Mqtt5Client.cpp:323
Mqtt5ClientOptions & WithAckTimeoutSec(uint32_t ackTimeoutSec) noexcept
Definition Mqtt5Client.cpp:385
friend class Mqtt5to3AdapterOptions
Definition Mqtt5Client.h:498
Mqtt5ClientOptions(Crt::Allocator *allocator=ApiAllocator()) noexcept
Definition Mqtt5Client.cpp:204
Mqtt5ClientOptions & WithTopicAliasingOptions(TopicAliasingOptions topicAliasingOptions) noexcept
Definition Mqtt5Client.cpp:343
Mqtt5ClientOptions & WithWebsocketHandshakeTransformCallback(OnWebSocketHandshakeIntercept callback) noexcept
Definition Mqtt5Client.cpp:391
Mqtt5ClientOptions & WithConnackTimeoutMs(uint32_t connackTimeoutMs) noexcept
Definition Mqtt5Client.cpp:374
Mqtt5ClientOptions & WithClientConnectionSuccessCallback(OnConnectionSuccessHandler callback) noexcept
Definition Mqtt5Client.cpp:398
Mqtt5ClientOptions & WithOfflineQueueBehavior(ClientOperationQueueBehaviorType offlineQueueBehavior) noexcept
Definition Mqtt5Client.cpp:330
bool initializeRawOptions(aws_mqtt5_client_options &raw_options) const noexcept
Definition Mqtt5Client.cpp:223
Definition Mqtt5Packets.h:488
Definition Mqtt5Packets.h:1776
Definition Mqtt5Packets.h:53
Definition Mqtt5Packets.h:1853
Definition Mqtt5Packets.h:2165
Definition Mqtt5Packets.h:2038
Definition Mqtt5Packets.h:2341
Definition Mqtt5Packets.h:2244
Definition MqttConnection.h:158
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition Credentials.h:28
Definition Credentials.h:23
Definition HttpRequestResponse.h:24
std::function< void(int, std::shared_ptr< PublishResult >)> OnPublishCompletionHandler
Definition Mqtt5Client.h:314
std::function< void(int, std::shared_ptr< SubAckPacket >)> OnSubscribeCompletionHandler
Definition Mqtt5Client.h:319
aws_exponential_backoff_jitter_mode ExponentialBackoffJitterMode
Definition Mqtt5Types.h:242
InboundTopicAliasBehaviorType
Definition Mqtt5Client.h:84
@ Enabled
Definition Mqtt5Client.h:95
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:287
std::function< void(const OnConnectionFailureEventData &)> OnConnectionFailureHandler
Definition Mqtt5Client.h:292
OutboundTopicAliasBehaviorType
Definition Mqtt5Client.h:46
@ Default
Definition Mqtt5Client.h:52
@ LRU
Definition Mqtt5Client.h:68
@ Disabled
Definition Mqtt5Client.h:73
@ Manual
Definition Mqtt5Client.h:62
std::function< void(const std::shared_ptr< Http::HttpRequest > &, int)> OnWebSocketHandshakeInterceptComplete
Definition Mqtt5Client.h:343
std::function< void(const OnDisconnectionEventData &)> OnDisconnectionHandler
Definition Mqtt5Client.h:297
std::function< void(const OnAttemptingConnectEventData &)> OnAttemptingConnectHandler
Definition Mqtt5Client.h:303
std::function< void(std::shared_ptr< Http::HttpRequest >, const OnWebSocketHandshakeInterceptComplete &)> OnWebSocketHandshakeIntercept
Definition Mqtt5Client.h:352
aws_mqtt5_client_operation_queue_behavior_type ClientOperationQueueBehaviorType
Definition Mqtt5Types.h:223
std::function< void(int, std::shared_ptr< UnSubAckPacket >)> OnUnsubscribeCompletionHandler
Definition Mqtt5Client.h:324
std::function< void(const PublishReceivedEventData &)> OnPublishReceivedHandler
Definition Mqtt5Client.h:337
std::function< void(const OnStoppedEventData &)> OnStoppedHandler
Definition Mqtt5Client.h:309
Definition HttpRequestResponse.h:19
Definition Allocator.h:13
std::unique_ptr< T, std::function< void(T *)> > ScopedResource
Definition Types.h:163
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_CRT_CPP_API int LastError() noexcept
Definition Api.cpp:464
Definition Allocator.h:11
Definition StringView.h:862
Definition Mqtt5Client.h:182
uint64_t unackedOperationCount
Definition Mqtt5Client.h:199
uint64_t incompleteOperationSize
Definition Mqtt5Client.h:193
uint64_t incompleteOperationCount
Definition Mqtt5Client.h:187
uint64_t unackedOperationSize
Definition Mqtt5Client.h:205
Definition Mqtt5Client.h:213
OnAttemptingConnectEventData()
Definition Mqtt5Client.h:214
Definition Mqtt5Client.h:221
std::shared_ptr< ConnAckPacket > connAckPacket
Definition Mqtt5Client.h:225
int errorCode
Definition Mqtt5Client.h:224
OnConnectionFailureEventData()
Definition Mqtt5Client.h:222
Definition Mqtt5Client.h:232
std::shared_ptr< ConnAckPacket > connAckPacket
Definition Mqtt5Client.h:235
OnConnectionSuccessEventData()
Definition Mqtt5Client.h:233
std::shared_ptr< NegotiatedSettings > negotiatedSettings
Definition Mqtt5Client.h:236
Definition Mqtt5Client.h:243
int errorCode
Definition Mqtt5Client.h:246
std::shared_ptr< DisconnectPacket > disconnectPacket
Definition Mqtt5Client.h:247
OnDisconnectionEventData()
Definition Mqtt5Client.h:244
Definition Mqtt5Client.h:255
OnStoppedEventData()
Definition Mqtt5Client.h:256
Definition Mqtt5Client.h:263
std::function< ScopedResource< PublishAcknowledgementHandle >()> acquirePublishAcknowledgement
Definition Mqtt5Client.h:280
std::shared_ptr< PublishPacket > publishPacket
Definition Mqtt5Client.h:266
PublishReceivedEventData()
Definition Mqtt5Client.h:264
Definition Mqtt5Client.h:151
uint64_t m_minReconnectDelayMs
Definition Mqtt5Client.h:162
uint64_t m_minConnectedTimeToResetReconnectDelayMs
Definition Mqtt5Client.h:175
uint64_t m_maxReconnectDelayMs
Definition Mqtt5Client.h:168
ExponentialBackoffJitterMode m_reconnectMode
Definition Mqtt5Client.h:156
Definition Mqtt5Client.h:107
Crt::Optional< InboundTopicAliasBehaviorType > m_inboundBehavior
Definition Mqtt5Client.h:137
Crt::Optional< OutboundTopicAliasBehaviorType > m_outboundBehavior
Definition Mqtt5Client.h:117
Crt::Optional< uint16_t > m_outboundCacheMaxSize
Definition Mqtt5Client.h:129
Crt::Optional< uint16_t > m_inboundCacheMaxSize
Definition Mqtt5Client.h:147