Azure IoT / serializer

Dependents:   sht15_remote_monitoring f767zi_mqtt remote_monitoring simplesample_amqp ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers datapublisher.h Source File

datapublisher.h

00001 // Copyright (c) Microsoft. All rights reserved.
00002 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
00003 
00004 #ifndef DATA_PUBLISHER_H
00005 #define DATA_PUBLISHER_H
00006 
00007 #include "agenttypesystem.h"
00008 #include "schema.h"
00009 /* Normally we could include <stdbool> for cpp, but some toolchains are not well behaved and simply don't have it - ARM CC for example */
00010 #include <stdbool.h>
00011 
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015 
00016 #define DATA_PUBLISHER_RESULT_VALUES    \
00017 DATA_PUBLISHER_OK,                      \
00018 DATA_PUBLISHER_INVALID_ARG,             \
00019 DATA_PUBLISHER_MARSHALLER_ERROR,        \
00020 DATA_PUBLISHER_EMPTY_TRANSACTION,       \
00021 DATA_PUBLISHER_AGENT_DATA_TYPES_ERROR,  \
00022 DATA_PUBLISHER_SCHEMA_FAILED,           \
00023 DATA_PUBLISHER_BUFFER_STORAGE_ERROR,    \
00024 DATA_PUBLISHER_ERROR
00025 
00026 DEFINE_ENUM(DATA_PUBLISHER_RESULT, DATA_PUBLISHER_RESULT_VALUES);
00027 
00028 #include "azure_c_shared_utility/umock_c_prod.h"
00029 
00030 typedef struct TRANSACTION_HANDLE_DATA_TAG* TRANSACTION_HANDLE;
00031 typedef struct REPORTED_PROPERTIES_TRANSACTION_HANDLE_DATA_TAG* REPORTED_PROPERTIES_TRANSACTION_HANDLE;
00032 typedef struct DATA_PUBLISHER_HANDLE_DATA_TAG* DATA_PUBLISHER_HANDLE;
00033 
00034 MOCKABLE_FUNCTION(,DATA_PUBLISHER_HANDLE, DataPublisher_Create, SCHEMA_MODEL_TYPE_HANDLE, modelHandle, bool, includePropertyPath);
00035 MOCKABLE_FUNCTION(,void, DataPublisher_Destroy, DATA_PUBLISHER_HANDLE, dataPublisherHandle);
00036 
00037 MOCKABLE_FUNCTION(,TRANSACTION_HANDLE, DataPublisher_StartTransaction, DATA_PUBLISHER_HANDLE, dataPublisherHandle);
00038 MOCKABLE_FUNCTION(,DATA_PUBLISHER_RESULT, DataPublisher_PublishTransacted, TRANSACTION_HANDLE, transactionHandle, const char*, propertyPath, const AGENT_DATA_TYPE*, data);
00039 MOCKABLE_FUNCTION(,DATA_PUBLISHER_RESULT, DataPublisher_EndTransaction, TRANSACTION_HANDLE, transactionHandle, unsigned char**, destination, size_t*, destinationSize);
00040 MOCKABLE_FUNCTION(,DATA_PUBLISHER_RESULT, DataPublisher_CancelTransaction, TRANSACTION_HANDLE, transactionHandle);
00041 MOCKABLE_FUNCTION(,void, DataPublisher_SetMaxBufferSize, size_t, value);
00042 MOCKABLE_FUNCTION(,size_t, DataPublisher_GetMaxBufferSize);
00043 
00044 MOCKABLE_FUNCTION(, REPORTED_PROPERTIES_TRANSACTION_HANDLE, DataPublisher_CreateTransaction_ReportedProperties, DATA_PUBLISHER_HANDLE, dataPublisherHandle);
00045 MOCKABLE_FUNCTION(, DATA_PUBLISHER_RESULT, DataPublisher_PublishTransacted_ReportedProperty, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle, const char*, reportedPropertyPath, const AGENT_DATA_TYPE*, data);
00046 MOCKABLE_FUNCTION(, DATA_PUBLISHER_RESULT, DataPublisher_CommitTransaction_ReportedProperties, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle, unsigned char**, destination, size_t*, destinationSize);
00047 MOCKABLE_FUNCTION(, void, DataPublisher_DestroyTransaction_ReportedProperties, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle);
00048 
00049 
00050 #ifdef __cplusplus
00051 }
00052 #endif
00053 
00054 #endif /* DATA_PUBLISHER_H */