Xin Zhang / azure-iot-c-sdk-f767zi

Dependents:   samplemqtt

Committer:
XinZhangMS
Date:
Thu Aug 23 06:52:14 2018 +0000
Revision:
0:f7f1f0d76dd6
azure-c-sdk for mbed os supporting NUCLEO_F767ZI

Who changed what in which revision?

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