Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
uamqp/inc/azure_uamqp_c/amqpvalue.h@0:f7f1f0d76dd6, 2018-08-23 (annotated)
- 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?
User | Revision | Line number | New 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 AMQPVALUE_H |
XinZhangMS | 0:f7f1f0d76dd6 | 5 | #define AMQPVALUE_H |
XinZhangMS | 0:f7f1f0d76dd6 | 6 | |
XinZhangMS | 0:f7f1f0d76dd6 | 7 | #include "azure_uamqp_c/amqp_types.h" |
XinZhangMS | 0:f7f1f0d76dd6 | 8 | |
XinZhangMS | 0:f7f1f0d76dd6 | 9 | #ifdef __cplusplus |
XinZhangMS | 0:f7f1f0d76dd6 | 10 | #include <cstddef> |
XinZhangMS | 0:f7f1f0d76dd6 | 11 | #include <cstdint> |
XinZhangMS | 0:f7f1f0d76dd6 | 12 | extern "C" { |
XinZhangMS | 0:f7f1f0d76dd6 | 13 | #else |
XinZhangMS | 0:f7f1f0d76dd6 | 14 | #include <stddef.h> |
XinZhangMS | 0:f7f1f0d76dd6 | 15 | #include <stdint.h> |
XinZhangMS | 0:f7f1f0d76dd6 | 16 | #include <stdbool.h> |
XinZhangMS | 0:f7f1f0d76dd6 | 17 | #endif /* __cplusplus */ |
XinZhangMS | 0:f7f1f0d76dd6 | 18 | |
XinZhangMS | 0:f7f1f0d76dd6 | 19 | #include "azure_c_shared_utility/umock_c_prod.h" |
XinZhangMS | 0:f7f1f0d76dd6 | 20 | |
XinZhangMS | 0:f7f1f0d76dd6 | 21 | typedef struct AMQP_VALUE_DATA_TAG* AMQP_VALUE; |
XinZhangMS | 0:f7f1f0d76dd6 | 22 | typedef unsigned char uuid[16]; |
XinZhangMS | 0:f7f1f0d76dd6 | 23 | typedef int64_t timestamp; |
XinZhangMS | 0:f7f1f0d76dd6 | 24 | |
XinZhangMS | 0:f7f1f0d76dd6 | 25 | typedef struct amqp_binary_TAG |
XinZhangMS | 0:f7f1f0d76dd6 | 26 | { |
XinZhangMS | 0:f7f1f0d76dd6 | 27 | const void* bytes; |
XinZhangMS | 0:f7f1f0d76dd6 | 28 | uint32_t length; |
XinZhangMS | 0:f7f1f0d76dd6 | 29 | } amqp_binary; |
XinZhangMS | 0:f7f1f0d76dd6 | 30 | |
XinZhangMS | 0:f7f1f0d76dd6 | 31 | /* type handling */ |
XinZhangMS | 0:f7f1f0d76dd6 | 32 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_null); |
XinZhangMS | 0:f7f1f0d76dd6 | 33 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_boolean, bool, bool_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 34 | MOCKABLE_FUNCTION(, int, amqpvalue_get_boolean, AMQP_VALUE, value, bool*, bool_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 35 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_ubyte, unsigned char, ubyte_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 36 | MOCKABLE_FUNCTION(, int, amqpvalue_get_ubyte, AMQP_VALUE, value, unsigned char*, ubyte_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 37 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_ushort, uint16_t, ushort_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 38 | MOCKABLE_FUNCTION(, int, amqpvalue_get_ushort, AMQP_VALUE, value, uint16_t*, ushort_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 39 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_uint, uint32_t, uint_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 40 | MOCKABLE_FUNCTION(, int, amqpvalue_get_uint, AMQP_VALUE, value, uint32_t*, uint_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 41 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_ulong, uint64_t, ulong_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 42 | MOCKABLE_FUNCTION(, int, amqpvalue_get_ulong, AMQP_VALUE, value, uint64_t*, ulong_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 43 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_byte, char, byte_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 44 | MOCKABLE_FUNCTION(, int, amqpvalue_get_byte, AMQP_VALUE, value, char*, byte_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 45 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_short, int16_t, short_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 46 | MOCKABLE_FUNCTION(, int, amqpvalue_get_short, AMQP_VALUE, value, int16_t*, short_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 47 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_int, int32_t, int_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 48 | MOCKABLE_FUNCTION(, int, amqpvalue_get_int, AMQP_VALUE, value, int32_t*, int_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 49 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_long, int64_t, long_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 50 | MOCKABLE_FUNCTION(, int, amqpvalue_get_long, AMQP_VALUE, value, int64_t*, long_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 51 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_float, float, float_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 52 | MOCKABLE_FUNCTION(, int, amqpvalue_get_float, AMQP_VALUE, value, float*, float_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 53 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_double, double, double_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 54 | MOCKABLE_FUNCTION(, int, amqpvalue_get_double, AMQP_VALUE, value, double*, double_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 55 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_char, uint32_t, char_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 56 | MOCKABLE_FUNCTION(, int, amqpvalue_get_char, AMQP_VALUE, value, uint32_t*, char_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 57 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_timestamp, int64_t, timestamp_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 58 | MOCKABLE_FUNCTION(, int, amqpvalue_get_timestamp, AMQP_VALUE, value, int64_t*, timestamp_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 59 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_uuid, uuid, uuid_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 60 | MOCKABLE_FUNCTION(, int, amqpvalue_get_uuid, AMQP_VALUE, value, uuid*, uuid_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 61 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_binary, amqp_binary, binary_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 62 | MOCKABLE_FUNCTION(, int, amqpvalue_get_binary, AMQP_VALUE, value, amqp_binary*, binary_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 63 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_string, const char*, string_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 64 | MOCKABLE_FUNCTION(, int, amqpvalue_get_string, AMQP_VALUE, value, const char**, string_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 65 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_symbol, const char*, symbol_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 66 | MOCKABLE_FUNCTION(, int, amqpvalue_get_symbol, AMQP_VALUE, value, const char**, symbol_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 67 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_list); |
XinZhangMS | 0:f7f1f0d76dd6 | 68 | MOCKABLE_FUNCTION(, int, amqpvalue_set_list_item_count, AMQP_VALUE, list, uint32_t, count); |
XinZhangMS | 0:f7f1f0d76dd6 | 69 | MOCKABLE_FUNCTION(, int, amqpvalue_get_list_item_count, AMQP_VALUE, list, uint32_t*, count); |
XinZhangMS | 0:f7f1f0d76dd6 | 70 | MOCKABLE_FUNCTION(, int, amqpvalue_set_list_item, AMQP_VALUE, list, uint32_t, index, AMQP_VALUE, list_item_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 71 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_get_list_item, AMQP_VALUE, list, size_t, index); |
XinZhangMS | 0:f7f1f0d76dd6 | 72 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_map); |
XinZhangMS | 0:f7f1f0d76dd6 | 73 | MOCKABLE_FUNCTION(, int, amqpvalue_set_map_value, AMQP_VALUE, map, AMQP_VALUE, key, AMQP_VALUE, value); |
XinZhangMS | 0:f7f1f0d76dd6 | 74 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_get_map_value, AMQP_VALUE, map, AMQP_VALUE, key); |
XinZhangMS | 0:f7f1f0d76dd6 | 75 | MOCKABLE_FUNCTION(, int, amqpvalue_get_map_pair_count, AMQP_VALUE, map, uint32_t*, pair_count); |
XinZhangMS | 0:f7f1f0d76dd6 | 76 | MOCKABLE_FUNCTION(, int, amqpvalue_get_map_key_value_pair, AMQP_VALUE, map, uint32_t, index, AMQP_VALUE*, key, AMQP_VALUE*, value); |
XinZhangMS | 0:f7f1f0d76dd6 | 77 | MOCKABLE_FUNCTION(, int, amqpvalue_get_map, AMQP_VALUE, from_value, AMQP_VALUE*, map); |
XinZhangMS | 0:f7f1f0d76dd6 | 78 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_array); |
XinZhangMS | 0:f7f1f0d76dd6 | 79 | MOCKABLE_FUNCTION(, int, amqpvalue_add_array_item, AMQP_VALUE, value, AMQP_VALUE, array_item_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 80 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_get_array_item, AMQP_VALUE, value, uint32_t, index); |
XinZhangMS | 0:f7f1f0d76dd6 | 81 | MOCKABLE_FUNCTION(, int, amqpvalue_get_array_item_count, AMQP_VALUE, value, uint32_t*, count); |
XinZhangMS | 0:f7f1f0d76dd6 | 82 | MOCKABLE_FUNCTION(, int, amqpvalue_get_array, AMQP_VALUE, value, AMQP_VALUE*, array_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 83 | MOCKABLE_FUNCTION(, AMQP_TYPE, amqpvalue_get_type, AMQP_VALUE, value); |
XinZhangMS | 0:f7f1f0d76dd6 | 84 | |
XinZhangMS | 0:f7f1f0d76dd6 | 85 | MOCKABLE_FUNCTION(, void, amqpvalue_destroy, AMQP_VALUE, value); |
XinZhangMS | 0:f7f1f0d76dd6 | 86 | |
XinZhangMS | 0:f7f1f0d76dd6 | 87 | MOCKABLE_FUNCTION(, bool, amqpvalue_are_equal, AMQP_VALUE, value1, AMQP_VALUE, value2); |
XinZhangMS | 0:f7f1f0d76dd6 | 88 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_clone, AMQP_VALUE, value); |
XinZhangMS | 0:f7f1f0d76dd6 | 89 | |
XinZhangMS | 0:f7f1f0d76dd6 | 90 | /* encoding */ |
XinZhangMS | 0:f7f1f0d76dd6 | 91 | typedef int (*AMQPVALUE_ENCODER_OUTPUT)(void* context, const unsigned char* bytes, size_t length); |
XinZhangMS | 0:f7f1f0d76dd6 | 92 | |
XinZhangMS | 0:f7f1f0d76dd6 | 93 | MOCKABLE_FUNCTION(, int, amqpvalue_encode, AMQP_VALUE, value, AMQPVALUE_ENCODER_OUTPUT, encoder_output, void*, context); |
XinZhangMS | 0:f7f1f0d76dd6 | 94 | MOCKABLE_FUNCTION(, int, amqpvalue_get_encoded_size, AMQP_VALUE, value, size_t*, encoded_size); |
XinZhangMS | 0:f7f1f0d76dd6 | 95 | |
XinZhangMS | 0:f7f1f0d76dd6 | 96 | /* decoding */ |
XinZhangMS | 0:f7f1f0d76dd6 | 97 | typedef struct AMQPVALUE_DECODER_HANDLE_DATA_TAG* AMQPVALUE_DECODER_HANDLE; |
XinZhangMS | 0:f7f1f0d76dd6 | 98 | typedef void(*ON_VALUE_DECODED)(void* context, AMQP_VALUE decoded_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 99 | |
XinZhangMS | 0:f7f1f0d76dd6 | 100 | MOCKABLE_FUNCTION(, AMQPVALUE_DECODER_HANDLE, amqpvalue_decoder_create, ON_VALUE_DECODED, on_value_decoded, void*, callback_context); |
XinZhangMS | 0:f7f1f0d76dd6 | 101 | MOCKABLE_FUNCTION(, void, amqpvalue_decoder_destroy, AMQPVALUE_DECODER_HANDLE, handle); |
XinZhangMS | 0:f7f1f0d76dd6 | 102 | MOCKABLE_FUNCTION(, int, amqpvalue_decode_bytes, AMQPVALUE_DECODER_HANDLE, handle, const unsigned char*, buffer, size_t, size); |
XinZhangMS | 0:f7f1f0d76dd6 | 103 | |
XinZhangMS | 0:f7f1f0d76dd6 | 104 | /* misc for now, not spec'd */ |
XinZhangMS | 0:f7f1f0d76dd6 | 105 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_get_inplace_descriptor, AMQP_VALUE, value); |
XinZhangMS | 0:f7f1f0d76dd6 | 106 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_get_inplace_described_value, AMQP_VALUE, value); |
XinZhangMS | 0:f7f1f0d76dd6 | 107 | |
XinZhangMS | 0:f7f1f0d76dd6 | 108 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_composite, AMQP_VALUE, descriptor, uint32_t, list_size); |
XinZhangMS | 0:f7f1f0d76dd6 | 109 | MOCKABLE_FUNCTION(, int, amqpvalue_set_composite_item, AMQP_VALUE, value, uint32_t, index, AMQP_VALUE, item_value); |
XinZhangMS | 0:f7f1f0d76dd6 | 110 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_get_composite_item, AMQP_VALUE, value, size_t, index); |
XinZhangMS | 0:f7f1f0d76dd6 | 111 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_described, AMQP_VALUE, descriptor, AMQP_VALUE, value); |
XinZhangMS | 0:f7f1f0d76dd6 | 112 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_create_composite_with_ulong_descriptor, uint64_t, descriptor); |
XinZhangMS | 0:f7f1f0d76dd6 | 113 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_get_list_item_in_place, AMQP_VALUE, value, size_t, index); |
XinZhangMS | 0:f7f1f0d76dd6 | 114 | MOCKABLE_FUNCTION(, AMQP_VALUE, amqpvalue_get_composite_item_in_place, AMQP_VALUE, value, size_t, index); |
XinZhangMS | 0:f7f1f0d76dd6 | 115 | MOCKABLE_FUNCTION(, int, amqpvalue_get_composite_item_count, AMQP_VALUE, value, uint32_t*, item_count); |
XinZhangMS | 0:f7f1f0d76dd6 | 116 | |
XinZhangMS | 0:f7f1f0d76dd6 | 117 | #ifdef __cplusplus |
XinZhangMS | 0:f7f1f0d76dd6 | 118 | } |
XinZhangMS | 0:f7f1f0d76dd6 | 119 | #endif /* __cplusplus */ |
XinZhangMS | 0:f7f1f0d76dd6 | 120 | |
XinZhangMS | 0:f7f1f0d76dd6 | 121 | #endif /* AMQPVALUE_H */ |