19 class DisconnectPacket;
21 class Mqtt5ClientOptions;
22 class NegotiatedSettings;
26 class SubscribePacket;
28 class UnsubscribePacket;
30 class Mqtt5ClientCore;
32 class Mqtt5to3AdapterOptions;
47 Default = AWS_MQTT5_COTABT_DEFAULT,
57 Manual = AWS_MQTT5_COTABT_MANUAL,
63 LRU = AWS_MQTT5_COTABT_LRU,
68 Disabled = AWS_MQTT5_COTABT_DISABLED,
85 Default = AWS_MQTT5_CITABT_DEFAULT,
90 Enabled = AWS_MQTT5_CITABT_ENABLED,
95 Disabled = AWS_MQTT5_CITABT_DISABLED,
316 std::function<void(
const std::shared_ptr<Http::HttpRequest> &,
int)>;
344 static std::shared_ptr<Mqtt5Client> NewMqtt5Client(
359 operator bool() const noexcept;
364 int LastError() const noexcept;
373 bool Start() const noexcept;
381 bool Stop() noexcept;
439 struct aws_mqtt5_client *GetUnderlyingHandle() const noexcept;
445 std::shared_ptr<Mqtt5ClientCore> m_client_core;
455 friend class Mqtt5ClientCore;
456 friend class Mqtt5to3AdapterOptions;
508 Mqtt5ClientOptions &WithTlsConnectionOptions(const Io::TlsConnectionOptions &tslOptions) noexcept;
518 const Crt::Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept;
706 bool initializeRawOptions(aws_mqtt5_client_options &raw_options) const noexcept;
773 Io::ClientBootstrap *m_bootstrap;
779 Crt::Io::SocketOptions m_socketOptions;
785 Crt::
Optional<Crt::Io::TlsConnectionOptions> m_tlsConnectionOptions;
790 Crt::
Optional<Crt::Http::HttpClientConnectionProxyOptions> m_proxyOptions;
825 aws_mqtt5_client_topic_alias_options m_topicAliasingOptions;
831 uint32_t m_pingTimeoutMs;
837 uint32_t m_connackTimeoutMs;
843 uint32_t m_ackTimeoutSec;
845 bool m_enableMetrics = true;
846 Mqtt::IoTDeviceSDKMetrics m_sdkMetrics;
850 aws_http_proxy_options m_httpProxyOptionsStorage;
851 aws_mqtt5_packet_connect_view m_packetConnectViewStorage;
852 struct aws_mqtt_iot_metrics m_metricsStorage;
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition Mqtt5Packets.h:672
Definition Mqtt5Packets.h:1560
Definition Mqtt5Client.h:333
Definition Mqtt5Client.h:454
Definition Mqtt5Packets.h:53
Definition Mqtt5Packets.h:2038
Definition Mqtt5Packets.h:2244
Definition MqttConnection.h:158
aws_mqtt5_client_operation_queue_behavior_type ClientOperationQueueBehaviorType
Definition Mqtt5Types.h:223
InboundTopicAliasBehaviorType
Definition Mqtt5Client.h:79
std::function< void(const std::shared_ptr< Http::HttpRequest > &, int)> OnWebSocketHandshakeInterceptComplete
Definition Mqtt5Client.h:316
aws_mqtt5_client_session_behavior_type ClientSessionBehaviorType
Definition Mqtt5Types.h:186
std::function< void(const PublishReceivedEventData &)> OnPublishReceivedHandler
Definition Mqtt5Client.h:309
std::function< void(int, std::shared_ptr< PublishResult >)> OnPublishCompletionHandler
Definition Mqtt5Client.h:294
std::function< void(const OnStoppedEventData &)> OnStoppedHandler
Definition Mqtt5Client.h:289
std::function< void(const OnDisconnectionEventData &)> OnDisconnectionHandler
Definition Mqtt5Client.h:277
OutboundTopicAliasBehaviorType
Definition Mqtt5Client.h:41
std::function< void(const OnConnectionSuccessEventData &)> OnConnectionSuccessHandler
Definition Mqtt5Client.h:267
std::function< void(const OnAttemptingConnectEventData &)> OnAttemptingConnectHandler
Definition Mqtt5Client.h:283
aws_exponential_backoff_jitter_mode ExponentialBackoffJitterMode
Definition Mqtt5Types.h:242
std::function< void(std::shared_ptr< Http::HttpRequest >, const OnWebSocketHandshakeInterceptComplete &)> OnWebSocketHandshakeIntercept
Definition Mqtt5Client.h:325
std::function< void(const OnConnectionFailureEventData &)> OnConnectionFailureHandler
Definition Mqtt5Client.h:272
aws_mqtt5_extended_validation_and_flow_control_options ClientExtendedValidationAndFlowControl
Definition Mqtt5Types.h:200
std::function< void(int, std::shared_ptr< UnSubAckPacket >)> OnUnsubscribeCompletionHandler
Definition Mqtt5Client.h:304
std::function< void(int, std::shared_ptr< SubAckPacket >)> OnSubscribeCompletionHandler
Definition Mqtt5Client.h:299
aws_allocator Allocator
Definition Allocator.h:14
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition Allocator.cpp:24
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition Types.h:45
Definition Allocator.h:11
Definition StringView.h:862
Definition Mqtt5Client.h:177
uint64_t unackedOperationCount
Definition Mqtt5Client.h:194
uint64_t incompleteOperationSize
Definition Mqtt5Client.h:188
uint64_t incompleteOperationCount
Definition Mqtt5Client.h:182
uint64_t unackedOperationSize
Definition Mqtt5Client.h:200
Definition Mqtt5Client.h:208
OnAttemptingConnectEventData()
Definition Mqtt5Client.h:209
Definition Mqtt5Client.h:216
std::shared_ptr< ConnAckPacket > connAckPacket
Definition Mqtt5Client.h:220
int errorCode
Definition Mqtt5Client.h:219
OnConnectionFailureEventData()
Definition Mqtt5Client.h:217
Definition Mqtt5Client.h:227
std::shared_ptr< ConnAckPacket > connAckPacket
Definition Mqtt5Client.h:230
OnConnectionSuccessEventData()
Definition Mqtt5Client.h:228
std::shared_ptr< NegotiatedSettings > negotiatedSettings
Definition Mqtt5Client.h:231
Definition Mqtt5Client.h:238
int errorCode
Definition Mqtt5Client.h:241
std::shared_ptr< DisconnectPacket > disconnectPacket
Definition Mqtt5Client.h:242
OnDisconnectionEventData()
Definition Mqtt5Client.h:239
Definition Mqtt5Client.h:250
OnStoppedEventData()
Definition Mqtt5Client.h:251
Definition Mqtt5Client.h:258
std::shared_ptr< PublishPacket > publishPacket
Definition Mqtt5Client.h:260
PublishReceivedEventData()
Definition Mqtt5Client.h:259
Definition Mqtt5Client.h:146
uint64_t m_minReconnectDelayMs
Definition Mqtt5Client.h:157
uint64_t m_minConnectedTimeToResetReconnectDelayMs
Definition Mqtt5Client.h:170
uint64_t m_maxReconnectDelayMs
Definition Mqtt5Client.h:163
ExponentialBackoffJitterMode m_reconnectMode
Definition Mqtt5Client.h:151
Definition Mqtt5Client.h:102
Crt::Optional< InboundTopicAliasBehaviorType > m_inboundBehavior
Definition Mqtt5Client.h:132
Crt::Optional< OutboundTopicAliasBehaviorType > m_outboundBehavior
Definition Mqtt5Client.h:112
Crt::Optional< uint16_t > m_outboundCacheMaxSize
Definition Mqtt5Client.h:124
Crt::Optional< uint16_t > m_inboundCacheMaxSize
Definition Mqtt5Client.h:142