A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Committer:
AzureIoTClient
Date:
Mon May 08 10:50:45 2017 -0700
Revision:
24:2c59c2d43ebf
Parent:
10:19ce00951771
Child:
28:add19eb7defa
1.1.14

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Azure.IoT Build 0:6ae2f7bca550 1 // Copyright (c) Microsoft. All rights reserved.
Azure.IoT Build 0:6ae2f7bca550 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
Azure.IoT Build 0:6ae2f7bca550 3
Azure.IoT Build 0:6ae2f7bca550 4 #ifndef MESSAGE_H
Azure.IoT Build 0:6ae2f7bca550 5 #define MESSAGE_H
Azure.IoT Build 0:6ae2f7bca550 6
Azure.IoT Build 0:6ae2f7bca550 7 #include "azure_uamqp_c/amqpvalue.h"
Azure.IoT Build 0:6ae2f7bca550 8 #include "azure_uamqp_c/amqp_definitions.h"
Azure.IoT Build 0:6ae2f7bca550 9
Azure.IoT Build 0:6ae2f7bca550 10 #ifdef __cplusplus
Azure.IoT Build 0:6ae2f7bca550 11 extern "C" {
Azure.IoT Build 0:6ae2f7bca550 12 #include <cstddef>
AzureIoTClient 24:2c59c2d43ebf 13 #include <cstdint>
Azure.IoT Build 0:6ae2f7bca550 14 #else
Azure.IoT Build 0:6ae2f7bca550 15 #include <stddef.h>
AzureIoTClient 24:2c59c2d43ebf 16 #include <stdint.h>
Azure.IoT Build 0:6ae2f7bca550 17 #endif /* __cplusplus */
Azure.IoT Build 0:6ae2f7bca550 18
AzureIoTClient 10:19ce00951771 19 #include "azure_c_shared_utility/umock_c_prod.h"
AzureIoTClient 10:19ce00951771 20
Azure.IoT Build 0:6ae2f7bca550 21 typedef enum MESSAGE_BODY_TYPE_TAG
Azure.IoT Build 0:6ae2f7bca550 22 {
Azure.IoT Build 0:6ae2f7bca550 23 MESSAGE_BODY_TYPE_NONE,
Azure.IoT Build 0:6ae2f7bca550 24 MESSAGE_BODY_TYPE_DATA,
Azure.IoT Build 0:6ae2f7bca550 25 MESSAGE_BODY_TYPE_SEQUENCE,
Azure.IoT Build 0:6ae2f7bca550 26 MESSAGE_BODY_TYPE_VALUE
Azure.IoT Build 0:6ae2f7bca550 27 } MESSAGE_BODY_TYPE;
Azure.IoT Build 0:6ae2f7bca550 28
Azure.IoT Build 0:6ae2f7bca550 29 typedef struct MESSAGE_INSTANCE_TAG* MESSAGE_HANDLE;
Azure.IoT Build 0:6ae2f7bca550 30 typedef struct BINARY_DATA_TAG
Azure.IoT Build 0:6ae2f7bca550 31 {
Azure.IoT Build 0:6ae2f7bca550 32 const unsigned char* bytes;
Azure.IoT Build 0:6ae2f7bca550 33 size_t length;
Azure.IoT Build 0:6ae2f7bca550 34 } BINARY_DATA;
Azure.IoT Build 0:6ae2f7bca550 35
AzureIoTClient 10:19ce00951771 36 MOCKABLE_FUNCTION(, MESSAGE_HANDLE, message_create);
AzureIoTClient 10:19ce00951771 37 MOCKABLE_FUNCTION(, MESSAGE_HANDLE, message_clone, MESSAGE_HANDLE, source_message);
AzureIoTClient 10:19ce00951771 38 MOCKABLE_FUNCTION(, void, message_destroy, MESSAGE_HANDLE, message);
AzureIoTClient 10:19ce00951771 39 MOCKABLE_FUNCTION(, int, message_set_header, MESSAGE_HANDLE, message, HEADER_HANDLE, message_header);
AzureIoTClient 10:19ce00951771 40 MOCKABLE_FUNCTION(, int, message_get_header, MESSAGE_HANDLE, message, HEADER_HANDLE*, message_header);
AzureIoTClient 10:19ce00951771 41 MOCKABLE_FUNCTION(, int, message_set_delivery_annotations, MESSAGE_HANDLE, message, annotations, delivery_annotations);
AzureIoTClient 10:19ce00951771 42 MOCKABLE_FUNCTION(, int, message_get_delivery_annotations, MESSAGE_HANDLE, message, annotations*, delivery_annotations);
AzureIoTClient 10:19ce00951771 43 MOCKABLE_FUNCTION(, int, message_set_message_annotations, MESSAGE_HANDLE, message, annotations, delivery_annotations);
AzureIoTClient 10:19ce00951771 44 MOCKABLE_FUNCTION(, int, message_get_message_annotations, MESSAGE_HANDLE, message, annotations*, delivery_annotations);
AzureIoTClient 10:19ce00951771 45 MOCKABLE_FUNCTION(, int, message_set_properties, MESSAGE_HANDLE, message, PROPERTIES_HANDLE, properties);
AzureIoTClient 10:19ce00951771 46 MOCKABLE_FUNCTION(, int, message_get_properties, MESSAGE_HANDLE, message, PROPERTIES_HANDLE*, properties);
AzureIoTClient 10:19ce00951771 47 MOCKABLE_FUNCTION(, int, message_set_application_properties, MESSAGE_HANDLE, message, AMQP_VALUE, application_properties);
AzureIoTClient 10:19ce00951771 48 MOCKABLE_FUNCTION(, int, message_get_application_properties, MESSAGE_HANDLE, message, AMQP_VALUE*, application_properties);
AzureIoTClient 10:19ce00951771 49 MOCKABLE_FUNCTION(, int, message_set_footer, MESSAGE_HANDLE, message, annotations, footer);
AzureIoTClient 10:19ce00951771 50 MOCKABLE_FUNCTION(, int, message_get_footer, MESSAGE_HANDLE, message, annotations*, footer);
AzureIoTClient 24:2c59c2d43ebf 51 MOCKABLE_FUNCTION(, int, message_add_body_amqp_data, MESSAGE_HANDLE, message, BINARY_DATA, amqp_data);
AzureIoTClient 24:2c59c2d43ebf 52 MOCKABLE_FUNCTION(, int, message_get_body_amqp_data_in_place, MESSAGE_HANDLE, message, size_t, index, BINARY_DATA*, amqp_data);
AzureIoTClient 10:19ce00951771 53 MOCKABLE_FUNCTION(, int, message_get_body_amqp_data_count, MESSAGE_HANDLE, message, size_t*, count);
AzureIoTClient 10:19ce00951771 54 MOCKABLE_FUNCTION(, int, message_set_body_amqp_value, MESSAGE_HANDLE, message, AMQP_VALUE, body_amqp_value);
AzureIoTClient 24:2c59c2d43ebf 55 MOCKABLE_FUNCTION(, int, message_get_body_amqp_value_in_place, MESSAGE_HANDLE, message, AMQP_VALUE*, body_amqp_value);
AzureIoTClient 24:2c59c2d43ebf 56 MOCKABLE_FUNCTION(, int, message_add_body_amqp_sequence, MESSAGE_HANDLE, message, AMQP_VALUE, sequence);
AzureIoTClient 24:2c59c2d43ebf 57 MOCKABLE_FUNCTION(, int, message_get_body_amqp_sequence, MESSAGE_HANDLE, message, size_t, index, AMQP_VALUE*, sequence);
AzureIoTClient 24:2c59c2d43ebf 58 MOCKABLE_FUNCTION(, int, message_get_body_amqp_sequence_count, MESSAGE_HANDLE, message, size_t*, count);
AzureIoTClient 10:19ce00951771 59 MOCKABLE_FUNCTION(, int, message_get_body_type, MESSAGE_HANDLE, message, MESSAGE_BODY_TYPE*, body_type);
AzureIoTClient 24:2c59c2d43ebf 60 MOCKABLE_FUNCTION(, int, message_set_message_format, MESSAGE_HANDLE, message, uint32_t, message_format);
AzureIoTClient 10:19ce00951771 61 MOCKABLE_FUNCTION(, int, message_get_message_format, MESSAGE_HANDLE, message, uint32_t*, message_format);
Azure.IoT Build 0:6ae2f7bca550 62
Azure.IoT Build 0:6ae2f7bca550 63 #ifdef __cplusplus
Azure.IoT Build 0:6ae2f7bca550 64 }
Azure.IoT Build 0:6ae2f7bca550 65 #endif /* __cplusplus */
Azure.IoT Build 0:6ae2f7bca550 66
Azure.IoT Build 0:6ae2f7bca550 67 #endif /* MESSAGE_H */