A modelling and serializer library for Microsoft Azure IoTHub client applications

Dependents:   sht15_remote_monitoring f767zi_mqtt remote_monitoring simplesample_amqp ... more

This library implements a serializer library to be used in projects involving Microsoft Azure IoT Hub connectivity. The code is replicated from https://github.com/Azure/azure-iot-sdks

Revision:
0:1f9b2707ec7d
Child:
10:c2aee3965a83
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iotdevice.h	Tue Sep 15 21:57:26 2015 -0700
@@ -0,0 +1,46 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+#ifndef IOTDEVICE_H
+#define IOTDEVICE_H
+
+#include <stdbool.h>
+#include "macro_utils.h"
+#include "schema.h"
+#include "datapublisher.h"
+#include "commanddecoder.h"
+
+#ifdef __cplusplus
+#include <cstddef>
+extern "C" {
+#else
+#include <stddef.h>
+#endif
+
+#define DEVICE_RESULT_VALUES			\
+    DEVICE_OK,							\
+    DEVICE_INVALID_ARG,					\
+    DEVICE_DATA_PUBLISHER_FAILED,		\
+    DEVICE_COMMAND_DECODER_FAILED,		\
+    DEVICE_ERROR
+
+DEFINE_ENUM(DEVICE_RESULT, DEVICE_RESULT_VALUES)
+
+typedef void* DEVICE_HANDLE;
+typedef EXECUTE_COMMAND_RESULT (*pPfDeviceActionCallback)(DEVICE_HANDLE deviceHandle, void* callbackUserContext, const char* relativeActionPath, const char* actionName, size_t argCount, const AGENT_DATA_TYPE* args);
+
+extern DEVICE_RESULT Device_Create(SCHEMA_MODEL_TYPE_HANDLE modelHandle, pPfDeviceActionCallback deviceActionCallback, void* callbackUserContext, bool includePropertyPath, DEVICE_HANDLE* deviceHandle);
+extern void Device_Destroy(DEVICE_HANDLE deviceHandle);
+
+extern TRANSACTION_HANDLE Device_StartTransaction(DEVICE_HANDLE deviceHandle);
+extern DEVICE_RESULT Device_PublishTransacted(TRANSACTION_HANDLE transactionHandle, const char* propertyPath, const AGENT_DATA_TYPE* data);
+extern DEVICE_RESULT Device_EndTransaction(TRANSACTION_HANDLE transactionHandle, unsigned char** destination, size_t* destinationSize);
+extern DEVICE_RESULT Device_CancelTransaction(TRANSACTION_HANDLE transactionHandle);
+
+extern EXECUTE_COMMAND_RESULT Device_ExecuteCommand(DEVICE_HANDLE deviceHandle, const char* command);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* IOTDEVICE_H */
+