corrected version (with typedef struct IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE_DATA* IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE;) included in the sources

Dependents:   STM32F746_iothub_client_sample_mqtt

Fork of iothub_client by Azure IoT

Revision:
36:67300d5a4c1f
Parent:
34:578a1a3636cc
Child:
37:18310e4d888d
--- a/iothub_client_ll.h	Tue Feb 16 14:24:56 2016 -0800
+++ b/iothub_client_ll.h	Fri Mar 11 17:00:59 2016 -0800
@@ -50,6 +50,7 @@
 #define IOTHUB_CLIENT_CONFIRMATION_RESULT_VALUES     \
     IOTHUB_CLIENT_CONFIRMATION_OK,                   \
     IOTHUB_CLIENT_CONFIRMATION_BECAUSE_DESTROY,      \
+    IOTHUB_CLIENT_CONFIRMATION_MESSAGE_TIMEOUT,      \
     IOTHUB_CLIENT_CONFIRMATION_ERROR                 \
 
 /** @brief Enumeration passed in by the IoT Hub when the event confirmation  
@@ -92,10 +93,9 @@
 typedef struct IOTHUB_CLIENT_CONFIG_TAG
 {
     /** @brief A function pointer that is passed into the @c IoTHubClientCreate.
-    *	A function definition for AMQP, @c DeviceClientProvideAmqpResources,
-    *	is defined in the include @c iothubtransportamqp.h.  A function
-    *	definition for HTTP, @c DeviceClientProvideHttpResources, is defined
-    *	in the include @c iothubtransporthttp.h */
+    *	A function definition for AMQP is defined in the include @c iothubtransportamqp.h.
+    *   A function definition for HTTP is defined in the include @c iothubtransporthttp.h
+    *   A function definition for MQTT is defined in the include @c iothubtransportmqtt.h */
     IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol;
 
     /** @brief	A string that identifies the device. */
@@ -113,6 +113,26 @@
     const char* protocolGatewayHostName;
 } IOTHUB_CLIENT_CONFIG;
 
+/** @brief	This struct captures IoTHub client device configuration. */
+typedef struct IOTHUB_CLIENT_DEVICE_CONFIG_TAG
+{
+    /** @brief A function pointer that is passed into the @c IoTHubClientCreate.
+    *	A function definition for AMQP is defined in the include @c iothubtransportamqp.h.
+    *   A function definition for HTTP is defined in the include @c iothubtransporthttp.h
+    *   A function definition for MQTT is defined in the include @c iothubtransportmqtt.h */
+    IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol;
+
+    /** @brief a transport handle implementing the protocol */
+    void * transportHandle;
+
+    /** @brief	A string that identifies the device. */
+    const char* deviceId;
+
+    /** @brief	The device key used to authenticate the device. */
+    const char* deviceKey;
+
+} IOTHUB_CLIENT_DEVICE_CONFIG;
+
 /**
  * @brief	Creates a IoT Hub client for communication with an existing
  * 			IoT Hub using the specified connection string parameter.
@@ -145,6 +165,20 @@
 extern IOTHUB_CLIENT_LL_HANDLE IoTHubClient_LL_Create(const IOTHUB_CLIENT_CONFIG* config);
 
 /**
+* @brief	Creates a IoT Hub client for communication with an existing IoT
+* 			Hub using an existing transport.
+*
+* @param	config	Pointer to an @c IOTHUB_CLIENT_DEVICE_CONFIG structure
+*
+*			The API *allows* sharing of a connection across multiple
+*			devices. This is a blocking call.
+*
+* @return	A non-NULL @c IOTHUB_CLIENT_LL_HANDLE value that is used when
+* 			invoking other functions for IoT Hub client and @c NULL on failure.
+*/
+extern IOTHUB_CLIENT_LL_HANDLE IoTHubClient_LL_CreateWithTransport(const IOTHUB_CLIENT_DEVICE_CONFIG * config);
+
+/**
  * @brief	Disposes of resources allocated by the IoT Hub client. This is a
  * 			blocking call.
  *
@@ -264,7 +298,11 @@
  *				- @b CURLOPT_VERBOSE - only available for HTTP protocol and only  
  *				  when CURL is used. It has the same meaning as CURL's option with the same
  *				  name. @p value is pointer to a long.
- * 
+ *              - @b keepalive - available for MQTT protocol.  Integer value that sets the 
+ *                interval in seconds when pings are sent to the server.
+ *              - @b logtrace - available for MQTT protocol.  Boolean value that turns on and
+ *                off the diagnostic logging.
+ *
  * @return	IOTHUB_CLIENT_OK upon success or an error code upon failure.
  */
 extern IOTHUB_CLIENT_RESULT IoTHubClient_LL_SetOption(IOTHUB_CLIENT_LL_HANDLE iotHubClientHandle, const char* optionName, const void* value);