13#include <aws/mqtt/client.h>
25 class ClientBootstrap;
102 std::function<void(
MqttConnection &connection, uint16_t packetId,
int errorCode)>;
109 std::function<void(
const std::shared_ptr<Http::HttpRequest> &,
int errorCode)>;
139 operator bool() const noexcept;
148 bool SetWill(const
char *topic,
QOS qos,
bool retain, const
ByteBuf &payload) noexcept;
154 bool SetLogin(const
char *userName, const
char *password) noexcept;
159 bool SetWebsocketProxyOptions(const Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept;
166 bool SetHttpProxyOptions(const Http::HttpClientConnectionProxyOptions &proxyOptions) noexcept;
174 bool SetReconnectTimeout(uint64_t min_seconds, uint64_t max_seconds) noexcept;
181 const
char *clientId,
183 uint16_t keepAliveTimeSecs = 0,
184 uint32_t pingTimeoutMs = 0,
185 uint32_t protocolOperationTimeoutMs = 0) noexcept;
190 bool Disconnect() noexcept;
195 aws_mqtt_client_connection *GetUnderlyingConnection() noexcept;
203 const
char *topicFilter,
212 const
char *topicFilter,
270 aws_mqtt_client *m_owningClient;
271 aws_mqtt_client_connection *m_underlyingConnection;
274 Crt::Io::TlsContext m_tlsContext;
275 Io::TlsConnectionOptions m_tlsOptions;
276 Io::SocketOptions m_socketOptions;
277 Crt::
Optional<Http::HttpClientConnectionProxyOptions> m_proxyOptions;
283 aws_mqtt_client *client,
284 const
char *hostName,
286 const Io::SocketOptions &socketOptions,
287 const Crt::Io::TlsContext &tlsContext,
288 bool useWebsocket) noexcept;
291 aws_mqtt_client *client,
292 const
char *hostName,
294 const Io::SocketOptions &socketOptions,
295 bool useWebsocket) noexcept;
297 static
void s_onConnectionInterrupted(aws_mqtt_client_connection *,
int errorCode,
void *userData);
298 static
void s_onConnectionCompleted(
299 aws_mqtt_client_connection *,
301 enum aws_mqtt_connect_return_code returnCode,
304 static
void s_onConnectionResumed(
305 aws_mqtt_client_connection *,
310 static
void s_onDisconnect(aws_mqtt_client_connection *connection,
void *userData);
311 static
void s_onPublish(
312 aws_mqtt_client_connection *connection,
313 const aws_byte_cursor *topic,
314 const aws_byte_cursor *payload,
316 enum aws_mqtt_qos qos,
320 static
void s_onSubAck(
321 aws_mqtt_client_connection *connection,
323 const struct aws_byte_cursor *topic,
324 enum aws_mqtt_qos qos,
327 static
void s_onMultiSubAck(
328 aws_mqtt_client_connection *connection,
330 const struct aws_array_list *topic_subacks,
333 static
void s_onOpComplete(
334 aws_mqtt_client_connection *connection,
339 static
void s_onWebsocketHandshake(
340 struct aws_http_message *request,
342 aws_mqtt_transform_websocket_handshake_complete_fn *complete_fn,
345 static
void s_connectionInit(
347 const
char *hostName,
349 const Io::SocketOptions &socketOptions);
373 operator
bool() const noexcept;
384 const
char *hostName,
386 const Io::SocketOptions &socketOptions,
387 const Crt::Io::TlsContext &tlsContext,
388 bool useWebsocket = false) noexcept;
394 const
char *hostName,
396 const Io::SocketOptions &socketOptions,
397 bool useWebsocket = false) noexcept;
400 aws_mqtt_client *m_client;
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Definition: Bootstrap.h:35
Definition: MqttClient.h:358
MqttClient(const MqttClient &)=delete
Definition: MqttClient.h:127
MqttConnection & operator=(MqttConnection &&)=delete
MqttConnection(MqttConnection &&)=delete
MqttConnection(const MqttConnection &)=delete
MqttConnection & operator=(const MqttConnection &)=delete
Definition: Optional.h:13
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:118
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:102
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:109
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:21
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:315
Definition: StringView.h:846
Definition: cJSON.cpp:105