Unify Framework Lib 1.6.0
mqtt_client.h File Reference
#include <stdbool.h>
#include <unistd.h>
#include <inttypes.h>
#include "sl_status.h"

Go to the source code of this file.

Macros

#define MQTT_CLIENT_POLL_TIMER_MILLISECONDS   2000
 
#define MQTT_CLIENT_KEEP_ALIVE_INTERVAL_MILLISECONDS   60000
 
#define MQTT_CLIENT_MINIMUM_RECONNECT_BACKOFF_MILLISECONDS   1000
 
#define MQTT_CLIENT_MAXIMUM_RECONNECT_BACKOFF_MILLISECONDS   60000
 
#define MQTT_CLIENT_QoS   0
 

Typedefs

typedef struct mqtt_clientmqtt_client_t
 Type for internal consistency and to save typing. More...
 
typedef void(* message_callback_t) (const char *topic, const char *message, const size_t message_length)
 A callback type for pushing incoming messages. More...
 
typedef void(* message_callback_ex_t) (const char *topic, const char *message, const size_t message_length, void *user)
 A callback type for pushing incoming messages. More...
 
typedef void(* mqtt_connection_callback_t) (mqtt_client_t instance, const int file_descriptor)
 A callback type for MQTT connection/disconnection events. More...
 
typedef void(* mqtt_simple_callback_t) ()
 A void function type (void function()) to invoke when some events occurred. More...
 

Enumerations

enum  mqtt_event_t {
  MQTT_EVENT_CONNECT , MQTT_EVENT_DISCONNECT , MQTT_EVENT_PUBLISH , MQTT_EVENT_SUBSCRIBE ,
  MQTT_EVENT_UNSUBSCRIBE , MQTT_TRANSITION_DISCONNECTED , MQTT_TRANSITION_CONNECTING , MQTT_TRANSITION_CONNECTED
}
 

Functions

 __attribute__ ((unused)) static const char *event_names[]
 
sl_status_t mqtt_client_setup (mqtt_client_t instance)
 Initialize whatever resources the client needs. More...
 
sl_status_t mqtt_client_teardown (mqtt_client_t instance)
 Close open connections and free up resources acquired by the client. More...
 
int mqtt_client_file_descriptor (mqtt_client_t instance)
 Get the file-descriptor for the underlying MQTT TCP socket. More...
 
void mqtt_client_poll (mqtt_client_t instance)
 Process any data that needs processed. More...
 
void mqtt_client_disconnect (mqtt_client_t instance)
 Do a synchronous disconnect from the MQTT-broker. This can be used when a system is being shut down and the connection needs to be closed gracefully. More...
 
void mqtt_client_event (mqtt_client_t instance, const int incoming_event)
 Push events to the mqtt_client. More...
 
void mqtt_client_publish (mqtt_client_t instance, const char *topic, const char *message, const size_t message_length, bool retain)
 Publish a message to the MQTT-broker. More...
 
void mqtt_client_unretain (mqtt_client_t instance, const char *prefix_pattern)
 Un-retain a previously retained message. More...
 
int mqtt_client_count_topics (mqtt_client_t instance, const char *prefix_pattern)
 Count the number of topics published. More...
 
void mqtt_client_unretain_by_regex (mqtt_client_t instance, const char *regex)
 Un-retain a previously retained message. More...
 
void mqtt_client_subscribe (mqtt_client_t instance, const char *topic, message_callback_t callback)
 Subscribe to an MQTT-topic. More...
 
void mqtt_client_subscribe_ex (mqtt_client_t instance, const char *topic, message_callback_ex_t callback, void *user)
 Subscribe to an MQTT-topic. More...
 
void mqtt_client_unsubscribe (mqtt_client_t instance, const char *topic, message_callback_t callback)
 Unsubscribe from an MQTT-topic. More...
 
void mqtt_client_unsubscribe_ex (mqtt_client_t instance, const char *topic, message_callback_ex_t callback, void *user)
 Unsubscribe from an MQTT-topic. More...
 
mqtt_client_t mqtt_client_new (const char *hostname, const uint32_t port, const char *client_id, const char *cafile, const char *certfile, const char *keyfile, int(*event_sender)(const int event, void *procdata), void(*delayed_event_sender)(const int event, const unsigned long milliseconds), int(*event_counter)(const int event, void *procdata))
 Allocates a new mqtt_client instance. More...
 
void mqtt_client_delete (mqtt_client_t instance)
 Deletes/frees the mqtt_client instance. More...
 
void mqtt_client_on_connect_callback_set (mqtt_client_t instance, mqtt_connection_callback_t on_connect)
 Sets the callback to be invoked after an MQTT connection is established. More...
 
void mqtt_client_on_disconnect_callback_set (mqtt_client_t instance, mqtt_connection_callback_t on_disconnect)
 Sets the callback to be invoked after an MQTT connection is disconnected. More...
 
void mqtt_client_before_disconnect_callback_set (mqtt_client_t instance, mqtt_simple_callback_t before_disconnect)
 Sets a callback for calling before calling disconnect. More...
 
void mqtt_client_after_connect_callback_set (mqtt_client_t instance, mqtt_simple_callback_t after_connect)
 Deletes/frees the mqtt_client instance. More...
 
const char * mqtt_client_get_client_id (const mqtt_client_t client_instance)
 Returns the MQTT Client ID in use by the Client instance. More...
 
bool mqtt_client_is_connected_to_broker (const mqtt_client_t instance)
 Checks if we are connected to the MQTT Broker. More...