Microsoft Azure IoTHub client libraries

Dependents:   sht15_remote_monitoring RobotArmDemo iothub_client_sample_amqp f767zi_mqtt ... more

This library implements the Microsoft Azure IoTHub client library. The code is replicated from https://github.com/Azure/azure-iot-sdks

Revision:
31:741eacddf296
Parent:
16:deba40344375
Child:
32:6e9d81a62085
--- a/iothub_client_ll.h	Sat Jan 23 00:45:07 2016 +0000
+++ b/iothub_client_ll.h	Mon Jan 25 19:21:04 2016 -0800
@@ -29,6 +29,8 @@
 
 #include "iothub_message.h"
 
+#include "xio.h"
+
 #ifdef __cplusplus
 extern "C"
 {
@@ -85,30 +87,34 @@
 typedef void(*IOTHUB_CLIENT_EVENT_CONFIRMATION_CALLBACK)(IOTHUB_CLIENT_CONFIRMATION_RESULT result, void* userContextCallback);
 typedef IOTHUBMESSAGE_DISPOSITION_RESULT (*IOTHUB_CLIENT_MESSAGE_CALLBACK_ASYNC)(IOTHUB_MESSAGE_HANDLE message, void* userContextCallback);
 typedef const void*(*IOTHUB_CLIENT_TRANSPORT_PROVIDER)(void);
+typedef const XIO_HANDLE (*IO_TRANSPORT_PROVIDER_CALLBACK)(const char* fqdn, int port);
 
 /** @brief	This struct captures IoTHub client configuration. */
 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 */
+    /** @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 */
     IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol;
 
     /** @brief	A string that identifies the device. */
     const char* deviceId;
     
-	/** @brief	The device key used to authenticate the device. */
+    /** @brief	The device key used to authenticate the device. */
     const char* deviceKey;
 
     /** @brief	The IoT Hub name to which the device is connecting. */
     const char* iotHubName;
     
-	/** @brief	IoT Hub suffix goes here, e.g., private.azure-devices-int.net. */
+    /** @brief	IoT Hub suffix goes here, e.g., private.azure-devices-int.net. */
     const char* iotHubSuffix;
 
     const char* protocolGatewayHostName;
+
+    /** @brief  A callback function to provide the IO transport instance, e.g. SChannel, OpenSSL or WebSockets. */
+    IO_TRANSPORT_PROVIDER_CALLBACK io_transport_provider_callback;
 } IOTHUB_CLIENT_CONFIG;
 
 /**