A small footprint MQTT library

Dependents:   STM32F746_iothub_client_sample_mqtt FXOS8700CQ_To_Azure_IoT f767zi_mqtt FXOS8700CQ_To_Azure_IoT ... more

Revision:
9:37d14c31ff6e
Parent:
8:83bb166aba73
Child:
18:6d13ad04e8a0
--- a/azure_umqtt_c/mqtt_client.h	Thu Oct 20 17:07:55 2016 -0700
+++ b/azure_umqtt_c/mqtt_client.h	Wed Nov 16 21:38:15 2016 -0800
@@ -27,16 +27,25 @@
     MQTT_CLIENT_ON_PUBLISH_COMP,     \
     MQTT_CLIENT_ON_SUBSCRIBE_ACK,    \
     MQTT_CLIENT_ON_UNSUBSCRIBE_ACK,  \
-    MQTT_CLIENT_ON_DISCONNECT,       \
-    MQTT_CLIENT_NO_PING_RESPONSE,    \
-    MQTT_CLIENT_ON_ERROR
+    MQTT_CLIENT_ON_DISCONNECT
 
 DEFINE_ENUM(MQTT_CLIENT_EVENT_RESULT, MQTT_CLIENT_EVENT_VALUES);
 
+#define MQTT_CLIENT_EVENT_ERROR_VALUES     \
+    MQTT_CLIENT_CONNECTION_ERROR,          \
+    MQTT_CLIENT_PARSE_ERROR,               \
+    MQTT_CLIENT_MEMORY_ERROR,              \
+    MQTT_CLIENT_COMMUNICATION_ERROR,       \
+    MQTT_CLIENT_NO_PING_RESPONSE,          \
+    MQTT_CLIENT_UNKNOWN_ERROR
+
+DEFINE_ENUM(MQTT_CLIENT_EVENT_ERROR, MQTT_CLIENT_EVENT_ERROR_VALUES);
+
 typedef void(*ON_MQTT_OPERATION_CALLBACK)(MQTT_CLIENT_HANDLE handle, MQTT_CLIENT_EVENT_RESULT actionResult, const void* msgInfo, void* callbackCtx);
+typedef void(*ON_MQTT_ERROR_CALLBACK)(MQTT_CLIENT_HANDLE handle, MQTT_CLIENT_EVENT_ERROR error, void* callbackCtx);
 typedef void(*ON_MQTT_MESSAGE_RECV_CALLBACK)(MQTT_MESSAGE_HANDLE msgHandle, void* callbackCtx);
 
-MOCKABLE_FUNCTION(, MQTT_CLIENT_HANDLE, mqtt_client_init, ON_MQTT_MESSAGE_RECV_CALLBACK, msgRecv, ON_MQTT_OPERATION_CALLBACK, opCallback, void*, callbackCtx);
+MOCKABLE_FUNCTION(, MQTT_CLIENT_HANDLE, mqtt_client_init, ON_MQTT_MESSAGE_RECV_CALLBACK, msgRecv, ON_MQTT_OPERATION_CALLBACK, opCallback, void*, opCallbackCtx, ON_MQTT_ERROR_CALLBACK, onErrorCallBack, void*, errorCBCtx);
 MOCKABLE_FUNCTION(, void, mqtt_client_deinit, MQTT_CLIENT_HANDLE, handle);
 
 MOCKABLE_FUNCTION(, int, mqtt_client_connect, MQTT_CLIENT_HANDLE, handle, XIO_HANDLE, xioHandle, MQTT_CLIENT_OPTIONS*, mqttOptions);