A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Committer:
AzureIoTClient
Date:
Thu Oct 04 09:16:13 2018 -0700
Revision:
47:365a93fdb5bb
Parent:
46:01f7ca900e07
1.2.10

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"
AzureIoTClient 40:f0ceafa8d570 8 #include "azure_uamqp_c/amqp_definitions_annotations.h"
AzureIoTClient 40:f0ceafa8d570 9 #include "azure_uamqp_c/amqp_definitions_message_annotations.h"
AzureIoTClient 40:f0ceafa8d570 10 #include "azure_uamqp_c/amqp_definitions_sequence_no.h"
AzureIoTClient 40:f0ceafa8d570 11 #include "azure_uamqp_c/amqp_definitions_properties.h"
AzureIoTClient 40:f0ceafa8d570 12 #include "azure_uamqp_c/amqp_definitions_milliseconds.h"
AzureIoTClient 40:f0ceafa8d570 13 #include "azure_uamqp_c/amqp_definitions_header.h"
AzureIoTClient 40:f0ceafa8d570 14 #include "azure_uamqp_c/amqp_definitions_delivery_annotations.h"
AzureIoTClient 40:f0ceafa8d570 15
Azure.IoT Build 0:6ae2f7bca550 16
Azure.IoT Build 0:6ae2f7bca550 17 #ifdef __cplusplus
Azure.IoT Build 0:6ae2f7bca550 18 extern "C" {
Azure.IoT Build 0:6ae2f7bca550 19 #include <cstddef>
AzureIoTClient 24:2c59c2d43ebf 20 #include <cstdint>
Azure.IoT Build 0:6ae2f7bca550 21 #else
Azure.IoT Build 0:6ae2f7bca550 22 #include <stddef.h>
AzureIoTClient 24:2c59c2d43ebf 23 #include <stdint.h>
Azure.IoT Build 0:6ae2f7bca550 24 #endif /* __cplusplus */
Azure.IoT Build 0:6ae2f7bca550 25
AzureIoTClient 10:19ce00951771 26 #include "azure_c_shared_utility/umock_c_prod.h"
AzureIoTClient 10:19ce00951771 27
AzureIoTClient 28:add19eb7defa 28 #define MESSAGE_BODY_TYPE_VALUES \
AzureIoTClient 28:add19eb7defa 29 MESSAGE_BODY_TYPE_NONE, \
AzureIoTClient 28:add19eb7defa 30 MESSAGE_BODY_TYPE_DATA, \
AzureIoTClient 28:add19eb7defa 31 MESSAGE_BODY_TYPE_SEQUENCE, \
AzureIoTClient 28:add19eb7defa 32 MESSAGE_BODY_TYPE_VALUE
Azure.IoT Build 0:6ae2f7bca550 33
AzureIoTClient 28:add19eb7defa 34 DEFINE_ENUM(MESSAGE_BODY_TYPE, MESSAGE_BODY_TYPE_VALUES)
AzureIoTClient 46:01f7ca900e07 35
AzureIoTClient 28:add19eb7defa 36 typedef struct MESSAGE_INSTANCE_TAG* MESSAGE_HANDLE;
AzureIoTClient 28:add19eb7defa 37 typedef struct BINARY_DATA_TAG
AzureIoTClient 28:add19eb7defa 38 {
AzureIoTClient 28:add19eb7defa 39 const unsigned char* bytes;
AzureIoTClient 28:add19eb7defa 40 size_t length;
AzureIoTClient 28:add19eb7defa 41 } BINARY_DATA;
Azure.IoT Build 0:6ae2f7bca550 42
AzureIoTClient 28:add19eb7defa 43 MOCKABLE_FUNCTION(, MESSAGE_HANDLE, message_create);
AzureIoTClient 28:add19eb7defa 44 MOCKABLE_FUNCTION(, MESSAGE_HANDLE, message_clone, MESSAGE_HANDLE, source_message);
AzureIoTClient 28:add19eb7defa 45 MOCKABLE_FUNCTION(, void, message_destroy, MESSAGE_HANDLE, message);
AzureIoTClient 28:add19eb7defa 46 MOCKABLE_FUNCTION(, int, message_set_header, MESSAGE_HANDLE, message, HEADER_HANDLE, message_header);
AzureIoTClient 28:add19eb7defa 47 MOCKABLE_FUNCTION(, int, message_get_header, MESSAGE_HANDLE, message, HEADER_HANDLE*, message_header);
AzureIoTClient 28:add19eb7defa 48 MOCKABLE_FUNCTION(, int, message_set_delivery_annotations, MESSAGE_HANDLE, message, delivery_annotations, annotations);
AzureIoTClient 28:add19eb7defa 49 MOCKABLE_FUNCTION(, int, message_get_delivery_annotations, MESSAGE_HANDLE, message, delivery_annotations*, annotations);
AzureIoTClient 28:add19eb7defa 50 MOCKABLE_FUNCTION(, int, message_set_message_annotations, MESSAGE_HANDLE, message, message_annotations, annotations);
AzureIoTClient 28:add19eb7defa 51 MOCKABLE_FUNCTION(, int, message_get_message_annotations, MESSAGE_HANDLE, message, message_annotations*, annotations);
AzureIoTClient 28:add19eb7defa 52 MOCKABLE_FUNCTION(, int, message_set_properties, MESSAGE_HANDLE, message, PROPERTIES_HANDLE, properties);
AzureIoTClient 28:add19eb7defa 53 MOCKABLE_FUNCTION(, int, message_get_properties, MESSAGE_HANDLE, message, PROPERTIES_HANDLE*, properties);
AzureIoTClient 28:add19eb7defa 54 MOCKABLE_FUNCTION(, int, message_set_application_properties, MESSAGE_HANDLE, message, AMQP_VALUE, application_properties);
AzureIoTClient 28:add19eb7defa 55 MOCKABLE_FUNCTION(, int, message_get_application_properties, MESSAGE_HANDLE, message, AMQP_VALUE*, application_properties);
AzureIoTClient 28:add19eb7defa 56 MOCKABLE_FUNCTION(, int, message_set_footer, MESSAGE_HANDLE, message, annotations, footer);
AzureIoTClient 28:add19eb7defa 57 MOCKABLE_FUNCTION(, int, message_get_footer, MESSAGE_HANDLE, message, annotations*, footer);
AzureIoTClient 28:add19eb7defa 58 MOCKABLE_FUNCTION(, int, message_add_body_amqp_data, MESSAGE_HANDLE, message, BINARY_DATA, amqp_data);
AzureIoTClient 28:add19eb7defa 59 MOCKABLE_FUNCTION(, int, message_get_body_amqp_data_in_place, MESSAGE_HANDLE, message, size_t, index, BINARY_DATA*, amqp_data);
AzureIoTClient 28:add19eb7defa 60 MOCKABLE_FUNCTION(, int, message_get_body_amqp_data_count, MESSAGE_HANDLE, message, size_t*, count);
AzureIoTClient 28:add19eb7defa 61 MOCKABLE_FUNCTION(, int, message_set_body_amqp_value, MESSAGE_HANDLE, message, AMQP_VALUE, body_amqp_value);
AzureIoTClient 28:add19eb7defa 62 MOCKABLE_FUNCTION(, int, message_get_body_amqp_value_in_place, MESSAGE_HANDLE, message, AMQP_VALUE*, body_amqp_value);
AzureIoTClient 28:add19eb7defa 63 MOCKABLE_FUNCTION(, int, message_add_body_amqp_sequence, MESSAGE_HANDLE, message, AMQP_VALUE, sequence);
AzureIoTClient 28:add19eb7defa 64 MOCKABLE_FUNCTION(, int, message_get_body_amqp_sequence_in_place, MESSAGE_HANDLE, message, size_t, index, AMQP_VALUE*, sequence);
AzureIoTClient 28:add19eb7defa 65 MOCKABLE_FUNCTION(, int, message_get_body_amqp_sequence_count, MESSAGE_HANDLE, message, size_t*, count);
AzureIoTClient 28:add19eb7defa 66 MOCKABLE_FUNCTION(, int, message_get_body_type, MESSAGE_HANDLE, message, MESSAGE_BODY_TYPE*, body_type);
AzureIoTClient 28:add19eb7defa 67 MOCKABLE_FUNCTION(, int, message_set_message_format, MESSAGE_HANDLE, message, uint32_t, message_format);
AzureIoTClient 10:19ce00951771 68 MOCKABLE_FUNCTION(, int, message_get_message_format, MESSAGE_HANDLE, message, uint32_t*, message_format);
Azure.IoT Build 0:6ae2f7bca550 69
Azure.IoT Build 0:6ae2f7bca550 70 #ifdef __cplusplus
Azure.IoT Build 0:6ae2f7bca550 71 }
Azure.IoT Build 0:6ae2f7bca550 72 #endif /* __cplusplus */
Azure.IoT Build 0:6ae2f7bca550 73
Azure.IoT Build 0:6ae2f7bca550 74 #endif /* MESSAGE_H */