17 class IoTSDKMetricsEncoder;
24 class DisconnectPacket;
26 class Mqtt5ClientOptions;
27 class NegotiatedSettings;
31 class SubscribePacket;
33 class UnsubscribePacket;
35 class Mqtt5ClientCore;
37 class Mqtt5to3AdapterOptions;
39 struct PublishAcknowledgementHandle;
54 Default = AWS_MQTT5_COTABT_DEFAULT,
64 Manual = AWS_MQTT5_COTABT_MANUAL,
70 LRU = AWS_MQTT5_COTABT_LRU,
75 Disabled = AWS_MQTT5_COTABT_DISABLED,
92 Default = AWS_MQTT5_CITABT_DEFAULT,
97 Enabled = AWS_MQTT5_CITABT_ENABLED,
102 Disabled = AWS_MQTT5_CITABT_DISABLED,
282 std::function<ScopedResource<PublishAcknowledgementHandle>()> acquirePublishAcknowledgement;
346 std::function<void(const std::shared_ptr<Http::HttpRequest> &, int)>;
374 static std::shared_ptr<Mqtt5Client> NewMqtt5Client(
389 operator bool() const noexcept;
403 bool Start() const noexcept;
411 bool Stop() noexcept;
478 bool InvokePublishAcknowledgement(
479 const PublishAcknowledgementHandle &publishAcknowledgementHandle) noexcept;
483 struct aws_mqtt5_client *GetUnderlyingHandle() const noexcept;
489 std::shared_ptr<Mqtt5ClientCore> m_client_core;
499 friend class Mqtt5ClientCore;
500 friend class Mqtt5to3AdapterOptions;
501 friend class Mqtt::IoTSDKMetricsEncoder;
553 Mqtt5ClientOptions &WithTlsConnectionOptions(const Io::TlsConnectionOptions &tslOptions) noexcept;
563 const Crt::Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept;
760 bool initializeRawOptions(aws_mqtt5_client_options &raw_options) const noexcept;
827 Io::ClientBootstrap *m_bootstrap;
833 Crt::Io::SocketOptions m_socketOptions;
839 Crt::
Optional<Crt::Io::TlsConnectionOptions> m_tlsConnectionOptions;
844 Crt::
Optional<Crt::Http::HttpClientConnectionProxyOptions> m_proxyOptions;
879 aws_mqtt5_client_topic_alias_options m_topicAliasingOptions;
885 uint32_t m_pingTimeoutMs;
891 uint32_t m_connackTimeoutMs;
897 uint32_t m_ackTimeoutSec;
899 bool m_enableMetrics = true;
900 Crt::
Optional<Crt::Mqtt::AWSIoTMetrics> m_sdkMetrics;
904 aws_http_proxy_options m_httpProxyOptionsStorage;
905 aws_mqtt5_packet_connect_view m_packetConnectViewStorage;
914 mutable Mqtt::AWSIoTMetrics m_finalMetrics;
915 mutable struct aws_mqtt_iot_metrics m_metricsStorage;
std::shared_ptr< ConnAckPacket > connAckPacket
Definition: Mqtt5Client.h:227
Definition: Mqtt5Client.h:244
Definition: Mqtt5Client.h:256
#define AWS_CRT_CPP_API
Definition: Exports.h:36
std::function< void(const OnStoppedEventData &)> OnStoppedHandler
Definition: Mqtt5Client.h:311
Crt::Optional< uint16_t > m_outboundCacheMaxSize
Definition: Mqtt5Client.h:131
Definition: Mqtt5Packets.h:2037
Definition: Mqtt5Client.h:108
std::function< void(const OnConnectionFailureEventData &)> OnConnectionFailureHandler
Definition: Mqtt5Client.h:294
Definition: Mqtt5Packets.h:671
OnAttemptingConnectEventData()
Definition: Mqtt5Client.h:216
std::function< void(const std::shared_ptr< Http::HttpRequest > &, int)> OnWebSocketHandshakeInterceptComplete
Definition: Mqtt5Client.h:346
Definition: StringView.h:861
uint64_t incompleteOperationCount
Definition: Mqtt5Client.h:189
std::basic_string< char, std::char_traits< char >, StlAllocator< char >> String
Definition: Types.h:45
Crt::Optional< uint16_t > m_inboundCacheMaxSize
Definition: Mqtt5Client.h:149
aws_allocator Allocator
Definition: Allocator.h:14
Crt::Optional< InboundTopicAliasBehaviorType > m_inboundBehavior
Definition: Mqtt5Client.h:139
uint64_t unackedOperationSize
Definition: Mqtt5Client.h:207
OnConnectionFailureEventData()
Definition: Mqtt5Client.h:224
Definition: Mqtt5Packets.h:1559
std::shared_ptr< ConnAckPacket > connAckPacket
Definition: Mqtt5Client.h:237
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:326
OutboundTopicAliasBehaviorType
Definition: Mqtt5Client.h:47
std::shared_ptr< PublishPacket > publishPacket
Definition: Mqtt5Client.h:268
aws_mqtt5_client_operation_queue_behavior_type ClientOperationQueueBehaviorType
Definition: Mqtt5Types.h:223
std::function< void(const OnConnectionSuccessEventData &)> OnConnectionSuccessHandler
Definition: Mqtt5Client.h:289
std::shared_ptr< DisconnectPacket > disconnectPacket
Definition: Mqtt5Client.h:249
Definition: Mqtt5Client.h:214
aws_mqtt5_client_session_behavior_type ClientSessionBehaviorType
Definition: Mqtt5Types.h:186
Definition: Mqtt5Packets.h:2243
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition: Allocator.cpp:24
Definition: Mqtt5Client.h:233
ExponentialBackoffJitterMode m_reconnectMode
Definition: Mqtt5Client.h:158
Definition: Mqtt5Client.h:183
Definition: Mqtt5Client.h:222
uint64_t incompleteOperationSize
Definition: Mqtt5Client.h:195
Definition: Mqtt5Client.h:152
uint64_t unackedOperationCount
Definition: Mqtt5Client.h:201
uint64_t m_maxReconnectDelayMs
Definition: Mqtt5Client.h:170
uint64_t m_minReconnectDelayMs
Definition: Mqtt5Client.h:164
OnDisconnectionEventData()
Definition: Mqtt5Client.h:246
Definition: Mqtt5Client.h:264
std::function< void(int, std::shared_ptr< PublishResult >)> OnPublishCompletionHandler
Definition: Mqtt5Client.h:316
OnConnectionSuccessEventData()
Definition: Mqtt5Client.h:235
AWS_CRT_CPP_API int LastError() noexcept
Definition: Api.cpp:469
PublishReceivedEventData()
Definition: Mqtt5Client.h:266
std::function< void(int, std::shared_ptr< SubAckPacket >)> OnSubscribeCompletionHandler
Definition: Mqtt5Client.h:321
aws_exponential_backoff_jitter_mode ExponentialBackoffJitterMode
Definition: Mqtt5Types.h:242
uint64_t m_minConnectedTimeToResetReconnectDelayMs
Definition: Mqtt5Client.h:177
OnStoppedEventData()
Definition: Mqtt5Client.h:258
std::function< void(const OnDisconnectionEventData &)> OnDisconnectionHandler
Definition: Mqtt5Client.h:299
Definition: Mqtt5Client.h:497
std::function< void(const OnAttemptingConnectEventData &)> OnAttemptingConnectHandler
Definition: Mqtt5Client.h:305
std::function< void(const PublishReceivedEventData &)> OnPublishReceivedHandler
Definition: Mqtt5Client.h:339
InboundTopicAliasBehaviorType
Definition: Mqtt5Client.h:85
Definition: Mqtt5Client.h:362
Crt::Optional< OutboundTopicAliasBehaviorType > m_outboundBehavior
Definition: Mqtt5Client.h:119
std::function< void(std::shared_ptr< Http::HttpRequest >, const OnWebSocketHandshakeInterceptComplete &)> OnWebSocketHandshakeIntercept
Definition: Mqtt5Client.h:355
std::shared_ptr< NegotiatedSettings > negotiatedSettings
Definition: Mqtt5Client.h:238
Definition: Mqtt5Packets.h:52
int errorCode
Definition: Mqtt5Client.h:248
Definition: MqttConnection.h:157
Definition: Allocator.h:10
int errorCode
Definition: Mqtt5Client.h:226