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

Committer:
AzureIoTClient
Date:
Tue Sep 11 11:14:37 2018 -0700
Revision:
36:7d12a5386197
Parent:
17:fa1bba4c6053
1.2.9

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AzureIoTClient 0:1f9b2707ec7d 1 // Copyright (c) Microsoft. All rights reserved.
AzureIoTClient 0:1f9b2707ec7d 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
AzureIoTClient 0:1f9b2707ec7d 3
AzureIoTClient 0:1f9b2707ec7d 4 #ifndef DATAMARSHALLER_H
AzureIoTClient 0:1f9b2707ec7d 5 #define DATAMARSHALLER_H
AzureIoTClient 0:1f9b2707ec7d 6
AzureIoTClient 0:1f9b2707ec7d 7 #include <stdbool.h>
AzureIoTClient 0:1f9b2707ec7d 8 #include "agenttypesystem.h"
AzureIoTClient 0:1f9b2707ec7d 9 #include "schema.h"
Azure.IoT Build 10:c2aee3965a83 10 #include "azure_c_shared_utility/macro_utils.h"
AzureIoTClient 17:fa1bba4c6053 11 #include "azure_c_shared_utility/vector.h"
AzureIoTClient 0:1f9b2707ec7d 12 #ifdef __cplusplus
AzureIoTClient 0:1f9b2707ec7d 13 extern "C"
AzureIoTClient 0:1f9b2707ec7d 14 {
AzureIoTClient 0:1f9b2707ec7d 15 #endif
AzureIoTClient 0:1f9b2707ec7d 16
AzureIoTClient 0:1f9b2707ec7d 17 /*Codes_SRS_DATA_MARSHALLER_99_002:[ DataMarshaller shall have the following interface]*/
AzureIoTClient 0:1f9b2707ec7d 18 #define DATA_MARSHALLER_RESULT_VALUES \
AzureIoTClient 0:1f9b2707ec7d 19 DATA_MARSHALLER_OK, \
AzureIoTClient 0:1f9b2707ec7d 20 DATA_MARSHALLER_INVALID_ARG, \
AzureIoTClient 0:1f9b2707ec7d 21 DATA_MARSHALLER_NO_DEVICE_IDENTITY, \
AzureIoTClient 0:1f9b2707ec7d 22 DATA_MARSHALLER_SCHEMA_FAILED, \
AzureIoTClient 0:1f9b2707ec7d 23 DATA_MARSHALLER_INVALID_MODEL_PROPERTY, \
AzureIoTClient 0:1f9b2707ec7d 24 DATA_MARSHALLER_JSON_ENCODER_ERROR, \
AzureIoTClient 0:1f9b2707ec7d 25 DATA_MARSHALLER_ERROR, \
AzureIoTClient 0:1f9b2707ec7d 26 DATA_MARSHALLER_AGENT_DATA_TYPES_ERROR, \
AzureIoTClient 0:1f9b2707ec7d 27 DATA_MARSHALLER_MULTITREE_ERROR, \
AzureIoTClient 0:1f9b2707ec7d 28 DATA_MARSHALLER_ONLY_ONE_VALUE_ALLOWED \
AzureIoTClient 0:1f9b2707ec7d 29
AzureIoTClient 0:1f9b2707ec7d 30 DEFINE_ENUM(DATA_MARSHALLER_RESULT, DATA_MARSHALLER_RESULT_VALUES);
AzureIoTClient 0:1f9b2707ec7d 31
AzureIoTClient 0:1f9b2707ec7d 32 typedef struct DATA_MARSHALLER_VALUE_TAG
AzureIoTClient 0:1f9b2707ec7d 33 {
AzureIoTClient 0:1f9b2707ec7d 34 const char* PropertyPath;
AzureIoTClient 0:1f9b2707ec7d 35 const AGENT_DATA_TYPE* Value;
AzureIoTClient 0:1f9b2707ec7d 36 } DATA_MARSHALLER_VALUE;
AzureIoTClient 0:1f9b2707ec7d 37
AzureIoTClient 17:fa1bba4c6053 38 typedef struct DATA_MARSHALLER_HANDLE_DATA_TAG* DATA_MARSHALLER_HANDLE;
AzureIoTClient 17:fa1bba4c6053 39 #include "azure_c_shared_utility/umock_c_prod.h"
AzureIoTClient 0:1f9b2707ec7d 40
AzureIoTClient 17:fa1bba4c6053 41 MOCKABLE_FUNCTION(,DATA_MARSHALLER_HANDLE, DataMarshaller_Create, SCHEMA_MODEL_TYPE_HANDLE, modelHandle, bool, includePropertyPath);
AzureIoTClient 17:fa1bba4c6053 42 MOCKABLE_FUNCTION(,void, DataMarshaller_Destroy, DATA_MARSHALLER_HANDLE, dataMarshallerHandle);
AzureIoTClient 17:fa1bba4c6053 43 MOCKABLE_FUNCTION(,DATA_MARSHALLER_RESULT, DataMarshaller_SendData, DATA_MARSHALLER_HANDLE, dataMarshallerHandle, size_t, valueCount, const DATA_MARSHALLER_VALUE*, values, unsigned char**, destination, size_t*, destinationSize);
AzureIoTClient 17:fa1bba4c6053 44
AzureIoTClient 17:fa1bba4c6053 45 MOCKABLE_FUNCTION(, DATA_MARSHALLER_RESULT, DataMarshaller_SendData_ReportedProperties, DATA_MARSHALLER_HANDLE, dataMarshallerHandle, VECTOR_HANDLE, values, unsigned char**, destination, size_t*, destinationSize);
AzureIoTClient 0:1f9b2707ec7d 46
AzureIoTClient 0:1f9b2707ec7d 47 #ifdef __cplusplus
AzureIoTClient 0:1f9b2707ec7d 48 }
AzureIoTClient 0:1f9b2707ec7d 49 #endif
AzureIoTClient 0:1f9b2707ec7d 50
AzureIoTClient 0:1f9b2707ec7d 51 #endif /* DATAMARSHALLER_H */