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 4:233dd7616d73 1 // Copyright (c) Microsoft. All rights reserved.
AzureIoTClient 4:233dd7616d73 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
AzureIoTClient 4:233dd7616d73 3
AzureIoTClient 4:233dd7616d73 4 #ifndef DATA_PUBLISHER_H
AzureIoTClient 4:233dd7616d73 5 #define DATA_PUBLISHER_H
AzureIoTClient 4:233dd7616d73 6
AzureIoTClient 4:233dd7616d73 7 #include "agenttypesystem.h"
AzureIoTClient 4:233dd7616d73 8 #include "schema.h"
AzureIoTClient 4:233dd7616d73 9 /* Normally we could include <stdbool> for cpp, but some toolchains are not well behaved and simply don't have it - ARM CC for example */
AzureIoTClient 4:233dd7616d73 10 #include <stdbool.h>
AzureIoTClient 4:233dd7616d73 11
AzureIoTClient 4:233dd7616d73 12 #ifdef __cplusplus
AzureIoTClient 4:233dd7616d73 13 extern "C" {
AzureIoTClient 4:233dd7616d73 14 #endif
AzureIoTClient 4:233dd7616d73 15
AzureIoTClient 4:233dd7616d73 16 #define DATA_PUBLISHER_RESULT_VALUES \
AzureIoTClient 4:233dd7616d73 17 DATA_PUBLISHER_OK, \
AzureIoTClient 4:233dd7616d73 18 DATA_PUBLISHER_INVALID_ARG, \
AzureIoTClient 4:233dd7616d73 19 DATA_PUBLISHER_MARSHALLER_ERROR, \
AzureIoTClient 4:233dd7616d73 20 DATA_PUBLISHER_EMPTY_TRANSACTION, \
AzureIoTClient 4:233dd7616d73 21 DATA_PUBLISHER_AGENT_DATA_TYPES_ERROR, \
AzureIoTClient 4:233dd7616d73 22 DATA_PUBLISHER_SCHEMA_FAILED, \
AzureIoTClient 4:233dd7616d73 23 DATA_PUBLISHER_BUFFER_STORAGE_ERROR, \
AzureIoTClient 4:233dd7616d73 24 DATA_PUBLISHER_ERROR
AzureIoTClient 4:233dd7616d73 25
AzureIoTClient 4:233dd7616d73 26 DEFINE_ENUM(DATA_PUBLISHER_RESULT, DATA_PUBLISHER_RESULT_VALUES);
AzureIoTClient 4:233dd7616d73 27
AzureIoTClient 17:fa1bba4c6053 28 #include "azure_c_shared_utility/umock_c_prod.h"
AzureIoTClient 4:233dd7616d73 29
AzureIoTClient 17:fa1bba4c6053 30 typedef struct TRANSACTION_HANDLE_DATA_TAG* TRANSACTION_HANDLE;
AzureIoTClient 17:fa1bba4c6053 31 typedef struct REPORTED_PROPERTIES_TRANSACTION_HANDLE_DATA_TAG* REPORTED_PROPERTIES_TRANSACTION_HANDLE;
AzureIoTClient 17:fa1bba4c6053 32 typedef struct DATA_PUBLISHER_HANDLE_DATA_TAG* DATA_PUBLISHER_HANDLE;
AzureIoTClient 17:fa1bba4c6053 33
AzureIoTClient 17:fa1bba4c6053 34 MOCKABLE_FUNCTION(,DATA_PUBLISHER_HANDLE, DataPublisher_Create, SCHEMA_MODEL_TYPE_HANDLE, modelHandle, bool, includePropertyPath);
AzureIoTClient 17:fa1bba4c6053 35 MOCKABLE_FUNCTION(,void, DataPublisher_Destroy, DATA_PUBLISHER_HANDLE, dataPublisherHandle);
AzureIoTClient 4:233dd7616d73 36
AzureIoTClient 17:fa1bba4c6053 37 MOCKABLE_FUNCTION(,TRANSACTION_HANDLE, DataPublisher_StartTransaction, DATA_PUBLISHER_HANDLE, dataPublisherHandle);
AzureIoTClient 17:fa1bba4c6053 38 MOCKABLE_FUNCTION(,DATA_PUBLISHER_RESULT, DataPublisher_PublishTransacted, TRANSACTION_HANDLE, transactionHandle, const char*, propertyPath, const AGENT_DATA_TYPE*, data);
AzureIoTClient 17:fa1bba4c6053 39 MOCKABLE_FUNCTION(,DATA_PUBLISHER_RESULT, DataPublisher_EndTransaction, TRANSACTION_HANDLE, transactionHandle, unsigned char**, destination, size_t*, destinationSize);
AzureIoTClient 17:fa1bba4c6053 40 MOCKABLE_FUNCTION(,DATA_PUBLISHER_RESULT, DataPublisher_CancelTransaction, TRANSACTION_HANDLE, transactionHandle);
AzureIoTClient 17:fa1bba4c6053 41 MOCKABLE_FUNCTION(,void, DataPublisher_SetMaxBufferSize, size_t, value);
AzureIoTClient 17:fa1bba4c6053 42 MOCKABLE_FUNCTION(,size_t, DataPublisher_GetMaxBufferSize);
AzureIoTClient 17:fa1bba4c6053 43
AzureIoTClient 17:fa1bba4c6053 44 MOCKABLE_FUNCTION(, REPORTED_PROPERTIES_TRANSACTION_HANDLE, DataPublisher_CreateTransaction_ReportedProperties, DATA_PUBLISHER_HANDLE, dataPublisherHandle);
AzureIoTClient 17:fa1bba4c6053 45 MOCKABLE_FUNCTION(, DATA_PUBLISHER_RESULT, DataPublisher_PublishTransacted_ReportedProperty, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle, const char*, reportedPropertyPath, const AGENT_DATA_TYPE*, data);
AzureIoTClient 17:fa1bba4c6053 46 MOCKABLE_FUNCTION(, DATA_PUBLISHER_RESULT, DataPublisher_CommitTransaction_ReportedProperties, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle, unsigned char**, destination, size_t*, destinationSize);
AzureIoTClient 17:fa1bba4c6053 47 MOCKABLE_FUNCTION(, void, DataPublisher_DestroyTransaction_ReportedProperties, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle);
AzureIoTClient 17:fa1bba4c6053 48
AzureIoTClient 4:233dd7616d73 49
AzureIoTClient 4:233dd7616d73 50 #ifdef __cplusplus
AzureIoTClient 4:233dd7616d73 51 }
AzureIoTClient 4:233dd7616d73 52 #endif
AzureIoTClient 4:233dd7616d73 53
AzureIoTClient 4:233dd7616d73 54 #endif /* DATA_PUBLISHER_H */