13#include <aws/mqtt/client.h>
25 class ClientBootstrap;
106 std::function<void(
MqttConnection &connection, uint16_t packetId,
int errorCode)>;
113 std::function<void(
const std::shared_ptr<Http::HttpRequest> &,
int errorCode)>;
144 operator bool() const noexcept;
159 bool SetWill(const
char *topic,
QOS qos,
bool retain, const
ByteBuf &payload) noexcept;
168 bool SetLogin(const
char *userName, const
char *password) noexcept;
173 bool SetWebsocketProxyOptions(const Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept;
184 bool SetHttpProxyOptions(const Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept;
197 bool SetReconnectTimeout(uint64_t min_seconds, uint64_t max_seconds) noexcept;
216 const
char *clientId,
218 uint16_t keepAliveTimeSecs = 0,
219 uint32_t pingTimeoutMs = 0,
220 uint32_t protocolOperationTimeoutMs = 0) noexcept;
226 bool Disconnect() noexcept;
229 aws_mqtt_client_connection *GetUnderlyingConnection() noexcept;
244 const
char *topicFilter,
253 const
char *topicFilter,
335 aws_mqtt_client *m_owningClient;
336 aws_mqtt_client_connection *m_underlyingConnection;
339 Crt::Io::TlsContext m_tlsContext;
340 Io::TlsConnectionOptions m_tlsOptions;
341 Io::SocketOptions m_socketOptions;
342 Crt::
Optional<Http::HttpClientConnectionProxyOptions> m_proxyOptions;
348 aws_mqtt_client *client,
349 const
char *hostName,
351 const Io::SocketOptions &socketOptions,
352 const Crt::Io::TlsContext &tlsContext,
353 bool useWebsocket) noexcept;
356 aws_mqtt_client *client,
357 const
char *hostName,
359 const Io::SocketOptions &socketOptions,
360 bool useWebsocket) noexcept;
362 static
void s_onConnectionInterrupted(aws_mqtt_client_connection *,
int errorCode,
void *userData);
363 static
void s_onConnectionCompleted(
364 aws_mqtt_client_connection *,
366 enum aws_mqtt_connect_return_code returnCode,
369 static
void s_onConnectionResumed(
370 aws_mqtt_client_connection *,
375 static
void s_onDisconnect(aws_mqtt_client_connection *connection,
void *userData);
376 static
void s_onPublish(
377 aws_mqtt_client_connection *connection,
378 const aws_byte_cursor *topic,
379 const aws_byte_cursor *payload,
381 enum aws_mqtt_qos qos,
385 static
void s_onSubAck(
386 aws_mqtt_client_connection *connection,
388 const struct aws_byte_cursor *topic,
389 enum aws_mqtt_qos qos,
392 static
void s_onMultiSubAck(
393 aws_mqtt_client_connection *connection,
395 const struct aws_array_list *topic_subacks,
398 static
void s_onOpComplete(
399 aws_mqtt_client_connection *connection,
404 static
void s_onWebsocketHandshake(
405 struct aws_http_message *request,
407 aws_mqtt_transform_websocket_handshake_complete_fn *complete_fn,
410 static
void s_connectionInit(
412 const
char *hostName,
414 const Io::SocketOptions &socketOptions);
447 operator
bool() const noexcept;
468 const
char *hostName,
470 const Io::SocketOptions &socketOptions,
471 const Crt::Io::TlsContext &tlsContext,
472 bool useWebsocket = false) noexcept;
486 const
char *hostName,
488 const Io::SocketOptions &socketOptions,
489 bool useWebsocket = false) noexcept;
492 aws_mqtt_client *m_client;
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Definition: Bootstrap.h:35
Definition: MqttClient.h:423
MqttClient(const MqttClient &)=delete
Definition: MqttClient.h:131
MqttConnection & operator=(MqttConnection &&)=delete
MqttConnection(MqttConnection &&)=delete
MqttConnection(const MqttConnection &)=delete
MqttConnection & operator=(const MqttConnection &)=delete
Definition: Optional.h:17
std::function< void(MqttConnection &connection, uint16_t packetId, const Vector< String > &topics, QOS qos, int errorCode)> OnMultiSubAckHandler
Definition: MqttClient.h:69
std::function< void(std::shared_ptr< Http::HttpRequest > req, const OnWebSocketHandshakeInterceptComplete &onComplete)> OnWebSocketHandshakeIntercept
Definition: MqttClient.h:122
std::function< void(MqttConnection &connection, ReturnCode connectCode, bool sessionPresent)> OnConnectionResumedHandler
Definition: MqttClient.h:47
std::function< void(MqttConnection &connection, const String &topic, const ByteBuf &payload, bool dup, QOS qos, bool retain)> OnMessageReceivedHandler
Definition: MqttClient.h:93
std::function< void(MqttConnection &connection, uint16_t packetId, int errorCode)> OnOperationCompleteHandler
Definition: MqttClient.h:106
std::function< void(MqttConnection &connection, const String &topic, const ByteBuf &payload)> OnPublishReceivedHandler
Definition: MqttClient.h:99
std::function< void(MqttConnection &connection, int error)> OnConnectionInterruptedHandler
Definition: MqttClient.h:41
std::function< void(const std::shared_ptr< Http::HttpRequest > &, int errorCode)> OnWebSocketHandshakeInterceptComplete
Definition: MqttClient.h:113
aws_mqtt_qos QOS
Definition: Types.h:42
std::function< void(MqttConnection &connection)> OnDisconnectHandler
Definition: MqttClient.h:74
aws_mqtt_connect_return_code ReturnCode
Definition: Types.h:43
std::function< void(MqttConnection &connection, uint16_t packetId, const String &topic, QOS qos, int errorCode)> OnSubAckHandler
Definition: MqttClient.h:59
std::function< void(MqttConnection &connection, int errorCode, ReturnCode returnCode, bool sessionPresent)> OnConnectionCompletedHandler
Definition: MqttClient.h:53
aws_allocator Allocator
Definition: StlAllocator.h:17
AWS_CRT_CPP_API Allocator * g_allocator
Definition: Api.cpp:23
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition: Types.h:47
aws_byte_buf ByteBuf
Definition: Types.h:32
std::vector< T, StlAllocator< T > > Vector
Definition: Types.h:55
AWS_CRT_CPP_API int LastError() noexcept
Definition: Api.cpp:391
Definition: StringView.h:851
Definition: cJSON.cpp:105