A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Committer:
AzureIoTClient
Date:
Mon May 22 10:35:21 2017 -0700
Revision:
25:1101516ee67d
Parent:
23:1111ee8bcba4
Child:
28:add19eb7defa
1.1.15

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Azure.IoT Build 0:6ae2f7bca550 1
Azure.IoT Build 0:6ae2f7bca550 2
Azure.IoT Build 0:6ae2f7bca550 3 // Copyright (c) Microsoft. All rights reserved.
Azure.IoT Build 0:6ae2f7bca550 4 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
Azure.IoT Build 0:6ae2f7bca550 5
Azure.IoT Build 0:6ae2f7bca550 6 #include <stdlib.h>
AzureIoTClient 19:000ab4e6a2c1 7 #include "azure_c_shared_utility/optimize_size.h"
AzureIoTClient 21:f9c433d8e6ca 8 #include "azure_c_shared_utility/gballoc.h"
Azure.IoT Build 0:6ae2f7bca550 9 #include "azure_uamqp_c/amqpvalue.h"
Azure.IoT Build 0:6ae2f7bca550 10 #include "azure_uamqp_c/amqp_definitions.h"
Azure.IoT Build 0:6ae2f7bca550 11 #include <stdlib.h>
Azure.IoT Build 0:6ae2f7bca550 12 #include <stdbool.h>
Azure.IoT Build 0:6ae2f7bca550 13
AzureIoTClient 25:1101516ee67d 14 #pragma warning (disable : 4127)
AzureIoTClient 25:1101516ee67d 15
Azure.IoT Build 0:6ae2f7bca550 16 /* role */
Azure.IoT Build 0:6ae2f7bca550 17
Azure.IoT Build 0:6ae2f7bca550 18 AMQP_VALUE amqpvalue_create_role(role value)
Azure.IoT Build 0:6ae2f7bca550 19 {
Azure.IoT Build 0:6ae2f7bca550 20 return amqpvalue_create_boolean(value);
Azure.IoT Build 0:6ae2f7bca550 21 }
Azure.IoT Build 0:6ae2f7bca550 22
Azure.IoT Build 0:6ae2f7bca550 23 /* sender-settle-mode */
Azure.IoT Build 0:6ae2f7bca550 24
Azure.IoT Build 0:6ae2f7bca550 25 AMQP_VALUE amqpvalue_create_sender_settle_mode(sender_settle_mode value)
Azure.IoT Build 0:6ae2f7bca550 26 {
Azure.IoT Build 0:6ae2f7bca550 27 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 28 }
Azure.IoT Build 0:6ae2f7bca550 29
Azure.IoT Build 0:6ae2f7bca550 30 /* receiver-settle-mode */
Azure.IoT Build 0:6ae2f7bca550 31
Azure.IoT Build 0:6ae2f7bca550 32 AMQP_VALUE amqpvalue_create_receiver_settle_mode(receiver_settle_mode value)
Azure.IoT Build 0:6ae2f7bca550 33 {
Azure.IoT Build 0:6ae2f7bca550 34 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 35 }
Azure.IoT Build 0:6ae2f7bca550 36
Azure.IoT Build 0:6ae2f7bca550 37 /* handle */
Azure.IoT Build 0:6ae2f7bca550 38
Azure.IoT Build 0:6ae2f7bca550 39 AMQP_VALUE amqpvalue_create_handle(handle value)
Azure.IoT Build 0:6ae2f7bca550 40 {
Azure.IoT Build 0:6ae2f7bca550 41 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 42 }
Azure.IoT Build 0:6ae2f7bca550 43
Azure.IoT Build 0:6ae2f7bca550 44 /* seconds */
Azure.IoT Build 0:6ae2f7bca550 45
Azure.IoT Build 0:6ae2f7bca550 46 AMQP_VALUE amqpvalue_create_seconds(seconds value)
Azure.IoT Build 0:6ae2f7bca550 47 {
Azure.IoT Build 0:6ae2f7bca550 48 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 49 }
Azure.IoT Build 0:6ae2f7bca550 50
Azure.IoT Build 0:6ae2f7bca550 51 /* milliseconds */
Azure.IoT Build 0:6ae2f7bca550 52
Azure.IoT Build 0:6ae2f7bca550 53 AMQP_VALUE amqpvalue_create_milliseconds(milliseconds value)
Azure.IoT Build 0:6ae2f7bca550 54 {
Azure.IoT Build 0:6ae2f7bca550 55 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 56 }
Azure.IoT Build 0:6ae2f7bca550 57
Azure.IoT Build 0:6ae2f7bca550 58 /* delivery-tag */
Azure.IoT Build 0:6ae2f7bca550 59
Azure.IoT Build 0:6ae2f7bca550 60 AMQP_VALUE amqpvalue_create_delivery_tag(delivery_tag value)
Azure.IoT Build 0:6ae2f7bca550 61 {
Azure.IoT Build 0:6ae2f7bca550 62 return amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 63 }
Azure.IoT Build 0:6ae2f7bca550 64
Azure.IoT Build 0:6ae2f7bca550 65 /* sequence-no */
Azure.IoT Build 0:6ae2f7bca550 66
Azure.IoT Build 0:6ae2f7bca550 67 AMQP_VALUE amqpvalue_create_sequence_no(sequence_no value)
Azure.IoT Build 0:6ae2f7bca550 68 {
Azure.IoT Build 0:6ae2f7bca550 69 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 70 }
Azure.IoT Build 0:6ae2f7bca550 71
Azure.IoT Build 0:6ae2f7bca550 72 /* delivery-number */
Azure.IoT Build 0:6ae2f7bca550 73
Azure.IoT Build 0:6ae2f7bca550 74 AMQP_VALUE amqpvalue_create_delivery_number(delivery_number value)
Azure.IoT Build 0:6ae2f7bca550 75 {
Azure.IoT Build 0:6ae2f7bca550 76 return amqpvalue_create_sequence_no(value);
Azure.IoT Build 0:6ae2f7bca550 77 }
Azure.IoT Build 0:6ae2f7bca550 78
Azure.IoT Build 0:6ae2f7bca550 79 /* transfer-number */
Azure.IoT Build 0:6ae2f7bca550 80
Azure.IoT Build 0:6ae2f7bca550 81 AMQP_VALUE amqpvalue_create_transfer_number(transfer_number value)
Azure.IoT Build 0:6ae2f7bca550 82 {
Azure.IoT Build 0:6ae2f7bca550 83 return amqpvalue_create_sequence_no(value);
Azure.IoT Build 0:6ae2f7bca550 84 }
Azure.IoT Build 0:6ae2f7bca550 85
Azure.IoT Build 0:6ae2f7bca550 86 /* message-format */
Azure.IoT Build 0:6ae2f7bca550 87
Azure.IoT Build 0:6ae2f7bca550 88 AMQP_VALUE amqpvalue_create_message_format(message_format value)
Azure.IoT Build 0:6ae2f7bca550 89 {
Azure.IoT Build 0:6ae2f7bca550 90 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 91 }
Azure.IoT Build 0:6ae2f7bca550 92
Azure.IoT Build 0:6ae2f7bca550 93 /* ietf-language-tag */
Azure.IoT Build 0:6ae2f7bca550 94
Azure.IoT Build 0:6ae2f7bca550 95 AMQP_VALUE amqpvalue_create_ietf_language_tag(ietf_language_tag value)
Azure.IoT Build 0:6ae2f7bca550 96 {
Azure.IoT Build 0:6ae2f7bca550 97 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 98 }
Azure.IoT Build 0:6ae2f7bca550 99
Azure.IoT Build 0:6ae2f7bca550 100 /* fields */
Azure.IoT Build 0:6ae2f7bca550 101
Azure.IoT Build 0:6ae2f7bca550 102 AMQP_VALUE amqpvalue_create_fields(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 103 {
Azure.IoT Build 0:6ae2f7bca550 104 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 105 }
Azure.IoT Build 0:6ae2f7bca550 106
Azure.IoT Build 0:6ae2f7bca550 107 /* error */
Azure.IoT Build 0:6ae2f7bca550 108
Azure.IoT Build 0:6ae2f7bca550 109 typedef struct ERROR_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 110 {
Azure.IoT Build 0:6ae2f7bca550 111 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 112 } ERROR_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 113
Azure.IoT Build 0:6ae2f7bca550 114 static ERROR_HANDLE error_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 115 {
AzureIoTClient 21:f9c433d8e6ca 116 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 117 if (error_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 118 {
Azure.IoT Build 0:6ae2f7bca550 119 error_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 120 }
Azure.IoT Build 0:6ae2f7bca550 121
Azure.IoT Build 0:6ae2f7bca550 122 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 123 }
Azure.IoT Build 0:6ae2f7bca550 124
Azure.IoT Build 0:6ae2f7bca550 125 ERROR_HANDLE error_create(const char* condition_value)
Azure.IoT Build 0:6ae2f7bca550 126 {
AzureIoTClient 21:f9c433d8e6ca 127 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 128 if (error_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 129 {
Azure.IoT Build 0:6ae2f7bca550 130 error_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(29);
Azure.IoT Build 0:6ae2f7bca550 131 if (error_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 132 {
AzureIoTClient 21:f9c433d8e6ca 133 free(error_instance);
Azure.IoT Build 0:6ae2f7bca550 134 error_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 135 }
Azure.IoT Build 0:6ae2f7bca550 136 else
Azure.IoT Build 0:6ae2f7bca550 137 {
Azure.IoT Build 0:6ae2f7bca550 138 AMQP_VALUE condition_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 139 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 140
Azure.IoT Build 0:6ae2f7bca550 141 condition_amqp_value = amqpvalue_create_symbol(condition_value);
Azure.IoT Build 0:6ae2f7bca550 142 if ((result == 0) && (amqpvalue_set_composite_item(error_instance->composite_value, 0, condition_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 143 {
AzureIoTClient 19:000ab4e6a2c1 144 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 145 }
Azure.IoT Build 0:6ae2f7bca550 146
Azure.IoT Build 0:6ae2f7bca550 147 amqpvalue_destroy(condition_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 148 }
Azure.IoT Build 0:6ae2f7bca550 149 }
Azure.IoT Build 0:6ae2f7bca550 150
Azure.IoT Build 0:6ae2f7bca550 151 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 152 }
Azure.IoT Build 0:6ae2f7bca550 153
Azure.IoT Build 0:6ae2f7bca550 154 ERROR_HANDLE error_clone(ERROR_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 155 {
AzureIoTClient 21:f9c433d8e6ca 156 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 157 if (error_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 158 {
Azure.IoT Build 0:6ae2f7bca550 159 error_instance->composite_value = amqpvalue_clone(((ERROR_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 160 if (error_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 161 {
AzureIoTClient 21:f9c433d8e6ca 162 free(error_instance);
Azure.IoT Build 0:6ae2f7bca550 163 error_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 164 }
Azure.IoT Build 0:6ae2f7bca550 165 }
Azure.IoT Build 0:6ae2f7bca550 166
Azure.IoT Build 0:6ae2f7bca550 167 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 168 }
Azure.IoT Build 0:6ae2f7bca550 169
Azure.IoT Build 0:6ae2f7bca550 170 void error_destroy(ERROR_HANDLE error)
Azure.IoT Build 0:6ae2f7bca550 171 {
Azure.IoT Build 0:6ae2f7bca550 172 if (error != NULL)
Azure.IoT Build 0:6ae2f7bca550 173 {
Azure.IoT Build 0:6ae2f7bca550 174 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
Azure.IoT Build 0:6ae2f7bca550 175 amqpvalue_destroy(error_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 176 free(error_instance);
Azure.IoT Build 0:6ae2f7bca550 177 }
Azure.IoT Build 0:6ae2f7bca550 178 }
Azure.IoT Build 0:6ae2f7bca550 179
Azure.IoT Build 0:6ae2f7bca550 180 AMQP_VALUE amqpvalue_create_error(ERROR_HANDLE error)
Azure.IoT Build 0:6ae2f7bca550 181 {
Azure.IoT Build 0:6ae2f7bca550 182 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 183
Azure.IoT Build 0:6ae2f7bca550 184 if (error == NULL)
Azure.IoT Build 0:6ae2f7bca550 185 {
Azure.IoT Build 0:6ae2f7bca550 186 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 187 }
Azure.IoT Build 0:6ae2f7bca550 188 else
Azure.IoT Build 0:6ae2f7bca550 189 {
Azure.IoT Build 0:6ae2f7bca550 190 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
Azure.IoT Build 0:6ae2f7bca550 191 result = amqpvalue_clone(error_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 192 }
Azure.IoT Build 0:6ae2f7bca550 193
Azure.IoT Build 0:6ae2f7bca550 194 return result;
Azure.IoT Build 0:6ae2f7bca550 195 }
Azure.IoT Build 0:6ae2f7bca550 196
Azure.IoT Build 0:6ae2f7bca550 197 bool is_error_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 198 {
Azure.IoT Build 0:6ae2f7bca550 199 bool result;
Azure.IoT Build 0:6ae2f7bca550 200
Azure.IoT Build 0:6ae2f7bca550 201 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 202 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 203 (descriptor_ulong == 29))
Azure.IoT Build 0:6ae2f7bca550 204 {
Azure.IoT Build 0:6ae2f7bca550 205 result = true;
Azure.IoT Build 0:6ae2f7bca550 206 }
Azure.IoT Build 0:6ae2f7bca550 207 else
Azure.IoT Build 0:6ae2f7bca550 208 {
Azure.IoT Build 0:6ae2f7bca550 209 result = false;
Azure.IoT Build 0:6ae2f7bca550 210 }
Azure.IoT Build 0:6ae2f7bca550 211
Azure.IoT Build 0:6ae2f7bca550 212 return result;
Azure.IoT Build 0:6ae2f7bca550 213 }
Azure.IoT Build 0:6ae2f7bca550 214
Azure.IoT Build 0:6ae2f7bca550 215
Azure.IoT Build 0:6ae2f7bca550 216 int amqpvalue_get_error(AMQP_VALUE value, ERROR_HANDLE* error_handle)
Azure.IoT Build 0:6ae2f7bca550 217 {
Azure.IoT Build 0:6ae2f7bca550 218 int result;
Azure.IoT Build 0:6ae2f7bca550 219 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error_create_internal();
Azure.IoT Build 0:6ae2f7bca550 220 *error_handle = error_instance;
Azure.IoT Build 0:6ae2f7bca550 221 if (*error_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 222 {
AzureIoTClient 19:000ab4e6a2c1 223 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 224 }
Azure.IoT Build 0:6ae2f7bca550 225 else
Azure.IoT Build 0:6ae2f7bca550 226 {
Azure.IoT Build 0:6ae2f7bca550 227 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 228 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 229 {
Azure.IoT Build 0:6ae2f7bca550 230 error_destroy(*error_handle);
AzureIoTClient 19:000ab4e6a2c1 231 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 232 }
Azure.IoT Build 0:6ae2f7bca550 233 else
Azure.IoT Build 0:6ae2f7bca550 234 {
AzureIoTClient 23:1111ee8bcba4 235 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 236 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 237 {
AzureIoTClient 23:1111ee8bcba4 238 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 239 }
AzureIoTClient 23:1111ee8bcba4 240 else
AzureIoTClient 23:1111ee8bcba4 241 {
AzureIoTClient 23:1111ee8bcba4 242 do
AzureIoTClient 23:1111ee8bcba4 243 {
AzureIoTClient 23:1111ee8bcba4 244 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 245 /* condition */
AzureIoTClient 23:1111ee8bcba4 246 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 247 {
AzureIoTClient 23:1111ee8bcba4 248 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 249 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 250 {
AzureIoTClient 23:1111ee8bcba4 251 {
AzureIoTClient 23:1111ee8bcba4 252 error_destroy(*error_handle);
AzureIoTClient 23:1111ee8bcba4 253 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 254 break;
AzureIoTClient 23:1111ee8bcba4 255 }
AzureIoTClient 23:1111ee8bcba4 256 }
AzureIoTClient 23:1111ee8bcba4 257 else
AzureIoTClient 23:1111ee8bcba4 258 {
AzureIoTClient 25:1101516ee67d 259 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 260 {
AzureIoTClient 25:1101516ee67d 261 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 262 error_destroy(*error_handle);
AzureIoTClient 23:1111ee8bcba4 263 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 264 break;
AzureIoTClient 23:1111ee8bcba4 265 }
AzureIoTClient 23:1111ee8bcba4 266 else
AzureIoTClient 23:1111ee8bcba4 267 {
AzureIoTClient 25:1101516ee67d 268 const char* condition;
AzureIoTClient 23:1111ee8bcba4 269 if (amqpvalue_get_symbol(item_value, &condition) != 0)
AzureIoTClient 23:1111ee8bcba4 270 {
AzureIoTClient 25:1101516ee67d 271 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 272 error_destroy(*error_handle);
AzureIoTClient 23:1111ee8bcba4 273 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 274 break;
AzureIoTClient 23:1111ee8bcba4 275 }
AzureIoTClient 23:1111ee8bcba4 276 }
AzureIoTClient 23:1111ee8bcba4 277
AzureIoTClient 23:1111ee8bcba4 278 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 279 }
AzureIoTClient 23:1111ee8bcba4 280 }
AzureIoTClient 23:1111ee8bcba4 281 else
AzureIoTClient 23:1111ee8bcba4 282 {
AzureIoTClient 23:1111ee8bcba4 283 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 284 }
AzureIoTClient 23:1111ee8bcba4 285 /* description */
AzureIoTClient 23:1111ee8bcba4 286 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 287 {
AzureIoTClient 23:1111ee8bcba4 288 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 289 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 290 {
AzureIoTClient 23:1111ee8bcba4 291 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 292 }
AzureIoTClient 23:1111ee8bcba4 293 else
AzureIoTClient 23:1111ee8bcba4 294 {
AzureIoTClient 25:1101516ee67d 295 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 296 {
AzureIoTClient 25:1101516ee67d 297 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 298 }
AzureIoTClient 25:1101516ee67d 299 else
AzureIoTClient 25:1101516ee67d 300 {
AzureIoTClient 25:1101516ee67d 301 const char* description;
AzureIoTClient 23:1111ee8bcba4 302 if (amqpvalue_get_string(item_value, &description) != 0)
AzureIoTClient 23:1111ee8bcba4 303 {
AzureIoTClient 25:1101516ee67d 304 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 305 error_destroy(*error_handle);
AzureIoTClient 23:1111ee8bcba4 306 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 307 break;
AzureIoTClient 23:1111ee8bcba4 308 }
AzureIoTClient 23:1111ee8bcba4 309 }
AzureIoTClient 23:1111ee8bcba4 310
AzureIoTClient 23:1111ee8bcba4 311 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 312 }
AzureIoTClient 23:1111ee8bcba4 313 }
AzureIoTClient 23:1111ee8bcba4 314 /* info */
AzureIoTClient 23:1111ee8bcba4 315 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 316 {
AzureIoTClient 23:1111ee8bcba4 317 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 318 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 319 {
AzureIoTClient 23:1111ee8bcba4 320 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 321 }
AzureIoTClient 23:1111ee8bcba4 322 else
AzureIoTClient 23:1111ee8bcba4 323 {
AzureIoTClient 25:1101516ee67d 324 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 325 {
AzureIoTClient 25:1101516ee67d 326 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 327 }
AzureIoTClient 25:1101516ee67d 328 else
AzureIoTClient 25:1101516ee67d 329 {
AzureIoTClient 25:1101516ee67d 330 fields info;
AzureIoTClient 23:1111ee8bcba4 331 if (amqpvalue_get_fields(item_value, &info) != 0)
AzureIoTClient 23:1111ee8bcba4 332 {
AzureIoTClient 25:1101516ee67d 333 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 334 error_destroy(*error_handle);
AzureIoTClient 23:1111ee8bcba4 335 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 336 break;
AzureIoTClient 23:1111ee8bcba4 337 }
AzureIoTClient 23:1111ee8bcba4 338 }
AzureIoTClient 23:1111ee8bcba4 339
AzureIoTClient 23:1111ee8bcba4 340 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 341 }
AzureIoTClient 23:1111ee8bcba4 342 }
AzureIoTClient 23:1111ee8bcba4 343
AzureIoTClient 23:1111ee8bcba4 344 error_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 345
AzureIoTClient 23:1111ee8bcba4 346 result = 0;
AzureIoTClient 23:1111ee8bcba4 347 } while (0);
AzureIoTClient 23:1111ee8bcba4 348 }
Azure.IoT Build 0:6ae2f7bca550 349 }
Azure.IoT Build 0:6ae2f7bca550 350 }
Azure.IoT Build 0:6ae2f7bca550 351
Azure.IoT Build 0:6ae2f7bca550 352 return result;
Azure.IoT Build 0:6ae2f7bca550 353 }
Azure.IoT Build 0:6ae2f7bca550 354
Azure.IoT Build 0:6ae2f7bca550 355 int error_get_condition(ERROR_HANDLE error, const char** condition_value)
Azure.IoT Build 0:6ae2f7bca550 356 {
Azure.IoT Build 0:6ae2f7bca550 357 int result;
Azure.IoT Build 0:6ae2f7bca550 358
Azure.IoT Build 0:6ae2f7bca550 359 if (error == NULL)
Azure.IoT Build 0:6ae2f7bca550 360 {
AzureIoTClient 19:000ab4e6a2c1 361 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 362 }
Azure.IoT Build 0:6ae2f7bca550 363 else
Azure.IoT Build 0:6ae2f7bca550 364 {
AzureIoTClient 23:1111ee8bcba4 365 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 366 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 367 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 368 {
AzureIoTClient 23:1111ee8bcba4 369 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 370 }
AzureIoTClient 23:1111ee8bcba4 371 else
AzureIoTClient 23:1111ee8bcba4 372 {
AzureIoTClient 23:1111ee8bcba4 373 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 374 {
AzureIoTClient 23:1111ee8bcba4 375 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 376 }
AzureIoTClient 23:1111ee8bcba4 377 else
AzureIoTClient 23:1111ee8bcba4 378 {
AzureIoTClient 23:1111ee8bcba4 379 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 380 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 381 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 382 {
AzureIoTClient 23:1111ee8bcba4 383 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 384 }
AzureIoTClient 23:1111ee8bcba4 385 else
AzureIoTClient 23:1111ee8bcba4 386 {
AzureIoTClient 23:1111ee8bcba4 387 if (amqpvalue_get_symbol(item_value, condition_value) != 0)
AzureIoTClient 23:1111ee8bcba4 388 {
AzureIoTClient 23:1111ee8bcba4 389 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 390 }
AzureIoTClient 23:1111ee8bcba4 391 else
AzureIoTClient 23:1111ee8bcba4 392 {
AzureIoTClient 23:1111ee8bcba4 393 result = 0;
AzureIoTClient 23:1111ee8bcba4 394 }
AzureIoTClient 23:1111ee8bcba4 395 }
AzureIoTClient 23:1111ee8bcba4 396 }
Azure.IoT Build 0:6ae2f7bca550 397 }
Azure.IoT Build 0:6ae2f7bca550 398 }
Azure.IoT Build 0:6ae2f7bca550 399
Azure.IoT Build 0:6ae2f7bca550 400 return result;
Azure.IoT Build 0:6ae2f7bca550 401 }
Azure.IoT Build 0:6ae2f7bca550 402
Azure.IoT Build 0:6ae2f7bca550 403 int error_set_condition(ERROR_HANDLE error, const char* condition_value)
Azure.IoT Build 0:6ae2f7bca550 404 {
Azure.IoT Build 0:6ae2f7bca550 405 int result;
Azure.IoT Build 0:6ae2f7bca550 406
Azure.IoT Build 0:6ae2f7bca550 407 if (error == NULL)
Azure.IoT Build 0:6ae2f7bca550 408 {
AzureIoTClient 19:000ab4e6a2c1 409 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 410 }
Azure.IoT Build 0:6ae2f7bca550 411 else
Azure.IoT Build 0:6ae2f7bca550 412 {
Azure.IoT Build 0:6ae2f7bca550 413 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
Azure.IoT Build 0:6ae2f7bca550 414 AMQP_VALUE condition_amqp_value = amqpvalue_create_symbol(condition_value);
Azure.IoT Build 0:6ae2f7bca550 415 if (condition_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 416 {
AzureIoTClient 19:000ab4e6a2c1 417 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 418 }
Azure.IoT Build 0:6ae2f7bca550 419 else
Azure.IoT Build 0:6ae2f7bca550 420 {
Azure.IoT Build 0:6ae2f7bca550 421 if (amqpvalue_set_composite_item(error_instance->composite_value, 0, condition_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 422 {
AzureIoTClient 19:000ab4e6a2c1 423 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 424 }
Azure.IoT Build 0:6ae2f7bca550 425 else
Azure.IoT Build 0:6ae2f7bca550 426 {
Azure.IoT Build 0:6ae2f7bca550 427 result = 0;
Azure.IoT Build 0:6ae2f7bca550 428 }
Azure.IoT Build 0:6ae2f7bca550 429
Azure.IoT Build 0:6ae2f7bca550 430 amqpvalue_destroy(condition_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 431 }
Azure.IoT Build 0:6ae2f7bca550 432 }
Azure.IoT Build 0:6ae2f7bca550 433
Azure.IoT Build 0:6ae2f7bca550 434 return result;
Azure.IoT Build 0:6ae2f7bca550 435 }
Azure.IoT Build 0:6ae2f7bca550 436
Azure.IoT Build 0:6ae2f7bca550 437 int error_get_description(ERROR_HANDLE error, const char** description_value)
Azure.IoT Build 0:6ae2f7bca550 438 {
Azure.IoT Build 0:6ae2f7bca550 439 int result;
Azure.IoT Build 0:6ae2f7bca550 440
Azure.IoT Build 0:6ae2f7bca550 441 if (error == NULL)
Azure.IoT Build 0:6ae2f7bca550 442 {
AzureIoTClient 19:000ab4e6a2c1 443 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 444 }
Azure.IoT Build 0:6ae2f7bca550 445 else
Azure.IoT Build 0:6ae2f7bca550 446 {
AzureIoTClient 23:1111ee8bcba4 447 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 448 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 449 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 450 {
AzureIoTClient 23:1111ee8bcba4 451 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 452 }
AzureIoTClient 23:1111ee8bcba4 453 else
AzureIoTClient 23:1111ee8bcba4 454 {
AzureIoTClient 23:1111ee8bcba4 455 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 456 {
AzureIoTClient 23:1111ee8bcba4 457 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 458 }
AzureIoTClient 23:1111ee8bcba4 459 else
AzureIoTClient 23:1111ee8bcba4 460 {
AzureIoTClient 23:1111ee8bcba4 461 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 462 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 463 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 464 {
AzureIoTClient 23:1111ee8bcba4 465 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 466 }
AzureIoTClient 23:1111ee8bcba4 467 else
AzureIoTClient 23:1111ee8bcba4 468 {
AzureIoTClient 23:1111ee8bcba4 469 if (amqpvalue_get_string(item_value, description_value) != 0)
AzureIoTClient 23:1111ee8bcba4 470 {
AzureIoTClient 23:1111ee8bcba4 471 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 472 }
AzureIoTClient 23:1111ee8bcba4 473 else
AzureIoTClient 23:1111ee8bcba4 474 {
AzureIoTClient 23:1111ee8bcba4 475 result = 0;
AzureIoTClient 23:1111ee8bcba4 476 }
AzureIoTClient 23:1111ee8bcba4 477 }
AzureIoTClient 23:1111ee8bcba4 478 }
Azure.IoT Build 0:6ae2f7bca550 479 }
Azure.IoT Build 0:6ae2f7bca550 480 }
Azure.IoT Build 0:6ae2f7bca550 481
Azure.IoT Build 0:6ae2f7bca550 482 return result;
Azure.IoT Build 0:6ae2f7bca550 483 }
Azure.IoT Build 0:6ae2f7bca550 484
Azure.IoT Build 0:6ae2f7bca550 485 int error_set_description(ERROR_HANDLE error, const char* description_value)
Azure.IoT Build 0:6ae2f7bca550 486 {
Azure.IoT Build 0:6ae2f7bca550 487 int result;
Azure.IoT Build 0:6ae2f7bca550 488
Azure.IoT Build 0:6ae2f7bca550 489 if (error == NULL)
Azure.IoT Build 0:6ae2f7bca550 490 {
AzureIoTClient 19:000ab4e6a2c1 491 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 492 }
Azure.IoT Build 0:6ae2f7bca550 493 else
Azure.IoT Build 0:6ae2f7bca550 494 {
Azure.IoT Build 0:6ae2f7bca550 495 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
Azure.IoT Build 0:6ae2f7bca550 496 AMQP_VALUE description_amqp_value = amqpvalue_create_string(description_value);
Azure.IoT Build 0:6ae2f7bca550 497 if (description_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 498 {
AzureIoTClient 19:000ab4e6a2c1 499 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 500 }
Azure.IoT Build 0:6ae2f7bca550 501 else
Azure.IoT Build 0:6ae2f7bca550 502 {
Azure.IoT Build 0:6ae2f7bca550 503 if (amqpvalue_set_composite_item(error_instance->composite_value, 1, description_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 504 {
AzureIoTClient 19:000ab4e6a2c1 505 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 506 }
Azure.IoT Build 0:6ae2f7bca550 507 else
Azure.IoT Build 0:6ae2f7bca550 508 {
Azure.IoT Build 0:6ae2f7bca550 509 result = 0;
Azure.IoT Build 0:6ae2f7bca550 510 }
Azure.IoT Build 0:6ae2f7bca550 511
Azure.IoT Build 0:6ae2f7bca550 512 amqpvalue_destroy(description_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 513 }
Azure.IoT Build 0:6ae2f7bca550 514 }
Azure.IoT Build 0:6ae2f7bca550 515
Azure.IoT Build 0:6ae2f7bca550 516 return result;
Azure.IoT Build 0:6ae2f7bca550 517 }
Azure.IoT Build 0:6ae2f7bca550 518
Azure.IoT Build 0:6ae2f7bca550 519 int error_get_info(ERROR_HANDLE error, fields* info_value)
Azure.IoT Build 0:6ae2f7bca550 520 {
Azure.IoT Build 0:6ae2f7bca550 521 int result;
Azure.IoT Build 0:6ae2f7bca550 522
Azure.IoT Build 0:6ae2f7bca550 523 if (error == NULL)
Azure.IoT Build 0:6ae2f7bca550 524 {
AzureIoTClient 19:000ab4e6a2c1 525 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 526 }
Azure.IoT Build 0:6ae2f7bca550 527 else
Azure.IoT Build 0:6ae2f7bca550 528 {
AzureIoTClient 23:1111ee8bcba4 529 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 530 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 531 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 532 {
AzureIoTClient 23:1111ee8bcba4 533 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 534 }
AzureIoTClient 23:1111ee8bcba4 535 else
AzureIoTClient 23:1111ee8bcba4 536 {
AzureIoTClient 23:1111ee8bcba4 537 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 538 {
AzureIoTClient 23:1111ee8bcba4 539 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 540 }
AzureIoTClient 23:1111ee8bcba4 541 else
AzureIoTClient 23:1111ee8bcba4 542 {
AzureIoTClient 23:1111ee8bcba4 543 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 544 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 545 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 546 {
AzureIoTClient 23:1111ee8bcba4 547 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 548 }
AzureIoTClient 23:1111ee8bcba4 549 else
AzureIoTClient 23:1111ee8bcba4 550 {
AzureIoTClient 23:1111ee8bcba4 551 if (amqpvalue_get_fields(item_value, info_value) != 0)
AzureIoTClient 23:1111ee8bcba4 552 {
AzureIoTClient 23:1111ee8bcba4 553 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 554 }
AzureIoTClient 23:1111ee8bcba4 555 else
AzureIoTClient 23:1111ee8bcba4 556 {
AzureIoTClient 23:1111ee8bcba4 557 result = 0;
AzureIoTClient 23:1111ee8bcba4 558 }
AzureIoTClient 23:1111ee8bcba4 559 }
AzureIoTClient 23:1111ee8bcba4 560 }
Azure.IoT Build 0:6ae2f7bca550 561 }
Azure.IoT Build 0:6ae2f7bca550 562 }
Azure.IoT Build 0:6ae2f7bca550 563
Azure.IoT Build 0:6ae2f7bca550 564 return result;
Azure.IoT Build 0:6ae2f7bca550 565 }
Azure.IoT Build 0:6ae2f7bca550 566
Azure.IoT Build 0:6ae2f7bca550 567 int error_set_info(ERROR_HANDLE error, fields info_value)
Azure.IoT Build 0:6ae2f7bca550 568 {
Azure.IoT Build 0:6ae2f7bca550 569 int result;
Azure.IoT Build 0:6ae2f7bca550 570
Azure.IoT Build 0:6ae2f7bca550 571 if (error == NULL)
Azure.IoT Build 0:6ae2f7bca550 572 {
AzureIoTClient 19:000ab4e6a2c1 573 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 574 }
Azure.IoT Build 0:6ae2f7bca550 575 else
Azure.IoT Build 0:6ae2f7bca550 576 {
Azure.IoT Build 0:6ae2f7bca550 577 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
Azure.IoT Build 0:6ae2f7bca550 578 AMQP_VALUE info_amqp_value = amqpvalue_create_fields(info_value);
Azure.IoT Build 0:6ae2f7bca550 579 if (info_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 580 {
AzureIoTClient 19:000ab4e6a2c1 581 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 582 }
Azure.IoT Build 0:6ae2f7bca550 583 else
Azure.IoT Build 0:6ae2f7bca550 584 {
Azure.IoT Build 0:6ae2f7bca550 585 if (amqpvalue_set_composite_item(error_instance->composite_value, 2, info_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 586 {
AzureIoTClient 19:000ab4e6a2c1 587 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 588 }
Azure.IoT Build 0:6ae2f7bca550 589 else
Azure.IoT Build 0:6ae2f7bca550 590 {
Azure.IoT Build 0:6ae2f7bca550 591 result = 0;
Azure.IoT Build 0:6ae2f7bca550 592 }
Azure.IoT Build 0:6ae2f7bca550 593
Azure.IoT Build 0:6ae2f7bca550 594 amqpvalue_destroy(info_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 595 }
Azure.IoT Build 0:6ae2f7bca550 596 }
Azure.IoT Build 0:6ae2f7bca550 597
Azure.IoT Build 0:6ae2f7bca550 598 return result;
Azure.IoT Build 0:6ae2f7bca550 599 }
Azure.IoT Build 0:6ae2f7bca550 600
Azure.IoT Build 0:6ae2f7bca550 601
Azure.IoT Build 0:6ae2f7bca550 602 /* amqp-error */
Azure.IoT Build 0:6ae2f7bca550 603
Azure.IoT Build 0:6ae2f7bca550 604 AMQP_VALUE amqpvalue_create_amqp_error(amqp_error value)
Azure.IoT Build 0:6ae2f7bca550 605 {
Azure.IoT Build 0:6ae2f7bca550 606 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 607 }
Azure.IoT Build 0:6ae2f7bca550 608
Azure.IoT Build 0:6ae2f7bca550 609 /* connection-error */
Azure.IoT Build 0:6ae2f7bca550 610
Azure.IoT Build 0:6ae2f7bca550 611 AMQP_VALUE amqpvalue_create_connection_error(connection_error value)
Azure.IoT Build 0:6ae2f7bca550 612 {
Azure.IoT Build 0:6ae2f7bca550 613 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 614 }
Azure.IoT Build 0:6ae2f7bca550 615
Azure.IoT Build 0:6ae2f7bca550 616 /* session-error */
Azure.IoT Build 0:6ae2f7bca550 617
Azure.IoT Build 0:6ae2f7bca550 618 AMQP_VALUE amqpvalue_create_session_error(session_error value)
Azure.IoT Build 0:6ae2f7bca550 619 {
Azure.IoT Build 0:6ae2f7bca550 620 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 621 }
Azure.IoT Build 0:6ae2f7bca550 622
Azure.IoT Build 0:6ae2f7bca550 623 /* link-error */
Azure.IoT Build 0:6ae2f7bca550 624
Azure.IoT Build 0:6ae2f7bca550 625 AMQP_VALUE amqpvalue_create_link_error(link_error value)
Azure.IoT Build 0:6ae2f7bca550 626 {
Azure.IoT Build 0:6ae2f7bca550 627 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 628 }
Azure.IoT Build 0:6ae2f7bca550 629
Azure.IoT Build 0:6ae2f7bca550 630 /* open */
Azure.IoT Build 0:6ae2f7bca550 631
Azure.IoT Build 0:6ae2f7bca550 632 typedef struct OPEN_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 633 {
Azure.IoT Build 0:6ae2f7bca550 634 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 635 } OPEN_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 636
Azure.IoT Build 0:6ae2f7bca550 637 static OPEN_HANDLE open_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 638 {
AzureIoTClient 21:f9c433d8e6ca 639 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 640 if (open_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 641 {
Azure.IoT Build 0:6ae2f7bca550 642 open_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 643 }
Azure.IoT Build 0:6ae2f7bca550 644
Azure.IoT Build 0:6ae2f7bca550 645 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 646 }
Azure.IoT Build 0:6ae2f7bca550 647
Azure.IoT Build 0:6ae2f7bca550 648 OPEN_HANDLE open_create(const char* container_id_value)
Azure.IoT Build 0:6ae2f7bca550 649 {
AzureIoTClient 21:f9c433d8e6ca 650 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 651 if (open_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 652 {
Azure.IoT Build 0:6ae2f7bca550 653 open_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(16);
Azure.IoT Build 0:6ae2f7bca550 654 if (open_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 655 {
AzureIoTClient 21:f9c433d8e6ca 656 free(open_instance);
Azure.IoT Build 0:6ae2f7bca550 657 open_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 658 }
Azure.IoT Build 0:6ae2f7bca550 659 else
Azure.IoT Build 0:6ae2f7bca550 660 {
Azure.IoT Build 0:6ae2f7bca550 661 AMQP_VALUE container_id_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 662 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 663
Azure.IoT Build 0:6ae2f7bca550 664 container_id_amqp_value = amqpvalue_create_string(container_id_value);
Azure.IoT Build 0:6ae2f7bca550 665 if ((result == 0) && (amqpvalue_set_composite_item(open_instance->composite_value, 0, container_id_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 666 {
AzureIoTClient 19:000ab4e6a2c1 667 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 668 }
Azure.IoT Build 0:6ae2f7bca550 669
Azure.IoT Build 0:6ae2f7bca550 670 amqpvalue_destroy(container_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 671 }
Azure.IoT Build 0:6ae2f7bca550 672 }
Azure.IoT Build 0:6ae2f7bca550 673
Azure.IoT Build 0:6ae2f7bca550 674 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 675 }
Azure.IoT Build 0:6ae2f7bca550 676
Azure.IoT Build 0:6ae2f7bca550 677 OPEN_HANDLE open_clone(OPEN_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 678 {
AzureIoTClient 21:f9c433d8e6ca 679 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 680 if (open_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 681 {
Azure.IoT Build 0:6ae2f7bca550 682 open_instance->composite_value = amqpvalue_clone(((OPEN_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 683 if (open_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 684 {
AzureIoTClient 21:f9c433d8e6ca 685 free(open_instance);
Azure.IoT Build 0:6ae2f7bca550 686 open_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 687 }
Azure.IoT Build 0:6ae2f7bca550 688 }
Azure.IoT Build 0:6ae2f7bca550 689
Azure.IoT Build 0:6ae2f7bca550 690 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 691 }
Azure.IoT Build 0:6ae2f7bca550 692
Azure.IoT Build 0:6ae2f7bca550 693 void open_destroy(OPEN_HANDLE open)
Azure.IoT Build 0:6ae2f7bca550 694 {
Azure.IoT Build 0:6ae2f7bca550 695 if (open != NULL)
Azure.IoT Build 0:6ae2f7bca550 696 {
Azure.IoT Build 0:6ae2f7bca550 697 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
Azure.IoT Build 0:6ae2f7bca550 698 amqpvalue_destroy(open_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 699 free(open_instance);
Azure.IoT Build 0:6ae2f7bca550 700 }
Azure.IoT Build 0:6ae2f7bca550 701 }
Azure.IoT Build 0:6ae2f7bca550 702
Azure.IoT Build 0:6ae2f7bca550 703 AMQP_VALUE amqpvalue_create_open(OPEN_HANDLE open)
Azure.IoT Build 0:6ae2f7bca550 704 {
Azure.IoT Build 0:6ae2f7bca550 705 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 706
Azure.IoT Build 0:6ae2f7bca550 707 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 708 {
Azure.IoT Build 0:6ae2f7bca550 709 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 710 }
Azure.IoT Build 0:6ae2f7bca550 711 else
Azure.IoT Build 0:6ae2f7bca550 712 {
Azure.IoT Build 0:6ae2f7bca550 713 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
Azure.IoT Build 0:6ae2f7bca550 714 result = amqpvalue_clone(open_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 715 }
Azure.IoT Build 0:6ae2f7bca550 716
Azure.IoT Build 0:6ae2f7bca550 717 return result;
Azure.IoT Build 0:6ae2f7bca550 718 }
Azure.IoT Build 0:6ae2f7bca550 719
Azure.IoT Build 0:6ae2f7bca550 720 bool is_open_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 721 {
Azure.IoT Build 0:6ae2f7bca550 722 bool result;
Azure.IoT Build 0:6ae2f7bca550 723
Azure.IoT Build 0:6ae2f7bca550 724 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 725 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 726 (descriptor_ulong == 16))
Azure.IoT Build 0:6ae2f7bca550 727 {
Azure.IoT Build 0:6ae2f7bca550 728 result = true;
Azure.IoT Build 0:6ae2f7bca550 729 }
Azure.IoT Build 0:6ae2f7bca550 730 else
Azure.IoT Build 0:6ae2f7bca550 731 {
Azure.IoT Build 0:6ae2f7bca550 732 result = false;
Azure.IoT Build 0:6ae2f7bca550 733 }
Azure.IoT Build 0:6ae2f7bca550 734
Azure.IoT Build 0:6ae2f7bca550 735 return result;
Azure.IoT Build 0:6ae2f7bca550 736 }
Azure.IoT Build 0:6ae2f7bca550 737
Azure.IoT Build 0:6ae2f7bca550 738
Azure.IoT Build 0:6ae2f7bca550 739 int amqpvalue_get_open(AMQP_VALUE value, OPEN_HANDLE* open_handle)
Azure.IoT Build 0:6ae2f7bca550 740 {
Azure.IoT Build 0:6ae2f7bca550 741 int result;
Azure.IoT Build 0:6ae2f7bca550 742 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open_create_internal();
Azure.IoT Build 0:6ae2f7bca550 743 *open_handle = open_instance;
Azure.IoT Build 0:6ae2f7bca550 744 if (*open_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 745 {
AzureIoTClient 19:000ab4e6a2c1 746 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 747 }
Azure.IoT Build 0:6ae2f7bca550 748 else
Azure.IoT Build 0:6ae2f7bca550 749 {
Azure.IoT Build 0:6ae2f7bca550 750 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 751 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 752 {
Azure.IoT Build 0:6ae2f7bca550 753 open_destroy(*open_handle);
AzureIoTClient 19:000ab4e6a2c1 754 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 755 }
Azure.IoT Build 0:6ae2f7bca550 756 else
Azure.IoT Build 0:6ae2f7bca550 757 {
AzureIoTClient 23:1111ee8bcba4 758 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 759 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 760 {
AzureIoTClient 23:1111ee8bcba4 761 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 762 }
AzureIoTClient 23:1111ee8bcba4 763 else
AzureIoTClient 23:1111ee8bcba4 764 {
AzureIoTClient 23:1111ee8bcba4 765 do
AzureIoTClient 23:1111ee8bcba4 766 {
AzureIoTClient 23:1111ee8bcba4 767 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 768 /* container-id */
AzureIoTClient 23:1111ee8bcba4 769 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 770 {
AzureIoTClient 23:1111ee8bcba4 771 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 772 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 773 {
AzureIoTClient 23:1111ee8bcba4 774 {
AzureIoTClient 23:1111ee8bcba4 775 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 776 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 777 break;
AzureIoTClient 23:1111ee8bcba4 778 }
AzureIoTClient 23:1111ee8bcba4 779 }
AzureIoTClient 23:1111ee8bcba4 780 else
AzureIoTClient 23:1111ee8bcba4 781 {
AzureIoTClient 25:1101516ee67d 782 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 783 {
AzureIoTClient 25:1101516ee67d 784 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 785 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 786 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 787 break;
AzureIoTClient 23:1111ee8bcba4 788 }
AzureIoTClient 23:1111ee8bcba4 789 else
AzureIoTClient 23:1111ee8bcba4 790 {
AzureIoTClient 25:1101516ee67d 791 const char* container_id;
AzureIoTClient 23:1111ee8bcba4 792 if (amqpvalue_get_string(item_value, &container_id) != 0)
AzureIoTClient 23:1111ee8bcba4 793 {
AzureIoTClient 25:1101516ee67d 794 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 795 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 796 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 797 break;
AzureIoTClient 23:1111ee8bcba4 798 }
AzureIoTClient 23:1111ee8bcba4 799 }
AzureIoTClient 23:1111ee8bcba4 800
AzureIoTClient 23:1111ee8bcba4 801 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 802 }
AzureIoTClient 23:1111ee8bcba4 803 }
AzureIoTClient 23:1111ee8bcba4 804 else
AzureIoTClient 23:1111ee8bcba4 805 {
AzureIoTClient 23:1111ee8bcba4 806 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 807 }
AzureIoTClient 23:1111ee8bcba4 808 /* hostname */
AzureIoTClient 23:1111ee8bcba4 809 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 810 {
AzureIoTClient 23:1111ee8bcba4 811 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 812 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 813 {
AzureIoTClient 23:1111ee8bcba4 814 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 815 }
AzureIoTClient 23:1111ee8bcba4 816 else
AzureIoTClient 23:1111ee8bcba4 817 {
AzureIoTClient 25:1101516ee67d 818 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 819 {
AzureIoTClient 25:1101516ee67d 820 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 821 }
AzureIoTClient 25:1101516ee67d 822 else
AzureIoTClient 25:1101516ee67d 823 {
AzureIoTClient 25:1101516ee67d 824 const char* hostname;
AzureIoTClient 23:1111ee8bcba4 825 if (amqpvalue_get_string(item_value, &hostname) != 0)
AzureIoTClient 23:1111ee8bcba4 826 {
AzureIoTClient 25:1101516ee67d 827 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 828 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 829 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 830 break;
AzureIoTClient 23:1111ee8bcba4 831 }
AzureIoTClient 23:1111ee8bcba4 832 }
AzureIoTClient 23:1111ee8bcba4 833
AzureIoTClient 23:1111ee8bcba4 834 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 835 }
AzureIoTClient 23:1111ee8bcba4 836 }
AzureIoTClient 23:1111ee8bcba4 837 /* max-frame-size */
AzureIoTClient 23:1111ee8bcba4 838 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 839 {
AzureIoTClient 23:1111ee8bcba4 840 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 841 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 842 {
AzureIoTClient 23:1111ee8bcba4 843 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 844 }
AzureIoTClient 23:1111ee8bcba4 845 else
AzureIoTClient 23:1111ee8bcba4 846 {
AzureIoTClient 25:1101516ee67d 847 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 848 {
AzureIoTClient 25:1101516ee67d 849 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 850 }
AzureIoTClient 25:1101516ee67d 851 else
AzureIoTClient 25:1101516ee67d 852 {
AzureIoTClient 25:1101516ee67d 853 uint32_t max_frame_size;
AzureIoTClient 23:1111ee8bcba4 854 if (amqpvalue_get_uint(item_value, &max_frame_size) != 0)
AzureIoTClient 23:1111ee8bcba4 855 {
AzureIoTClient 25:1101516ee67d 856 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 857 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 858 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 859 break;
AzureIoTClient 23:1111ee8bcba4 860 }
AzureIoTClient 23:1111ee8bcba4 861 }
AzureIoTClient 23:1111ee8bcba4 862
AzureIoTClient 23:1111ee8bcba4 863 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 864 }
AzureIoTClient 23:1111ee8bcba4 865 }
AzureIoTClient 23:1111ee8bcba4 866 /* channel-max */
AzureIoTClient 23:1111ee8bcba4 867 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 868 {
AzureIoTClient 23:1111ee8bcba4 869 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 870 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 871 {
AzureIoTClient 23:1111ee8bcba4 872 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 873 }
AzureIoTClient 23:1111ee8bcba4 874 else
AzureIoTClient 23:1111ee8bcba4 875 {
AzureIoTClient 25:1101516ee67d 876 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 877 {
AzureIoTClient 25:1101516ee67d 878 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 879 }
AzureIoTClient 25:1101516ee67d 880 else
AzureIoTClient 25:1101516ee67d 881 {
AzureIoTClient 25:1101516ee67d 882 uint16_t channel_max;
AzureIoTClient 23:1111ee8bcba4 883 if (amqpvalue_get_ushort(item_value, &channel_max) != 0)
AzureIoTClient 23:1111ee8bcba4 884 {
AzureIoTClient 25:1101516ee67d 885 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 886 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 887 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 888 break;
AzureIoTClient 23:1111ee8bcba4 889 }
AzureIoTClient 23:1111ee8bcba4 890 }
AzureIoTClient 23:1111ee8bcba4 891
AzureIoTClient 23:1111ee8bcba4 892 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 893 }
AzureIoTClient 23:1111ee8bcba4 894 }
AzureIoTClient 23:1111ee8bcba4 895 /* idle-time-out */
AzureIoTClient 23:1111ee8bcba4 896 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 897 {
AzureIoTClient 23:1111ee8bcba4 898 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 899 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 900 {
AzureIoTClient 23:1111ee8bcba4 901 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 902 }
AzureIoTClient 23:1111ee8bcba4 903 else
AzureIoTClient 23:1111ee8bcba4 904 {
AzureIoTClient 25:1101516ee67d 905 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 906 {
AzureIoTClient 25:1101516ee67d 907 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 908 }
AzureIoTClient 25:1101516ee67d 909 else
AzureIoTClient 25:1101516ee67d 910 {
AzureIoTClient 25:1101516ee67d 911 milliseconds idle_time_out;
AzureIoTClient 23:1111ee8bcba4 912 if (amqpvalue_get_milliseconds(item_value, &idle_time_out) != 0)
AzureIoTClient 23:1111ee8bcba4 913 {
AzureIoTClient 25:1101516ee67d 914 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 915 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 916 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 917 break;
AzureIoTClient 23:1111ee8bcba4 918 }
AzureIoTClient 23:1111ee8bcba4 919 }
AzureIoTClient 23:1111ee8bcba4 920
AzureIoTClient 23:1111ee8bcba4 921 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 922 }
AzureIoTClient 23:1111ee8bcba4 923 }
AzureIoTClient 23:1111ee8bcba4 924 /* outgoing-locales */
AzureIoTClient 23:1111ee8bcba4 925 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 926 {
AzureIoTClient 23:1111ee8bcba4 927 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 928 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 929 {
AzureIoTClient 23:1111ee8bcba4 930 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 931 }
AzureIoTClient 23:1111ee8bcba4 932 else
AzureIoTClient 23:1111ee8bcba4 933 {
AzureIoTClient 25:1101516ee67d 934 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 935 {
AzureIoTClient 25:1101516ee67d 936 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 937 }
AzureIoTClient 25:1101516ee67d 938 else
AzureIoTClient 25:1101516ee67d 939 {
AzureIoTClient 25:1101516ee67d 940 ietf_language_tag outgoing_locales = NULL;
AzureIoTClient 23:1111ee8bcba4 941 AMQP_VALUE outgoing_locales_array;
AzureIoTClient 23:1111ee8bcba4 942 if ((amqpvalue_get_array(item_value, &outgoing_locales_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 943 (amqpvalue_get_ietf_language_tag(item_value, &outgoing_locales) != 0))
AzureIoTClient 23:1111ee8bcba4 944 {
AzureIoTClient 25:1101516ee67d 945 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 946 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 947 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 948 break;
AzureIoTClient 23:1111ee8bcba4 949 }
AzureIoTClient 23:1111ee8bcba4 950 }
AzureIoTClient 23:1111ee8bcba4 951
AzureIoTClient 23:1111ee8bcba4 952 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 953 }
AzureIoTClient 23:1111ee8bcba4 954 }
AzureIoTClient 23:1111ee8bcba4 955 /* incoming-locales */
AzureIoTClient 23:1111ee8bcba4 956 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 957 {
AzureIoTClient 23:1111ee8bcba4 958 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 23:1111ee8bcba4 959 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 960 {
AzureIoTClient 23:1111ee8bcba4 961 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 962 }
AzureIoTClient 23:1111ee8bcba4 963 else
AzureIoTClient 23:1111ee8bcba4 964 {
AzureIoTClient 25:1101516ee67d 965 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 966 {
AzureIoTClient 25:1101516ee67d 967 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 968 }
AzureIoTClient 25:1101516ee67d 969 else
AzureIoTClient 25:1101516ee67d 970 {
AzureIoTClient 25:1101516ee67d 971 ietf_language_tag incoming_locales = NULL;
AzureIoTClient 23:1111ee8bcba4 972 AMQP_VALUE incoming_locales_array;
AzureIoTClient 23:1111ee8bcba4 973 if ((amqpvalue_get_array(item_value, &incoming_locales_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 974 (amqpvalue_get_ietf_language_tag(item_value, &incoming_locales) != 0))
AzureIoTClient 23:1111ee8bcba4 975 {
AzureIoTClient 25:1101516ee67d 976 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 977 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 978 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 979 break;
AzureIoTClient 23:1111ee8bcba4 980 }
AzureIoTClient 23:1111ee8bcba4 981 }
AzureIoTClient 23:1111ee8bcba4 982
AzureIoTClient 23:1111ee8bcba4 983 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 984 }
AzureIoTClient 23:1111ee8bcba4 985 }
AzureIoTClient 23:1111ee8bcba4 986 /* offered-capabilities */
AzureIoTClient 23:1111ee8bcba4 987 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 988 {
AzureIoTClient 23:1111ee8bcba4 989 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 23:1111ee8bcba4 990 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 991 {
AzureIoTClient 23:1111ee8bcba4 992 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 993 }
AzureIoTClient 23:1111ee8bcba4 994 else
AzureIoTClient 23:1111ee8bcba4 995 {
AzureIoTClient 25:1101516ee67d 996 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 997 {
AzureIoTClient 25:1101516ee67d 998 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 999 }
AzureIoTClient 25:1101516ee67d 1000 else
AzureIoTClient 25:1101516ee67d 1001 {
AzureIoTClient 25:1101516ee67d 1002 const char* offered_capabilities = NULL;
AzureIoTClient 23:1111ee8bcba4 1003 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 23:1111ee8bcba4 1004 if ((amqpvalue_get_array(item_value, &offered_capabilities_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 1005 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 23:1111ee8bcba4 1006 {
AzureIoTClient 25:1101516ee67d 1007 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 1008 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 1009 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1010 break;
AzureIoTClient 23:1111ee8bcba4 1011 }
AzureIoTClient 23:1111ee8bcba4 1012 }
AzureIoTClient 23:1111ee8bcba4 1013
AzureIoTClient 23:1111ee8bcba4 1014 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 1015 }
AzureIoTClient 23:1111ee8bcba4 1016 }
AzureIoTClient 23:1111ee8bcba4 1017 /* desired-capabilities */
AzureIoTClient 23:1111ee8bcba4 1018 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 1019 {
AzureIoTClient 23:1111ee8bcba4 1020 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 23:1111ee8bcba4 1021 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1022 {
AzureIoTClient 23:1111ee8bcba4 1023 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 1024 }
AzureIoTClient 23:1111ee8bcba4 1025 else
AzureIoTClient 23:1111ee8bcba4 1026 {
AzureIoTClient 25:1101516ee67d 1027 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 1028 {
AzureIoTClient 25:1101516ee67d 1029 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 1030 }
AzureIoTClient 25:1101516ee67d 1031 else
AzureIoTClient 25:1101516ee67d 1032 {
AzureIoTClient 25:1101516ee67d 1033 const char* desired_capabilities = NULL;
AzureIoTClient 23:1111ee8bcba4 1034 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 23:1111ee8bcba4 1035 if ((amqpvalue_get_array(item_value, &desired_capabilities_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 1036 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 23:1111ee8bcba4 1037 {
AzureIoTClient 25:1101516ee67d 1038 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 1039 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 1040 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1041 break;
AzureIoTClient 23:1111ee8bcba4 1042 }
AzureIoTClient 23:1111ee8bcba4 1043 }
AzureIoTClient 23:1111ee8bcba4 1044
AzureIoTClient 23:1111ee8bcba4 1045 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 1046 }
AzureIoTClient 23:1111ee8bcba4 1047 }
AzureIoTClient 23:1111ee8bcba4 1048 /* properties */
AzureIoTClient 23:1111ee8bcba4 1049 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 1050 {
AzureIoTClient 23:1111ee8bcba4 1051 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 23:1111ee8bcba4 1052 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1053 {
AzureIoTClient 23:1111ee8bcba4 1054 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 1055 }
AzureIoTClient 23:1111ee8bcba4 1056 else
AzureIoTClient 23:1111ee8bcba4 1057 {
AzureIoTClient 25:1101516ee67d 1058 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 1059 {
AzureIoTClient 25:1101516ee67d 1060 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 1061 }
AzureIoTClient 25:1101516ee67d 1062 else
AzureIoTClient 25:1101516ee67d 1063 {
AzureIoTClient 25:1101516ee67d 1064 fields properties;
AzureIoTClient 23:1111ee8bcba4 1065 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 23:1111ee8bcba4 1066 {
AzureIoTClient 25:1101516ee67d 1067 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 1068 open_destroy(*open_handle);
AzureIoTClient 23:1111ee8bcba4 1069 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1070 break;
AzureIoTClient 23:1111ee8bcba4 1071 }
AzureIoTClient 23:1111ee8bcba4 1072 }
AzureIoTClient 23:1111ee8bcba4 1073
AzureIoTClient 23:1111ee8bcba4 1074 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 1075 }
AzureIoTClient 23:1111ee8bcba4 1076 }
AzureIoTClient 23:1111ee8bcba4 1077
AzureIoTClient 23:1111ee8bcba4 1078 open_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 1079
AzureIoTClient 23:1111ee8bcba4 1080 result = 0;
AzureIoTClient 23:1111ee8bcba4 1081 } while (0);
AzureIoTClient 23:1111ee8bcba4 1082 }
Azure.IoT Build 0:6ae2f7bca550 1083 }
Azure.IoT Build 0:6ae2f7bca550 1084 }
Azure.IoT Build 0:6ae2f7bca550 1085
Azure.IoT Build 0:6ae2f7bca550 1086 return result;
Azure.IoT Build 0:6ae2f7bca550 1087 }
Azure.IoT Build 0:6ae2f7bca550 1088
Azure.IoT Build 0:6ae2f7bca550 1089 int open_get_container_id(OPEN_HANDLE open, const char** container_id_value)
Azure.IoT Build 0:6ae2f7bca550 1090 {
Azure.IoT Build 0:6ae2f7bca550 1091 int result;
Azure.IoT Build 0:6ae2f7bca550 1092
Azure.IoT Build 0:6ae2f7bca550 1093 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1094 {
AzureIoTClient 19:000ab4e6a2c1 1095 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1096 }
Azure.IoT Build 0:6ae2f7bca550 1097 else
Azure.IoT Build 0:6ae2f7bca550 1098 {
AzureIoTClient 23:1111ee8bcba4 1099 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1100 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1101 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1102 {
AzureIoTClient 23:1111ee8bcba4 1103 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1104 }
AzureIoTClient 23:1111ee8bcba4 1105 else
AzureIoTClient 23:1111ee8bcba4 1106 {
AzureIoTClient 23:1111ee8bcba4 1107 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 1108 {
AzureIoTClient 23:1111ee8bcba4 1109 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1110 }
AzureIoTClient 23:1111ee8bcba4 1111 else
AzureIoTClient 23:1111ee8bcba4 1112 {
AzureIoTClient 23:1111ee8bcba4 1113 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 1114 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1115 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1116 {
AzureIoTClient 23:1111ee8bcba4 1117 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1118 }
AzureIoTClient 23:1111ee8bcba4 1119 else
AzureIoTClient 23:1111ee8bcba4 1120 {
AzureIoTClient 23:1111ee8bcba4 1121 if (amqpvalue_get_string(item_value, container_id_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1122 {
AzureIoTClient 23:1111ee8bcba4 1123 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1124 }
AzureIoTClient 23:1111ee8bcba4 1125 else
AzureIoTClient 23:1111ee8bcba4 1126 {
AzureIoTClient 23:1111ee8bcba4 1127 result = 0;
AzureIoTClient 23:1111ee8bcba4 1128 }
AzureIoTClient 23:1111ee8bcba4 1129 }
AzureIoTClient 23:1111ee8bcba4 1130 }
Azure.IoT Build 0:6ae2f7bca550 1131 }
Azure.IoT Build 0:6ae2f7bca550 1132 }
Azure.IoT Build 0:6ae2f7bca550 1133
Azure.IoT Build 0:6ae2f7bca550 1134 return result;
Azure.IoT Build 0:6ae2f7bca550 1135 }
Azure.IoT Build 0:6ae2f7bca550 1136
Azure.IoT Build 0:6ae2f7bca550 1137 int open_set_container_id(OPEN_HANDLE open, const char* container_id_value)
Azure.IoT Build 0:6ae2f7bca550 1138 {
Azure.IoT Build 0:6ae2f7bca550 1139 int result;
Azure.IoT Build 0:6ae2f7bca550 1140
Azure.IoT Build 0:6ae2f7bca550 1141 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1142 {
AzureIoTClient 19:000ab4e6a2c1 1143 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1144 }
Azure.IoT Build 0:6ae2f7bca550 1145 else
Azure.IoT Build 0:6ae2f7bca550 1146 {
Azure.IoT Build 0:6ae2f7bca550 1147 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
Azure.IoT Build 0:6ae2f7bca550 1148 AMQP_VALUE container_id_amqp_value = amqpvalue_create_string(container_id_value);
Azure.IoT Build 0:6ae2f7bca550 1149 if (container_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1150 {
AzureIoTClient 19:000ab4e6a2c1 1151 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1152 }
Azure.IoT Build 0:6ae2f7bca550 1153 else
Azure.IoT Build 0:6ae2f7bca550 1154 {
Azure.IoT Build 0:6ae2f7bca550 1155 if (amqpvalue_set_composite_item(open_instance->composite_value, 0, container_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1156 {
AzureIoTClient 19:000ab4e6a2c1 1157 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1158 }
Azure.IoT Build 0:6ae2f7bca550 1159 else
Azure.IoT Build 0:6ae2f7bca550 1160 {
Azure.IoT Build 0:6ae2f7bca550 1161 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1162 }
Azure.IoT Build 0:6ae2f7bca550 1163
Azure.IoT Build 0:6ae2f7bca550 1164 amqpvalue_destroy(container_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1165 }
Azure.IoT Build 0:6ae2f7bca550 1166 }
Azure.IoT Build 0:6ae2f7bca550 1167
Azure.IoT Build 0:6ae2f7bca550 1168 return result;
Azure.IoT Build 0:6ae2f7bca550 1169 }
Azure.IoT Build 0:6ae2f7bca550 1170
Azure.IoT Build 0:6ae2f7bca550 1171 int open_get_hostname(OPEN_HANDLE open, const char** hostname_value)
Azure.IoT Build 0:6ae2f7bca550 1172 {
Azure.IoT Build 0:6ae2f7bca550 1173 int result;
Azure.IoT Build 0:6ae2f7bca550 1174
Azure.IoT Build 0:6ae2f7bca550 1175 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1176 {
AzureIoTClient 19:000ab4e6a2c1 1177 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1178 }
Azure.IoT Build 0:6ae2f7bca550 1179 else
Azure.IoT Build 0:6ae2f7bca550 1180 {
AzureIoTClient 23:1111ee8bcba4 1181 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1182 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1183 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1184 {
AzureIoTClient 23:1111ee8bcba4 1185 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1186 }
AzureIoTClient 23:1111ee8bcba4 1187 else
AzureIoTClient 23:1111ee8bcba4 1188 {
AzureIoTClient 23:1111ee8bcba4 1189 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 1190 {
AzureIoTClient 23:1111ee8bcba4 1191 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1192 }
AzureIoTClient 23:1111ee8bcba4 1193 else
AzureIoTClient 23:1111ee8bcba4 1194 {
AzureIoTClient 23:1111ee8bcba4 1195 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 1196 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1197 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1198 {
AzureIoTClient 23:1111ee8bcba4 1199 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1200 }
AzureIoTClient 23:1111ee8bcba4 1201 else
AzureIoTClient 23:1111ee8bcba4 1202 {
AzureIoTClient 23:1111ee8bcba4 1203 if (amqpvalue_get_string(item_value, hostname_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1204 {
AzureIoTClient 23:1111ee8bcba4 1205 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1206 }
AzureIoTClient 23:1111ee8bcba4 1207 else
AzureIoTClient 23:1111ee8bcba4 1208 {
AzureIoTClient 23:1111ee8bcba4 1209 result = 0;
AzureIoTClient 23:1111ee8bcba4 1210 }
AzureIoTClient 23:1111ee8bcba4 1211 }
AzureIoTClient 23:1111ee8bcba4 1212 }
Azure.IoT Build 0:6ae2f7bca550 1213 }
Azure.IoT Build 0:6ae2f7bca550 1214 }
Azure.IoT Build 0:6ae2f7bca550 1215
Azure.IoT Build 0:6ae2f7bca550 1216 return result;
Azure.IoT Build 0:6ae2f7bca550 1217 }
Azure.IoT Build 0:6ae2f7bca550 1218
Azure.IoT Build 0:6ae2f7bca550 1219 int open_set_hostname(OPEN_HANDLE open, const char* hostname_value)
Azure.IoT Build 0:6ae2f7bca550 1220 {
Azure.IoT Build 0:6ae2f7bca550 1221 int result;
Azure.IoT Build 0:6ae2f7bca550 1222
Azure.IoT Build 0:6ae2f7bca550 1223 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1224 {
AzureIoTClient 19:000ab4e6a2c1 1225 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1226 }
Azure.IoT Build 0:6ae2f7bca550 1227 else
Azure.IoT Build 0:6ae2f7bca550 1228 {
Azure.IoT Build 0:6ae2f7bca550 1229 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
Azure.IoT Build 0:6ae2f7bca550 1230 AMQP_VALUE hostname_amqp_value = amqpvalue_create_string(hostname_value);
Azure.IoT Build 0:6ae2f7bca550 1231 if (hostname_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1232 {
AzureIoTClient 19:000ab4e6a2c1 1233 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1234 }
Azure.IoT Build 0:6ae2f7bca550 1235 else
Azure.IoT Build 0:6ae2f7bca550 1236 {
Azure.IoT Build 0:6ae2f7bca550 1237 if (amqpvalue_set_composite_item(open_instance->composite_value, 1, hostname_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1238 {
AzureIoTClient 19:000ab4e6a2c1 1239 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1240 }
Azure.IoT Build 0:6ae2f7bca550 1241 else
Azure.IoT Build 0:6ae2f7bca550 1242 {
Azure.IoT Build 0:6ae2f7bca550 1243 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1244 }
Azure.IoT Build 0:6ae2f7bca550 1245
Azure.IoT Build 0:6ae2f7bca550 1246 amqpvalue_destroy(hostname_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1247 }
Azure.IoT Build 0:6ae2f7bca550 1248 }
Azure.IoT Build 0:6ae2f7bca550 1249
Azure.IoT Build 0:6ae2f7bca550 1250 return result;
Azure.IoT Build 0:6ae2f7bca550 1251 }
Azure.IoT Build 0:6ae2f7bca550 1252
Azure.IoT Build 0:6ae2f7bca550 1253 int open_get_max_frame_size(OPEN_HANDLE open, uint32_t* max_frame_size_value)
Azure.IoT Build 0:6ae2f7bca550 1254 {
Azure.IoT Build 0:6ae2f7bca550 1255 int result;
Azure.IoT Build 0:6ae2f7bca550 1256
Azure.IoT Build 0:6ae2f7bca550 1257 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1258 {
AzureIoTClient 19:000ab4e6a2c1 1259 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1260 }
Azure.IoT Build 0:6ae2f7bca550 1261 else
Azure.IoT Build 0:6ae2f7bca550 1262 {
AzureIoTClient 23:1111ee8bcba4 1263 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1264 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1265 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1266 {
AzureIoTClient 23:1111ee8bcba4 1267 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1268 }
AzureIoTClient 23:1111ee8bcba4 1269 else
AzureIoTClient 23:1111ee8bcba4 1270 {
AzureIoTClient 23:1111ee8bcba4 1271 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 1272 {
AzureIoTClient 23:1111ee8bcba4 1273 *max_frame_size_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 1274 result = 0;
AzureIoTClient 23:1111ee8bcba4 1275 }
AzureIoTClient 23:1111ee8bcba4 1276 else
AzureIoTClient 23:1111ee8bcba4 1277 {
AzureIoTClient 23:1111ee8bcba4 1278 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 1279 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1280 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1281 {
AzureIoTClient 16:22a72cf8e416 1282 *max_frame_size_value = 4294967295u;
AzureIoTClient 16:22a72cf8e416 1283 result = 0;
AzureIoTClient 23:1111ee8bcba4 1284 }
AzureIoTClient 23:1111ee8bcba4 1285 else
AzureIoTClient 23:1111ee8bcba4 1286 {
AzureIoTClient 23:1111ee8bcba4 1287 if (amqpvalue_get_uint(item_value, max_frame_size_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1288 {
AzureIoTClient 23:1111ee8bcba4 1289 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 1290 {
AzureIoTClient 23:1111ee8bcba4 1291 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1292 }
AzureIoTClient 23:1111ee8bcba4 1293 else
AzureIoTClient 23:1111ee8bcba4 1294 {
AzureIoTClient 23:1111ee8bcba4 1295 *max_frame_size_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 1296 result = 0;
AzureIoTClient 23:1111ee8bcba4 1297 }
AzureIoTClient 23:1111ee8bcba4 1298 }
AzureIoTClient 23:1111ee8bcba4 1299 else
AzureIoTClient 23:1111ee8bcba4 1300 {
AzureIoTClient 23:1111ee8bcba4 1301 result = 0;
AzureIoTClient 23:1111ee8bcba4 1302 }
AzureIoTClient 23:1111ee8bcba4 1303 }
AzureIoTClient 23:1111ee8bcba4 1304 }
Azure.IoT Build 0:6ae2f7bca550 1305 }
Azure.IoT Build 0:6ae2f7bca550 1306 }
Azure.IoT Build 0:6ae2f7bca550 1307
Azure.IoT Build 0:6ae2f7bca550 1308 return result;
Azure.IoT Build 0:6ae2f7bca550 1309 }
Azure.IoT Build 0:6ae2f7bca550 1310
Azure.IoT Build 0:6ae2f7bca550 1311 int open_set_max_frame_size(OPEN_HANDLE open, uint32_t max_frame_size_value)
Azure.IoT Build 0:6ae2f7bca550 1312 {
Azure.IoT Build 0:6ae2f7bca550 1313 int result;
Azure.IoT Build 0:6ae2f7bca550 1314
Azure.IoT Build 0:6ae2f7bca550 1315 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1316 {
AzureIoTClient 19:000ab4e6a2c1 1317 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1318 }
Azure.IoT Build 0:6ae2f7bca550 1319 else
Azure.IoT Build 0:6ae2f7bca550 1320 {
Azure.IoT Build 0:6ae2f7bca550 1321 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
Azure.IoT Build 0:6ae2f7bca550 1322 AMQP_VALUE max_frame_size_amqp_value = amqpvalue_create_uint(max_frame_size_value);
Azure.IoT Build 0:6ae2f7bca550 1323 if (max_frame_size_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1324 {
AzureIoTClient 19:000ab4e6a2c1 1325 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1326 }
Azure.IoT Build 0:6ae2f7bca550 1327 else
Azure.IoT Build 0:6ae2f7bca550 1328 {
Azure.IoT Build 0:6ae2f7bca550 1329 if (amqpvalue_set_composite_item(open_instance->composite_value, 2, max_frame_size_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1330 {
AzureIoTClient 19:000ab4e6a2c1 1331 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1332 }
Azure.IoT Build 0:6ae2f7bca550 1333 else
Azure.IoT Build 0:6ae2f7bca550 1334 {
Azure.IoT Build 0:6ae2f7bca550 1335 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1336 }
Azure.IoT Build 0:6ae2f7bca550 1337
Azure.IoT Build 0:6ae2f7bca550 1338 amqpvalue_destroy(max_frame_size_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1339 }
Azure.IoT Build 0:6ae2f7bca550 1340 }
Azure.IoT Build 0:6ae2f7bca550 1341
Azure.IoT Build 0:6ae2f7bca550 1342 return result;
Azure.IoT Build 0:6ae2f7bca550 1343 }
Azure.IoT Build 0:6ae2f7bca550 1344
Azure.IoT Build 0:6ae2f7bca550 1345 int open_get_channel_max(OPEN_HANDLE open, uint16_t* channel_max_value)
Azure.IoT Build 0:6ae2f7bca550 1346 {
Azure.IoT Build 0:6ae2f7bca550 1347 int result;
Azure.IoT Build 0:6ae2f7bca550 1348
Azure.IoT Build 0:6ae2f7bca550 1349 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1350 {
AzureIoTClient 19:000ab4e6a2c1 1351 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1352 }
Azure.IoT Build 0:6ae2f7bca550 1353 else
Azure.IoT Build 0:6ae2f7bca550 1354 {
AzureIoTClient 23:1111ee8bcba4 1355 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1356 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1357 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1358 {
AzureIoTClient 23:1111ee8bcba4 1359 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1360 }
AzureIoTClient 23:1111ee8bcba4 1361 else
AzureIoTClient 23:1111ee8bcba4 1362 {
AzureIoTClient 23:1111ee8bcba4 1363 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 1364 {
AzureIoTClient 23:1111ee8bcba4 1365 *channel_max_value = 65535;
AzureIoTClient 23:1111ee8bcba4 1366 result = 0;
AzureIoTClient 23:1111ee8bcba4 1367 }
AzureIoTClient 23:1111ee8bcba4 1368 else
AzureIoTClient 23:1111ee8bcba4 1369 {
AzureIoTClient 23:1111ee8bcba4 1370 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 1371 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1372 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1373 {
AzureIoTClient 16:22a72cf8e416 1374 *channel_max_value = 65535;
AzureIoTClient 16:22a72cf8e416 1375 result = 0;
AzureIoTClient 23:1111ee8bcba4 1376 }
AzureIoTClient 23:1111ee8bcba4 1377 else
AzureIoTClient 23:1111ee8bcba4 1378 {
AzureIoTClient 23:1111ee8bcba4 1379 if (amqpvalue_get_ushort(item_value, channel_max_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1380 {
AzureIoTClient 23:1111ee8bcba4 1381 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 1382 {
AzureIoTClient 23:1111ee8bcba4 1383 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1384 }
AzureIoTClient 23:1111ee8bcba4 1385 else
AzureIoTClient 23:1111ee8bcba4 1386 {
AzureIoTClient 23:1111ee8bcba4 1387 *channel_max_value = 65535;
AzureIoTClient 23:1111ee8bcba4 1388 result = 0;
AzureIoTClient 23:1111ee8bcba4 1389 }
AzureIoTClient 23:1111ee8bcba4 1390 }
AzureIoTClient 23:1111ee8bcba4 1391 else
AzureIoTClient 23:1111ee8bcba4 1392 {
AzureIoTClient 23:1111ee8bcba4 1393 result = 0;
AzureIoTClient 23:1111ee8bcba4 1394 }
AzureIoTClient 23:1111ee8bcba4 1395 }
AzureIoTClient 23:1111ee8bcba4 1396 }
Azure.IoT Build 0:6ae2f7bca550 1397 }
Azure.IoT Build 0:6ae2f7bca550 1398 }
Azure.IoT Build 0:6ae2f7bca550 1399
Azure.IoT Build 0:6ae2f7bca550 1400 return result;
Azure.IoT Build 0:6ae2f7bca550 1401 }
Azure.IoT Build 0:6ae2f7bca550 1402
Azure.IoT Build 0:6ae2f7bca550 1403 int open_set_channel_max(OPEN_HANDLE open, uint16_t channel_max_value)
Azure.IoT Build 0:6ae2f7bca550 1404 {
Azure.IoT Build 0:6ae2f7bca550 1405 int result;
Azure.IoT Build 0:6ae2f7bca550 1406
Azure.IoT Build 0:6ae2f7bca550 1407 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1408 {
AzureIoTClient 19:000ab4e6a2c1 1409 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1410 }
Azure.IoT Build 0:6ae2f7bca550 1411 else
Azure.IoT Build 0:6ae2f7bca550 1412 {
Azure.IoT Build 0:6ae2f7bca550 1413 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
Azure.IoT Build 0:6ae2f7bca550 1414 AMQP_VALUE channel_max_amqp_value = amqpvalue_create_ushort(channel_max_value);
Azure.IoT Build 0:6ae2f7bca550 1415 if (channel_max_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1416 {
AzureIoTClient 19:000ab4e6a2c1 1417 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1418 }
Azure.IoT Build 0:6ae2f7bca550 1419 else
Azure.IoT Build 0:6ae2f7bca550 1420 {
Azure.IoT Build 0:6ae2f7bca550 1421 if (amqpvalue_set_composite_item(open_instance->composite_value, 3, channel_max_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1422 {
AzureIoTClient 19:000ab4e6a2c1 1423 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1424 }
Azure.IoT Build 0:6ae2f7bca550 1425 else
Azure.IoT Build 0:6ae2f7bca550 1426 {
Azure.IoT Build 0:6ae2f7bca550 1427 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1428 }
Azure.IoT Build 0:6ae2f7bca550 1429
Azure.IoT Build 0:6ae2f7bca550 1430 amqpvalue_destroy(channel_max_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1431 }
Azure.IoT Build 0:6ae2f7bca550 1432 }
Azure.IoT Build 0:6ae2f7bca550 1433
Azure.IoT Build 0:6ae2f7bca550 1434 return result;
Azure.IoT Build 0:6ae2f7bca550 1435 }
Azure.IoT Build 0:6ae2f7bca550 1436
Azure.IoT Build 0:6ae2f7bca550 1437 int open_get_idle_time_out(OPEN_HANDLE open, milliseconds* idle_time_out_value)
Azure.IoT Build 0:6ae2f7bca550 1438 {
Azure.IoT Build 0:6ae2f7bca550 1439 int result;
Azure.IoT Build 0:6ae2f7bca550 1440
Azure.IoT Build 0:6ae2f7bca550 1441 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1442 {
AzureIoTClient 19:000ab4e6a2c1 1443 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1444 }
Azure.IoT Build 0:6ae2f7bca550 1445 else
Azure.IoT Build 0:6ae2f7bca550 1446 {
AzureIoTClient 23:1111ee8bcba4 1447 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1448 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1449 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1450 {
AzureIoTClient 23:1111ee8bcba4 1451 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1452 }
AzureIoTClient 23:1111ee8bcba4 1453 else
AzureIoTClient 23:1111ee8bcba4 1454 {
AzureIoTClient 23:1111ee8bcba4 1455 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 1456 {
AzureIoTClient 23:1111ee8bcba4 1457 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1458 }
AzureIoTClient 23:1111ee8bcba4 1459 else
AzureIoTClient 23:1111ee8bcba4 1460 {
AzureIoTClient 23:1111ee8bcba4 1461 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 1462 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1463 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1464 {
AzureIoTClient 23:1111ee8bcba4 1465 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1466 }
AzureIoTClient 23:1111ee8bcba4 1467 else
AzureIoTClient 23:1111ee8bcba4 1468 {
AzureIoTClient 23:1111ee8bcba4 1469 if (amqpvalue_get_milliseconds(item_value, idle_time_out_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1470 {
AzureIoTClient 23:1111ee8bcba4 1471 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1472 }
AzureIoTClient 23:1111ee8bcba4 1473 else
AzureIoTClient 23:1111ee8bcba4 1474 {
AzureIoTClient 23:1111ee8bcba4 1475 result = 0;
AzureIoTClient 23:1111ee8bcba4 1476 }
AzureIoTClient 23:1111ee8bcba4 1477 }
AzureIoTClient 23:1111ee8bcba4 1478 }
Azure.IoT Build 0:6ae2f7bca550 1479 }
Azure.IoT Build 0:6ae2f7bca550 1480 }
Azure.IoT Build 0:6ae2f7bca550 1481
Azure.IoT Build 0:6ae2f7bca550 1482 return result;
Azure.IoT Build 0:6ae2f7bca550 1483 }
Azure.IoT Build 0:6ae2f7bca550 1484
Azure.IoT Build 0:6ae2f7bca550 1485 int open_set_idle_time_out(OPEN_HANDLE open, milliseconds idle_time_out_value)
Azure.IoT Build 0:6ae2f7bca550 1486 {
Azure.IoT Build 0:6ae2f7bca550 1487 int result;
Azure.IoT Build 0:6ae2f7bca550 1488
Azure.IoT Build 0:6ae2f7bca550 1489 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1490 {
AzureIoTClient 19:000ab4e6a2c1 1491 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1492 }
Azure.IoT Build 0:6ae2f7bca550 1493 else
Azure.IoT Build 0:6ae2f7bca550 1494 {
Azure.IoT Build 0:6ae2f7bca550 1495 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
Azure.IoT Build 0:6ae2f7bca550 1496 AMQP_VALUE idle_time_out_amqp_value = amqpvalue_create_milliseconds(idle_time_out_value);
Azure.IoT Build 0:6ae2f7bca550 1497 if (idle_time_out_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1498 {
AzureIoTClient 19:000ab4e6a2c1 1499 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1500 }
Azure.IoT Build 0:6ae2f7bca550 1501 else
Azure.IoT Build 0:6ae2f7bca550 1502 {
Azure.IoT Build 0:6ae2f7bca550 1503 if (amqpvalue_set_composite_item(open_instance->composite_value, 4, idle_time_out_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1504 {
AzureIoTClient 19:000ab4e6a2c1 1505 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1506 }
Azure.IoT Build 0:6ae2f7bca550 1507 else
Azure.IoT Build 0:6ae2f7bca550 1508 {
Azure.IoT Build 0:6ae2f7bca550 1509 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1510 }
Azure.IoT Build 0:6ae2f7bca550 1511
Azure.IoT Build 0:6ae2f7bca550 1512 amqpvalue_destroy(idle_time_out_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1513 }
Azure.IoT Build 0:6ae2f7bca550 1514 }
Azure.IoT Build 0:6ae2f7bca550 1515
Azure.IoT Build 0:6ae2f7bca550 1516 return result;
Azure.IoT Build 0:6ae2f7bca550 1517 }
Azure.IoT Build 0:6ae2f7bca550 1518
Azure.IoT Build 0:6ae2f7bca550 1519 int open_get_outgoing_locales(OPEN_HANDLE open, AMQP_VALUE* outgoing_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1520 {
Azure.IoT Build 0:6ae2f7bca550 1521 int result;
Azure.IoT Build 0:6ae2f7bca550 1522
Azure.IoT Build 0:6ae2f7bca550 1523 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1524 {
AzureIoTClient 19:000ab4e6a2c1 1525 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1526 }
Azure.IoT Build 0:6ae2f7bca550 1527 else
Azure.IoT Build 0:6ae2f7bca550 1528 {
AzureIoTClient 23:1111ee8bcba4 1529 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1530 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1531 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1532 {
AzureIoTClient 23:1111ee8bcba4 1533 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1534 }
AzureIoTClient 23:1111ee8bcba4 1535 else
AzureIoTClient 23:1111ee8bcba4 1536 {
AzureIoTClient 23:1111ee8bcba4 1537 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 1538 {
AzureIoTClient 23:1111ee8bcba4 1539 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1540 }
AzureIoTClient 23:1111ee8bcba4 1541 else
AzureIoTClient 23:1111ee8bcba4 1542 {
AzureIoTClient 23:1111ee8bcba4 1543 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 1544 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1545 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1546 {
AzureIoTClient 23:1111ee8bcba4 1547 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1548 }
AzureIoTClient 23:1111ee8bcba4 1549 else
AzureIoTClient 23:1111ee8bcba4 1550 {
AzureIoTClient 23:1111ee8bcba4 1551 if (amqpvalue_get_array(item_value, outgoing_locales_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1552 {
AzureIoTClient 23:1111ee8bcba4 1553 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1554 }
AzureIoTClient 23:1111ee8bcba4 1555 else
AzureIoTClient 23:1111ee8bcba4 1556 {
AzureIoTClient 23:1111ee8bcba4 1557 result = 0;
AzureIoTClient 23:1111ee8bcba4 1558 }
AzureIoTClient 23:1111ee8bcba4 1559 }
AzureIoTClient 23:1111ee8bcba4 1560 }
Azure.IoT Build 0:6ae2f7bca550 1561 }
Azure.IoT Build 0:6ae2f7bca550 1562 }
Azure.IoT Build 0:6ae2f7bca550 1563
Azure.IoT Build 0:6ae2f7bca550 1564 return result;
Azure.IoT Build 0:6ae2f7bca550 1565 }
Azure.IoT Build 0:6ae2f7bca550 1566
Azure.IoT Build 0:6ae2f7bca550 1567 int open_set_outgoing_locales(OPEN_HANDLE open, AMQP_VALUE outgoing_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1568 {
Azure.IoT Build 0:6ae2f7bca550 1569 int result;
Azure.IoT Build 0:6ae2f7bca550 1570
Azure.IoT Build 0:6ae2f7bca550 1571 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1572 {
AzureIoTClient 19:000ab4e6a2c1 1573 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1574 }
Azure.IoT Build 0:6ae2f7bca550 1575 else
Azure.IoT Build 0:6ae2f7bca550 1576 {
Azure.IoT Build 0:6ae2f7bca550 1577 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1578 AMQP_VALUE outgoing_locales_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1579 if (outgoing_locales_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1580 {
AzureIoTClient 23:1111ee8bcba4 1581 outgoing_locales_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1582 }
AzureIoTClient 23:1111ee8bcba4 1583 else
AzureIoTClient 23:1111ee8bcba4 1584 {
AzureIoTClient 23:1111ee8bcba4 1585 outgoing_locales_amqp_value = amqpvalue_clone(outgoing_locales_value);
AzureIoTClient 23:1111ee8bcba4 1586 }
Azure.IoT Build 0:6ae2f7bca550 1587 if (outgoing_locales_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1588 {
AzureIoTClient 19:000ab4e6a2c1 1589 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1590 }
Azure.IoT Build 0:6ae2f7bca550 1591 else
Azure.IoT Build 0:6ae2f7bca550 1592 {
Azure.IoT Build 0:6ae2f7bca550 1593 if (amqpvalue_set_composite_item(open_instance->composite_value, 5, outgoing_locales_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1594 {
AzureIoTClient 19:000ab4e6a2c1 1595 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1596 }
Azure.IoT Build 0:6ae2f7bca550 1597 else
Azure.IoT Build 0:6ae2f7bca550 1598 {
Azure.IoT Build 0:6ae2f7bca550 1599 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1600 }
Azure.IoT Build 0:6ae2f7bca550 1601
Azure.IoT Build 0:6ae2f7bca550 1602 amqpvalue_destroy(outgoing_locales_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1603 }
Azure.IoT Build 0:6ae2f7bca550 1604 }
Azure.IoT Build 0:6ae2f7bca550 1605
Azure.IoT Build 0:6ae2f7bca550 1606 return result;
Azure.IoT Build 0:6ae2f7bca550 1607 }
Azure.IoT Build 0:6ae2f7bca550 1608
Azure.IoT Build 0:6ae2f7bca550 1609 int open_get_incoming_locales(OPEN_HANDLE open, AMQP_VALUE* incoming_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1610 {
Azure.IoT Build 0:6ae2f7bca550 1611 int result;
Azure.IoT Build 0:6ae2f7bca550 1612
Azure.IoT Build 0:6ae2f7bca550 1613 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1614 {
AzureIoTClient 19:000ab4e6a2c1 1615 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1616 }
Azure.IoT Build 0:6ae2f7bca550 1617 else
Azure.IoT Build 0:6ae2f7bca550 1618 {
AzureIoTClient 23:1111ee8bcba4 1619 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1620 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1621 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1622 {
AzureIoTClient 23:1111ee8bcba4 1623 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1624 }
AzureIoTClient 23:1111ee8bcba4 1625 else
AzureIoTClient 23:1111ee8bcba4 1626 {
AzureIoTClient 23:1111ee8bcba4 1627 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 1628 {
AzureIoTClient 23:1111ee8bcba4 1629 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1630 }
AzureIoTClient 23:1111ee8bcba4 1631 else
AzureIoTClient 23:1111ee8bcba4 1632 {
AzureIoTClient 23:1111ee8bcba4 1633 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 6);
AzureIoTClient 23:1111ee8bcba4 1634 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1635 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1636 {
AzureIoTClient 23:1111ee8bcba4 1637 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1638 }
AzureIoTClient 23:1111ee8bcba4 1639 else
AzureIoTClient 23:1111ee8bcba4 1640 {
AzureIoTClient 23:1111ee8bcba4 1641 if (amqpvalue_get_array(item_value, incoming_locales_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1642 {
AzureIoTClient 23:1111ee8bcba4 1643 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1644 }
AzureIoTClient 23:1111ee8bcba4 1645 else
AzureIoTClient 23:1111ee8bcba4 1646 {
AzureIoTClient 23:1111ee8bcba4 1647 result = 0;
AzureIoTClient 23:1111ee8bcba4 1648 }
AzureIoTClient 23:1111ee8bcba4 1649 }
AzureIoTClient 23:1111ee8bcba4 1650 }
Azure.IoT Build 0:6ae2f7bca550 1651 }
Azure.IoT Build 0:6ae2f7bca550 1652 }
Azure.IoT Build 0:6ae2f7bca550 1653
Azure.IoT Build 0:6ae2f7bca550 1654 return result;
Azure.IoT Build 0:6ae2f7bca550 1655 }
Azure.IoT Build 0:6ae2f7bca550 1656
Azure.IoT Build 0:6ae2f7bca550 1657 int open_set_incoming_locales(OPEN_HANDLE open, AMQP_VALUE incoming_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1658 {
Azure.IoT Build 0:6ae2f7bca550 1659 int result;
Azure.IoT Build 0:6ae2f7bca550 1660
Azure.IoT Build 0:6ae2f7bca550 1661 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1662 {
AzureIoTClient 19:000ab4e6a2c1 1663 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1664 }
Azure.IoT Build 0:6ae2f7bca550 1665 else
Azure.IoT Build 0:6ae2f7bca550 1666 {
Azure.IoT Build 0:6ae2f7bca550 1667 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1668 AMQP_VALUE incoming_locales_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1669 if (incoming_locales_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1670 {
AzureIoTClient 23:1111ee8bcba4 1671 incoming_locales_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1672 }
AzureIoTClient 23:1111ee8bcba4 1673 else
AzureIoTClient 23:1111ee8bcba4 1674 {
AzureIoTClient 23:1111ee8bcba4 1675 incoming_locales_amqp_value = amqpvalue_clone(incoming_locales_value);
AzureIoTClient 23:1111ee8bcba4 1676 }
Azure.IoT Build 0:6ae2f7bca550 1677 if (incoming_locales_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1678 {
AzureIoTClient 19:000ab4e6a2c1 1679 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1680 }
Azure.IoT Build 0:6ae2f7bca550 1681 else
Azure.IoT Build 0:6ae2f7bca550 1682 {
Azure.IoT Build 0:6ae2f7bca550 1683 if (amqpvalue_set_composite_item(open_instance->composite_value, 6, incoming_locales_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1684 {
AzureIoTClient 19:000ab4e6a2c1 1685 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1686 }
Azure.IoT Build 0:6ae2f7bca550 1687 else
Azure.IoT Build 0:6ae2f7bca550 1688 {
Azure.IoT Build 0:6ae2f7bca550 1689 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1690 }
Azure.IoT Build 0:6ae2f7bca550 1691
Azure.IoT Build 0:6ae2f7bca550 1692 amqpvalue_destroy(incoming_locales_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1693 }
Azure.IoT Build 0:6ae2f7bca550 1694 }
Azure.IoT Build 0:6ae2f7bca550 1695
Azure.IoT Build 0:6ae2f7bca550 1696 return result;
Azure.IoT Build 0:6ae2f7bca550 1697 }
Azure.IoT Build 0:6ae2f7bca550 1698
Azure.IoT Build 0:6ae2f7bca550 1699 int open_get_offered_capabilities(OPEN_HANDLE open, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1700 {
Azure.IoT Build 0:6ae2f7bca550 1701 int result;
Azure.IoT Build 0:6ae2f7bca550 1702
Azure.IoT Build 0:6ae2f7bca550 1703 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1704 {
AzureIoTClient 19:000ab4e6a2c1 1705 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1706 }
Azure.IoT Build 0:6ae2f7bca550 1707 else
Azure.IoT Build 0:6ae2f7bca550 1708 {
AzureIoTClient 23:1111ee8bcba4 1709 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1710 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1711 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1712 {
AzureIoTClient 23:1111ee8bcba4 1713 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1714 }
AzureIoTClient 23:1111ee8bcba4 1715 else
AzureIoTClient 23:1111ee8bcba4 1716 {
AzureIoTClient 23:1111ee8bcba4 1717 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 1718 {
AzureIoTClient 23:1111ee8bcba4 1719 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1720 }
AzureIoTClient 23:1111ee8bcba4 1721 else
AzureIoTClient 23:1111ee8bcba4 1722 {
AzureIoTClient 23:1111ee8bcba4 1723 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 7);
AzureIoTClient 23:1111ee8bcba4 1724 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1725 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1726 {
AzureIoTClient 23:1111ee8bcba4 1727 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1728 }
AzureIoTClient 23:1111ee8bcba4 1729 else
AzureIoTClient 23:1111ee8bcba4 1730 {
AzureIoTClient 23:1111ee8bcba4 1731 if (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1732 {
AzureIoTClient 23:1111ee8bcba4 1733 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1734 }
AzureIoTClient 23:1111ee8bcba4 1735 else
AzureIoTClient 23:1111ee8bcba4 1736 {
AzureIoTClient 23:1111ee8bcba4 1737 result = 0;
AzureIoTClient 23:1111ee8bcba4 1738 }
AzureIoTClient 23:1111ee8bcba4 1739 }
AzureIoTClient 23:1111ee8bcba4 1740 }
Azure.IoT Build 0:6ae2f7bca550 1741 }
Azure.IoT Build 0:6ae2f7bca550 1742 }
Azure.IoT Build 0:6ae2f7bca550 1743
Azure.IoT Build 0:6ae2f7bca550 1744 return result;
Azure.IoT Build 0:6ae2f7bca550 1745 }
Azure.IoT Build 0:6ae2f7bca550 1746
Azure.IoT Build 0:6ae2f7bca550 1747 int open_set_offered_capabilities(OPEN_HANDLE open, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1748 {
Azure.IoT Build 0:6ae2f7bca550 1749 int result;
Azure.IoT Build 0:6ae2f7bca550 1750
Azure.IoT Build 0:6ae2f7bca550 1751 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1752 {
AzureIoTClient 19:000ab4e6a2c1 1753 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1754 }
Azure.IoT Build 0:6ae2f7bca550 1755 else
Azure.IoT Build 0:6ae2f7bca550 1756 {
Azure.IoT Build 0:6ae2f7bca550 1757 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1758 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1759 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1760 {
AzureIoTClient 23:1111ee8bcba4 1761 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1762 }
AzureIoTClient 23:1111ee8bcba4 1763 else
AzureIoTClient 23:1111ee8bcba4 1764 {
AzureIoTClient 23:1111ee8bcba4 1765 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 1766 }
Azure.IoT Build 0:6ae2f7bca550 1767 if (offered_capabilities_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1768 {
AzureIoTClient 19:000ab4e6a2c1 1769 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1770 }
Azure.IoT Build 0:6ae2f7bca550 1771 else
Azure.IoT Build 0:6ae2f7bca550 1772 {
Azure.IoT Build 0:6ae2f7bca550 1773 if (amqpvalue_set_composite_item(open_instance->composite_value, 7, offered_capabilities_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1774 {
AzureIoTClient 19:000ab4e6a2c1 1775 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1776 }
Azure.IoT Build 0:6ae2f7bca550 1777 else
Azure.IoT Build 0:6ae2f7bca550 1778 {
Azure.IoT Build 0:6ae2f7bca550 1779 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1780 }
Azure.IoT Build 0:6ae2f7bca550 1781
Azure.IoT Build 0:6ae2f7bca550 1782 amqpvalue_destroy(offered_capabilities_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1783 }
Azure.IoT Build 0:6ae2f7bca550 1784 }
Azure.IoT Build 0:6ae2f7bca550 1785
Azure.IoT Build 0:6ae2f7bca550 1786 return result;
Azure.IoT Build 0:6ae2f7bca550 1787 }
Azure.IoT Build 0:6ae2f7bca550 1788
Azure.IoT Build 0:6ae2f7bca550 1789 int open_get_desired_capabilities(OPEN_HANDLE open, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1790 {
Azure.IoT Build 0:6ae2f7bca550 1791 int result;
Azure.IoT Build 0:6ae2f7bca550 1792
Azure.IoT Build 0:6ae2f7bca550 1793 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1794 {
AzureIoTClient 19:000ab4e6a2c1 1795 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1796 }
Azure.IoT Build 0:6ae2f7bca550 1797 else
Azure.IoT Build 0:6ae2f7bca550 1798 {
AzureIoTClient 23:1111ee8bcba4 1799 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1800 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1801 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1802 {
AzureIoTClient 23:1111ee8bcba4 1803 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1804 }
AzureIoTClient 23:1111ee8bcba4 1805 else
AzureIoTClient 23:1111ee8bcba4 1806 {
AzureIoTClient 23:1111ee8bcba4 1807 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 1808 {
AzureIoTClient 23:1111ee8bcba4 1809 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1810 }
AzureIoTClient 23:1111ee8bcba4 1811 else
AzureIoTClient 23:1111ee8bcba4 1812 {
AzureIoTClient 23:1111ee8bcba4 1813 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 8);
AzureIoTClient 23:1111ee8bcba4 1814 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1815 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1816 {
AzureIoTClient 23:1111ee8bcba4 1817 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1818 }
AzureIoTClient 23:1111ee8bcba4 1819 else
AzureIoTClient 23:1111ee8bcba4 1820 {
AzureIoTClient 23:1111ee8bcba4 1821 if (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1822 {
AzureIoTClient 23:1111ee8bcba4 1823 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1824 }
AzureIoTClient 23:1111ee8bcba4 1825 else
AzureIoTClient 23:1111ee8bcba4 1826 {
AzureIoTClient 23:1111ee8bcba4 1827 result = 0;
AzureIoTClient 23:1111ee8bcba4 1828 }
AzureIoTClient 23:1111ee8bcba4 1829 }
AzureIoTClient 23:1111ee8bcba4 1830 }
Azure.IoT Build 0:6ae2f7bca550 1831 }
Azure.IoT Build 0:6ae2f7bca550 1832 }
Azure.IoT Build 0:6ae2f7bca550 1833
Azure.IoT Build 0:6ae2f7bca550 1834 return result;
Azure.IoT Build 0:6ae2f7bca550 1835 }
Azure.IoT Build 0:6ae2f7bca550 1836
Azure.IoT Build 0:6ae2f7bca550 1837 int open_set_desired_capabilities(OPEN_HANDLE open, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1838 {
Azure.IoT Build 0:6ae2f7bca550 1839 int result;
Azure.IoT Build 0:6ae2f7bca550 1840
Azure.IoT Build 0:6ae2f7bca550 1841 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1842 {
AzureIoTClient 19:000ab4e6a2c1 1843 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1844 }
Azure.IoT Build 0:6ae2f7bca550 1845 else
Azure.IoT Build 0:6ae2f7bca550 1846 {
Azure.IoT Build 0:6ae2f7bca550 1847 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1848 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1849 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1850 {
AzureIoTClient 23:1111ee8bcba4 1851 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1852 }
AzureIoTClient 23:1111ee8bcba4 1853 else
AzureIoTClient 23:1111ee8bcba4 1854 {
AzureIoTClient 23:1111ee8bcba4 1855 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 1856 }
Azure.IoT Build 0:6ae2f7bca550 1857 if (desired_capabilities_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1858 {
AzureIoTClient 19:000ab4e6a2c1 1859 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1860 }
Azure.IoT Build 0:6ae2f7bca550 1861 else
Azure.IoT Build 0:6ae2f7bca550 1862 {
Azure.IoT Build 0:6ae2f7bca550 1863 if (amqpvalue_set_composite_item(open_instance->composite_value, 8, desired_capabilities_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1864 {
AzureIoTClient 19:000ab4e6a2c1 1865 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1866 }
Azure.IoT Build 0:6ae2f7bca550 1867 else
Azure.IoT Build 0:6ae2f7bca550 1868 {
Azure.IoT Build 0:6ae2f7bca550 1869 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1870 }
Azure.IoT Build 0:6ae2f7bca550 1871
Azure.IoT Build 0:6ae2f7bca550 1872 amqpvalue_destroy(desired_capabilities_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1873 }
Azure.IoT Build 0:6ae2f7bca550 1874 }
Azure.IoT Build 0:6ae2f7bca550 1875
Azure.IoT Build 0:6ae2f7bca550 1876 return result;
Azure.IoT Build 0:6ae2f7bca550 1877 }
Azure.IoT Build 0:6ae2f7bca550 1878
Azure.IoT Build 0:6ae2f7bca550 1879 int open_get_properties(OPEN_HANDLE open, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 1880 {
Azure.IoT Build 0:6ae2f7bca550 1881 int result;
Azure.IoT Build 0:6ae2f7bca550 1882
Azure.IoT Build 0:6ae2f7bca550 1883 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1884 {
AzureIoTClient 19:000ab4e6a2c1 1885 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1886 }
Azure.IoT Build 0:6ae2f7bca550 1887 else
Azure.IoT Build 0:6ae2f7bca550 1888 {
AzureIoTClient 23:1111ee8bcba4 1889 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 1890 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1891 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1892 {
AzureIoTClient 23:1111ee8bcba4 1893 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1894 }
AzureIoTClient 23:1111ee8bcba4 1895 else
AzureIoTClient 23:1111ee8bcba4 1896 {
AzureIoTClient 23:1111ee8bcba4 1897 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 1898 {
AzureIoTClient 23:1111ee8bcba4 1899 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1900 }
AzureIoTClient 23:1111ee8bcba4 1901 else
AzureIoTClient 23:1111ee8bcba4 1902 {
AzureIoTClient 23:1111ee8bcba4 1903 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 9);
AzureIoTClient 23:1111ee8bcba4 1904 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 1905 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 1906 {
AzureIoTClient 23:1111ee8bcba4 1907 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1908 }
AzureIoTClient 23:1111ee8bcba4 1909 else
AzureIoTClient 23:1111ee8bcba4 1910 {
AzureIoTClient 23:1111ee8bcba4 1911 if (amqpvalue_get_fields(item_value, properties_value) != 0)
AzureIoTClient 23:1111ee8bcba4 1912 {
AzureIoTClient 23:1111ee8bcba4 1913 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1914 }
AzureIoTClient 23:1111ee8bcba4 1915 else
AzureIoTClient 23:1111ee8bcba4 1916 {
AzureIoTClient 23:1111ee8bcba4 1917 result = 0;
AzureIoTClient 23:1111ee8bcba4 1918 }
AzureIoTClient 23:1111ee8bcba4 1919 }
AzureIoTClient 23:1111ee8bcba4 1920 }
Azure.IoT Build 0:6ae2f7bca550 1921 }
Azure.IoT Build 0:6ae2f7bca550 1922 }
Azure.IoT Build 0:6ae2f7bca550 1923
Azure.IoT Build 0:6ae2f7bca550 1924 return result;
Azure.IoT Build 0:6ae2f7bca550 1925 }
Azure.IoT Build 0:6ae2f7bca550 1926
Azure.IoT Build 0:6ae2f7bca550 1927 int open_set_properties(OPEN_HANDLE open, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 1928 {
Azure.IoT Build 0:6ae2f7bca550 1929 int result;
Azure.IoT Build 0:6ae2f7bca550 1930
Azure.IoT Build 0:6ae2f7bca550 1931 if (open == NULL)
Azure.IoT Build 0:6ae2f7bca550 1932 {
AzureIoTClient 19:000ab4e6a2c1 1933 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1934 }
Azure.IoT Build 0:6ae2f7bca550 1935 else
Azure.IoT Build 0:6ae2f7bca550 1936 {
Azure.IoT Build 0:6ae2f7bca550 1937 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
Azure.IoT Build 0:6ae2f7bca550 1938 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
Azure.IoT Build 0:6ae2f7bca550 1939 if (properties_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1940 {
AzureIoTClient 19:000ab4e6a2c1 1941 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1942 }
Azure.IoT Build 0:6ae2f7bca550 1943 else
Azure.IoT Build 0:6ae2f7bca550 1944 {
Azure.IoT Build 0:6ae2f7bca550 1945 if (amqpvalue_set_composite_item(open_instance->composite_value, 9, properties_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 1946 {
AzureIoTClient 19:000ab4e6a2c1 1947 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 1948 }
Azure.IoT Build 0:6ae2f7bca550 1949 else
Azure.IoT Build 0:6ae2f7bca550 1950 {
Azure.IoT Build 0:6ae2f7bca550 1951 result = 0;
Azure.IoT Build 0:6ae2f7bca550 1952 }
Azure.IoT Build 0:6ae2f7bca550 1953
Azure.IoT Build 0:6ae2f7bca550 1954 amqpvalue_destroy(properties_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 1955 }
Azure.IoT Build 0:6ae2f7bca550 1956 }
Azure.IoT Build 0:6ae2f7bca550 1957
Azure.IoT Build 0:6ae2f7bca550 1958 return result;
Azure.IoT Build 0:6ae2f7bca550 1959 }
Azure.IoT Build 0:6ae2f7bca550 1960
Azure.IoT Build 0:6ae2f7bca550 1961
Azure.IoT Build 0:6ae2f7bca550 1962 /* begin */
Azure.IoT Build 0:6ae2f7bca550 1963
Azure.IoT Build 0:6ae2f7bca550 1964 typedef struct BEGIN_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 1965 {
Azure.IoT Build 0:6ae2f7bca550 1966 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 1967 } BEGIN_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 1968
Azure.IoT Build 0:6ae2f7bca550 1969 static BEGIN_HANDLE begin_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 1970 {
AzureIoTClient 21:f9c433d8e6ca 1971 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 1972 if (begin_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 1973 {
Azure.IoT Build 0:6ae2f7bca550 1974 begin_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 1975 }
Azure.IoT Build 0:6ae2f7bca550 1976
Azure.IoT Build 0:6ae2f7bca550 1977 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 1978 }
Azure.IoT Build 0:6ae2f7bca550 1979
Azure.IoT Build 0:6ae2f7bca550 1980 BEGIN_HANDLE begin_create(transfer_number next_outgoing_id_value, uint32_t incoming_window_value, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 1981 {
AzureIoTClient 21:f9c433d8e6ca 1982 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 1983 if (begin_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 1984 {
Azure.IoT Build 0:6ae2f7bca550 1985 begin_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(17);
Azure.IoT Build 0:6ae2f7bca550 1986 if (begin_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 1987 {
AzureIoTClient 21:f9c433d8e6ca 1988 free(begin_instance);
Azure.IoT Build 0:6ae2f7bca550 1989 begin_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 1990 }
Azure.IoT Build 0:6ae2f7bca550 1991 else
Azure.IoT Build 0:6ae2f7bca550 1992 {
Azure.IoT Build 0:6ae2f7bca550 1993 AMQP_VALUE next_outgoing_id_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 1994 AMQP_VALUE incoming_window_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 1995 AMQP_VALUE outgoing_window_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 1996 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 1997
Azure.IoT Build 0:6ae2f7bca550 1998 next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
Azure.IoT Build 0:6ae2f7bca550 1999 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 1, next_outgoing_id_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 2000 {
AzureIoTClient 19:000ab4e6a2c1 2001 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2002 }
Azure.IoT Build 0:6ae2f7bca550 2003 incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
Azure.IoT Build 0:6ae2f7bca550 2004 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 2, incoming_window_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 2005 {
AzureIoTClient 19:000ab4e6a2c1 2006 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2007 }
Azure.IoT Build 0:6ae2f7bca550 2008 outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
Azure.IoT Build 0:6ae2f7bca550 2009 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 3, outgoing_window_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 2010 {
AzureIoTClient 19:000ab4e6a2c1 2011 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2012 }
Azure.IoT Build 0:6ae2f7bca550 2013
Azure.IoT Build 0:6ae2f7bca550 2014 amqpvalue_destroy(next_outgoing_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2015 amqpvalue_destroy(incoming_window_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2016 amqpvalue_destroy(outgoing_window_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2017 }
Azure.IoT Build 0:6ae2f7bca550 2018 }
Azure.IoT Build 0:6ae2f7bca550 2019
Azure.IoT Build 0:6ae2f7bca550 2020 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2021 }
Azure.IoT Build 0:6ae2f7bca550 2022
Azure.IoT Build 0:6ae2f7bca550 2023 BEGIN_HANDLE begin_clone(BEGIN_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 2024 {
AzureIoTClient 21:f9c433d8e6ca 2025 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 2026 if (begin_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 2027 {
Azure.IoT Build 0:6ae2f7bca550 2028 begin_instance->composite_value = amqpvalue_clone(((BEGIN_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 2029 if (begin_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2030 {
AzureIoTClient 21:f9c433d8e6ca 2031 free(begin_instance);
Azure.IoT Build 0:6ae2f7bca550 2032 begin_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 2033 }
Azure.IoT Build 0:6ae2f7bca550 2034 }
Azure.IoT Build 0:6ae2f7bca550 2035
Azure.IoT Build 0:6ae2f7bca550 2036 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2037 }
Azure.IoT Build 0:6ae2f7bca550 2038
Azure.IoT Build 0:6ae2f7bca550 2039 void begin_destroy(BEGIN_HANDLE begin)
Azure.IoT Build 0:6ae2f7bca550 2040 {
Azure.IoT Build 0:6ae2f7bca550 2041 if (begin != NULL)
Azure.IoT Build 0:6ae2f7bca550 2042 {
Azure.IoT Build 0:6ae2f7bca550 2043 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
Azure.IoT Build 0:6ae2f7bca550 2044 amqpvalue_destroy(begin_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 2045 free(begin_instance);
Azure.IoT Build 0:6ae2f7bca550 2046 }
Azure.IoT Build 0:6ae2f7bca550 2047 }
Azure.IoT Build 0:6ae2f7bca550 2048
Azure.IoT Build 0:6ae2f7bca550 2049 AMQP_VALUE amqpvalue_create_begin(BEGIN_HANDLE begin)
Azure.IoT Build 0:6ae2f7bca550 2050 {
Azure.IoT Build 0:6ae2f7bca550 2051 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 2052
Azure.IoT Build 0:6ae2f7bca550 2053 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2054 {
Azure.IoT Build 0:6ae2f7bca550 2055 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 2056 }
Azure.IoT Build 0:6ae2f7bca550 2057 else
Azure.IoT Build 0:6ae2f7bca550 2058 {
Azure.IoT Build 0:6ae2f7bca550 2059 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
Azure.IoT Build 0:6ae2f7bca550 2060 result = amqpvalue_clone(begin_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 2061 }
Azure.IoT Build 0:6ae2f7bca550 2062
Azure.IoT Build 0:6ae2f7bca550 2063 return result;
Azure.IoT Build 0:6ae2f7bca550 2064 }
Azure.IoT Build 0:6ae2f7bca550 2065
Azure.IoT Build 0:6ae2f7bca550 2066 bool is_begin_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 2067 {
Azure.IoT Build 0:6ae2f7bca550 2068 bool result;
Azure.IoT Build 0:6ae2f7bca550 2069
Azure.IoT Build 0:6ae2f7bca550 2070 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 2071 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 2072 (descriptor_ulong == 17))
Azure.IoT Build 0:6ae2f7bca550 2073 {
Azure.IoT Build 0:6ae2f7bca550 2074 result = true;
Azure.IoT Build 0:6ae2f7bca550 2075 }
Azure.IoT Build 0:6ae2f7bca550 2076 else
Azure.IoT Build 0:6ae2f7bca550 2077 {
Azure.IoT Build 0:6ae2f7bca550 2078 result = false;
Azure.IoT Build 0:6ae2f7bca550 2079 }
Azure.IoT Build 0:6ae2f7bca550 2080
Azure.IoT Build 0:6ae2f7bca550 2081 return result;
Azure.IoT Build 0:6ae2f7bca550 2082 }
Azure.IoT Build 0:6ae2f7bca550 2083
Azure.IoT Build 0:6ae2f7bca550 2084
Azure.IoT Build 0:6ae2f7bca550 2085 int amqpvalue_get_begin(AMQP_VALUE value, BEGIN_HANDLE* begin_handle)
Azure.IoT Build 0:6ae2f7bca550 2086 {
Azure.IoT Build 0:6ae2f7bca550 2087 int result;
Azure.IoT Build 0:6ae2f7bca550 2088 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin_create_internal();
Azure.IoT Build 0:6ae2f7bca550 2089 *begin_handle = begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2090 if (*begin_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 2091 {
AzureIoTClient 19:000ab4e6a2c1 2092 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2093 }
Azure.IoT Build 0:6ae2f7bca550 2094 else
Azure.IoT Build 0:6ae2f7bca550 2095 {
Azure.IoT Build 0:6ae2f7bca550 2096 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 2097 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2098 {
Azure.IoT Build 0:6ae2f7bca550 2099 begin_destroy(*begin_handle);
AzureIoTClient 19:000ab4e6a2c1 2100 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2101 }
Azure.IoT Build 0:6ae2f7bca550 2102 else
Azure.IoT Build 0:6ae2f7bca550 2103 {
AzureIoTClient 23:1111ee8bcba4 2104 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 2105 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2106 {
AzureIoTClient 23:1111ee8bcba4 2107 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2108 }
AzureIoTClient 23:1111ee8bcba4 2109 else
AzureIoTClient 23:1111ee8bcba4 2110 {
AzureIoTClient 23:1111ee8bcba4 2111 do
AzureIoTClient 23:1111ee8bcba4 2112 {
AzureIoTClient 23:1111ee8bcba4 2113 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 2114 /* remote-channel */
AzureIoTClient 23:1111ee8bcba4 2115 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 2116 {
AzureIoTClient 23:1111ee8bcba4 2117 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 2118 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2119 {
AzureIoTClient 23:1111ee8bcba4 2120 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 2121 }
AzureIoTClient 23:1111ee8bcba4 2122 else
AzureIoTClient 23:1111ee8bcba4 2123 {
AzureIoTClient 25:1101516ee67d 2124 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 2125 {
AzureIoTClient 25:1101516ee67d 2126 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 2127 }
AzureIoTClient 25:1101516ee67d 2128 else
AzureIoTClient 25:1101516ee67d 2129 {
AzureIoTClient 25:1101516ee67d 2130 uint16_t remote_channel;
AzureIoTClient 23:1111ee8bcba4 2131 if (amqpvalue_get_ushort(item_value, &remote_channel) != 0)
AzureIoTClient 23:1111ee8bcba4 2132 {
AzureIoTClient 25:1101516ee67d 2133 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2134 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2135 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2136 break;
AzureIoTClient 23:1111ee8bcba4 2137 }
AzureIoTClient 23:1111ee8bcba4 2138 }
AzureIoTClient 23:1111ee8bcba4 2139
AzureIoTClient 23:1111ee8bcba4 2140 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2141 }
AzureIoTClient 23:1111ee8bcba4 2142 }
AzureIoTClient 23:1111ee8bcba4 2143 /* next-outgoing-id */
AzureIoTClient 23:1111ee8bcba4 2144 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 2145 {
AzureIoTClient 23:1111ee8bcba4 2146 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 2147 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2148 {
AzureIoTClient 23:1111ee8bcba4 2149 {
AzureIoTClient 23:1111ee8bcba4 2150 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2151 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2152 break;
AzureIoTClient 23:1111ee8bcba4 2153 }
AzureIoTClient 23:1111ee8bcba4 2154 }
AzureIoTClient 23:1111ee8bcba4 2155 else
AzureIoTClient 23:1111ee8bcba4 2156 {
AzureIoTClient 25:1101516ee67d 2157 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 2158 {
AzureIoTClient 25:1101516ee67d 2159 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2160 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2161 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2162 break;
AzureIoTClient 23:1111ee8bcba4 2163 }
AzureIoTClient 23:1111ee8bcba4 2164 else
AzureIoTClient 23:1111ee8bcba4 2165 {
AzureIoTClient 25:1101516ee67d 2166 transfer_number next_outgoing_id;
AzureIoTClient 23:1111ee8bcba4 2167 if (amqpvalue_get_transfer_number(item_value, &next_outgoing_id) != 0)
AzureIoTClient 23:1111ee8bcba4 2168 {
AzureIoTClient 25:1101516ee67d 2169 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2170 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2171 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2172 break;
AzureIoTClient 23:1111ee8bcba4 2173 }
AzureIoTClient 23:1111ee8bcba4 2174 }
AzureIoTClient 23:1111ee8bcba4 2175
AzureIoTClient 23:1111ee8bcba4 2176 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2177 }
AzureIoTClient 23:1111ee8bcba4 2178 }
AzureIoTClient 23:1111ee8bcba4 2179 else
AzureIoTClient 23:1111ee8bcba4 2180 {
AzureIoTClient 23:1111ee8bcba4 2181 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2182 }
AzureIoTClient 23:1111ee8bcba4 2183 /* incoming-window */
AzureIoTClient 23:1111ee8bcba4 2184 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 2185 {
AzureIoTClient 23:1111ee8bcba4 2186 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 2187 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2188 {
AzureIoTClient 23:1111ee8bcba4 2189 {
AzureIoTClient 23:1111ee8bcba4 2190 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2191 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2192 break;
AzureIoTClient 23:1111ee8bcba4 2193 }
AzureIoTClient 23:1111ee8bcba4 2194 }
AzureIoTClient 23:1111ee8bcba4 2195 else
AzureIoTClient 23:1111ee8bcba4 2196 {
AzureIoTClient 25:1101516ee67d 2197 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 2198 {
AzureIoTClient 25:1101516ee67d 2199 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2200 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2201 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2202 break;
AzureIoTClient 23:1111ee8bcba4 2203 }
AzureIoTClient 23:1111ee8bcba4 2204 else
AzureIoTClient 23:1111ee8bcba4 2205 {
AzureIoTClient 25:1101516ee67d 2206 uint32_t incoming_window;
AzureIoTClient 23:1111ee8bcba4 2207 if (amqpvalue_get_uint(item_value, &incoming_window) != 0)
AzureIoTClient 23:1111ee8bcba4 2208 {
AzureIoTClient 25:1101516ee67d 2209 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2210 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2211 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2212 break;
AzureIoTClient 23:1111ee8bcba4 2213 }
AzureIoTClient 23:1111ee8bcba4 2214 }
AzureIoTClient 23:1111ee8bcba4 2215
AzureIoTClient 23:1111ee8bcba4 2216 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2217 }
AzureIoTClient 23:1111ee8bcba4 2218 }
AzureIoTClient 23:1111ee8bcba4 2219 else
AzureIoTClient 23:1111ee8bcba4 2220 {
AzureIoTClient 23:1111ee8bcba4 2221 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2222 }
AzureIoTClient 23:1111ee8bcba4 2223 /* outgoing-window */
AzureIoTClient 23:1111ee8bcba4 2224 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 2225 {
AzureIoTClient 23:1111ee8bcba4 2226 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 2227 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2228 {
AzureIoTClient 23:1111ee8bcba4 2229 {
AzureIoTClient 23:1111ee8bcba4 2230 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2231 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2232 break;
AzureIoTClient 23:1111ee8bcba4 2233 }
AzureIoTClient 23:1111ee8bcba4 2234 }
AzureIoTClient 23:1111ee8bcba4 2235 else
AzureIoTClient 23:1111ee8bcba4 2236 {
AzureIoTClient 25:1101516ee67d 2237 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 2238 {
AzureIoTClient 25:1101516ee67d 2239 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2240 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2241 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2242 break;
AzureIoTClient 23:1111ee8bcba4 2243 }
AzureIoTClient 23:1111ee8bcba4 2244 else
AzureIoTClient 23:1111ee8bcba4 2245 {
AzureIoTClient 25:1101516ee67d 2246 uint32_t outgoing_window;
AzureIoTClient 23:1111ee8bcba4 2247 if (amqpvalue_get_uint(item_value, &outgoing_window) != 0)
AzureIoTClient 23:1111ee8bcba4 2248 {
AzureIoTClient 25:1101516ee67d 2249 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2250 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2251 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2252 break;
AzureIoTClient 23:1111ee8bcba4 2253 }
AzureIoTClient 23:1111ee8bcba4 2254 }
AzureIoTClient 23:1111ee8bcba4 2255
AzureIoTClient 23:1111ee8bcba4 2256 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2257 }
AzureIoTClient 23:1111ee8bcba4 2258 }
AzureIoTClient 23:1111ee8bcba4 2259 else
AzureIoTClient 23:1111ee8bcba4 2260 {
AzureIoTClient 23:1111ee8bcba4 2261 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2262 }
AzureIoTClient 23:1111ee8bcba4 2263 /* handle-max */
AzureIoTClient 23:1111ee8bcba4 2264 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 2265 {
AzureIoTClient 23:1111ee8bcba4 2266 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 2267 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2268 {
AzureIoTClient 23:1111ee8bcba4 2269 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 2270 }
AzureIoTClient 23:1111ee8bcba4 2271 else
AzureIoTClient 23:1111ee8bcba4 2272 {
AzureIoTClient 25:1101516ee67d 2273 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 2274 {
AzureIoTClient 25:1101516ee67d 2275 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 2276 }
AzureIoTClient 25:1101516ee67d 2277 else
AzureIoTClient 25:1101516ee67d 2278 {
AzureIoTClient 25:1101516ee67d 2279 handle handle_max;
AzureIoTClient 23:1111ee8bcba4 2280 if (amqpvalue_get_handle(item_value, &handle_max) != 0)
AzureIoTClient 23:1111ee8bcba4 2281 {
AzureIoTClient 25:1101516ee67d 2282 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2283 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2284 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2285 break;
AzureIoTClient 23:1111ee8bcba4 2286 }
AzureIoTClient 23:1111ee8bcba4 2287 }
AzureIoTClient 23:1111ee8bcba4 2288
AzureIoTClient 23:1111ee8bcba4 2289 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2290 }
AzureIoTClient 23:1111ee8bcba4 2291 }
AzureIoTClient 23:1111ee8bcba4 2292 /* offered-capabilities */
AzureIoTClient 23:1111ee8bcba4 2293 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 2294 {
AzureIoTClient 23:1111ee8bcba4 2295 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 2296 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2297 {
AzureIoTClient 23:1111ee8bcba4 2298 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 2299 }
AzureIoTClient 23:1111ee8bcba4 2300 else
AzureIoTClient 23:1111ee8bcba4 2301 {
AzureIoTClient 25:1101516ee67d 2302 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 2303 {
AzureIoTClient 25:1101516ee67d 2304 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 2305 }
AzureIoTClient 25:1101516ee67d 2306 else
AzureIoTClient 25:1101516ee67d 2307 {
AzureIoTClient 25:1101516ee67d 2308 const char* offered_capabilities = NULL;
AzureIoTClient 23:1111ee8bcba4 2309 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 23:1111ee8bcba4 2310 if ((amqpvalue_get_array(item_value, &offered_capabilities_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 2311 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 23:1111ee8bcba4 2312 {
AzureIoTClient 25:1101516ee67d 2313 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2314 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2315 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2316 break;
AzureIoTClient 23:1111ee8bcba4 2317 }
AzureIoTClient 23:1111ee8bcba4 2318 }
AzureIoTClient 23:1111ee8bcba4 2319
AzureIoTClient 23:1111ee8bcba4 2320 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2321 }
AzureIoTClient 23:1111ee8bcba4 2322 }
AzureIoTClient 23:1111ee8bcba4 2323 /* desired-capabilities */
AzureIoTClient 23:1111ee8bcba4 2324 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 2325 {
AzureIoTClient 23:1111ee8bcba4 2326 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 23:1111ee8bcba4 2327 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2328 {
AzureIoTClient 23:1111ee8bcba4 2329 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 2330 }
AzureIoTClient 23:1111ee8bcba4 2331 else
AzureIoTClient 23:1111ee8bcba4 2332 {
AzureIoTClient 25:1101516ee67d 2333 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 2334 {
AzureIoTClient 25:1101516ee67d 2335 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 2336 }
AzureIoTClient 25:1101516ee67d 2337 else
AzureIoTClient 25:1101516ee67d 2338 {
AzureIoTClient 25:1101516ee67d 2339 const char* desired_capabilities = NULL;
AzureIoTClient 23:1111ee8bcba4 2340 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 23:1111ee8bcba4 2341 if ((amqpvalue_get_array(item_value, &desired_capabilities_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 2342 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 23:1111ee8bcba4 2343 {
AzureIoTClient 25:1101516ee67d 2344 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2345 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2346 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2347 break;
AzureIoTClient 23:1111ee8bcba4 2348 }
AzureIoTClient 23:1111ee8bcba4 2349 }
AzureIoTClient 23:1111ee8bcba4 2350
AzureIoTClient 23:1111ee8bcba4 2351 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2352 }
AzureIoTClient 23:1111ee8bcba4 2353 }
AzureIoTClient 23:1111ee8bcba4 2354 /* properties */
AzureIoTClient 23:1111ee8bcba4 2355 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 2356 {
AzureIoTClient 23:1111ee8bcba4 2357 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 23:1111ee8bcba4 2358 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2359 {
AzureIoTClient 23:1111ee8bcba4 2360 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 2361 }
AzureIoTClient 23:1111ee8bcba4 2362 else
AzureIoTClient 23:1111ee8bcba4 2363 {
AzureIoTClient 25:1101516ee67d 2364 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 2365 {
AzureIoTClient 25:1101516ee67d 2366 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 2367 }
AzureIoTClient 25:1101516ee67d 2368 else
AzureIoTClient 25:1101516ee67d 2369 {
AzureIoTClient 25:1101516ee67d 2370 fields properties;
AzureIoTClient 23:1111ee8bcba4 2371 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 23:1111ee8bcba4 2372 {
AzureIoTClient 25:1101516ee67d 2373 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2374 begin_destroy(*begin_handle);
AzureIoTClient 23:1111ee8bcba4 2375 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2376 break;
AzureIoTClient 23:1111ee8bcba4 2377 }
AzureIoTClient 23:1111ee8bcba4 2378 }
AzureIoTClient 23:1111ee8bcba4 2379
AzureIoTClient 23:1111ee8bcba4 2380 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 2381 }
AzureIoTClient 23:1111ee8bcba4 2382 }
AzureIoTClient 23:1111ee8bcba4 2383
AzureIoTClient 23:1111ee8bcba4 2384 begin_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 2385
AzureIoTClient 23:1111ee8bcba4 2386 result = 0;
AzureIoTClient 23:1111ee8bcba4 2387 } while (0);
AzureIoTClient 23:1111ee8bcba4 2388 }
Azure.IoT Build 0:6ae2f7bca550 2389 }
Azure.IoT Build 0:6ae2f7bca550 2390 }
Azure.IoT Build 0:6ae2f7bca550 2391
Azure.IoT Build 0:6ae2f7bca550 2392 return result;
Azure.IoT Build 0:6ae2f7bca550 2393 }
Azure.IoT Build 0:6ae2f7bca550 2394
Azure.IoT Build 0:6ae2f7bca550 2395 int begin_get_remote_channel(BEGIN_HANDLE begin, uint16_t* remote_channel_value)
Azure.IoT Build 0:6ae2f7bca550 2396 {
Azure.IoT Build 0:6ae2f7bca550 2397 int result;
Azure.IoT Build 0:6ae2f7bca550 2398
Azure.IoT Build 0:6ae2f7bca550 2399 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2400 {
AzureIoTClient 19:000ab4e6a2c1 2401 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2402 }
Azure.IoT Build 0:6ae2f7bca550 2403 else
Azure.IoT Build 0:6ae2f7bca550 2404 {
AzureIoTClient 23:1111ee8bcba4 2405 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 2406 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2407 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2408 {
AzureIoTClient 23:1111ee8bcba4 2409 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2410 }
AzureIoTClient 23:1111ee8bcba4 2411 else
AzureIoTClient 23:1111ee8bcba4 2412 {
AzureIoTClient 23:1111ee8bcba4 2413 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 2414 {
AzureIoTClient 23:1111ee8bcba4 2415 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2416 }
AzureIoTClient 23:1111ee8bcba4 2417 else
AzureIoTClient 23:1111ee8bcba4 2418 {
AzureIoTClient 23:1111ee8bcba4 2419 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 2420 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 2421 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 2422 {
AzureIoTClient 23:1111ee8bcba4 2423 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2424 }
AzureIoTClient 23:1111ee8bcba4 2425 else
AzureIoTClient 23:1111ee8bcba4 2426 {
AzureIoTClient 23:1111ee8bcba4 2427 if (amqpvalue_get_ushort(item_value, remote_channel_value) != 0)
AzureIoTClient 23:1111ee8bcba4 2428 {
AzureIoTClient 23:1111ee8bcba4 2429 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2430 }
AzureIoTClient 23:1111ee8bcba4 2431 else
AzureIoTClient 23:1111ee8bcba4 2432 {
AzureIoTClient 23:1111ee8bcba4 2433 result = 0;
AzureIoTClient 23:1111ee8bcba4 2434 }
AzureIoTClient 23:1111ee8bcba4 2435 }
AzureIoTClient 23:1111ee8bcba4 2436 }
Azure.IoT Build 0:6ae2f7bca550 2437 }
Azure.IoT Build 0:6ae2f7bca550 2438 }
Azure.IoT Build 0:6ae2f7bca550 2439
Azure.IoT Build 0:6ae2f7bca550 2440 return result;
Azure.IoT Build 0:6ae2f7bca550 2441 }
Azure.IoT Build 0:6ae2f7bca550 2442
Azure.IoT Build 0:6ae2f7bca550 2443 int begin_set_remote_channel(BEGIN_HANDLE begin, uint16_t remote_channel_value)
Azure.IoT Build 0:6ae2f7bca550 2444 {
Azure.IoT Build 0:6ae2f7bca550 2445 int result;
Azure.IoT Build 0:6ae2f7bca550 2446
Azure.IoT Build 0:6ae2f7bca550 2447 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2448 {
AzureIoTClient 19:000ab4e6a2c1 2449 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2450 }
Azure.IoT Build 0:6ae2f7bca550 2451 else
Azure.IoT Build 0:6ae2f7bca550 2452 {
Azure.IoT Build 0:6ae2f7bca550 2453 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
Azure.IoT Build 0:6ae2f7bca550 2454 AMQP_VALUE remote_channel_amqp_value = amqpvalue_create_ushort(remote_channel_value);
Azure.IoT Build 0:6ae2f7bca550 2455 if (remote_channel_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2456 {
AzureIoTClient 19:000ab4e6a2c1 2457 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2458 }
Azure.IoT Build 0:6ae2f7bca550 2459 else
Azure.IoT Build 0:6ae2f7bca550 2460 {
Azure.IoT Build 0:6ae2f7bca550 2461 if (amqpvalue_set_composite_item(begin_instance->composite_value, 0, remote_channel_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 2462 {
AzureIoTClient 19:000ab4e6a2c1 2463 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2464 }
Azure.IoT Build 0:6ae2f7bca550 2465 else
Azure.IoT Build 0:6ae2f7bca550 2466 {
Azure.IoT Build 0:6ae2f7bca550 2467 result = 0;
Azure.IoT Build 0:6ae2f7bca550 2468 }
Azure.IoT Build 0:6ae2f7bca550 2469
Azure.IoT Build 0:6ae2f7bca550 2470 amqpvalue_destroy(remote_channel_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2471 }
Azure.IoT Build 0:6ae2f7bca550 2472 }
Azure.IoT Build 0:6ae2f7bca550 2473
Azure.IoT Build 0:6ae2f7bca550 2474 return result;
Azure.IoT Build 0:6ae2f7bca550 2475 }
Azure.IoT Build 0:6ae2f7bca550 2476
Azure.IoT Build 0:6ae2f7bca550 2477 int begin_get_next_outgoing_id(BEGIN_HANDLE begin, transfer_number* next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 2478 {
Azure.IoT Build 0:6ae2f7bca550 2479 int result;
Azure.IoT Build 0:6ae2f7bca550 2480
Azure.IoT Build 0:6ae2f7bca550 2481 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2482 {
AzureIoTClient 19:000ab4e6a2c1 2483 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2484 }
Azure.IoT Build 0:6ae2f7bca550 2485 else
Azure.IoT Build 0:6ae2f7bca550 2486 {
AzureIoTClient 23:1111ee8bcba4 2487 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 2488 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2489 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2490 {
AzureIoTClient 23:1111ee8bcba4 2491 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2492 }
AzureIoTClient 23:1111ee8bcba4 2493 else
AzureIoTClient 23:1111ee8bcba4 2494 {
AzureIoTClient 23:1111ee8bcba4 2495 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 2496 {
AzureIoTClient 23:1111ee8bcba4 2497 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2498 }
AzureIoTClient 23:1111ee8bcba4 2499 else
AzureIoTClient 23:1111ee8bcba4 2500 {
AzureIoTClient 23:1111ee8bcba4 2501 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 2502 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 2503 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 2504 {
AzureIoTClient 23:1111ee8bcba4 2505 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2506 }
AzureIoTClient 23:1111ee8bcba4 2507 else
AzureIoTClient 23:1111ee8bcba4 2508 {
AzureIoTClient 23:1111ee8bcba4 2509 if (amqpvalue_get_transfer_number(item_value, next_outgoing_id_value) != 0)
AzureIoTClient 23:1111ee8bcba4 2510 {
AzureIoTClient 23:1111ee8bcba4 2511 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2512 }
AzureIoTClient 23:1111ee8bcba4 2513 else
AzureIoTClient 23:1111ee8bcba4 2514 {
AzureIoTClient 23:1111ee8bcba4 2515 result = 0;
AzureIoTClient 23:1111ee8bcba4 2516 }
AzureIoTClient 23:1111ee8bcba4 2517 }
AzureIoTClient 23:1111ee8bcba4 2518 }
Azure.IoT Build 0:6ae2f7bca550 2519 }
Azure.IoT Build 0:6ae2f7bca550 2520 }
Azure.IoT Build 0:6ae2f7bca550 2521
Azure.IoT Build 0:6ae2f7bca550 2522 return result;
Azure.IoT Build 0:6ae2f7bca550 2523 }
Azure.IoT Build 0:6ae2f7bca550 2524
Azure.IoT Build 0:6ae2f7bca550 2525 int begin_set_next_outgoing_id(BEGIN_HANDLE begin, transfer_number next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 2526 {
Azure.IoT Build 0:6ae2f7bca550 2527 int result;
Azure.IoT Build 0:6ae2f7bca550 2528
Azure.IoT Build 0:6ae2f7bca550 2529 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2530 {
AzureIoTClient 19:000ab4e6a2c1 2531 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2532 }
Azure.IoT Build 0:6ae2f7bca550 2533 else
Azure.IoT Build 0:6ae2f7bca550 2534 {
Azure.IoT Build 0:6ae2f7bca550 2535 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
Azure.IoT Build 0:6ae2f7bca550 2536 AMQP_VALUE next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
Azure.IoT Build 0:6ae2f7bca550 2537 if (next_outgoing_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2538 {
AzureIoTClient 19:000ab4e6a2c1 2539 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2540 }
Azure.IoT Build 0:6ae2f7bca550 2541 else
Azure.IoT Build 0:6ae2f7bca550 2542 {
Azure.IoT Build 0:6ae2f7bca550 2543 if (amqpvalue_set_composite_item(begin_instance->composite_value, 1, next_outgoing_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 2544 {
AzureIoTClient 19:000ab4e6a2c1 2545 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2546 }
Azure.IoT Build 0:6ae2f7bca550 2547 else
Azure.IoT Build 0:6ae2f7bca550 2548 {
Azure.IoT Build 0:6ae2f7bca550 2549 result = 0;
Azure.IoT Build 0:6ae2f7bca550 2550 }
Azure.IoT Build 0:6ae2f7bca550 2551
Azure.IoT Build 0:6ae2f7bca550 2552 amqpvalue_destroy(next_outgoing_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2553 }
Azure.IoT Build 0:6ae2f7bca550 2554 }
Azure.IoT Build 0:6ae2f7bca550 2555
Azure.IoT Build 0:6ae2f7bca550 2556 return result;
Azure.IoT Build 0:6ae2f7bca550 2557 }
Azure.IoT Build 0:6ae2f7bca550 2558
Azure.IoT Build 0:6ae2f7bca550 2559 int begin_get_incoming_window(BEGIN_HANDLE begin, uint32_t* incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 2560 {
Azure.IoT Build 0:6ae2f7bca550 2561 int result;
Azure.IoT Build 0:6ae2f7bca550 2562
Azure.IoT Build 0:6ae2f7bca550 2563 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2564 {
AzureIoTClient 19:000ab4e6a2c1 2565 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2566 }
Azure.IoT Build 0:6ae2f7bca550 2567 else
Azure.IoT Build 0:6ae2f7bca550 2568 {
AzureIoTClient 23:1111ee8bcba4 2569 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 2570 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2571 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2572 {
AzureIoTClient 23:1111ee8bcba4 2573 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2574 }
AzureIoTClient 23:1111ee8bcba4 2575 else
AzureIoTClient 23:1111ee8bcba4 2576 {
AzureIoTClient 23:1111ee8bcba4 2577 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 2578 {
AzureIoTClient 23:1111ee8bcba4 2579 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2580 }
AzureIoTClient 23:1111ee8bcba4 2581 else
AzureIoTClient 23:1111ee8bcba4 2582 {
AzureIoTClient 23:1111ee8bcba4 2583 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 2584 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 2585 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 2586 {
AzureIoTClient 23:1111ee8bcba4 2587 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2588 }
AzureIoTClient 23:1111ee8bcba4 2589 else
AzureIoTClient 23:1111ee8bcba4 2590 {
AzureIoTClient 23:1111ee8bcba4 2591 if (amqpvalue_get_uint(item_value, incoming_window_value) != 0)
AzureIoTClient 23:1111ee8bcba4 2592 {
AzureIoTClient 23:1111ee8bcba4 2593 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2594 }
AzureIoTClient 23:1111ee8bcba4 2595 else
AzureIoTClient 23:1111ee8bcba4 2596 {
AzureIoTClient 23:1111ee8bcba4 2597 result = 0;
AzureIoTClient 23:1111ee8bcba4 2598 }
AzureIoTClient 23:1111ee8bcba4 2599 }
AzureIoTClient 23:1111ee8bcba4 2600 }
Azure.IoT Build 0:6ae2f7bca550 2601 }
Azure.IoT Build 0:6ae2f7bca550 2602 }
Azure.IoT Build 0:6ae2f7bca550 2603
Azure.IoT Build 0:6ae2f7bca550 2604 return result;
Azure.IoT Build 0:6ae2f7bca550 2605 }
Azure.IoT Build 0:6ae2f7bca550 2606
Azure.IoT Build 0:6ae2f7bca550 2607 int begin_set_incoming_window(BEGIN_HANDLE begin, uint32_t incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 2608 {
Azure.IoT Build 0:6ae2f7bca550 2609 int result;
Azure.IoT Build 0:6ae2f7bca550 2610
Azure.IoT Build 0:6ae2f7bca550 2611 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2612 {
AzureIoTClient 19:000ab4e6a2c1 2613 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2614 }
Azure.IoT Build 0:6ae2f7bca550 2615 else
Azure.IoT Build 0:6ae2f7bca550 2616 {
Azure.IoT Build 0:6ae2f7bca550 2617 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
Azure.IoT Build 0:6ae2f7bca550 2618 AMQP_VALUE incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
Azure.IoT Build 0:6ae2f7bca550 2619 if (incoming_window_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2620 {
AzureIoTClient 19:000ab4e6a2c1 2621 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2622 }
Azure.IoT Build 0:6ae2f7bca550 2623 else
Azure.IoT Build 0:6ae2f7bca550 2624 {
Azure.IoT Build 0:6ae2f7bca550 2625 if (amqpvalue_set_composite_item(begin_instance->composite_value, 2, incoming_window_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 2626 {
AzureIoTClient 19:000ab4e6a2c1 2627 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2628 }
Azure.IoT Build 0:6ae2f7bca550 2629 else
Azure.IoT Build 0:6ae2f7bca550 2630 {
Azure.IoT Build 0:6ae2f7bca550 2631 result = 0;
Azure.IoT Build 0:6ae2f7bca550 2632 }
Azure.IoT Build 0:6ae2f7bca550 2633
Azure.IoT Build 0:6ae2f7bca550 2634 amqpvalue_destroy(incoming_window_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2635 }
Azure.IoT Build 0:6ae2f7bca550 2636 }
Azure.IoT Build 0:6ae2f7bca550 2637
Azure.IoT Build 0:6ae2f7bca550 2638 return result;
Azure.IoT Build 0:6ae2f7bca550 2639 }
Azure.IoT Build 0:6ae2f7bca550 2640
Azure.IoT Build 0:6ae2f7bca550 2641 int begin_get_outgoing_window(BEGIN_HANDLE begin, uint32_t* outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 2642 {
Azure.IoT Build 0:6ae2f7bca550 2643 int result;
Azure.IoT Build 0:6ae2f7bca550 2644
Azure.IoT Build 0:6ae2f7bca550 2645 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2646 {
AzureIoTClient 19:000ab4e6a2c1 2647 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2648 }
Azure.IoT Build 0:6ae2f7bca550 2649 else
Azure.IoT Build 0:6ae2f7bca550 2650 {
AzureIoTClient 23:1111ee8bcba4 2651 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 2652 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2653 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2654 {
AzureIoTClient 23:1111ee8bcba4 2655 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2656 }
AzureIoTClient 23:1111ee8bcba4 2657 else
AzureIoTClient 23:1111ee8bcba4 2658 {
AzureIoTClient 23:1111ee8bcba4 2659 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 2660 {
AzureIoTClient 23:1111ee8bcba4 2661 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2662 }
AzureIoTClient 23:1111ee8bcba4 2663 else
AzureIoTClient 23:1111ee8bcba4 2664 {
AzureIoTClient 23:1111ee8bcba4 2665 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 2666 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 2667 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 2668 {
AzureIoTClient 23:1111ee8bcba4 2669 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2670 }
AzureIoTClient 23:1111ee8bcba4 2671 else
AzureIoTClient 23:1111ee8bcba4 2672 {
AzureIoTClient 23:1111ee8bcba4 2673 if (amqpvalue_get_uint(item_value, outgoing_window_value) != 0)
AzureIoTClient 23:1111ee8bcba4 2674 {
AzureIoTClient 23:1111ee8bcba4 2675 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2676 }
AzureIoTClient 23:1111ee8bcba4 2677 else
AzureIoTClient 23:1111ee8bcba4 2678 {
AzureIoTClient 23:1111ee8bcba4 2679 result = 0;
AzureIoTClient 23:1111ee8bcba4 2680 }
AzureIoTClient 23:1111ee8bcba4 2681 }
AzureIoTClient 23:1111ee8bcba4 2682 }
Azure.IoT Build 0:6ae2f7bca550 2683 }
Azure.IoT Build 0:6ae2f7bca550 2684 }
Azure.IoT Build 0:6ae2f7bca550 2685
Azure.IoT Build 0:6ae2f7bca550 2686 return result;
Azure.IoT Build 0:6ae2f7bca550 2687 }
Azure.IoT Build 0:6ae2f7bca550 2688
Azure.IoT Build 0:6ae2f7bca550 2689 int begin_set_outgoing_window(BEGIN_HANDLE begin, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 2690 {
Azure.IoT Build 0:6ae2f7bca550 2691 int result;
Azure.IoT Build 0:6ae2f7bca550 2692
Azure.IoT Build 0:6ae2f7bca550 2693 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2694 {
AzureIoTClient 19:000ab4e6a2c1 2695 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2696 }
Azure.IoT Build 0:6ae2f7bca550 2697 else
Azure.IoT Build 0:6ae2f7bca550 2698 {
Azure.IoT Build 0:6ae2f7bca550 2699 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
Azure.IoT Build 0:6ae2f7bca550 2700 AMQP_VALUE outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
Azure.IoT Build 0:6ae2f7bca550 2701 if (outgoing_window_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2702 {
AzureIoTClient 19:000ab4e6a2c1 2703 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2704 }
Azure.IoT Build 0:6ae2f7bca550 2705 else
Azure.IoT Build 0:6ae2f7bca550 2706 {
Azure.IoT Build 0:6ae2f7bca550 2707 if (amqpvalue_set_composite_item(begin_instance->composite_value, 3, outgoing_window_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 2708 {
AzureIoTClient 19:000ab4e6a2c1 2709 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2710 }
Azure.IoT Build 0:6ae2f7bca550 2711 else
Azure.IoT Build 0:6ae2f7bca550 2712 {
Azure.IoT Build 0:6ae2f7bca550 2713 result = 0;
Azure.IoT Build 0:6ae2f7bca550 2714 }
Azure.IoT Build 0:6ae2f7bca550 2715
Azure.IoT Build 0:6ae2f7bca550 2716 amqpvalue_destroy(outgoing_window_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2717 }
Azure.IoT Build 0:6ae2f7bca550 2718 }
Azure.IoT Build 0:6ae2f7bca550 2719
Azure.IoT Build 0:6ae2f7bca550 2720 return result;
Azure.IoT Build 0:6ae2f7bca550 2721 }
Azure.IoT Build 0:6ae2f7bca550 2722
Azure.IoT Build 0:6ae2f7bca550 2723 int begin_get_handle_max(BEGIN_HANDLE begin, handle* handle_max_value)
Azure.IoT Build 0:6ae2f7bca550 2724 {
Azure.IoT Build 0:6ae2f7bca550 2725 int result;
Azure.IoT Build 0:6ae2f7bca550 2726
Azure.IoT Build 0:6ae2f7bca550 2727 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2728 {
AzureIoTClient 19:000ab4e6a2c1 2729 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2730 }
Azure.IoT Build 0:6ae2f7bca550 2731 else
Azure.IoT Build 0:6ae2f7bca550 2732 {
AzureIoTClient 23:1111ee8bcba4 2733 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 2734 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2735 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2736 {
AzureIoTClient 23:1111ee8bcba4 2737 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2738 }
AzureIoTClient 23:1111ee8bcba4 2739 else
AzureIoTClient 23:1111ee8bcba4 2740 {
AzureIoTClient 23:1111ee8bcba4 2741 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 2742 {
AzureIoTClient 23:1111ee8bcba4 2743 *handle_max_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 2744 result = 0;
AzureIoTClient 23:1111ee8bcba4 2745 }
AzureIoTClient 23:1111ee8bcba4 2746 else
AzureIoTClient 23:1111ee8bcba4 2747 {
AzureIoTClient 23:1111ee8bcba4 2748 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 2749 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 2750 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 2751 {
AzureIoTClient 16:22a72cf8e416 2752 *handle_max_value = 4294967295u;
AzureIoTClient 16:22a72cf8e416 2753 result = 0;
AzureIoTClient 23:1111ee8bcba4 2754 }
AzureIoTClient 23:1111ee8bcba4 2755 else
AzureIoTClient 23:1111ee8bcba4 2756 {
AzureIoTClient 23:1111ee8bcba4 2757 if (amqpvalue_get_handle(item_value, handle_max_value) != 0)
AzureIoTClient 23:1111ee8bcba4 2758 {
AzureIoTClient 23:1111ee8bcba4 2759 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 2760 {
AzureIoTClient 23:1111ee8bcba4 2761 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2762 }
AzureIoTClient 23:1111ee8bcba4 2763 else
AzureIoTClient 23:1111ee8bcba4 2764 {
AzureIoTClient 23:1111ee8bcba4 2765 *handle_max_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 2766 result = 0;
AzureIoTClient 23:1111ee8bcba4 2767 }
AzureIoTClient 23:1111ee8bcba4 2768 }
AzureIoTClient 23:1111ee8bcba4 2769 else
AzureIoTClient 23:1111ee8bcba4 2770 {
AzureIoTClient 23:1111ee8bcba4 2771 result = 0;
AzureIoTClient 23:1111ee8bcba4 2772 }
AzureIoTClient 23:1111ee8bcba4 2773 }
AzureIoTClient 23:1111ee8bcba4 2774 }
Azure.IoT Build 0:6ae2f7bca550 2775 }
Azure.IoT Build 0:6ae2f7bca550 2776 }
Azure.IoT Build 0:6ae2f7bca550 2777
Azure.IoT Build 0:6ae2f7bca550 2778 return result;
Azure.IoT Build 0:6ae2f7bca550 2779 }
Azure.IoT Build 0:6ae2f7bca550 2780
Azure.IoT Build 0:6ae2f7bca550 2781 int begin_set_handle_max(BEGIN_HANDLE begin, handle handle_max_value)
Azure.IoT Build 0:6ae2f7bca550 2782 {
Azure.IoT Build 0:6ae2f7bca550 2783 int result;
Azure.IoT Build 0:6ae2f7bca550 2784
Azure.IoT Build 0:6ae2f7bca550 2785 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2786 {
AzureIoTClient 19:000ab4e6a2c1 2787 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2788 }
Azure.IoT Build 0:6ae2f7bca550 2789 else
Azure.IoT Build 0:6ae2f7bca550 2790 {
Azure.IoT Build 0:6ae2f7bca550 2791 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
Azure.IoT Build 0:6ae2f7bca550 2792 AMQP_VALUE handle_max_amqp_value = amqpvalue_create_handle(handle_max_value);
Azure.IoT Build 0:6ae2f7bca550 2793 if (handle_max_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2794 {
AzureIoTClient 19:000ab4e6a2c1 2795 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2796 }
Azure.IoT Build 0:6ae2f7bca550 2797 else
Azure.IoT Build 0:6ae2f7bca550 2798 {
Azure.IoT Build 0:6ae2f7bca550 2799 if (amqpvalue_set_composite_item(begin_instance->composite_value, 4, handle_max_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 2800 {
AzureIoTClient 19:000ab4e6a2c1 2801 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2802 }
Azure.IoT Build 0:6ae2f7bca550 2803 else
Azure.IoT Build 0:6ae2f7bca550 2804 {
Azure.IoT Build 0:6ae2f7bca550 2805 result = 0;
Azure.IoT Build 0:6ae2f7bca550 2806 }
Azure.IoT Build 0:6ae2f7bca550 2807
Azure.IoT Build 0:6ae2f7bca550 2808 amqpvalue_destroy(handle_max_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2809 }
Azure.IoT Build 0:6ae2f7bca550 2810 }
Azure.IoT Build 0:6ae2f7bca550 2811
Azure.IoT Build 0:6ae2f7bca550 2812 return result;
Azure.IoT Build 0:6ae2f7bca550 2813 }
Azure.IoT Build 0:6ae2f7bca550 2814
Azure.IoT Build 0:6ae2f7bca550 2815 int begin_get_offered_capabilities(BEGIN_HANDLE begin, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 2816 {
Azure.IoT Build 0:6ae2f7bca550 2817 int result;
Azure.IoT Build 0:6ae2f7bca550 2818
Azure.IoT Build 0:6ae2f7bca550 2819 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2820 {
AzureIoTClient 19:000ab4e6a2c1 2821 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2822 }
Azure.IoT Build 0:6ae2f7bca550 2823 else
Azure.IoT Build 0:6ae2f7bca550 2824 {
AzureIoTClient 23:1111ee8bcba4 2825 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 2826 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2827 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2828 {
AzureIoTClient 23:1111ee8bcba4 2829 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2830 }
AzureIoTClient 23:1111ee8bcba4 2831 else
AzureIoTClient 23:1111ee8bcba4 2832 {
AzureIoTClient 23:1111ee8bcba4 2833 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 2834 {
AzureIoTClient 23:1111ee8bcba4 2835 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2836 }
AzureIoTClient 23:1111ee8bcba4 2837 else
AzureIoTClient 23:1111ee8bcba4 2838 {
AzureIoTClient 23:1111ee8bcba4 2839 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 2840 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 2841 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 2842 {
AzureIoTClient 23:1111ee8bcba4 2843 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2844 }
AzureIoTClient 23:1111ee8bcba4 2845 else
AzureIoTClient 23:1111ee8bcba4 2846 {
AzureIoTClient 23:1111ee8bcba4 2847 if (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)
AzureIoTClient 23:1111ee8bcba4 2848 {
AzureIoTClient 23:1111ee8bcba4 2849 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2850 }
AzureIoTClient 23:1111ee8bcba4 2851 else
AzureIoTClient 23:1111ee8bcba4 2852 {
AzureIoTClient 23:1111ee8bcba4 2853 result = 0;
AzureIoTClient 23:1111ee8bcba4 2854 }
AzureIoTClient 23:1111ee8bcba4 2855 }
AzureIoTClient 23:1111ee8bcba4 2856 }
Azure.IoT Build 0:6ae2f7bca550 2857 }
Azure.IoT Build 0:6ae2f7bca550 2858 }
Azure.IoT Build 0:6ae2f7bca550 2859
Azure.IoT Build 0:6ae2f7bca550 2860 return result;
Azure.IoT Build 0:6ae2f7bca550 2861 }
Azure.IoT Build 0:6ae2f7bca550 2862
Azure.IoT Build 0:6ae2f7bca550 2863 int begin_set_offered_capabilities(BEGIN_HANDLE begin, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 2864 {
Azure.IoT Build 0:6ae2f7bca550 2865 int result;
Azure.IoT Build 0:6ae2f7bca550 2866
Azure.IoT Build 0:6ae2f7bca550 2867 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2868 {
AzureIoTClient 19:000ab4e6a2c1 2869 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2870 }
Azure.IoT Build 0:6ae2f7bca550 2871 else
Azure.IoT Build 0:6ae2f7bca550 2872 {
Azure.IoT Build 0:6ae2f7bca550 2873 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2874 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 2875 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2876 {
AzureIoTClient 23:1111ee8bcba4 2877 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 2878 }
AzureIoTClient 23:1111ee8bcba4 2879 else
AzureIoTClient 23:1111ee8bcba4 2880 {
AzureIoTClient 23:1111ee8bcba4 2881 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 2882 }
Azure.IoT Build 0:6ae2f7bca550 2883 if (offered_capabilities_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2884 {
AzureIoTClient 19:000ab4e6a2c1 2885 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2886 }
Azure.IoT Build 0:6ae2f7bca550 2887 else
Azure.IoT Build 0:6ae2f7bca550 2888 {
Azure.IoT Build 0:6ae2f7bca550 2889 if (amqpvalue_set_composite_item(begin_instance->composite_value, 5, offered_capabilities_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 2890 {
AzureIoTClient 19:000ab4e6a2c1 2891 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2892 }
Azure.IoT Build 0:6ae2f7bca550 2893 else
Azure.IoT Build 0:6ae2f7bca550 2894 {
Azure.IoT Build 0:6ae2f7bca550 2895 result = 0;
Azure.IoT Build 0:6ae2f7bca550 2896 }
Azure.IoT Build 0:6ae2f7bca550 2897
Azure.IoT Build 0:6ae2f7bca550 2898 amqpvalue_destroy(offered_capabilities_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2899 }
Azure.IoT Build 0:6ae2f7bca550 2900 }
Azure.IoT Build 0:6ae2f7bca550 2901
Azure.IoT Build 0:6ae2f7bca550 2902 return result;
Azure.IoT Build 0:6ae2f7bca550 2903 }
Azure.IoT Build 0:6ae2f7bca550 2904
Azure.IoT Build 0:6ae2f7bca550 2905 int begin_get_desired_capabilities(BEGIN_HANDLE begin, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 2906 {
Azure.IoT Build 0:6ae2f7bca550 2907 int result;
Azure.IoT Build 0:6ae2f7bca550 2908
Azure.IoT Build 0:6ae2f7bca550 2909 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2910 {
AzureIoTClient 19:000ab4e6a2c1 2911 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2912 }
Azure.IoT Build 0:6ae2f7bca550 2913 else
Azure.IoT Build 0:6ae2f7bca550 2914 {
AzureIoTClient 23:1111ee8bcba4 2915 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 2916 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2917 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2918 {
AzureIoTClient 23:1111ee8bcba4 2919 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2920 }
AzureIoTClient 23:1111ee8bcba4 2921 else
AzureIoTClient 23:1111ee8bcba4 2922 {
AzureIoTClient 23:1111ee8bcba4 2923 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 2924 {
AzureIoTClient 23:1111ee8bcba4 2925 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2926 }
AzureIoTClient 23:1111ee8bcba4 2927 else
AzureIoTClient 23:1111ee8bcba4 2928 {
AzureIoTClient 23:1111ee8bcba4 2929 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 6);
AzureIoTClient 23:1111ee8bcba4 2930 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 2931 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 2932 {
AzureIoTClient 23:1111ee8bcba4 2933 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2934 }
AzureIoTClient 23:1111ee8bcba4 2935 else
AzureIoTClient 23:1111ee8bcba4 2936 {
AzureIoTClient 23:1111ee8bcba4 2937 if (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)
AzureIoTClient 23:1111ee8bcba4 2938 {
AzureIoTClient 23:1111ee8bcba4 2939 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2940 }
AzureIoTClient 23:1111ee8bcba4 2941 else
AzureIoTClient 23:1111ee8bcba4 2942 {
AzureIoTClient 23:1111ee8bcba4 2943 result = 0;
AzureIoTClient 23:1111ee8bcba4 2944 }
AzureIoTClient 23:1111ee8bcba4 2945 }
AzureIoTClient 23:1111ee8bcba4 2946 }
Azure.IoT Build 0:6ae2f7bca550 2947 }
Azure.IoT Build 0:6ae2f7bca550 2948 }
Azure.IoT Build 0:6ae2f7bca550 2949
Azure.IoT Build 0:6ae2f7bca550 2950 return result;
Azure.IoT Build 0:6ae2f7bca550 2951 }
Azure.IoT Build 0:6ae2f7bca550 2952
Azure.IoT Build 0:6ae2f7bca550 2953 int begin_set_desired_capabilities(BEGIN_HANDLE begin, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 2954 {
Azure.IoT Build 0:6ae2f7bca550 2955 int result;
Azure.IoT Build 0:6ae2f7bca550 2956
Azure.IoT Build 0:6ae2f7bca550 2957 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 2958 {
AzureIoTClient 19:000ab4e6a2c1 2959 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2960 }
Azure.IoT Build 0:6ae2f7bca550 2961 else
Azure.IoT Build 0:6ae2f7bca550 2962 {
Azure.IoT Build 0:6ae2f7bca550 2963 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2964 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 2965 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2966 {
AzureIoTClient 23:1111ee8bcba4 2967 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 2968 }
AzureIoTClient 23:1111ee8bcba4 2969 else
AzureIoTClient 23:1111ee8bcba4 2970 {
AzureIoTClient 23:1111ee8bcba4 2971 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 2972 }
Azure.IoT Build 0:6ae2f7bca550 2973 if (desired_capabilities_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 2974 {
AzureIoTClient 19:000ab4e6a2c1 2975 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2976 }
Azure.IoT Build 0:6ae2f7bca550 2977 else
Azure.IoT Build 0:6ae2f7bca550 2978 {
Azure.IoT Build 0:6ae2f7bca550 2979 if (amqpvalue_set_composite_item(begin_instance->composite_value, 6, desired_capabilities_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 2980 {
AzureIoTClient 19:000ab4e6a2c1 2981 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 2982 }
Azure.IoT Build 0:6ae2f7bca550 2983 else
Azure.IoT Build 0:6ae2f7bca550 2984 {
Azure.IoT Build 0:6ae2f7bca550 2985 result = 0;
Azure.IoT Build 0:6ae2f7bca550 2986 }
Azure.IoT Build 0:6ae2f7bca550 2987
Azure.IoT Build 0:6ae2f7bca550 2988 amqpvalue_destroy(desired_capabilities_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 2989 }
Azure.IoT Build 0:6ae2f7bca550 2990 }
Azure.IoT Build 0:6ae2f7bca550 2991
Azure.IoT Build 0:6ae2f7bca550 2992 return result;
Azure.IoT Build 0:6ae2f7bca550 2993 }
Azure.IoT Build 0:6ae2f7bca550 2994
Azure.IoT Build 0:6ae2f7bca550 2995 int begin_get_properties(BEGIN_HANDLE begin, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 2996 {
Azure.IoT Build 0:6ae2f7bca550 2997 int result;
Azure.IoT Build 0:6ae2f7bca550 2998
Azure.IoT Build 0:6ae2f7bca550 2999 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 3000 {
AzureIoTClient 19:000ab4e6a2c1 3001 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3002 }
Azure.IoT Build 0:6ae2f7bca550 3003 else
Azure.IoT Build 0:6ae2f7bca550 3004 {
AzureIoTClient 23:1111ee8bcba4 3005 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 3006 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3007 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3008 {
AzureIoTClient 23:1111ee8bcba4 3009 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3010 }
AzureIoTClient 23:1111ee8bcba4 3011 else
AzureIoTClient 23:1111ee8bcba4 3012 {
AzureIoTClient 23:1111ee8bcba4 3013 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 3014 {
AzureIoTClient 23:1111ee8bcba4 3015 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3016 }
AzureIoTClient 23:1111ee8bcba4 3017 else
AzureIoTClient 23:1111ee8bcba4 3018 {
AzureIoTClient 23:1111ee8bcba4 3019 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 7);
AzureIoTClient 23:1111ee8bcba4 3020 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 3021 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 3022 {
AzureIoTClient 23:1111ee8bcba4 3023 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3024 }
AzureIoTClient 23:1111ee8bcba4 3025 else
AzureIoTClient 23:1111ee8bcba4 3026 {
AzureIoTClient 23:1111ee8bcba4 3027 if (amqpvalue_get_fields(item_value, properties_value) != 0)
AzureIoTClient 23:1111ee8bcba4 3028 {
AzureIoTClient 23:1111ee8bcba4 3029 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3030 }
AzureIoTClient 23:1111ee8bcba4 3031 else
AzureIoTClient 23:1111ee8bcba4 3032 {
AzureIoTClient 23:1111ee8bcba4 3033 result = 0;
AzureIoTClient 23:1111ee8bcba4 3034 }
AzureIoTClient 23:1111ee8bcba4 3035 }
AzureIoTClient 23:1111ee8bcba4 3036 }
Azure.IoT Build 0:6ae2f7bca550 3037 }
Azure.IoT Build 0:6ae2f7bca550 3038 }
Azure.IoT Build 0:6ae2f7bca550 3039
Azure.IoT Build 0:6ae2f7bca550 3040 return result;
Azure.IoT Build 0:6ae2f7bca550 3041 }
Azure.IoT Build 0:6ae2f7bca550 3042
Azure.IoT Build 0:6ae2f7bca550 3043 int begin_set_properties(BEGIN_HANDLE begin, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 3044 {
Azure.IoT Build 0:6ae2f7bca550 3045 int result;
Azure.IoT Build 0:6ae2f7bca550 3046
Azure.IoT Build 0:6ae2f7bca550 3047 if (begin == NULL)
Azure.IoT Build 0:6ae2f7bca550 3048 {
AzureIoTClient 19:000ab4e6a2c1 3049 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3050 }
Azure.IoT Build 0:6ae2f7bca550 3051 else
Azure.IoT Build 0:6ae2f7bca550 3052 {
Azure.IoT Build 0:6ae2f7bca550 3053 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
Azure.IoT Build 0:6ae2f7bca550 3054 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
Azure.IoT Build 0:6ae2f7bca550 3055 if (properties_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 3056 {
AzureIoTClient 19:000ab4e6a2c1 3057 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3058 }
Azure.IoT Build 0:6ae2f7bca550 3059 else
Azure.IoT Build 0:6ae2f7bca550 3060 {
Azure.IoT Build 0:6ae2f7bca550 3061 if (amqpvalue_set_composite_item(begin_instance->composite_value, 7, properties_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 3062 {
AzureIoTClient 19:000ab4e6a2c1 3063 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3064 }
Azure.IoT Build 0:6ae2f7bca550 3065 else
Azure.IoT Build 0:6ae2f7bca550 3066 {
Azure.IoT Build 0:6ae2f7bca550 3067 result = 0;
Azure.IoT Build 0:6ae2f7bca550 3068 }
Azure.IoT Build 0:6ae2f7bca550 3069
Azure.IoT Build 0:6ae2f7bca550 3070 amqpvalue_destroy(properties_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 3071 }
Azure.IoT Build 0:6ae2f7bca550 3072 }
Azure.IoT Build 0:6ae2f7bca550 3073
Azure.IoT Build 0:6ae2f7bca550 3074 return result;
Azure.IoT Build 0:6ae2f7bca550 3075 }
Azure.IoT Build 0:6ae2f7bca550 3076
Azure.IoT Build 0:6ae2f7bca550 3077
Azure.IoT Build 0:6ae2f7bca550 3078 /* attach */
Azure.IoT Build 0:6ae2f7bca550 3079
Azure.IoT Build 0:6ae2f7bca550 3080 typedef struct ATTACH_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 3081 {
Azure.IoT Build 0:6ae2f7bca550 3082 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 3083 } ATTACH_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 3084
Azure.IoT Build 0:6ae2f7bca550 3085 static ATTACH_HANDLE attach_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 3086 {
AzureIoTClient 21:f9c433d8e6ca 3087 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 3088 if (attach_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 3089 {
Azure.IoT Build 0:6ae2f7bca550 3090 attach_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 3091 }
Azure.IoT Build 0:6ae2f7bca550 3092
Azure.IoT Build 0:6ae2f7bca550 3093 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3094 }
Azure.IoT Build 0:6ae2f7bca550 3095
Azure.IoT Build 0:6ae2f7bca550 3096 ATTACH_HANDLE attach_create(const char* name_value, handle handle_value, role role_value)
Azure.IoT Build 0:6ae2f7bca550 3097 {
AzureIoTClient 21:f9c433d8e6ca 3098 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 3099 if (attach_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 3100 {
Azure.IoT Build 0:6ae2f7bca550 3101 attach_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(18);
Azure.IoT Build 0:6ae2f7bca550 3102 if (attach_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 3103 {
AzureIoTClient 21:f9c433d8e6ca 3104 free(attach_instance);
Azure.IoT Build 0:6ae2f7bca550 3105 attach_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 3106 }
Azure.IoT Build 0:6ae2f7bca550 3107 else
Azure.IoT Build 0:6ae2f7bca550 3108 {
Azure.IoT Build 0:6ae2f7bca550 3109 AMQP_VALUE name_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 3110 AMQP_VALUE handle_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 3111 AMQP_VALUE role_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 3112 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 3113
Azure.IoT Build 0:6ae2f7bca550 3114 name_amqp_value = amqpvalue_create_string(name_value);
Azure.IoT Build 0:6ae2f7bca550 3115 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 0, name_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 3116 {
AzureIoTClient 19:000ab4e6a2c1 3117 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3118 }
Azure.IoT Build 0:6ae2f7bca550 3119 handle_amqp_value = amqpvalue_create_handle(handle_value);
Azure.IoT Build 0:6ae2f7bca550 3120 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 1, handle_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 3121 {
AzureIoTClient 19:000ab4e6a2c1 3122 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3123 }
Azure.IoT Build 0:6ae2f7bca550 3124 role_amqp_value = amqpvalue_create_role(role_value);
Azure.IoT Build 0:6ae2f7bca550 3125 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 2, role_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 3126 {
AzureIoTClient 19:000ab4e6a2c1 3127 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3128 }
Azure.IoT Build 0:6ae2f7bca550 3129
Azure.IoT Build 0:6ae2f7bca550 3130 amqpvalue_destroy(name_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 3131 amqpvalue_destroy(handle_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 3132 amqpvalue_destroy(role_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 3133 }
Azure.IoT Build 0:6ae2f7bca550 3134 }
Azure.IoT Build 0:6ae2f7bca550 3135
Azure.IoT Build 0:6ae2f7bca550 3136 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3137 }
Azure.IoT Build 0:6ae2f7bca550 3138
Azure.IoT Build 0:6ae2f7bca550 3139 ATTACH_HANDLE attach_clone(ATTACH_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 3140 {
AzureIoTClient 21:f9c433d8e6ca 3141 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 3142 if (attach_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 3143 {
Azure.IoT Build 0:6ae2f7bca550 3144 attach_instance->composite_value = amqpvalue_clone(((ATTACH_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 3145 if (attach_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 3146 {
AzureIoTClient 21:f9c433d8e6ca 3147 free(attach_instance);
Azure.IoT Build 0:6ae2f7bca550 3148 attach_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 3149 }
Azure.IoT Build 0:6ae2f7bca550 3150 }
Azure.IoT Build 0:6ae2f7bca550 3151
Azure.IoT Build 0:6ae2f7bca550 3152 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3153 }
Azure.IoT Build 0:6ae2f7bca550 3154
Azure.IoT Build 0:6ae2f7bca550 3155 void attach_destroy(ATTACH_HANDLE attach)
Azure.IoT Build 0:6ae2f7bca550 3156 {
Azure.IoT Build 0:6ae2f7bca550 3157 if (attach != NULL)
Azure.IoT Build 0:6ae2f7bca550 3158 {
Azure.IoT Build 0:6ae2f7bca550 3159 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 3160 amqpvalue_destroy(attach_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 3161 free(attach_instance);
Azure.IoT Build 0:6ae2f7bca550 3162 }
Azure.IoT Build 0:6ae2f7bca550 3163 }
Azure.IoT Build 0:6ae2f7bca550 3164
Azure.IoT Build 0:6ae2f7bca550 3165 AMQP_VALUE amqpvalue_create_attach(ATTACH_HANDLE attach)
Azure.IoT Build 0:6ae2f7bca550 3166 {
Azure.IoT Build 0:6ae2f7bca550 3167 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 3168
Azure.IoT Build 0:6ae2f7bca550 3169 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3170 {
Azure.IoT Build 0:6ae2f7bca550 3171 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 3172 }
Azure.IoT Build 0:6ae2f7bca550 3173 else
Azure.IoT Build 0:6ae2f7bca550 3174 {
Azure.IoT Build 0:6ae2f7bca550 3175 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 3176 result = amqpvalue_clone(attach_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 3177 }
Azure.IoT Build 0:6ae2f7bca550 3178
Azure.IoT Build 0:6ae2f7bca550 3179 return result;
Azure.IoT Build 0:6ae2f7bca550 3180 }
Azure.IoT Build 0:6ae2f7bca550 3181
Azure.IoT Build 0:6ae2f7bca550 3182 bool is_attach_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 3183 {
Azure.IoT Build 0:6ae2f7bca550 3184 bool result;
Azure.IoT Build 0:6ae2f7bca550 3185
Azure.IoT Build 0:6ae2f7bca550 3186 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 3187 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 3188 (descriptor_ulong == 18))
Azure.IoT Build 0:6ae2f7bca550 3189 {
Azure.IoT Build 0:6ae2f7bca550 3190 result = true;
Azure.IoT Build 0:6ae2f7bca550 3191 }
Azure.IoT Build 0:6ae2f7bca550 3192 else
Azure.IoT Build 0:6ae2f7bca550 3193 {
Azure.IoT Build 0:6ae2f7bca550 3194 result = false;
Azure.IoT Build 0:6ae2f7bca550 3195 }
Azure.IoT Build 0:6ae2f7bca550 3196
Azure.IoT Build 0:6ae2f7bca550 3197 return result;
Azure.IoT Build 0:6ae2f7bca550 3198 }
Azure.IoT Build 0:6ae2f7bca550 3199
Azure.IoT Build 0:6ae2f7bca550 3200
Azure.IoT Build 0:6ae2f7bca550 3201 int amqpvalue_get_attach(AMQP_VALUE value, ATTACH_HANDLE* attach_handle)
Azure.IoT Build 0:6ae2f7bca550 3202 {
Azure.IoT Build 0:6ae2f7bca550 3203 int result;
Azure.IoT Build 0:6ae2f7bca550 3204 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach_create_internal();
Azure.IoT Build 0:6ae2f7bca550 3205 *attach_handle = attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3206 if (*attach_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 3207 {
AzureIoTClient 19:000ab4e6a2c1 3208 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3209 }
Azure.IoT Build 0:6ae2f7bca550 3210 else
Azure.IoT Build 0:6ae2f7bca550 3211 {
Azure.IoT Build 0:6ae2f7bca550 3212 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 3213 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 3214 {
Azure.IoT Build 0:6ae2f7bca550 3215 attach_destroy(*attach_handle);
AzureIoTClient 19:000ab4e6a2c1 3216 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3217 }
Azure.IoT Build 0:6ae2f7bca550 3218 else
Azure.IoT Build 0:6ae2f7bca550 3219 {
AzureIoTClient 23:1111ee8bcba4 3220 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 3221 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3222 {
AzureIoTClient 23:1111ee8bcba4 3223 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3224 }
AzureIoTClient 23:1111ee8bcba4 3225 else
AzureIoTClient 23:1111ee8bcba4 3226 {
AzureIoTClient 23:1111ee8bcba4 3227 do
AzureIoTClient 23:1111ee8bcba4 3228 {
AzureIoTClient 23:1111ee8bcba4 3229 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 3230 /* name */
AzureIoTClient 23:1111ee8bcba4 3231 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 3232 {
AzureIoTClient 23:1111ee8bcba4 3233 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 3234 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3235 {
AzureIoTClient 23:1111ee8bcba4 3236 {
AzureIoTClient 23:1111ee8bcba4 3237 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3238 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3239 break;
AzureIoTClient 23:1111ee8bcba4 3240 }
AzureIoTClient 23:1111ee8bcba4 3241 }
AzureIoTClient 23:1111ee8bcba4 3242 else
AzureIoTClient 23:1111ee8bcba4 3243 {
AzureIoTClient 25:1101516ee67d 3244 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3245 {
AzureIoTClient 25:1101516ee67d 3246 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3247 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3248 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3249 break;
AzureIoTClient 23:1111ee8bcba4 3250 }
AzureIoTClient 23:1111ee8bcba4 3251 else
AzureIoTClient 23:1111ee8bcba4 3252 {
AzureIoTClient 25:1101516ee67d 3253 const char* name;
AzureIoTClient 23:1111ee8bcba4 3254 if (amqpvalue_get_string(item_value, &name) != 0)
AzureIoTClient 23:1111ee8bcba4 3255 {
AzureIoTClient 25:1101516ee67d 3256 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3257 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3258 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3259 break;
AzureIoTClient 23:1111ee8bcba4 3260 }
AzureIoTClient 23:1111ee8bcba4 3261 }
AzureIoTClient 23:1111ee8bcba4 3262
AzureIoTClient 23:1111ee8bcba4 3263 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3264 }
AzureIoTClient 23:1111ee8bcba4 3265 }
AzureIoTClient 23:1111ee8bcba4 3266 else
AzureIoTClient 23:1111ee8bcba4 3267 {
AzureIoTClient 23:1111ee8bcba4 3268 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3269 }
AzureIoTClient 23:1111ee8bcba4 3270 /* handle */
AzureIoTClient 23:1111ee8bcba4 3271 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 3272 {
AzureIoTClient 23:1111ee8bcba4 3273 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 3274 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3275 {
AzureIoTClient 23:1111ee8bcba4 3276 {
AzureIoTClient 23:1111ee8bcba4 3277 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3278 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3279 break;
AzureIoTClient 23:1111ee8bcba4 3280 }
AzureIoTClient 23:1111ee8bcba4 3281 }
AzureIoTClient 23:1111ee8bcba4 3282 else
AzureIoTClient 23:1111ee8bcba4 3283 {
AzureIoTClient 25:1101516ee67d 3284 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3285 {
AzureIoTClient 25:1101516ee67d 3286 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3287 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3288 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3289 break;
AzureIoTClient 23:1111ee8bcba4 3290 }
AzureIoTClient 23:1111ee8bcba4 3291 else
AzureIoTClient 23:1111ee8bcba4 3292 {
AzureIoTClient 25:1101516ee67d 3293 handle handle;
AzureIoTClient 23:1111ee8bcba4 3294 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 23:1111ee8bcba4 3295 {
AzureIoTClient 25:1101516ee67d 3296 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3297 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3298 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3299 break;
AzureIoTClient 23:1111ee8bcba4 3300 }
AzureIoTClient 23:1111ee8bcba4 3301 }
AzureIoTClient 23:1111ee8bcba4 3302
AzureIoTClient 23:1111ee8bcba4 3303 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3304 }
AzureIoTClient 23:1111ee8bcba4 3305 }
AzureIoTClient 23:1111ee8bcba4 3306 else
AzureIoTClient 23:1111ee8bcba4 3307 {
AzureIoTClient 23:1111ee8bcba4 3308 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3309 }
AzureIoTClient 23:1111ee8bcba4 3310 /* role */
AzureIoTClient 23:1111ee8bcba4 3311 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 3312 {
AzureIoTClient 23:1111ee8bcba4 3313 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 3314 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3315 {
AzureIoTClient 23:1111ee8bcba4 3316 {
AzureIoTClient 23:1111ee8bcba4 3317 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3318 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3319 break;
AzureIoTClient 23:1111ee8bcba4 3320 }
AzureIoTClient 23:1111ee8bcba4 3321 }
AzureIoTClient 23:1111ee8bcba4 3322 else
AzureIoTClient 23:1111ee8bcba4 3323 {
AzureIoTClient 25:1101516ee67d 3324 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3325 {
AzureIoTClient 25:1101516ee67d 3326 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3327 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3328 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3329 break;
AzureIoTClient 23:1111ee8bcba4 3330 }
AzureIoTClient 23:1111ee8bcba4 3331 else
AzureIoTClient 23:1111ee8bcba4 3332 {
AzureIoTClient 25:1101516ee67d 3333 role role;
AzureIoTClient 23:1111ee8bcba4 3334 if (amqpvalue_get_role(item_value, &role) != 0)
AzureIoTClient 23:1111ee8bcba4 3335 {
AzureIoTClient 25:1101516ee67d 3336 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3337 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3338 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3339 break;
AzureIoTClient 23:1111ee8bcba4 3340 }
AzureIoTClient 23:1111ee8bcba4 3341 }
AzureIoTClient 23:1111ee8bcba4 3342
AzureIoTClient 23:1111ee8bcba4 3343 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3344 }
AzureIoTClient 23:1111ee8bcba4 3345 }
AzureIoTClient 23:1111ee8bcba4 3346 else
AzureIoTClient 23:1111ee8bcba4 3347 {
AzureIoTClient 23:1111ee8bcba4 3348 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3349 }
AzureIoTClient 23:1111ee8bcba4 3350 /* snd-settle-mode */
AzureIoTClient 23:1111ee8bcba4 3351 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 3352 {
AzureIoTClient 23:1111ee8bcba4 3353 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 3354 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3355 {
AzureIoTClient 23:1111ee8bcba4 3356 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3357 }
AzureIoTClient 23:1111ee8bcba4 3358 else
AzureIoTClient 23:1111ee8bcba4 3359 {
AzureIoTClient 25:1101516ee67d 3360 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3361 {
AzureIoTClient 25:1101516ee67d 3362 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3363 }
AzureIoTClient 25:1101516ee67d 3364 else
AzureIoTClient 25:1101516ee67d 3365 {
AzureIoTClient 25:1101516ee67d 3366 sender_settle_mode snd_settle_mode;
AzureIoTClient 23:1111ee8bcba4 3367 if (amqpvalue_get_sender_settle_mode(item_value, &snd_settle_mode) != 0)
AzureIoTClient 23:1111ee8bcba4 3368 {
AzureIoTClient 25:1101516ee67d 3369 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3370 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3371 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3372 break;
AzureIoTClient 23:1111ee8bcba4 3373 }
AzureIoTClient 23:1111ee8bcba4 3374 }
AzureIoTClient 23:1111ee8bcba4 3375
AzureIoTClient 23:1111ee8bcba4 3376 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3377 }
AzureIoTClient 23:1111ee8bcba4 3378 }
AzureIoTClient 23:1111ee8bcba4 3379 /* rcv-settle-mode */
AzureIoTClient 23:1111ee8bcba4 3380 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 3381 {
AzureIoTClient 23:1111ee8bcba4 3382 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 3383 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3384 {
AzureIoTClient 23:1111ee8bcba4 3385 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3386 }
AzureIoTClient 23:1111ee8bcba4 3387 else
AzureIoTClient 23:1111ee8bcba4 3388 {
AzureIoTClient 25:1101516ee67d 3389 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3390 {
AzureIoTClient 25:1101516ee67d 3391 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3392 }
AzureIoTClient 25:1101516ee67d 3393 else
AzureIoTClient 25:1101516ee67d 3394 {
AzureIoTClient 25:1101516ee67d 3395 receiver_settle_mode rcv_settle_mode;
AzureIoTClient 23:1111ee8bcba4 3396 if (amqpvalue_get_receiver_settle_mode(item_value, &rcv_settle_mode) != 0)
AzureIoTClient 23:1111ee8bcba4 3397 {
AzureIoTClient 25:1101516ee67d 3398 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3399 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3400 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3401 break;
AzureIoTClient 23:1111ee8bcba4 3402 }
AzureIoTClient 23:1111ee8bcba4 3403 }
AzureIoTClient 23:1111ee8bcba4 3404
AzureIoTClient 23:1111ee8bcba4 3405 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3406 }
AzureIoTClient 23:1111ee8bcba4 3407 }
AzureIoTClient 23:1111ee8bcba4 3408 /* source */
AzureIoTClient 23:1111ee8bcba4 3409 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 3410 {
AzureIoTClient 23:1111ee8bcba4 3411 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 3412 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3413 {
AzureIoTClient 23:1111ee8bcba4 3414 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3415 }
AzureIoTClient 23:1111ee8bcba4 3416 else
AzureIoTClient 23:1111ee8bcba4 3417 {
AzureIoTClient 23:1111ee8bcba4 3418 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3419 }
AzureIoTClient 23:1111ee8bcba4 3420 }
AzureIoTClient 23:1111ee8bcba4 3421 /* target */
AzureIoTClient 23:1111ee8bcba4 3422 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 3423 {
AzureIoTClient 23:1111ee8bcba4 3424 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 23:1111ee8bcba4 3425 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3426 {
AzureIoTClient 23:1111ee8bcba4 3427 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3428 }
AzureIoTClient 23:1111ee8bcba4 3429 else
AzureIoTClient 23:1111ee8bcba4 3430 {
AzureIoTClient 23:1111ee8bcba4 3431 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3432 }
AzureIoTClient 23:1111ee8bcba4 3433 }
AzureIoTClient 23:1111ee8bcba4 3434 /* unsettled */
AzureIoTClient 23:1111ee8bcba4 3435 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 3436 {
AzureIoTClient 23:1111ee8bcba4 3437 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 23:1111ee8bcba4 3438 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3439 {
AzureIoTClient 23:1111ee8bcba4 3440 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3441 }
AzureIoTClient 23:1111ee8bcba4 3442 else
AzureIoTClient 23:1111ee8bcba4 3443 {
AzureIoTClient 25:1101516ee67d 3444 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3445 {
AzureIoTClient 25:1101516ee67d 3446 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3447 }
AzureIoTClient 25:1101516ee67d 3448 else
AzureIoTClient 25:1101516ee67d 3449 {
AzureIoTClient 25:1101516ee67d 3450 AMQP_VALUE unsettled;
AzureIoTClient 23:1111ee8bcba4 3451 if (amqpvalue_get_map(item_value, &unsettled) != 0)
AzureIoTClient 23:1111ee8bcba4 3452 {
AzureIoTClient 25:1101516ee67d 3453 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3454 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3455 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3456 break;
AzureIoTClient 23:1111ee8bcba4 3457 }
AzureIoTClient 23:1111ee8bcba4 3458 }
AzureIoTClient 23:1111ee8bcba4 3459
AzureIoTClient 23:1111ee8bcba4 3460 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3461 }
AzureIoTClient 23:1111ee8bcba4 3462 }
AzureIoTClient 23:1111ee8bcba4 3463 /* incomplete-unsettled */
AzureIoTClient 23:1111ee8bcba4 3464 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 3465 {
AzureIoTClient 23:1111ee8bcba4 3466 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 23:1111ee8bcba4 3467 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3468 {
AzureIoTClient 23:1111ee8bcba4 3469 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3470 }
AzureIoTClient 23:1111ee8bcba4 3471 else
AzureIoTClient 23:1111ee8bcba4 3472 {
AzureIoTClient 25:1101516ee67d 3473 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3474 {
AzureIoTClient 25:1101516ee67d 3475 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3476 }
AzureIoTClient 25:1101516ee67d 3477 else
AzureIoTClient 25:1101516ee67d 3478 {
AzureIoTClient 25:1101516ee67d 3479 bool incomplete_unsettled;
AzureIoTClient 23:1111ee8bcba4 3480 if (amqpvalue_get_boolean(item_value, &incomplete_unsettled) != 0)
AzureIoTClient 23:1111ee8bcba4 3481 {
AzureIoTClient 25:1101516ee67d 3482 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3483 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3484 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3485 break;
AzureIoTClient 23:1111ee8bcba4 3486 }
AzureIoTClient 23:1111ee8bcba4 3487 }
AzureIoTClient 23:1111ee8bcba4 3488
AzureIoTClient 23:1111ee8bcba4 3489 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3490 }
AzureIoTClient 23:1111ee8bcba4 3491 }
AzureIoTClient 23:1111ee8bcba4 3492 /* initial-delivery-count */
AzureIoTClient 23:1111ee8bcba4 3493 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 3494 {
AzureIoTClient 23:1111ee8bcba4 3495 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 23:1111ee8bcba4 3496 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3497 {
AzureIoTClient 23:1111ee8bcba4 3498 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3499 }
AzureIoTClient 23:1111ee8bcba4 3500 else
AzureIoTClient 23:1111ee8bcba4 3501 {
AzureIoTClient 25:1101516ee67d 3502 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3503 {
AzureIoTClient 25:1101516ee67d 3504 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3505 }
AzureIoTClient 25:1101516ee67d 3506 else
AzureIoTClient 25:1101516ee67d 3507 {
AzureIoTClient 25:1101516ee67d 3508 sequence_no initial_delivery_count;
AzureIoTClient 23:1111ee8bcba4 3509 if (amqpvalue_get_sequence_no(item_value, &initial_delivery_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3510 {
AzureIoTClient 25:1101516ee67d 3511 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3512 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3513 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3514 break;
AzureIoTClient 23:1111ee8bcba4 3515 }
AzureIoTClient 23:1111ee8bcba4 3516 }
AzureIoTClient 23:1111ee8bcba4 3517
AzureIoTClient 23:1111ee8bcba4 3518 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3519 }
AzureIoTClient 23:1111ee8bcba4 3520 }
AzureIoTClient 23:1111ee8bcba4 3521 /* max-message-size */
AzureIoTClient 23:1111ee8bcba4 3522 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 3523 {
AzureIoTClient 23:1111ee8bcba4 3524 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 23:1111ee8bcba4 3525 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3526 {
AzureIoTClient 23:1111ee8bcba4 3527 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3528 }
AzureIoTClient 23:1111ee8bcba4 3529 else
AzureIoTClient 23:1111ee8bcba4 3530 {
AzureIoTClient 25:1101516ee67d 3531 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3532 {
AzureIoTClient 25:1101516ee67d 3533 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3534 }
AzureIoTClient 25:1101516ee67d 3535 else
AzureIoTClient 25:1101516ee67d 3536 {
AzureIoTClient 25:1101516ee67d 3537 uint64_t max_message_size;
AzureIoTClient 23:1111ee8bcba4 3538 if (amqpvalue_get_ulong(item_value, &max_message_size) != 0)
AzureIoTClient 23:1111ee8bcba4 3539 {
AzureIoTClient 25:1101516ee67d 3540 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3541 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3542 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3543 break;
AzureIoTClient 23:1111ee8bcba4 3544 }
AzureIoTClient 23:1111ee8bcba4 3545 }
AzureIoTClient 23:1111ee8bcba4 3546
AzureIoTClient 23:1111ee8bcba4 3547 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3548 }
AzureIoTClient 23:1111ee8bcba4 3549 }
AzureIoTClient 23:1111ee8bcba4 3550 /* offered-capabilities */
AzureIoTClient 23:1111ee8bcba4 3551 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 3552 {
AzureIoTClient 23:1111ee8bcba4 3553 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 23:1111ee8bcba4 3554 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3555 {
AzureIoTClient 23:1111ee8bcba4 3556 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3557 }
AzureIoTClient 23:1111ee8bcba4 3558 else
AzureIoTClient 23:1111ee8bcba4 3559 {
AzureIoTClient 25:1101516ee67d 3560 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3561 {
AzureIoTClient 25:1101516ee67d 3562 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3563 }
AzureIoTClient 25:1101516ee67d 3564 else
AzureIoTClient 25:1101516ee67d 3565 {
AzureIoTClient 25:1101516ee67d 3566 const char* offered_capabilities = NULL;
AzureIoTClient 23:1111ee8bcba4 3567 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 23:1111ee8bcba4 3568 if ((amqpvalue_get_array(item_value, &offered_capabilities_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 3569 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 23:1111ee8bcba4 3570 {
AzureIoTClient 25:1101516ee67d 3571 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3572 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3573 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3574 break;
AzureIoTClient 23:1111ee8bcba4 3575 }
AzureIoTClient 23:1111ee8bcba4 3576 }
AzureIoTClient 23:1111ee8bcba4 3577
AzureIoTClient 23:1111ee8bcba4 3578 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3579 }
AzureIoTClient 23:1111ee8bcba4 3580 }
AzureIoTClient 23:1111ee8bcba4 3581 /* desired-capabilities */
AzureIoTClient 23:1111ee8bcba4 3582 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 3583 {
AzureIoTClient 23:1111ee8bcba4 3584 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 23:1111ee8bcba4 3585 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3586 {
AzureIoTClient 23:1111ee8bcba4 3587 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3588 }
AzureIoTClient 23:1111ee8bcba4 3589 else
AzureIoTClient 23:1111ee8bcba4 3590 {
AzureIoTClient 25:1101516ee67d 3591 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3592 {
AzureIoTClient 25:1101516ee67d 3593 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3594 }
AzureIoTClient 25:1101516ee67d 3595 else
AzureIoTClient 25:1101516ee67d 3596 {
AzureIoTClient 25:1101516ee67d 3597 const char* desired_capabilities = NULL;
AzureIoTClient 23:1111ee8bcba4 3598 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 23:1111ee8bcba4 3599 if ((amqpvalue_get_array(item_value, &desired_capabilities_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 3600 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 23:1111ee8bcba4 3601 {
AzureIoTClient 25:1101516ee67d 3602 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3603 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3604 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3605 break;
AzureIoTClient 23:1111ee8bcba4 3606 }
AzureIoTClient 23:1111ee8bcba4 3607 }
AzureIoTClient 23:1111ee8bcba4 3608
AzureIoTClient 23:1111ee8bcba4 3609 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3610 }
AzureIoTClient 23:1111ee8bcba4 3611 }
AzureIoTClient 23:1111ee8bcba4 3612 /* properties */
AzureIoTClient 23:1111ee8bcba4 3613 if (list_item_count > 13)
AzureIoTClient 23:1111ee8bcba4 3614 {
AzureIoTClient 23:1111ee8bcba4 3615 item_value = amqpvalue_get_list_item(list_value, 13);
AzureIoTClient 23:1111ee8bcba4 3616 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3617 {
AzureIoTClient 23:1111ee8bcba4 3618 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 3619 }
AzureIoTClient 23:1111ee8bcba4 3620 else
AzureIoTClient 23:1111ee8bcba4 3621 {
AzureIoTClient 25:1101516ee67d 3622 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 3623 {
AzureIoTClient 25:1101516ee67d 3624 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 3625 }
AzureIoTClient 25:1101516ee67d 3626 else
AzureIoTClient 25:1101516ee67d 3627 {
AzureIoTClient 25:1101516ee67d 3628 fields properties;
AzureIoTClient 23:1111ee8bcba4 3629 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 23:1111ee8bcba4 3630 {
AzureIoTClient 25:1101516ee67d 3631 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3632 attach_destroy(*attach_handle);
AzureIoTClient 23:1111ee8bcba4 3633 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3634 break;
AzureIoTClient 23:1111ee8bcba4 3635 }
AzureIoTClient 23:1111ee8bcba4 3636 }
AzureIoTClient 23:1111ee8bcba4 3637
AzureIoTClient 23:1111ee8bcba4 3638 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 3639 }
AzureIoTClient 23:1111ee8bcba4 3640 }
AzureIoTClient 23:1111ee8bcba4 3641
AzureIoTClient 23:1111ee8bcba4 3642 attach_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 3643
AzureIoTClient 23:1111ee8bcba4 3644 result = 0;
AzureIoTClient 23:1111ee8bcba4 3645 } while (0);
AzureIoTClient 23:1111ee8bcba4 3646 }
Azure.IoT Build 0:6ae2f7bca550 3647 }
Azure.IoT Build 0:6ae2f7bca550 3648 }
Azure.IoT Build 0:6ae2f7bca550 3649
Azure.IoT Build 0:6ae2f7bca550 3650 return result;
Azure.IoT Build 0:6ae2f7bca550 3651 }
Azure.IoT Build 0:6ae2f7bca550 3652
Azure.IoT Build 0:6ae2f7bca550 3653 int attach_get_name(ATTACH_HANDLE attach, const char** name_value)
Azure.IoT Build 0:6ae2f7bca550 3654 {
Azure.IoT Build 0:6ae2f7bca550 3655 int result;
Azure.IoT Build 0:6ae2f7bca550 3656
Azure.IoT Build 0:6ae2f7bca550 3657 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3658 {
AzureIoTClient 19:000ab4e6a2c1 3659 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3660 }
Azure.IoT Build 0:6ae2f7bca550 3661 else
Azure.IoT Build 0:6ae2f7bca550 3662 {
AzureIoTClient 23:1111ee8bcba4 3663 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 3664 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 3665 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3666 {
AzureIoTClient 23:1111ee8bcba4 3667 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3668 }
AzureIoTClient 23:1111ee8bcba4 3669 else
AzureIoTClient 23:1111ee8bcba4 3670 {
AzureIoTClient 23:1111ee8bcba4 3671 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 3672 {
AzureIoTClient 23:1111ee8bcba4 3673 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3674 }
AzureIoTClient 23:1111ee8bcba4 3675 else
AzureIoTClient 23:1111ee8bcba4 3676 {
AzureIoTClient 23:1111ee8bcba4 3677 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 3678 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 3679 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 3680 {
AzureIoTClient 23:1111ee8bcba4 3681 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3682 }
AzureIoTClient 23:1111ee8bcba4 3683 else
AzureIoTClient 23:1111ee8bcba4 3684 {
AzureIoTClient 23:1111ee8bcba4 3685 if (amqpvalue_get_string(item_value, name_value) != 0)
AzureIoTClient 23:1111ee8bcba4 3686 {
AzureIoTClient 23:1111ee8bcba4 3687 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3688 }
AzureIoTClient 23:1111ee8bcba4 3689 else
AzureIoTClient 23:1111ee8bcba4 3690 {
AzureIoTClient 23:1111ee8bcba4 3691 result = 0;
AzureIoTClient 23:1111ee8bcba4 3692 }
AzureIoTClient 23:1111ee8bcba4 3693 }
AzureIoTClient 23:1111ee8bcba4 3694 }
Azure.IoT Build 0:6ae2f7bca550 3695 }
Azure.IoT Build 0:6ae2f7bca550 3696 }
Azure.IoT Build 0:6ae2f7bca550 3697
Azure.IoT Build 0:6ae2f7bca550 3698 return result;
Azure.IoT Build 0:6ae2f7bca550 3699 }
Azure.IoT Build 0:6ae2f7bca550 3700
Azure.IoT Build 0:6ae2f7bca550 3701 int attach_set_name(ATTACH_HANDLE attach, const char* name_value)
Azure.IoT Build 0:6ae2f7bca550 3702 {
Azure.IoT Build 0:6ae2f7bca550 3703 int result;
Azure.IoT Build 0:6ae2f7bca550 3704
Azure.IoT Build 0:6ae2f7bca550 3705 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3706 {
AzureIoTClient 19:000ab4e6a2c1 3707 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3708 }
Azure.IoT Build 0:6ae2f7bca550 3709 else
Azure.IoT Build 0:6ae2f7bca550 3710 {
Azure.IoT Build 0:6ae2f7bca550 3711 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 3712 AMQP_VALUE name_amqp_value = amqpvalue_create_string(name_value);
Azure.IoT Build 0:6ae2f7bca550 3713 if (name_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 3714 {
AzureIoTClient 19:000ab4e6a2c1 3715 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3716 }
Azure.IoT Build 0:6ae2f7bca550 3717 else
Azure.IoT Build 0:6ae2f7bca550 3718 {
Azure.IoT Build 0:6ae2f7bca550 3719 if (amqpvalue_set_composite_item(attach_instance->composite_value, 0, name_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 3720 {
AzureIoTClient 19:000ab4e6a2c1 3721 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3722 }
Azure.IoT Build 0:6ae2f7bca550 3723 else
Azure.IoT Build 0:6ae2f7bca550 3724 {
Azure.IoT Build 0:6ae2f7bca550 3725 result = 0;
Azure.IoT Build 0:6ae2f7bca550 3726 }
Azure.IoT Build 0:6ae2f7bca550 3727
Azure.IoT Build 0:6ae2f7bca550 3728 amqpvalue_destroy(name_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 3729 }
Azure.IoT Build 0:6ae2f7bca550 3730 }
Azure.IoT Build 0:6ae2f7bca550 3731
Azure.IoT Build 0:6ae2f7bca550 3732 return result;
Azure.IoT Build 0:6ae2f7bca550 3733 }
Azure.IoT Build 0:6ae2f7bca550 3734
Azure.IoT Build 0:6ae2f7bca550 3735 int attach_get_handle(ATTACH_HANDLE attach, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 3736 {
Azure.IoT Build 0:6ae2f7bca550 3737 int result;
Azure.IoT Build 0:6ae2f7bca550 3738
Azure.IoT Build 0:6ae2f7bca550 3739 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3740 {
AzureIoTClient 19:000ab4e6a2c1 3741 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3742 }
Azure.IoT Build 0:6ae2f7bca550 3743 else
Azure.IoT Build 0:6ae2f7bca550 3744 {
AzureIoTClient 23:1111ee8bcba4 3745 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 3746 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 3747 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3748 {
AzureIoTClient 23:1111ee8bcba4 3749 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3750 }
AzureIoTClient 23:1111ee8bcba4 3751 else
AzureIoTClient 23:1111ee8bcba4 3752 {
AzureIoTClient 23:1111ee8bcba4 3753 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 3754 {
AzureIoTClient 23:1111ee8bcba4 3755 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3756 }
AzureIoTClient 23:1111ee8bcba4 3757 else
AzureIoTClient 23:1111ee8bcba4 3758 {
AzureIoTClient 23:1111ee8bcba4 3759 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 3760 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 3761 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 3762 {
AzureIoTClient 23:1111ee8bcba4 3763 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3764 }
AzureIoTClient 23:1111ee8bcba4 3765 else
AzureIoTClient 23:1111ee8bcba4 3766 {
AzureIoTClient 23:1111ee8bcba4 3767 if (amqpvalue_get_handle(item_value, handle_value) != 0)
AzureIoTClient 23:1111ee8bcba4 3768 {
AzureIoTClient 23:1111ee8bcba4 3769 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3770 }
AzureIoTClient 23:1111ee8bcba4 3771 else
AzureIoTClient 23:1111ee8bcba4 3772 {
AzureIoTClient 23:1111ee8bcba4 3773 result = 0;
AzureIoTClient 23:1111ee8bcba4 3774 }
AzureIoTClient 23:1111ee8bcba4 3775 }
AzureIoTClient 23:1111ee8bcba4 3776 }
Azure.IoT Build 0:6ae2f7bca550 3777 }
Azure.IoT Build 0:6ae2f7bca550 3778 }
Azure.IoT Build 0:6ae2f7bca550 3779
Azure.IoT Build 0:6ae2f7bca550 3780 return result;
Azure.IoT Build 0:6ae2f7bca550 3781 }
Azure.IoT Build 0:6ae2f7bca550 3782
Azure.IoT Build 0:6ae2f7bca550 3783 int attach_set_handle(ATTACH_HANDLE attach, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 3784 {
Azure.IoT Build 0:6ae2f7bca550 3785 int result;
Azure.IoT Build 0:6ae2f7bca550 3786
Azure.IoT Build 0:6ae2f7bca550 3787 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3788 {
AzureIoTClient 19:000ab4e6a2c1 3789 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3790 }
Azure.IoT Build 0:6ae2f7bca550 3791 else
Azure.IoT Build 0:6ae2f7bca550 3792 {
Azure.IoT Build 0:6ae2f7bca550 3793 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 3794 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
Azure.IoT Build 0:6ae2f7bca550 3795 if (handle_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 3796 {
AzureIoTClient 19:000ab4e6a2c1 3797 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3798 }
Azure.IoT Build 0:6ae2f7bca550 3799 else
Azure.IoT Build 0:6ae2f7bca550 3800 {
Azure.IoT Build 0:6ae2f7bca550 3801 if (amqpvalue_set_composite_item(attach_instance->composite_value, 1, handle_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 3802 {
AzureIoTClient 19:000ab4e6a2c1 3803 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3804 }
Azure.IoT Build 0:6ae2f7bca550 3805 else
Azure.IoT Build 0:6ae2f7bca550 3806 {
Azure.IoT Build 0:6ae2f7bca550 3807 result = 0;
Azure.IoT Build 0:6ae2f7bca550 3808 }
Azure.IoT Build 0:6ae2f7bca550 3809
Azure.IoT Build 0:6ae2f7bca550 3810 amqpvalue_destroy(handle_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 3811 }
Azure.IoT Build 0:6ae2f7bca550 3812 }
Azure.IoT Build 0:6ae2f7bca550 3813
Azure.IoT Build 0:6ae2f7bca550 3814 return result;
Azure.IoT Build 0:6ae2f7bca550 3815 }
Azure.IoT Build 0:6ae2f7bca550 3816
Azure.IoT Build 0:6ae2f7bca550 3817 int attach_get_role(ATTACH_HANDLE attach, role* role_value)
Azure.IoT Build 0:6ae2f7bca550 3818 {
Azure.IoT Build 0:6ae2f7bca550 3819 int result;
Azure.IoT Build 0:6ae2f7bca550 3820
Azure.IoT Build 0:6ae2f7bca550 3821 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3822 {
AzureIoTClient 19:000ab4e6a2c1 3823 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3824 }
Azure.IoT Build 0:6ae2f7bca550 3825 else
Azure.IoT Build 0:6ae2f7bca550 3826 {
AzureIoTClient 23:1111ee8bcba4 3827 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 3828 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 3829 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3830 {
AzureIoTClient 23:1111ee8bcba4 3831 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3832 }
AzureIoTClient 23:1111ee8bcba4 3833 else
AzureIoTClient 23:1111ee8bcba4 3834 {
AzureIoTClient 23:1111ee8bcba4 3835 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 3836 {
AzureIoTClient 23:1111ee8bcba4 3837 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3838 }
AzureIoTClient 23:1111ee8bcba4 3839 else
AzureIoTClient 23:1111ee8bcba4 3840 {
AzureIoTClient 23:1111ee8bcba4 3841 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 3842 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 3843 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 3844 {
AzureIoTClient 23:1111ee8bcba4 3845 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3846 }
AzureIoTClient 23:1111ee8bcba4 3847 else
AzureIoTClient 23:1111ee8bcba4 3848 {
AzureIoTClient 23:1111ee8bcba4 3849 if (amqpvalue_get_role(item_value, role_value) != 0)
AzureIoTClient 23:1111ee8bcba4 3850 {
AzureIoTClient 23:1111ee8bcba4 3851 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3852 }
AzureIoTClient 23:1111ee8bcba4 3853 else
AzureIoTClient 23:1111ee8bcba4 3854 {
AzureIoTClient 23:1111ee8bcba4 3855 result = 0;
AzureIoTClient 23:1111ee8bcba4 3856 }
AzureIoTClient 23:1111ee8bcba4 3857 }
AzureIoTClient 23:1111ee8bcba4 3858 }
Azure.IoT Build 0:6ae2f7bca550 3859 }
Azure.IoT Build 0:6ae2f7bca550 3860 }
Azure.IoT Build 0:6ae2f7bca550 3861
Azure.IoT Build 0:6ae2f7bca550 3862 return result;
Azure.IoT Build 0:6ae2f7bca550 3863 }
Azure.IoT Build 0:6ae2f7bca550 3864
Azure.IoT Build 0:6ae2f7bca550 3865 int attach_set_role(ATTACH_HANDLE attach, role role_value)
Azure.IoT Build 0:6ae2f7bca550 3866 {
Azure.IoT Build 0:6ae2f7bca550 3867 int result;
Azure.IoT Build 0:6ae2f7bca550 3868
Azure.IoT Build 0:6ae2f7bca550 3869 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3870 {
AzureIoTClient 19:000ab4e6a2c1 3871 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3872 }
Azure.IoT Build 0:6ae2f7bca550 3873 else
Azure.IoT Build 0:6ae2f7bca550 3874 {
Azure.IoT Build 0:6ae2f7bca550 3875 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 3876 AMQP_VALUE role_amqp_value = amqpvalue_create_role(role_value);
Azure.IoT Build 0:6ae2f7bca550 3877 if (role_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 3878 {
AzureIoTClient 19:000ab4e6a2c1 3879 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3880 }
Azure.IoT Build 0:6ae2f7bca550 3881 else
Azure.IoT Build 0:6ae2f7bca550 3882 {
Azure.IoT Build 0:6ae2f7bca550 3883 if (amqpvalue_set_composite_item(attach_instance->composite_value, 2, role_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 3884 {
AzureIoTClient 19:000ab4e6a2c1 3885 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3886 }
Azure.IoT Build 0:6ae2f7bca550 3887 else
Azure.IoT Build 0:6ae2f7bca550 3888 {
Azure.IoT Build 0:6ae2f7bca550 3889 result = 0;
Azure.IoT Build 0:6ae2f7bca550 3890 }
Azure.IoT Build 0:6ae2f7bca550 3891
Azure.IoT Build 0:6ae2f7bca550 3892 amqpvalue_destroy(role_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 3893 }
Azure.IoT Build 0:6ae2f7bca550 3894 }
Azure.IoT Build 0:6ae2f7bca550 3895
Azure.IoT Build 0:6ae2f7bca550 3896 return result;
Azure.IoT Build 0:6ae2f7bca550 3897 }
Azure.IoT Build 0:6ae2f7bca550 3898
Azure.IoT Build 0:6ae2f7bca550 3899 int attach_get_snd_settle_mode(ATTACH_HANDLE attach, sender_settle_mode* snd_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 3900 {
Azure.IoT Build 0:6ae2f7bca550 3901 int result;
Azure.IoT Build 0:6ae2f7bca550 3902
Azure.IoT Build 0:6ae2f7bca550 3903 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3904 {
AzureIoTClient 19:000ab4e6a2c1 3905 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3906 }
Azure.IoT Build 0:6ae2f7bca550 3907 else
Azure.IoT Build 0:6ae2f7bca550 3908 {
AzureIoTClient 23:1111ee8bcba4 3909 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 3910 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 3911 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3912 {
AzureIoTClient 23:1111ee8bcba4 3913 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3914 }
AzureIoTClient 23:1111ee8bcba4 3915 else
AzureIoTClient 23:1111ee8bcba4 3916 {
AzureIoTClient 23:1111ee8bcba4 3917 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 3918 {
AzureIoTClient 23:1111ee8bcba4 3919 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 23:1111ee8bcba4 3920 result = 0;
AzureIoTClient 23:1111ee8bcba4 3921 }
AzureIoTClient 23:1111ee8bcba4 3922 else
AzureIoTClient 23:1111ee8bcba4 3923 {
AzureIoTClient 23:1111ee8bcba4 3924 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 3925 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 3926 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 3927 {
AzureIoTClient 16:22a72cf8e416 3928 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 16:22a72cf8e416 3929 result = 0;
AzureIoTClient 23:1111ee8bcba4 3930 }
AzureIoTClient 23:1111ee8bcba4 3931 else
AzureIoTClient 23:1111ee8bcba4 3932 {
AzureIoTClient 23:1111ee8bcba4 3933 if (amqpvalue_get_sender_settle_mode(item_value, snd_settle_mode_value) != 0)
AzureIoTClient 23:1111ee8bcba4 3934 {
AzureIoTClient 23:1111ee8bcba4 3935 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 3936 {
AzureIoTClient 23:1111ee8bcba4 3937 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3938 }
AzureIoTClient 23:1111ee8bcba4 3939 else
AzureIoTClient 23:1111ee8bcba4 3940 {
AzureIoTClient 23:1111ee8bcba4 3941 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 23:1111ee8bcba4 3942 result = 0;
AzureIoTClient 23:1111ee8bcba4 3943 }
AzureIoTClient 23:1111ee8bcba4 3944 }
AzureIoTClient 23:1111ee8bcba4 3945 else
AzureIoTClient 23:1111ee8bcba4 3946 {
AzureIoTClient 23:1111ee8bcba4 3947 result = 0;
AzureIoTClient 23:1111ee8bcba4 3948 }
AzureIoTClient 23:1111ee8bcba4 3949 }
AzureIoTClient 23:1111ee8bcba4 3950 }
Azure.IoT Build 0:6ae2f7bca550 3951 }
Azure.IoT Build 0:6ae2f7bca550 3952 }
Azure.IoT Build 0:6ae2f7bca550 3953
Azure.IoT Build 0:6ae2f7bca550 3954 return result;
Azure.IoT Build 0:6ae2f7bca550 3955 }
Azure.IoT Build 0:6ae2f7bca550 3956
Azure.IoT Build 0:6ae2f7bca550 3957 int attach_set_snd_settle_mode(ATTACH_HANDLE attach, sender_settle_mode snd_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 3958 {
Azure.IoT Build 0:6ae2f7bca550 3959 int result;
Azure.IoT Build 0:6ae2f7bca550 3960
Azure.IoT Build 0:6ae2f7bca550 3961 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3962 {
AzureIoTClient 19:000ab4e6a2c1 3963 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3964 }
Azure.IoT Build 0:6ae2f7bca550 3965 else
Azure.IoT Build 0:6ae2f7bca550 3966 {
Azure.IoT Build 0:6ae2f7bca550 3967 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 3968 AMQP_VALUE snd_settle_mode_amqp_value = amqpvalue_create_sender_settle_mode(snd_settle_mode_value);
Azure.IoT Build 0:6ae2f7bca550 3969 if (snd_settle_mode_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 3970 {
AzureIoTClient 19:000ab4e6a2c1 3971 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3972 }
Azure.IoT Build 0:6ae2f7bca550 3973 else
Azure.IoT Build 0:6ae2f7bca550 3974 {
Azure.IoT Build 0:6ae2f7bca550 3975 if (amqpvalue_set_composite_item(attach_instance->composite_value, 3, snd_settle_mode_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 3976 {
AzureIoTClient 19:000ab4e6a2c1 3977 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3978 }
Azure.IoT Build 0:6ae2f7bca550 3979 else
Azure.IoT Build 0:6ae2f7bca550 3980 {
Azure.IoT Build 0:6ae2f7bca550 3981 result = 0;
Azure.IoT Build 0:6ae2f7bca550 3982 }
Azure.IoT Build 0:6ae2f7bca550 3983
Azure.IoT Build 0:6ae2f7bca550 3984 amqpvalue_destroy(snd_settle_mode_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 3985 }
Azure.IoT Build 0:6ae2f7bca550 3986 }
Azure.IoT Build 0:6ae2f7bca550 3987
Azure.IoT Build 0:6ae2f7bca550 3988 return result;
Azure.IoT Build 0:6ae2f7bca550 3989 }
Azure.IoT Build 0:6ae2f7bca550 3990
Azure.IoT Build 0:6ae2f7bca550 3991 int attach_get_rcv_settle_mode(ATTACH_HANDLE attach, receiver_settle_mode* rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 3992 {
Azure.IoT Build 0:6ae2f7bca550 3993 int result;
Azure.IoT Build 0:6ae2f7bca550 3994
Azure.IoT Build 0:6ae2f7bca550 3995 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 3996 {
AzureIoTClient 19:000ab4e6a2c1 3997 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 3998 }
Azure.IoT Build 0:6ae2f7bca550 3999 else
Azure.IoT Build 0:6ae2f7bca550 4000 {
AzureIoTClient 23:1111ee8bcba4 4001 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4002 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4003 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4004 {
AzureIoTClient 23:1111ee8bcba4 4005 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4006 }
AzureIoTClient 23:1111ee8bcba4 4007 else
AzureIoTClient 23:1111ee8bcba4 4008 {
AzureIoTClient 23:1111ee8bcba4 4009 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 4010 {
AzureIoTClient 23:1111ee8bcba4 4011 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 23:1111ee8bcba4 4012 result = 0;
AzureIoTClient 23:1111ee8bcba4 4013 }
AzureIoTClient 23:1111ee8bcba4 4014 else
AzureIoTClient 23:1111ee8bcba4 4015 {
AzureIoTClient 23:1111ee8bcba4 4016 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 4017 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4018 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4019 {
AzureIoTClient 16:22a72cf8e416 4020 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 16:22a72cf8e416 4021 result = 0;
AzureIoTClient 23:1111ee8bcba4 4022 }
AzureIoTClient 23:1111ee8bcba4 4023 else
AzureIoTClient 23:1111ee8bcba4 4024 {
AzureIoTClient 23:1111ee8bcba4 4025 if (amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value) != 0)
AzureIoTClient 23:1111ee8bcba4 4026 {
AzureIoTClient 23:1111ee8bcba4 4027 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4028 {
AzureIoTClient 23:1111ee8bcba4 4029 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4030 }
AzureIoTClient 23:1111ee8bcba4 4031 else
AzureIoTClient 23:1111ee8bcba4 4032 {
AzureIoTClient 23:1111ee8bcba4 4033 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 23:1111ee8bcba4 4034 result = 0;
AzureIoTClient 23:1111ee8bcba4 4035 }
AzureIoTClient 23:1111ee8bcba4 4036 }
AzureIoTClient 23:1111ee8bcba4 4037 else
AzureIoTClient 23:1111ee8bcba4 4038 {
AzureIoTClient 23:1111ee8bcba4 4039 result = 0;
AzureIoTClient 23:1111ee8bcba4 4040 }
AzureIoTClient 23:1111ee8bcba4 4041 }
AzureIoTClient 23:1111ee8bcba4 4042 }
Azure.IoT Build 0:6ae2f7bca550 4043 }
Azure.IoT Build 0:6ae2f7bca550 4044 }
Azure.IoT Build 0:6ae2f7bca550 4045
Azure.IoT Build 0:6ae2f7bca550 4046 return result;
Azure.IoT Build 0:6ae2f7bca550 4047 }
Azure.IoT Build 0:6ae2f7bca550 4048
Azure.IoT Build 0:6ae2f7bca550 4049 int attach_set_rcv_settle_mode(ATTACH_HANDLE attach, receiver_settle_mode rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4050 {
Azure.IoT Build 0:6ae2f7bca550 4051 int result;
Azure.IoT Build 0:6ae2f7bca550 4052
Azure.IoT Build 0:6ae2f7bca550 4053 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4054 {
AzureIoTClient 19:000ab4e6a2c1 4055 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4056 }
Azure.IoT Build 0:6ae2f7bca550 4057 else
Azure.IoT Build 0:6ae2f7bca550 4058 {
Azure.IoT Build 0:6ae2f7bca550 4059 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 4060 AMQP_VALUE rcv_settle_mode_amqp_value = amqpvalue_create_receiver_settle_mode(rcv_settle_mode_value);
Azure.IoT Build 0:6ae2f7bca550 4061 if (rcv_settle_mode_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4062 {
AzureIoTClient 19:000ab4e6a2c1 4063 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4064 }
Azure.IoT Build 0:6ae2f7bca550 4065 else
Azure.IoT Build 0:6ae2f7bca550 4066 {
Azure.IoT Build 0:6ae2f7bca550 4067 if (amqpvalue_set_composite_item(attach_instance->composite_value, 4, rcv_settle_mode_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4068 {
AzureIoTClient 19:000ab4e6a2c1 4069 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4070 }
Azure.IoT Build 0:6ae2f7bca550 4071 else
Azure.IoT Build 0:6ae2f7bca550 4072 {
Azure.IoT Build 0:6ae2f7bca550 4073 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4074 }
Azure.IoT Build 0:6ae2f7bca550 4075
Azure.IoT Build 0:6ae2f7bca550 4076 amqpvalue_destroy(rcv_settle_mode_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4077 }
Azure.IoT Build 0:6ae2f7bca550 4078 }
Azure.IoT Build 0:6ae2f7bca550 4079
Azure.IoT Build 0:6ae2f7bca550 4080 return result;
Azure.IoT Build 0:6ae2f7bca550 4081 }
Azure.IoT Build 0:6ae2f7bca550 4082
Azure.IoT Build 0:6ae2f7bca550 4083 int attach_get_source(ATTACH_HANDLE attach, AMQP_VALUE* source_value)
Azure.IoT Build 0:6ae2f7bca550 4084 {
Azure.IoT Build 0:6ae2f7bca550 4085 int result;
Azure.IoT Build 0:6ae2f7bca550 4086
Azure.IoT Build 0:6ae2f7bca550 4087 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4088 {
AzureIoTClient 19:000ab4e6a2c1 4089 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4090 }
Azure.IoT Build 0:6ae2f7bca550 4091 else
Azure.IoT Build 0:6ae2f7bca550 4092 {
AzureIoTClient 23:1111ee8bcba4 4093 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4094 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4095 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4096 {
AzureIoTClient 23:1111ee8bcba4 4097 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4098 }
AzureIoTClient 23:1111ee8bcba4 4099 else
AzureIoTClient 23:1111ee8bcba4 4100 {
AzureIoTClient 23:1111ee8bcba4 4101 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 4102 {
AzureIoTClient 23:1111ee8bcba4 4103 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4104 }
AzureIoTClient 23:1111ee8bcba4 4105 else
AzureIoTClient 23:1111ee8bcba4 4106 {
AzureIoTClient 23:1111ee8bcba4 4107 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 4108 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4109 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4110 {
AzureIoTClient 23:1111ee8bcba4 4111 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4112 }
AzureIoTClient 23:1111ee8bcba4 4113 else
AzureIoTClient 23:1111ee8bcba4 4114 {
AzureIoTClient 23:1111ee8bcba4 4115 *source_value = item_value;
AzureIoTClient 23:1111ee8bcba4 4116 result = 0;
AzureIoTClient 23:1111ee8bcba4 4117 }
AzureIoTClient 23:1111ee8bcba4 4118 }
Azure.IoT Build 0:6ae2f7bca550 4119 }
Azure.IoT Build 0:6ae2f7bca550 4120 }
Azure.IoT Build 0:6ae2f7bca550 4121
Azure.IoT Build 0:6ae2f7bca550 4122 return result;
Azure.IoT Build 0:6ae2f7bca550 4123 }
Azure.IoT Build 0:6ae2f7bca550 4124
Azure.IoT Build 0:6ae2f7bca550 4125 int attach_set_source(ATTACH_HANDLE attach, AMQP_VALUE source_value)
Azure.IoT Build 0:6ae2f7bca550 4126 {
Azure.IoT Build 0:6ae2f7bca550 4127 int result;
Azure.IoT Build 0:6ae2f7bca550 4128
Azure.IoT Build 0:6ae2f7bca550 4129 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4130 {
AzureIoTClient 19:000ab4e6a2c1 4131 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4132 }
Azure.IoT Build 0:6ae2f7bca550 4133 else
Azure.IoT Build 0:6ae2f7bca550 4134 {
Azure.IoT Build 0:6ae2f7bca550 4135 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4136 AMQP_VALUE source_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4137 if (source_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4138 {
AzureIoTClient 23:1111ee8bcba4 4139 source_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4140 }
AzureIoTClient 23:1111ee8bcba4 4141 else
AzureIoTClient 23:1111ee8bcba4 4142 {
AzureIoTClient 23:1111ee8bcba4 4143 source_amqp_value = amqpvalue_clone(source_value);
AzureIoTClient 23:1111ee8bcba4 4144 }
Azure.IoT Build 0:6ae2f7bca550 4145 if (source_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4146 {
AzureIoTClient 19:000ab4e6a2c1 4147 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4148 }
Azure.IoT Build 0:6ae2f7bca550 4149 else
Azure.IoT Build 0:6ae2f7bca550 4150 {
Azure.IoT Build 0:6ae2f7bca550 4151 if (amqpvalue_set_composite_item(attach_instance->composite_value, 5, source_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4152 {
AzureIoTClient 19:000ab4e6a2c1 4153 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4154 }
Azure.IoT Build 0:6ae2f7bca550 4155 else
Azure.IoT Build 0:6ae2f7bca550 4156 {
Azure.IoT Build 0:6ae2f7bca550 4157 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4158 }
Azure.IoT Build 0:6ae2f7bca550 4159
Azure.IoT Build 0:6ae2f7bca550 4160 amqpvalue_destroy(source_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4161 }
Azure.IoT Build 0:6ae2f7bca550 4162 }
Azure.IoT Build 0:6ae2f7bca550 4163
Azure.IoT Build 0:6ae2f7bca550 4164 return result;
Azure.IoT Build 0:6ae2f7bca550 4165 }
Azure.IoT Build 0:6ae2f7bca550 4166
Azure.IoT Build 0:6ae2f7bca550 4167 int attach_get_target(ATTACH_HANDLE attach, AMQP_VALUE* target_value)
Azure.IoT Build 0:6ae2f7bca550 4168 {
Azure.IoT Build 0:6ae2f7bca550 4169 int result;
Azure.IoT Build 0:6ae2f7bca550 4170
Azure.IoT Build 0:6ae2f7bca550 4171 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4172 {
AzureIoTClient 19:000ab4e6a2c1 4173 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4174 }
Azure.IoT Build 0:6ae2f7bca550 4175 else
Azure.IoT Build 0:6ae2f7bca550 4176 {
AzureIoTClient 23:1111ee8bcba4 4177 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4178 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4179 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4180 {
AzureIoTClient 23:1111ee8bcba4 4181 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4182 }
AzureIoTClient 23:1111ee8bcba4 4183 else
AzureIoTClient 23:1111ee8bcba4 4184 {
AzureIoTClient 23:1111ee8bcba4 4185 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 4186 {
AzureIoTClient 23:1111ee8bcba4 4187 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4188 }
AzureIoTClient 23:1111ee8bcba4 4189 else
AzureIoTClient 23:1111ee8bcba4 4190 {
AzureIoTClient 23:1111ee8bcba4 4191 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 6);
AzureIoTClient 23:1111ee8bcba4 4192 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4193 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4194 {
AzureIoTClient 23:1111ee8bcba4 4195 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4196 }
AzureIoTClient 23:1111ee8bcba4 4197 else
AzureIoTClient 23:1111ee8bcba4 4198 {
AzureIoTClient 23:1111ee8bcba4 4199 *target_value = item_value;
AzureIoTClient 23:1111ee8bcba4 4200 result = 0;
AzureIoTClient 23:1111ee8bcba4 4201 }
AzureIoTClient 23:1111ee8bcba4 4202 }
Azure.IoT Build 0:6ae2f7bca550 4203 }
Azure.IoT Build 0:6ae2f7bca550 4204 }
Azure.IoT Build 0:6ae2f7bca550 4205
Azure.IoT Build 0:6ae2f7bca550 4206 return result;
Azure.IoT Build 0:6ae2f7bca550 4207 }
Azure.IoT Build 0:6ae2f7bca550 4208
Azure.IoT Build 0:6ae2f7bca550 4209 int attach_set_target(ATTACH_HANDLE attach, AMQP_VALUE target_value)
Azure.IoT Build 0:6ae2f7bca550 4210 {
Azure.IoT Build 0:6ae2f7bca550 4211 int result;
Azure.IoT Build 0:6ae2f7bca550 4212
Azure.IoT Build 0:6ae2f7bca550 4213 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4214 {
AzureIoTClient 19:000ab4e6a2c1 4215 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4216 }
Azure.IoT Build 0:6ae2f7bca550 4217 else
Azure.IoT Build 0:6ae2f7bca550 4218 {
Azure.IoT Build 0:6ae2f7bca550 4219 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4220 AMQP_VALUE target_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4221 if (target_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4222 {
AzureIoTClient 23:1111ee8bcba4 4223 target_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4224 }
AzureIoTClient 23:1111ee8bcba4 4225 else
AzureIoTClient 23:1111ee8bcba4 4226 {
AzureIoTClient 23:1111ee8bcba4 4227 target_amqp_value = amqpvalue_clone(target_value);
AzureIoTClient 23:1111ee8bcba4 4228 }
Azure.IoT Build 0:6ae2f7bca550 4229 if (target_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4230 {
AzureIoTClient 19:000ab4e6a2c1 4231 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4232 }
Azure.IoT Build 0:6ae2f7bca550 4233 else
Azure.IoT Build 0:6ae2f7bca550 4234 {
Azure.IoT Build 0:6ae2f7bca550 4235 if (amqpvalue_set_composite_item(attach_instance->composite_value, 6, target_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4236 {
AzureIoTClient 19:000ab4e6a2c1 4237 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4238 }
Azure.IoT Build 0:6ae2f7bca550 4239 else
Azure.IoT Build 0:6ae2f7bca550 4240 {
Azure.IoT Build 0:6ae2f7bca550 4241 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4242 }
Azure.IoT Build 0:6ae2f7bca550 4243
Azure.IoT Build 0:6ae2f7bca550 4244 amqpvalue_destroy(target_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4245 }
Azure.IoT Build 0:6ae2f7bca550 4246 }
Azure.IoT Build 0:6ae2f7bca550 4247
Azure.IoT Build 0:6ae2f7bca550 4248 return result;
Azure.IoT Build 0:6ae2f7bca550 4249 }
Azure.IoT Build 0:6ae2f7bca550 4250
Azure.IoT Build 0:6ae2f7bca550 4251 int attach_get_unsettled(ATTACH_HANDLE attach, AMQP_VALUE* unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4252 {
Azure.IoT Build 0:6ae2f7bca550 4253 int result;
Azure.IoT Build 0:6ae2f7bca550 4254
Azure.IoT Build 0:6ae2f7bca550 4255 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4256 {
AzureIoTClient 19:000ab4e6a2c1 4257 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4258 }
Azure.IoT Build 0:6ae2f7bca550 4259 else
Azure.IoT Build 0:6ae2f7bca550 4260 {
AzureIoTClient 23:1111ee8bcba4 4261 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4262 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4263 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4264 {
AzureIoTClient 23:1111ee8bcba4 4265 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4266 }
AzureIoTClient 23:1111ee8bcba4 4267 else
AzureIoTClient 23:1111ee8bcba4 4268 {
AzureIoTClient 23:1111ee8bcba4 4269 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 4270 {
AzureIoTClient 23:1111ee8bcba4 4271 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4272 }
AzureIoTClient 23:1111ee8bcba4 4273 else
AzureIoTClient 23:1111ee8bcba4 4274 {
AzureIoTClient 23:1111ee8bcba4 4275 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 7);
AzureIoTClient 23:1111ee8bcba4 4276 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4277 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4278 {
AzureIoTClient 23:1111ee8bcba4 4279 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4280 }
AzureIoTClient 23:1111ee8bcba4 4281 else
AzureIoTClient 23:1111ee8bcba4 4282 {
AzureIoTClient 23:1111ee8bcba4 4283 if (amqpvalue_get_map(item_value, unsettled_value) != 0)
AzureIoTClient 23:1111ee8bcba4 4284 {
AzureIoTClient 23:1111ee8bcba4 4285 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4286 }
AzureIoTClient 23:1111ee8bcba4 4287 else
AzureIoTClient 23:1111ee8bcba4 4288 {
AzureIoTClient 23:1111ee8bcba4 4289 result = 0;
AzureIoTClient 23:1111ee8bcba4 4290 }
AzureIoTClient 23:1111ee8bcba4 4291 }
AzureIoTClient 23:1111ee8bcba4 4292 }
Azure.IoT Build 0:6ae2f7bca550 4293 }
Azure.IoT Build 0:6ae2f7bca550 4294 }
Azure.IoT Build 0:6ae2f7bca550 4295
Azure.IoT Build 0:6ae2f7bca550 4296 return result;
Azure.IoT Build 0:6ae2f7bca550 4297 }
Azure.IoT Build 0:6ae2f7bca550 4298
Azure.IoT Build 0:6ae2f7bca550 4299 int attach_set_unsettled(ATTACH_HANDLE attach, AMQP_VALUE unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4300 {
Azure.IoT Build 0:6ae2f7bca550 4301 int result;
Azure.IoT Build 0:6ae2f7bca550 4302
Azure.IoT Build 0:6ae2f7bca550 4303 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4304 {
AzureIoTClient 19:000ab4e6a2c1 4305 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4306 }
Azure.IoT Build 0:6ae2f7bca550 4307 else
Azure.IoT Build 0:6ae2f7bca550 4308 {
Azure.IoT Build 0:6ae2f7bca550 4309 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4310 AMQP_VALUE unsettled_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4311 if (unsettled_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4312 {
AzureIoTClient 23:1111ee8bcba4 4313 unsettled_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4314 }
AzureIoTClient 23:1111ee8bcba4 4315 else
AzureIoTClient 23:1111ee8bcba4 4316 {
AzureIoTClient 23:1111ee8bcba4 4317 unsettled_amqp_value = amqpvalue_clone(unsettled_value);
AzureIoTClient 23:1111ee8bcba4 4318 }
Azure.IoT Build 0:6ae2f7bca550 4319 if (unsettled_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4320 {
AzureIoTClient 19:000ab4e6a2c1 4321 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4322 }
Azure.IoT Build 0:6ae2f7bca550 4323 else
Azure.IoT Build 0:6ae2f7bca550 4324 {
Azure.IoT Build 0:6ae2f7bca550 4325 if (amqpvalue_set_composite_item(attach_instance->composite_value, 7, unsettled_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4326 {
AzureIoTClient 19:000ab4e6a2c1 4327 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4328 }
Azure.IoT Build 0:6ae2f7bca550 4329 else
Azure.IoT Build 0:6ae2f7bca550 4330 {
Azure.IoT Build 0:6ae2f7bca550 4331 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4332 }
Azure.IoT Build 0:6ae2f7bca550 4333
Azure.IoT Build 0:6ae2f7bca550 4334 amqpvalue_destroy(unsettled_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4335 }
Azure.IoT Build 0:6ae2f7bca550 4336 }
Azure.IoT Build 0:6ae2f7bca550 4337
Azure.IoT Build 0:6ae2f7bca550 4338 return result;
Azure.IoT Build 0:6ae2f7bca550 4339 }
Azure.IoT Build 0:6ae2f7bca550 4340
Azure.IoT Build 0:6ae2f7bca550 4341 int attach_get_incomplete_unsettled(ATTACH_HANDLE attach, bool* incomplete_unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4342 {
Azure.IoT Build 0:6ae2f7bca550 4343 int result;
Azure.IoT Build 0:6ae2f7bca550 4344
Azure.IoT Build 0:6ae2f7bca550 4345 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4346 {
AzureIoTClient 19:000ab4e6a2c1 4347 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4348 }
Azure.IoT Build 0:6ae2f7bca550 4349 else
Azure.IoT Build 0:6ae2f7bca550 4350 {
AzureIoTClient 23:1111ee8bcba4 4351 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4352 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4353 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4354 {
AzureIoTClient 23:1111ee8bcba4 4355 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4356 }
AzureIoTClient 23:1111ee8bcba4 4357 else
AzureIoTClient 23:1111ee8bcba4 4358 {
AzureIoTClient 23:1111ee8bcba4 4359 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 4360 {
AzureIoTClient 23:1111ee8bcba4 4361 *incomplete_unsettled_value = false;
AzureIoTClient 23:1111ee8bcba4 4362 result = 0;
AzureIoTClient 23:1111ee8bcba4 4363 }
AzureIoTClient 23:1111ee8bcba4 4364 else
AzureIoTClient 23:1111ee8bcba4 4365 {
AzureIoTClient 23:1111ee8bcba4 4366 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 8);
AzureIoTClient 23:1111ee8bcba4 4367 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4368 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4369 {
AzureIoTClient 16:22a72cf8e416 4370 *incomplete_unsettled_value = false;
AzureIoTClient 16:22a72cf8e416 4371 result = 0;
AzureIoTClient 23:1111ee8bcba4 4372 }
AzureIoTClient 23:1111ee8bcba4 4373 else
AzureIoTClient 23:1111ee8bcba4 4374 {
AzureIoTClient 23:1111ee8bcba4 4375 if (amqpvalue_get_boolean(item_value, incomplete_unsettled_value) != 0)
AzureIoTClient 23:1111ee8bcba4 4376 {
AzureIoTClient 23:1111ee8bcba4 4377 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4378 {
AzureIoTClient 23:1111ee8bcba4 4379 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4380 }
AzureIoTClient 23:1111ee8bcba4 4381 else
AzureIoTClient 23:1111ee8bcba4 4382 {
AzureIoTClient 23:1111ee8bcba4 4383 *incomplete_unsettled_value = false;
AzureIoTClient 23:1111ee8bcba4 4384 result = 0;
AzureIoTClient 23:1111ee8bcba4 4385 }
AzureIoTClient 23:1111ee8bcba4 4386 }
AzureIoTClient 23:1111ee8bcba4 4387 else
AzureIoTClient 23:1111ee8bcba4 4388 {
AzureIoTClient 23:1111ee8bcba4 4389 result = 0;
AzureIoTClient 23:1111ee8bcba4 4390 }
AzureIoTClient 23:1111ee8bcba4 4391 }
AzureIoTClient 23:1111ee8bcba4 4392 }
Azure.IoT Build 0:6ae2f7bca550 4393 }
Azure.IoT Build 0:6ae2f7bca550 4394 }
Azure.IoT Build 0:6ae2f7bca550 4395
Azure.IoT Build 0:6ae2f7bca550 4396 return result;
Azure.IoT Build 0:6ae2f7bca550 4397 }
Azure.IoT Build 0:6ae2f7bca550 4398
Azure.IoT Build 0:6ae2f7bca550 4399 int attach_set_incomplete_unsettled(ATTACH_HANDLE attach, bool incomplete_unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4400 {
Azure.IoT Build 0:6ae2f7bca550 4401 int result;
Azure.IoT Build 0:6ae2f7bca550 4402
Azure.IoT Build 0:6ae2f7bca550 4403 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4404 {
AzureIoTClient 19:000ab4e6a2c1 4405 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4406 }
Azure.IoT Build 0:6ae2f7bca550 4407 else
Azure.IoT Build 0:6ae2f7bca550 4408 {
Azure.IoT Build 0:6ae2f7bca550 4409 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 4410 AMQP_VALUE incomplete_unsettled_amqp_value = amqpvalue_create_boolean(incomplete_unsettled_value);
Azure.IoT Build 0:6ae2f7bca550 4411 if (incomplete_unsettled_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4412 {
AzureIoTClient 19:000ab4e6a2c1 4413 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4414 }
Azure.IoT Build 0:6ae2f7bca550 4415 else
Azure.IoT Build 0:6ae2f7bca550 4416 {
Azure.IoT Build 0:6ae2f7bca550 4417 if (amqpvalue_set_composite_item(attach_instance->composite_value, 8, incomplete_unsettled_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4418 {
AzureIoTClient 19:000ab4e6a2c1 4419 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4420 }
Azure.IoT Build 0:6ae2f7bca550 4421 else
Azure.IoT Build 0:6ae2f7bca550 4422 {
Azure.IoT Build 0:6ae2f7bca550 4423 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4424 }
Azure.IoT Build 0:6ae2f7bca550 4425
Azure.IoT Build 0:6ae2f7bca550 4426 amqpvalue_destroy(incomplete_unsettled_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4427 }
Azure.IoT Build 0:6ae2f7bca550 4428 }
Azure.IoT Build 0:6ae2f7bca550 4429
Azure.IoT Build 0:6ae2f7bca550 4430 return result;
Azure.IoT Build 0:6ae2f7bca550 4431 }
Azure.IoT Build 0:6ae2f7bca550 4432
Azure.IoT Build 0:6ae2f7bca550 4433 int attach_get_initial_delivery_count(ATTACH_HANDLE attach, sequence_no* initial_delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 4434 {
Azure.IoT Build 0:6ae2f7bca550 4435 int result;
Azure.IoT Build 0:6ae2f7bca550 4436
Azure.IoT Build 0:6ae2f7bca550 4437 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4438 {
AzureIoTClient 19:000ab4e6a2c1 4439 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4440 }
Azure.IoT Build 0:6ae2f7bca550 4441 else
Azure.IoT Build 0:6ae2f7bca550 4442 {
AzureIoTClient 23:1111ee8bcba4 4443 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4444 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4445 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4446 {
AzureIoTClient 23:1111ee8bcba4 4447 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4448 }
AzureIoTClient 23:1111ee8bcba4 4449 else
AzureIoTClient 23:1111ee8bcba4 4450 {
AzureIoTClient 23:1111ee8bcba4 4451 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 4452 {
AzureIoTClient 23:1111ee8bcba4 4453 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4454 }
AzureIoTClient 23:1111ee8bcba4 4455 else
AzureIoTClient 23:1111ee8bcba4 4456 {
AzureIoTClient 23:1111ee8bcba4 4457 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 9);
AzureIoTClient 23:1111ee8bcba4 4458 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4459 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4460 {
AzureIoTClient 23:1111ee8bcba4 4461 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4462 }
AzureIoTClient 23:1111ee8bcba4 4463 else
AzureIoTClient 23:1111ee8bcba4 4464 {
AzureIoTClient 23:1111ee8bcba4 4465 if (amqpvalue_get_sequence_no(item_value, initial_delivery_count_value) != 0)
AzureIoTClient 23:1111ee8bcba4 4466 {
AzureIoTClient 23:1111ee8bcba4 4467 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4468 }
AzureIoTClient 23:1111ee8bcba4 4469 else
AzureIoTClient 23:1111ee8bcba4 4470 {
AzureIoTClient 23:1111ee8bcba4 4471 result = 0;
AzureIoTClient 23:1111ee8bcba4 4472 }
AzureIoTClient 23:1111ee8bcba4 4473 }
AzureIoTClient 23:1111ee8bcba4 4474 }
Azure.IoT Build 0:6ae2f7bca550 4475 }
Azure.IoT Build 0:6ae2f7bca550 4476 }
Azure.IoT Build 0:6ae2f7bca550 4477
Azure.IoT Build 0:6ae2f7bca550 4478 return result;
Azure.IoT Build 0:6ae2f7bca550 4479 }
Azure.IoT Build 0:6ae2f7bca550 4480
Azure.IoT Build 0:6ae2f7bca550 4481 int attach_set_initial_delivery_count(ATTACH_HANDLE attach, sequence_no initial_delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 4482 {
Azure.IoT Build 0:6ae2f7bca550 4483 int result;
Azure.IoT Build 0:6ae2f7bca550 4484
Azure.IoT Build 0:6ae2f7bca550 4485 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4486 {
AzureIoTClient 19:000ab4e6a2c1 4487 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4488 }
Azure.IoT Build 0:6ae2f7bca550 4489 else
Azure.IoT Build 0:6ae2f7bca550 4490 {
Azure.IoT Build 0:6ae2f7bca550 4491 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 4492 AMQP_VALUE initial_delivery_count_amqp_value = amqpvalue_create_sequence_no(initial_delivery_count_value);
Azure.IoT Build 0:6ae2f7bca550 4493 if (initial_delivery_count_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4494 {
AzureIoTClient 19:000ab4e6a2c1 4495 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4496 }
Azure.IoT Build 0:6ae2f7bca550 4497 else
Azure.IoT Build 0:6ae2f7bca550 4498 {
Azure.IoT Build 0:6ae2f7bca550 4499 if (amqpvalue_set_composite_item(attach_instance->composite_value, 9, initial_delivery_count_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4500 {
AzureIoTClient 19:000ab4e6a2c1 4501 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4502 }
Azure.IoT Build 0:6ae2f7bca550 4503 else
Azure.IoT Build 0:6ae2f7bca550 4504 {
Azure.IoT Build 0:6ae2f7bca550 4505 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4506 }
Azure.IoT Build 0:6ae2f7bca550 4507
Azure.IoT Build 0:6ae2f7bca550 4508 amqpvalue_destroy(initial_delivery_count_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4509 }
Azure.IoT Build 0:6ae2f7bca550 4510 }
Azure.IoT Build 0:6ae2f7bca550 4511
Azure.IoT Build 0:6ae2f7bca550 4512 return result;
Azure.IoT Build 0:6ae2f7bca550 4513 }
Azure.IoT Build 0:6ae2f7bca550 4514
Azure.IoT Build 0:6ae2f7bca550 4515 int attach_get_max_message_size(ATTACH_HANDLE attach, uint64_t* max_message_size_value)
Azure.IoT Build 0:6ae2f7bca550 4516 {
Azure.IoT Build 0:6ae2f7bca550 4517 int result;
Azure.IoT Build 0:6ae2f7bca550 4518
Azure.IoT Build 0:6ae2f7bca550 4519 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4520 {
AzureIoTClient 19:000ab4e6a2c1 4521 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4522 }
Azure.IoT Build 0:6ae2f7bca550 4523 else
Azure.IoT Build 0:6ae2f7bca550 4524 {
AzureIoTClient 23:1111ee8bcba4 4525 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4526 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4527 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4528 {
AzureIoTClient 23:1111ee8bcba4 4529 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4530 }
AzureIoTClient 23:1111ee8bcba4 4531 else
AzureIoTClient 23:1111ee8bcba4 4532 {
AzureIoTClient 23:1111ee8bcba4 4533 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 4534 {
AzureIoTClient 23:1111ee8bcba4 4535 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4536 }
AzureIoTClient 23:1111ee8bcba4 4537 else
AzureIoTClient 23:1111ee8bcba4 4538 {
AzureIoTClient 23:1111ee8bcba4 4539 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 10);
AzureIoTClient 23:1111ee8bcba4 4540 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4541 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4542 {
AzureIoTClient 23:1111ee8bcba4 4543 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4544 }
AzureIoTClient 23:1111ee8bcba4 4545 else
AzureIoTClient 23:1111ee8bcba4 4546 {
AzureIoTClient 23:1111ee8bcba4 4547 if (amqpvalue_get_ulong(item_value, max_message_size_value) != 0)
AzureIoTClient 23:1111ee8bcba4 4548 {
AzureIoTClient 23:1111ee8bcba4 4549 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4550 }
AzureIoTClient 23:1111ee8bcba4 4551 else
AzureIoTClient 23:1111ee8bcba4 4552 {
AzureIoTClient 23:1111ee8bcba4 4553 result = 0;
AzureIoTClient 23:1111ee8bcba4 4554 }
AzureIoTClient 23:1111ee8bcba4 4555 }
AzureIoTClient 23:1111ee8bcba4 4556 }
Azure.IoT Build 0:6ae2f7bca550 4557 }
Azure.IoT Build 0:6ae2f7bca550 4558 }
Azure.IoT Build 0:6ae2f7bca550 4559
Azure.IoT Build 0:6ae2f7bca550 4560 return result;
Azure.IoT Build 0:6ae2f7bca550 4561 }
Azure.IoT Build 0:6ae2f7bca550 4562
Azure.IoT Build 0:6ae2f7bca550 4563 int attach_set_max_message_size(ATTACH_HANDLE attach, uint64_t max_message_size_value)
Azure.IoT Build 0:6ae2f7bca550 4564 {
Azure.IoT Build 0:6ae2f7bca550 4565 int result;
Azure.IoT Build 0:6ae2f7bca550 4566
Azure.IoT Build 0:6ae2f7bca550 4567 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4568 {
AzureIoTClient 19:000ab4e6a2c1 4569 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4570 }
Azure.IoT Build 0:6ae2f7bca550 4571 else
Azure.IoT Build 0:6ae2f7bca550 4572 {
Azure.IoT Build 0:6ae2f7bca550 4573 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 4574 AMQP_VALUE max_message_size_amqp_value = amqpvalue_create_ulong(max_message_size_value);
Azure.IoT Build 0:6ae2f7bca550 4575 if (max_message_size_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4576 {
AzureIoTClient 19:000ab4e6a2c1 4577 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4578 }
Azure.IoT Build 0:6ae2f7bca550 4579 else
Azure.IoT Build 0:6ae2f7bca550 4580 {
Azure.IoT Build 0:6ae2f7bca550 4581 if (amqpvalue_set_composite_item(attach_instance->composite_value, 10, max_message_size_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4582 {
AzureIoTClient 19:000ab4e6a2c1 4583 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4584 }
Azure.IoT Build 0:6ae2f7bca550 4585 else
Azure.IoT Build 0:6ae2f7bca550 4586 {
Azure.IoT Build 0:6ae2f7bca550 4587 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4588 }
Azure.IoT Build 0:6ae2f7bca550 4589
Azure.IoT Build 0:6ae2f7bca550 4590 amqpvalue_destroy(max_message_size_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4591 }
Azure.IoT Build 0:6ae2f7bca550 4592 }
Azure.IoT Build 0:6ae2f7bca550 4593
Azure.IoT Build 0:6ae2f7bca550 4594 return result;
Azure.IoT Build 0:6ae2f7bca550 4595 }
Azure.IoT Build 0:6ae2f7bca550 4596
Azure.IoT Build 0:6ae2f7bca550 4597 int attach_get_offered_capabilities(ATTACH_HANDLE attach, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 4598 {
Azure.IoT Build 0:6ae2f7bca550 4599 int result;
Azure.IoT Build 0:6ae2f7bca550 4600
Azure.IoT Build 0:6ae2f7bca550 4601 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4602 {
AzureIoTClient 19:000ab4e6a2c1 4603 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4604 }
Azure.IoT Build 0:6ae2f7bca550 4605 else
Azure.IoT Build 0:6ae2f7bca550 4606 {
AzureIoTClient 23:1111ee8bcba4 4607 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4608 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4609 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4610 {
AzureIoTClient 23:1111ee8bcba4 4611 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4612 }
AzureIoTClient 23:1111ee8bcba4 4613 else
AzureIoTClient 23:1111ee8bcba4 4614 {
AzureIoTClient 23:1111ee8bcba4 4615 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 4616 {
AzureIoTClient 23:1111ee8bcba4 4617 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4618 }
AzureIoTClient 23:1111ee8bcba4 4619 else
AzureIoTClient 23:1111ee8bcba4 4620 {
AzureIoTClient 23:1111ee8bcba4 4621 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 11);
AzureIoTClient 23:1111ee8bcba4 4622 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4623 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4624 {
AzureIoTClient 23:1111ee8bcba4 4625 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4626 }
AzureIoTClient 23:1111ee8bcba4 4627 else
AzureIoTClient 23:1111ee8bcba4 4628 {
AzureIoTClient 23:1111ee8bcba4 4629 if (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)
AzureIoTClient 23:1111ee8bcba4 4630 {
AzureIoTClient 23:1111ee8bcba4 4631 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4632 }
AzureIoTClient 23:1111ee8bcba4 4633 else
AzureIoTClient 23:1111ee8bcba4 4634 {
AzureIoTClient 23:1111ee8bcba4 4635 result = 0;
AzureIoTClient 23:1111ee8bcba4 4636 }
AzureIoTClient 23:1111ee8bcba4 4637 }
AzureIoTClient 23:1111ee8bcba4 4638 }
Azure.IoT Build 0:6ae2f7bca550 4639 }
Azure.IoT Build 0:6ae2f7bca550 4640 }
Azure.IoT Build 0:6ae2f7bca550 4641
Azure.IoT Build 0:6ae2f7bca550 4642 return result;
Azure.IoT Build 0:6ae2f7bca550 4643 }
Azure.IoT Build 0:6ae2f7bca550 4644
Azure.IoT Build 0:6ae2f7bca550 4645 int attach_set_offered_capabilities(ATTACH_HANDLE attach, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 4646 {
Azure.IoT Build 0:6ae2f7bca550 4647 int result;
Azure.IoT Build 0:6ae2f7bca550 4648
Azure.IoT Build 0:6ae2f7bca550 4649 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4650 {
AzureIoTClient 19:000ab4e6a2c1 4651 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4652 }
Azure.IoT Build 0:6ae2f7bca550 4653 else
Azure.IoT Build 0:6ae2f7bca550 4654 {
Azure.IoT Build 0:6ae2f7bca550 4655 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4656 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4657 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4658 {
AzureIoTClient 23:1111ee8bcba4 4659 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4660 }
AzureIoTClient 23:1111ee8bcba4 4661 else
AzureIoTClient 23:1111ee8bcba4 4662 {
AzureIoTClient 23:1111ee8bcba4 4663 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 4664 }
Azure.IoT Build 0:6ae2f7bca550 4665 if (offered_capabilities_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4666 {
AzureIoTClient 19:000ab4e6a2c1 4667 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4668 }
Azure.IoT Build 0:6ae2f7bca550 4669 else
Azure.IoT Build 0:6ae2f7bca550 4670 {
Azure.IoT Build 0:6ae2f7bca550 4671 if (amqpvalue_set_composite_item(attach_instance->composite_value, 11, offered_capabilities_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4672 {
AzureIoTClient 19:000ab4e6a2c1 4673 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4674 }
Azure.IoT Build 0:6ae2f7bca550 4675 else
Azure.IoT Build 0:6ae2f7bca550 4676 {
Azure.IoT Build 0:6ae2f7bca550 4677 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4678 }
Azure.IoT Build 0:6ae2f7bca550 4679
Azure.IoT Build 0:6ae2f7bca550 4680 amqpvalue_destroy(offered_capabilities_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4681 }
Azure.IoT Build 0:6ae2f7bca550 4682 }
Azure.IoT Build 0:6ae2f7bca550 4683
Azure.IoT Build 0:6ae2f7bca550 4684 return result;
Azure.IoT Build 0:6ae2f7bca550 4685 }
Azure.IoT Build 0:6ae2f7bca550 4686
Azure.IoT Build 0:6ae2f7bca550 4687 int attach_get_desired_capabilities(ATTACH_HANDLE attach, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 4688 {
Azure.IoT Build 0:6ae2f7bca550 4689 int result;
Azure.IoT Build 0:6ae2f7bca550 4690
Azure.IoT Build 0:6ae2f7bca550 4691 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4692 {
AzureIoTClient 19:000ab4e6a2c1 4693 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4694 }
Azure.IoT Build 0:6ae2f7bca550 4695 else
Azure.IoT Build 0:6ae2f7bca550 4696 {
AzureIoTClient 23:1111ee8bcba4 4697 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4698 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4699 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4700 {
AzureIoTClient 23:1111ee8bcba4 4701 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4702 }
AzureIoTClient 23:1111ee8bcba4 4703 else
AzureIoTClient 23:1111ee8bcba4 4704 {
AzureIoTClient 23:1111ee8bcba4 4705 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 4706 {
AzureIoTClient 23:1111ee8bcba4 4707 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4708 }
AzureIoTClient 23:1111ee8bcba4 4709 else
AzureIoTClient 23:1111ee8bcba4 4710 {
AzureIoTClient 23:1111ee8bcba4 4711 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 12);
AzureIoTClient 23:1111ee8bcba4 4712 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4713 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4714 {
AzureIoTClient 23:1111ee8bcba4 4715 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4716 }
AzureIoTClient 23:1111ee8bcba4 4717 else
AzureIoTClient 23:1111ee8bcba4 4718 {
AzureIoTClient 23:1111ee8bcba4 4719 if (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)
AzureIoTClient 23:1111ee8bcba4 4720 {
AzureIoTClient 23:1111ee8bcba4 4721 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4722 }
AzureIoTClient 23:1111ee8bcba4 4723 else
AzureIoTClient 23:1111ee8bcba4 4724 {
AzureIoTClient 23:1111ee8bcba4 4725 result = 0;
AzureIoTClient 23:1111ee8bcba4 4726 }
AzureIoTClient 23:1111ee8bcba4 4727 }
AzureIoTClient 23:1111ee8bcba4 4728 }
Azure.IoT Build 0:6ae2f7bca550 4729 }
Azure.IoT Build 0:6ae2f7bca550 4730 }
Azure.IoT Build 0:6ae2f7bca550 4731
Azure.IoT Build 0:6ae2f7bca550 4732 return result;
Azure.IoT Build 0:6ae2f7bca550 4733 }
Azure.IoT Build 0:6ae2f7bca550 4734
Azure.IoT Build 0:6ae2f7bca550 4735 int attach_set_desired_capabilities(ATTACH_HANDLE attach, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 4736 {
Azure.IoT Build 0:6ae2f7bca550 4737 int result;
Azure.IoT Build 0:6ae2f7bca550 4738
Azure.IoT Build 0:6ae2f7bca550 4739 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4740 {
AzureIoTClient 19:000ab4e6a2c1 4741 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4742 }
Azure.IoT Build 0:6ae2f7bca550 4743 else
Azure.IoT Build 0:6ae2f7bca550 4744 {
Azure.IoT Build 0:6ae2f7bca550 4745 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4746 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4747 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4748 {
AzureIoTClient 23:1111ee8bcba4 4749 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4750 }
AzureIoTClient 23:1111ee8bcba4 4751 else
AzureIoTClient 23:1111ee8bcba4 4752 {
AzureIoTClient 23:1111ee8bcba4 4753 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 4754 }
Azure.IoT Build 0:6ae2f7bca550 4755 if (desired_capabilities_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4756 {
AzureIoTClient 19:000ab4e6a2c1 4757 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4758 }
Azure.IoT Build 0:6ae2f7bca550 4759 else
Azure.IoT Build 0:6ae2f7bca550 4760 {
Azure.IoT Build 0:6ae2f7bca550 4761 if (amqpvalue_set_composite_item(attach_instance->composite_value, 12, desired_capabilities_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4762 {
AzureIoTClient 19:000ab4e6a2c1 4763 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4764 }
Azure.IoT Build 0:6ae2f7bca550 4765 else
Azure.IoT Build 0:6ae2f7bca550 4766 {
Azure.IoT Build 0:6ae2f7bca550 4767 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4768 }
Azure.IoT Build 0:6ae2f7bca550 4769
Azure.IoT Build 0:6ae2f7bca550 4770 amqpvalue_destroy(desired_capabilities_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4771 }
Azure.IoT Build 0:6ae2f7bca550 4772 }
Azure.IoT Build 0:6ae2f7bca550 4773
Azure.IoT Build 0:6ae2f7bca550 4774 return result;
Azure.IoT Build 0:6ae2f7bca550 4775 }
Azure.IoT Build 0:6ae2f7bca550 4776
Azure.IoT Build 0:6ae2f7bca550 4777 int attach_get_properties(ATTACH_HANDLE attach, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 4778 {
Azure.IoT Build 0:6ae2f7bca550 4779 int result;
Azure.IoT Build 0:6ae2f7bca550 4780
Azure.IoT Build 0:6ae2f7bca550 4781 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4782 {
AzureIoTClient 19:000ab4e6a2c1 4783 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4784 }
Azure.IoT Build 0:6ae2f7bca550 4785 else
Azure.IoT Build 0:6ae2f7bca550 4786 {
AzureIoTClient 23:1111ee8bcba4 4787 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 4788 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4789 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4790 {
AzureIoTClient 23:1111ee8bcba4 4791 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4792 }
AzureIoTClient 23:1111ee8bcba4 4793 else
AzureIoTClient 23:1111ee8bcba4 4794 {
AzureIoTClient 23:1111ee8bcba4 4795 if (item_count <= 13)
AzureIoTClient 23:1111ee8bcba4 4796 {
AzureIoTClient 23:1111ee8bcba4 4797 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4798 }
AzureIoTClient 23:1111ee8bcba4 4799 else
AzureIoTClient 23:1111ee8bcba4 4800 {
AzureIoTClient 23:1111ee8bcba4 4801 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 13);
AzureIoTClient 23:1111ee8bcba4 4802 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 4803 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 4804 {
AzureIoTClient 23:1111ee8bcba4 4805 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4806 }
AzureIoTClient 23:1111ee8bcba4 4807 else
AzureIoTClient 23:1111ee8bcba4 4808 {
AzureIoTClient 23:1111ee8bcba4 4809 if (amqpvalue_get_fields(item_value, properties_value) != 0)
AzureIoTClient 23:1111ee8bcba4 4810 {
AzureIoTClient 23:1111ee8bcba4 4811 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4812 }
AzureIoTClient 23:1111ee8bcba4 4813 else
AzureIoTClient 23:1111ee8bcba4 4814 {
AzureIoTClient 23:1111ee8bcba4 4815 result = 0;
AzureIoTClient 23:1111ee8bcba4 4816 }
AzureIoTClient 23:1111ee8bcba4 4817 }
AzureIoTClient 23:1111ee8bcba4 4818 }
Azure.IoT Build 0:6ae2f7bca550 4819 }
Azure.IoT Build 0:6ae2f7bca550 4820 }
Azure.IoT Build 0:6ae2f7bca550 4821
Azure.IoT Build 0:6ae2f7bca550 4822 return result;
Azure.IoT Build 0:6ae2f7bca550 4823 }
Azure.IoT Build 0:6ae2f7bca550 4824
Azure.IoT Build 0:6ae2f7bca550 4825 int attach_set_properties(ATTACH_HANDLE attach, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 4826 {
Azure.IoT Build 0:6ae2f7bca550 4827 int result;
Azure.IoT Build 0:6ae2f7bca550 4828
Azure.IoT Build 0:6ae2f7bca550 4829 if (attach == NULL)
Azure.IoT Build 0:6ae2f7bca550 4830 {
AzureIoTClient 19:000ab4e6a2c1 4831 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4832 }
Azure.IoT Build 0:6ae2f7bca550 4833 else
Azure.IoT Build 0:6ae2f7bca550 4834 {
Azure.IoT Build 0:6ae2f7bca550 4835 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
Azure.IoT Build 0:6ae2f7bca550 4836 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
Azure.IoT Build 0:6ae2f7bca550 4837 if (properties_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4838 {
AzureIoTClient 19:000ab4e6a2c1 4839 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4840 }
Azure.IoT Build 0:6ae2f7bca550 4841 else
Azure.IoT Build 0:6ae2f7bca550 4842 {
Azure.IoT Build 0:6ae2f7bca550 4843 if (amqpvalue_set_composite_item(attach_instance->composite_value, 13, properties_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 4844 {
AzureIoTClient 19:000ab4e6a2c1 4845 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4846 }
Azure.IoT Build 0:6ae2f7bca550 4847 else
Azure.IoT Build 0:6ae2f7bca550 4848 {
Azure.IoT Build 0:6ae2f7bca550 4849 result = 0;
Azure.IoT Build 0:6ae2f7bca550 4850 }
Azure.IoT Build 0:6ae2f7bca550 4851
Azure.IoT Build 0:6ae2f7bca550 4852 amqpvalue_destroy(properties_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4853 }
Azure.IoT Build 0:6ae2f7bca550 4854 }
Azure.IoT Build 0:6ae2f7bca550 4855
Azure.IoT Build 0:6ae2f7bca550 4856 return result;
Azure.IoT Build 0:6ae2f7bca550 4857 }
Azure.IoT Build 0:6ae2f7bca550 4858
Azure.IoT Build 0:6ae2f7bca550 4859
Azure.IoT Build 0:6ae2f7bca550 4860 /* flow */
Azure.IoT Build 0:6ae2f7bca550 4861
Azure.IoT Build 0:6ae2f7bca550 4862 typedef struct FLOW_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 4863 {
Azure.IoT Build 0:6ae2f7bca550 4864 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 4865 } FLOW_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 4866
Azure.IoT Build 0:6ae2f7bca550 4867 static FLOW_HANDLE flow_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 4868 {
AzureIoTClient 21:f9c433d8e6ca 4869 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 4870 if (flow_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 4871 {
Azure.IoT Build 0:6ae2f7bca550 4872 flow_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 4873 }
Azure.IoT Build 0:6ae2f7bca550 4874
Azure.IoT Build 0:6ae2f7bca550 4875 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 4876 }
Azure.IoT Build 0:6ae2f7bca550 4877
Azure.IoT Build 0:6ae2f7bca550 4878 FLOW_HANDLE flow_create(uint32_t incoming_window_value, transfer_number next_outgoing_id_value, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 4879 {
AzureIoTClient 21:f9c433d8e6ca 4880 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 4881 if (flow_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 4882 {
Azure.IoT Build 0:6ae2f7bca550 4883 flow_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(19);
Azure.IoT Build 0:6ae2f7bca550 4884 if (flow_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4885 {
AzureIoTClient 21:f9c433d8e6ca 4886 free(flow_instance);
Azure.IoT Build 0:6ae2f7bca550 4887 flow_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 4888 }
Azure.IoT Build 0:6ae2f7bca550 4889 else
Azure.IoT Build 0:6ae2f7bca550 4890 {
Azure.IoT Build 0:6ae2f7bca550 4891 AMQP_VALUE incoming_window_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 4892 AMQP_VALUE next_outgoing_id_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 4893 AMQP_VALUE outgoing_window_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 4894 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 4895
Azure.IoT Build 0:6ae2f7bca550 4896 incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
Azure.IoT Build 0:6ae2f7bca550 4897 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 1, incoming_window_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 4898 {
AzureIoTClient 19:000ab4e6a2c1 4899 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4900 }
Azure.IoT Build 0:6ae2f7bca550 4901 next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
Azure.IoT Build 0:6ae2f7bca550 4902 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 2, next_outgoing_id_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 4903 {
AzureIoTClient 19:000ab4e6a2c1 4904 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4905 }
Azure.IoT Build 0:6ae2f7bca550 4906 outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
Azure.IoT Build 0:6ae2f7bca550 4907 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 3, outgoing_window_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 4908 {
AzureIoTClient 19:000ab4e6a2c1 4909 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4910 }
Azure.IoT Build 0:6ae2f7bca550 4911
Azure.IoT Build 0:6ae2f7bca550 4912 amqpvalue_destroy(incoming_window_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4913 amqpvalue_destroy(next_outgoing_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4914 amqpvalue_destroy(outgoing_window_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 4915 }
Azure.IoT Build 0:6ae2f7bca550 4916 }
Azure.IoT Build 0:6ae2f7bca550 4917
Azure.IoT Build 0:6ae2f7bca550 4918 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 4919 }
Azure.IoT Build 0:6ae2f7bca550 4920
Azure.IoT Build 0:6ae2f7bca550 4921 FLOW_HANDLE flow_clone(FLOW_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 4922 {
AzureIoTClient 21:f9c433d8e6ca 4923 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 4924 if (flow_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 4925 {
Azure.IoT Build 0:6ae2f7bca550 4926 flow_instance->composite_value = amqpvalue_clone(((FLOW_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 4927 if (flow_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4928 {
AzureIoTClient 21:f9c433d8e6ca 4929 free(flow_instance);
Azure.IoT Build 0:6ae2f7bca550 4930 flow_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 4931 }
Azure.IoT Build 0:6ae2f7bca550 4932 }
Azure.IoT Build 0:6ae2f7bca550 4933
Azure.IoT Build 0:6ae2f7bca550 4934 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 4935 }
Azure.IoT Build 0:6ae2f7bca550 4936
Azure.IoT Build 0:6ae2f7bca550 4937 void flow_destroy(FLOW_HANDLE flow)
Azure.IoT Build 0:6ae2f7bca550 4938 {
Azure.IoT Build 0:6ae2f7bca550 4939 if (flow != NULL)
Azure.IoT Build 0:6ae2f7bca550 4940 {
Azure.IoT Build 0:6ae2f7bca550 4941 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 4942 amqpvalue_destroy(flow_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 4943 free(flow_instance);
Azure.IoT Build 0:6ae2f7bca550 4944 }
Azure.IoT Build 0:6ae2f7bca550 4945 }
Azure.IoT Build 0:6ae2f7bca550 4946
Azure.IoT Build 0:6ae2f7bca550 4947 AMQP_VALUE amqpvalue_create_flow(FLOW_HANDLE flow)
Azure.IoT Build 0:6ae2f7bca550 4948 {
Azure.IoT Build 0:6ae2f7bca550 4949 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 4950
Azure.IoT Build 0:6ae2f7bca550 4951 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 4952 {
Azure.IoT Build 0:6ae2f7bca550 4953 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 4954 }
Azure.IoT Build 0:6ae2f7bca550 4955 else
Azure.IoT Build 0:6ae2f7bca550 4956 {
Azure.IoT Build 0:6ae2f7bca550 4957 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 4958 result = amqpvalue_clone(flow_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 4959 }
Azure.IoT Build 0:6ae2f7bca550 4960
Azure.IoT Build 0:6ae2f7bca550 4961 return result;
Azure.IoT Build 0:6ae2f7bca550 4962 }
Azure.IoT Build 0:6ae2f7bca550 4963
Azure.IoT Build 0:6ae2f7bca550 4964 bool is_flow_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 4965 {
Azure.IoT Build 0:6ae2f7bca550 4966 bool result;
Azure.IoT Build 0:6ae2f7bca550 4967
Azure.IoT Build 0:6ae2f7bca550 4968 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 4969 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 4970 (descriptor_ulong == 19))
Azure.IoT Build 0:6ae2f7bca550 4971 {
Azure.IoT Build 0:6ae2f7bca550 4972 result = true;
Azure.IoT Build 0:6ae2f7bca550 4973 }
Azure.IoT Build 0:6ae2f7bca550 4974 else
Azure.IoT Build 0:6ae2f7bca550 4975 {
Azure.IoT Build 0:6ae2f7bca550 4976 result = false;
Azure.IoT Build 0:6ae2f7bca550 4977 }
Azure.IoT Build 0:6ae2f7bca550 4978
Azure.IoT Build 0:6ae2f7bca550 4979 return result;
Azure.IoT Build 0:6ae2f7bca550 4980 }
Azure.IoT Build 0:6ae2f7bca550 4981
Azure.IoT Build 0:6ae2f7bca550 4982
Azure.IoT Build 0:6ae2f7bca550 4983 int amqpvalue_get_flow(AMQP_VALUE value, FLOW_HANDLE* flow_handle)
Azure.IoT Build 0:6ae2f7bca550 4984 {
Azure.IoT Build 0:6ae2f7bca550 4985 int result;
Azure.IoT Build 0:6ae2f7bca550 4986 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow_create_internal();
Azure.IoT Build 0:6ae2f7bca550 4987 *flow_handle = flow_instance;
Azure.IoT Build 0:6ae2f7bca550 4988 if (*flow_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 4989 {
AzureIoTClient 19:000ab4e6a2c1 4990 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4991 }
Azure.IoT Build 0:6ae2f7bca550 4992 else
Azure.IoT Build 0:6ae2f7bca550 4993 {
Azure.IoT Build 0:6ae2f7bca550 4994 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 4995 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 4996 {
Azure.IoT Build 0:6ae2f7bca550 4997 flow_destroy(*flow_handle);
AzureIoTClient 19:000ab4e6a2c1 4998 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 4999 }
Azure.IoT Build 0:6ae2f7bca550 5000 else
Azure.IoT Build 0:6ae2f7bca550 5001 {
AzureIoTClient 23:1111ee8bcba4 5002 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 5003 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5004 {
AzureIoTClient 23:1111ee8bcba4 5005 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5006 }
AzureIoTClient 23:1111ee8bcba4 5007 else
AzureIoTClient 23:1111ee8bcba4 5008 {
AzureIoTClient 23:1111ee8bcba4 5009 do
AzureIoTClient 23:1111ee8bcba4 5010 {
AzureIoTClient 23:1111ee8bcba4 5011 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 5012 /* next-incoming-id */
AzureIoTClient 23:1111ee8bcba4 5013 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 5014 {
AzureIoTClient 23:1111ee8bcba4 5015 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 5016 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5017 {
AzureIoTClient 23:1111ee8bcba4 5018 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 5019 }
AzureIoTClient 23:1111ee8bcba4 5020 else
AzureIoTClient 23:1111ee8bcba4 5021 {
AzureIoTClient 25:1101516ee67d 5022 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5023 {
AzureIoTClient 25:1101516ee67d 5024 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 5025 }
AzureIoTClient 25:1101516ee67d 5026 else
AzureIoTClient 25:1101516ee67d 5027 {
AzureIoTClient 25:1101516ee67d 5028 transfer_number next_incoming_id;
AzureIoTClient 23:1111ee8bcba4 5029 if (amqpvalue_get_transfer_number(item_value, &next_incoming_id) != 0)
AzureIoTClient 23:1111ee8bcba4 5030 {
AzureIoTClient 25:1101516ee67d 5031 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5032 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5033 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5034 break;
AzureIoTClient 23:1111ee8bcba4 5035 }
AzureIoTClient 23:1111ee8bcba4 5036 }
AzureIoTClient 23:1111ee8bcba4 5037
AzureIoTClient 23:1111ee8bcba4 5038 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5039 }
AzureIoTClient 23:1111ee8bcba4 5040 }
AzureIoTClient 23:1111ee8bcba4 5041 /* incoming-window */
AzureIoTClient 23:1111ee8bcba4 5042 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 5043 {
AzureIoTClient 23:1111ee8bcba4 5044 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 5045 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5046 {
AzureIoTClient 23:1111ee8bcba4 5047 {
AzureIoTClient 23:1111ee8bcba4 5048 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5049 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5050 break;
AzureIoTClient 23:1111ee8bcba4 5051 }
AzureIoTClient 23:1111ee8bcba4 5052 }
AzureIoTClient 23:1111ee8bcba4 5053 else
AzureIoTClient 23:1111ee8bcba4 5054 {
AzureIoTClient 25:1101516ee67d 5055 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5056 {
AzureIoTClient 25:1101516ee67d 5057 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5058 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5059 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5060 break;
AzureIoTClient 23:1111ee8bcba4 5061 }
AzureIoTClient 23:1111ee8bcba4 5062 else
AzureIoTClient 23:1111ee8bcba4 5063 {
AzureIoTClient 25:1101516ee67d 5064 uint32_t incoming_window;
AzureIoTClient 23:1111ee8bcba4 5065 if (amqpvalue_get_uint(item_value, &incoming_window) != 0)
AzureIoTClient 23:1111ee8bcba4 5066 {
AzureIoTClient 25:1101516ee67d 5067 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5068 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5069 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5070 break;
AzureIoTClient 23:1111ee8bcba4 5071 }
AzureIoTClient 23:1111ee8bcba4 5072 }
AzureIoTClient 23:1111ee8bcba4 5073
AzureIoTClient 23:1111ee8bcba4 5074 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5075 }
AzureIoTClient 23:1111ee8bcba4 5076 }
AzureIoTClient 23:1111ee8bcba4 5077 else
AzureIoTClient 23:1111ee8bcba4 5078 {
AzureIoTClient 23:1111ee8bcba4 5079 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5080 }
AzureIoTClient 23:1111ee8bcba4 5081 /* next-outgoing-id */
AzureIoTClient 23:1111ee8bcba4 5082 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 5083 {
AzureIoTClient 23:1111ee8bcba4 5084 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 5085 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5086 {
AzureIoTClient 23:1111ee8bcba4 5087 {
AzureIoTClient 23:1111ee8bcba4 5088 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5089 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5090 break;
AzureIoTClient 23:1111ee8bcba4 5091 }
AzureIoTClient 23:1111ee8bcba4 5092 }
AzureIoTClient 23:1111ee8bcba4 5093 else
AzureIoTClient 23:1111ee8bcba4 5094 {
AzureIoTClient 25:1101516ee67d 5095 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5096 {
AzureIoTClient 25:1101516ee67d 5097 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5098 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5099 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5100 break;
AzureIoTClient 23:1111ee8bcba4 5101 }
AzureIoTClient 23:1111ee8bcba4 5102 else
AzureIoTClient 23:1111ee8bcba4 5103 {
AzureIoTClient 25:1101516ee67d 5104 transfer_number next_outgoing_id;
AzureIoTClient 23:1111ee8bcba4 5105 if (amqpvalue_get_transfer_number(item_value, &next_outgoing_id) != 0)
AzureIoTClient 23:1111ee8bcba4 5106 {
AzureIoTClient 25:1101516ee67d 5107 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5108 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5109 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5110 break;
AzureIoTClient 23:1111ee8bcba4 5111 }
AzureIoTClient 23:1111ee8bcba4 5112 }
AzureIoTClient 23:1111ee8bcba4 5113
AzureIoTClient 23:1111ee8bcba4 5114 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5115 }
AzureIoTClient 23:1111ee8bcba4 5116 }
AzureIoTClient 23:1111ee8bcba4 5117 else
AzureIoTClient 23:1111ee8bcba4 5118 {
AzureIoTClient 23:1111ee8bcba4 5119 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5120 }
AzureIoTClient 23:1111ee8bcba4 5121 /* outgoing-window */
AzureIoTClient 23:1111ee8bcba4 5122 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 5123 {
AzureIoTClient 23:1111ee8bcba4 5124 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 5125 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5126 {
AzureIoTClient 23:1111ee8bcba4 5127 {
AzureIoTClient 23:1111ee8bcba4 5128 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5129 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5130 break;
AzureIoTClient 23:1111ee8bcba4 5131 }
AzureIoTClient 23:1111ee8bcba4 5132 }
AzureIoTClient 23:1111ee8bcba4 5133 else
AzureIoTClient 23:1111ee8bcba4 5134 {
AzureIoTClient 25:1101516ee67d 5135 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5136 {
AzureIoTClient 25:1101516ee67d 5137 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5138 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5139 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5140 break;
AzureIoTClient 23:1111ee8bcba4 5141 }
AzureIoTClient 23:1111ee8bcba4 5142 else
AzureIoTClient 23:1111ee8bcba4 5143 {
AzureIoTClient 25:1101516ee67d 5144 uint32_t outgoing_window;
AzureIoTClient 23:1111ee8bcba4 5145 if (amqpvalue_get_uint(item_value, &outgoing_window) != 0)
AzureIoTClient 23:1111ee8bcba4 5146 {
AzureIoTClient 25:1101516ee67d 5147 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5148 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5149 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5150 break;
AzureIoTClient 23:1111ee8bcba4 5151 }
AzureIoTClient 23:1111ee8bcba4 5152 }
AzureIoTClient 23:1111ee8bcba4 5153
AzureIoTClient 23:1111ee8bcba4 5154 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5155 }
AzureIoTClient 23:1111ee8bcba4 5156 }
AzureIoTClient 23:1111ee8bcba4 5157 else
AzureIoTClient 23:1111ee8bcba4 5158 {
AzureIoTClient 23:1111ee8bcba4 5159 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5160 }
AzureIoTClient 23:1111ee8bcba4 5161 /* handle */
AzureIoTClient 23:1111ee8bcba4 5162 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 5163 {
AzureIoTClient 23:1111ee8bcba4 5164 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 5165 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5166 {
AzureIoTClient 23:1111ee8bcba4 5167 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 5168 }
AzureIoTClient 23:1111ee8bcba4 5169 else
AzureIoTClient 23:1111ee8bcba4 5170 {
AzureIoTClient 25:1101516ee67d 5171 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5172 {
AzureIoTClient 25:1101516ee67d 5173 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 5174 }
AzureIoTClient 25:1101516ee67d 5175 else
AzureIoTClient 25:1101516ee67d 5176 {
AzureIoTClient 25:1101516ee67d 5177 handle handle;
AzureIoTClient 23:1111ee8bcba4 5178 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 23:1111ee8bcba4 5179 {
AzureIoTClient 25:1101516ee67d 5180 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5181 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5182 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5183 break;
AzureIoTClient 23:1111ee8bcba4 5184 }
AzureIoTClient 23:1111ee8bcba4 5185 }
AzureIoTClient 23:1111ee8bcba4 5186
AzureIoTClient 23:1111ee8bcba4 5187 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5188 }
AzureIoTClient 23:1111ee8bcba4 5189 }
AzureIoTClient 23:1111ee8bcba4 5190 /* delivery-count */
AzureIoTClient 23:1111ee8bcba4 5191 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 5192 {
AzureIoTClient 23:1111ee8bcba4 5193 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 5194 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5195 {
AzureIoTClient 23:1111ee8bcba4 5196 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 5197 }
AzureIoTClient 23:1111ee8bcba4 5198 else
AzureIoTClient 23:1111ee8bcba4 5199 {
AzureIoTClient 25:1101516ee67d 5200 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5201 {
AzureIoTClient 25:1101516ee67d 5202 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 5203 }
AzureIoTClient 25:1101516ee67d 5204 else
AzureIoTClient 25:1101516ee67d 5205 {
AzureIoTClient 25:1101516ee67d 5206 sequence_no delivery_count;
AzureIoTClient 23:1111ee8bcba4 5207 if (amqpvalue_get_sequence_no(item_value, &delivery_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5208 {
AzureIoTClient 25:1101516ee67d 5209 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5210 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5211 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5212 break;
AzureIoTClient 23:1111ee8bcba4 5213 }
AzureIoTClient 23:1111ee8bcba4 5214 }
AzureIoTClient 23:1111ee8bcba4 5215
AzureIoTClient 23:1111ee8bcba4 5216 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5217 }
AzureIoTClient 23:1111ee8bcba4 5218 }
AzureIoTClient 23:1111ee8bcba4 5219 /* link-credit */
AzureIoTClient 23:1111ee8bcba4 5220 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 5221 {
AzureIoTClient 23:1111ee8bcba4 5222 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 23:1111ee8bcba4 5223 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5224 {
AzureIoTClient 23:1111ee8bcba4 5225 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 5226 }
AzureIoTClient 23:1111ee8bcba4 5227 else
AzureIoTClient 23:1111ee8bcba4 5228 {
AzureIoTClient 25:1101516ee67d 5229 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5230 {
AzureIoTClient 25:1101516ee67d 5231 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 5232 }
AzureIoTClient 25:1101516ee67d 5233 else
AzureIoTClient 25:1101516ee67d 5234 {
AzureIoTClient 25:1101516ee67d 5235 uint32_t link_credit;
AzureIoTClient 23:1111ee8bcba4 5236 if (amqpvalue_get_uint(item_value, &link_credit) != 0)
AzureIoTClient 23:1111ee8bcba4 5237 {
AzureIoTClient 25:1101516ee67d 5238 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5239 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5240 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5241 break;
AzureIoTClient 23:1111ee8bcba4 5242 }
AzureIoTClient 23:1111ee8bcba4 5243 }
AzureIoTClient 23:1111ee8bcba4 5244
AzureIoTClient 23:1111ee8bcba4 5245 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5246 }
AzureIoTClient 23:1111ee8bcba4 5247 }
AzureIoTClient 23:1111ee8bcba4 5248 /* available */
AzureIoTClient 23:1111ee8bcba4 5249 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 5250 {
AzureIoTClient 23:1111ee8bcba4 5251 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 23:1111ee8bcba4 5252 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5253 {
AzureIoTClient 23:1111ee8bcba4 5254 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 5255 }
AzureIoTClient 23:1111ee8bcba4 5256 else
AzureIoTClient 23:1111ee8bcba4 5257 {
AzureIoTClient 25:1101516ee67d 5258 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5259 {
AzureIoTClient 25:1101516ee67d 5260 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 5261 }
AzureIoTClient 25:1101516ee67d 5262 else
AzureIoTClient 25:1101516ee67d 5263 {
AzureIoTClient 25:1101516ee67d 5264 uint32_t available;
AzureIoTClient 23:1111ee8bcba4 5265 if (amqpvalue_get_uint(item_value, &available) != 0)
AzureIoTClient 23:1111ee8bcba4 5266 {
AzureIoTClient 25:1101516ee67d 5267 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5268 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5269 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5270 break;
AzureIoTClient 23:1111ee8bcba4 5271 }
AzureIoTClient 23:1111ee8bcba4 5272 }
AzureIoTClient 23:1111ee8bcba4 5273
AzureIoTClient 23:1111ee8bcba4 5274 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5275 }
AzureIoTClient 23:1111ee8bcba4 5276 }
AzureIoTClient 23:1111ee8bcba4 5277 /* drain */
AzureIoTClient 23:1111ee8bcba4 5278 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 5279 {
AzureIoTClient 23:1111ee8bcba4 5280 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 23:1111ee8bcba4 5281 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5282 {
AzureIoTClient 23:1111ee8bcba4 5283 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 5284 }
AzureIoTClient 23:1111ee8bcba4 5285 else
AzureIoTClient 23:1111ee8bcba4 5286 {
AzureIoTClient 25:1101516ee67d 5287 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5288 {
AzureIoTClient 25:1101516ee67d 5289 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 5290 }
AzureIoTClient 25:1101516ee67d 5291 else
AzureIoTClient 25:1101516ee67d 5292 {
AzureIoTClient 25:1101516ee67d 5293 bool drain;
AzureIoTClient 23:1111ee8bcba4 5294 if (amqpvalue_get_boolean(item_value, &drain) != 0)
AzureIoTClient 23:1111ee8bcba4 5295 {
AzureIoTClient 25:1101516ee67d 5296 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5297 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5298 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5299 break;
AzureIoTClient 23:1111ee8bcba4 5300 }
AzureIoTClient 23:1111ee8bcba4 5301 }
AzureIoTClient 23:1111ee8bcba4 5302
AzureIoTClient 23:1111ee8bcba4 5303 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5304 }
AzureIoTClient 23:1111ee8bcba4 5305 }
AzureIoTClient 23:1111ee8bcba4 5306 /* echo */
AzureIoTClient 23:1111ee8bcba4 5307 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 5308 {
AzureIoTClient 23:1111ee8bcba4 5309 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 23:1111ee8bcba4 5310 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5311 {
AzureIoTClient 23:1111ee8bcba4 5312 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 5313 }
AzureIoTClient 23:1111ee8bcba4 5314 else
AzureIoTClient 23:1111ee8bcba4 5315 {
AzureIoTClient 25:1101516ee67d 5316 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5317 {
AzureIoTClient 25:1101516ee67d 5318 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 5319 }
AzureIoTClient 25:1101516ee67d 5320 else
AzureIoTClient 25:1101516ee67d 5321 {
AzureIoTClient 25:1101516ee67d 5322 bool echo;
AzureIoTClient 23:1111ee8bcba4 5323 if (amqpvalue_get_boolean(item_value, &echo) != 0)
AzureIoTClient 23:1111ee8bcba4 5324 {
AzureIoTClient 25:1101516ee67d 5325 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5326 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5327 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5328 break;
AzureIoTClient 23:1111ee8bcba4 5329 }
AzureIoTClient 23:1111ee8bcba4 5330 }
AzureIoTClient 23:1111ee8bcba4 5331
AzureIoTClient 23:1111ee8bcba4 5332 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5333 }
AzureIoTClient 23:1111ee8bcba4 5334 }
AzureIoTClient 23:1111ee8bcba4 5335 /* properties */
AzureIoTClient 23:1111ee8bcba4 5336 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 5337 {
AzureIoTClient 23:1111ee8bcba4 5338 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 23:1111ee8bcba4 5339 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5340 {
AzureIoTClient 23:1111ee8bcba4 5341 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 5342 }
AzureIoTClient 23:1111ee8bcba4 5343 else
AzureIoTClient 23:1111ee8bcba4 5344 {
AzureIoTClient 25:1101516ee67d 5345 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 5346 {
AzureIoTClient 25:1101516ee67d 5347 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 5348 }
AzureIoTClient 25:1101516ee67d 5349 else
AzureIoTClient 25:1101516ee67d 5350 {
AzureIoTClient 25:1101516ee67d 5351 fields properties;
AzureIoTClient 23:1111ee8bcba4 5352 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 23:1111ee8bcba4 5353 {
AzureIoTClient 25:1101516ee67d 5354 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5355 flow_destroy(*flow_handle);
AzureIoTClient 23:1111ee8bcba4 5356 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5357 break;
AzureIoTClient 23:1111ee8bcba4 5358 }
AzureIoTClient 23:1111ee8bcba4 5359 }
AzureIoTClient 23:1111ee8bcba4 5360
AzureIoTClient 23:1111ee8bcba4 5361 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 5362 }
AzureIoTClient 23:1111ee8bcba4 5363 }
AzureIoTClient 23:1111ee8bcba4 5364
AzureIoTClient 23:1111ee8bcba4 5365 flow_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 5366
AzureIoTClient 23:1111ee8bcba4 5367 result = 0;
AzureIoTClient 23:1111ee8bcba4 5368 } while (0);
AzureIoTClient 23:1111ee8bcba4 5369 }
Azure.IoT Build 0:6ae2f7bca550 5370 }
Azure.IoT Build 0:6ae2f7bca550 5371 }
Azure.IoT Build 0:6ae2f7bca550 5372
Azure.IoT Build 0:6ae2f7bca550 5373 return result;
Azure.IoT Build 0:6ae2f7bca550 5374 }
Azure.IoT Build 0:6ae2f7bca550 5375
Azure.IoT Build 0:6ae2f7bca550 5376 int flow_get_next_incoming_id(FLOW_HANDLE flow, transfer_number* next_incoming_id_value)
Azure.IoT Build 0:6ae2f7bca550 5377 {
Azure.IoT Build 0:6ae2f7bca550 5378 int result;
Azure.IoT Build 0:6ae2f7bca550 5379
Azure.IoT Build 0:6ae2f7bca550 5380 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5381 {
AzureIoTClient 19:000ab4e6a2c1 5382 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5383 }
Azure.IoT Build 0:6ae2f7bca550 5384 else
Azure.IoT Build 0:6ae2f7bca550 5385 {
AzureIoTClient 23:1111ee8bcba4 5386 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 5387 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5388 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5389 {
AzureIoTClient 23:1111ee8bcba4 5390 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5391 }
AzureIoTClient 23:1111ee8bcba4 5392 else
AzureIoTClient 23:1111ee8bcba4 5393 {
AzureIoTClient 23:1111ee8bcba4 5394 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 5395 {
AzureIoTClient 23:1111ee8bcba4 5396 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5397 }
AzureIoTClient 23:1111ee8bcba4 5398 else
AzureIoTClient 23:1111ee8bcba4 5399 {
AzureIoTClient 23:1111ee8bcba4 5400 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 5401 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 5402 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 5403 {
AzureIoTClient 23:1111ee8bcba4 5404 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5405 }
AzureIoTClient 23:1111ee8bcba4 5406 else
AzureIoTClient 23:1111ee8bcba4 5407 {
AzureIoTClient 23:1111ee8bcba4 5408 if (amqpvalue_get_transfer_number(item_value, next_incoming_id_value) != 0)
AzureIoTClient 23:1111ee8bcba4 5409 {
AzureIoTClient 23:1111ee8bcba4 5410 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5411 }
AzureIoTClient 23:1111ee8bcba4 5412 else
AzureIoTClient 23:1111ee8bcba4 5413 {
AzureIoTClient 23:1111ee8bcba4 5414 result = 0;
AzureIoTClient 23:1111ee8bcba4 5415 }
AzureIoTClient 23:1111ee8bcba4 5416 }
AzureIoTClient 23:1111ee8bcba4 5417 }
Azure.IoT Build 0:6ae2f7bca550 5418 }
Azure.IoT Build 0:6ae2f7bca550 5419 }
Azure.IoT Build 0:6ae2f7bca550 5420
Azure.IoT Build 0:6ae2f7bca550 5421 return result;
Azure.IoT Build 0:6ae2f7bca550 5422 }
Azure.IoT Build 0:6ae2f7bca550 5423
Azure.IoT Build 0:6ae2f7bca550 5424 int flow_set_next_incoming_id(FLOW_HANDLE flow, transfer_number next_incoming_id_value)
Azure.IoT Build 0:6ae2f7bca550 5425 {
Azure.IoT Build 0:6ae2f7bca550 5426 int result;
Azure.IoT Build 0:6ae2f7bca550 5427
Azure.IoT Build 0:6ae2f7bca550 5428 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5429 {
AzureIoTClient 19:000ab4e6a2c1 5430 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5431 }
Azure.IoT Build 0:6ae2f7bca550 5432 else
Azure.IoT Build 0:6ae2f7bca550 5433 {
Azure.IoT Build 0:6ae2f7bca550 5434 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 5435 AMQP_VALUE next_incoming_id_amqp_value = amqpvalue_create_transfer_number(next_incoming_id_value);
Azure.IoT Build 0:6ae2f7bca550 5436 if (next_incoming_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 5437 {
AzureIoTClient 19:000ab4e6a2c1 5438 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5439 }
Azure.IoT Build 0:6ae2f7bca550 5440 else
Azure.IoT Build 0:6ae2f7bca550 5441 {
Azure.IoT Build 0:6ae2f7bca550 5442 if (amqpvalue_set_composite_item(flow_instance->composite_value, 0, next_incoming_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 5443 {
AzureIoTClient 19:000ab4e6a2c1 5444 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5445 }
Azure.IoT Build 0:6ae2f7bca550 5446 else
Azure.IoT Build 0:6ae2f7bca550 5447 {
Azure.IoT Build 0:6ae2f7bca550 5448 result = 0;
Azure.IoT Build 0:6ae2f7bca550 5449 }
Azure.IoT Build 0:6ae2f7bca550 5450
Azure.IoT Build 0:6ae2f7bca550 5451 amqpvalue_destroy(next_incoming_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 5452 }
Azure.IoT Build 0:6ae2f7bca550 5453 }
Azure.IoT Build 0:6ae2f7bca550 5454
Azure.IoT Build 0:6ae2f7bca550 5455 return result;
Azure.IoT Build 0:6ae2f7bca550 5456 }
Azure.IoT Build 0:6ae2f7bca550 5457
Azure.IoT Build 0:6ae2f7bca550 5458 int flow_get_incoming_window(FLOW_HANDLE flow, uint32_t* incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 5459 {
Azure.IoT Build 0:6ae2f7bca550 5460 int result;
Azure.IoT Build 0:6ae2f7bca550 5461
Azure.IoT Build 0:6ae2f7bca550 5462 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5463 {
AzureIoTClient 19:000ab4e6a2c1 5464 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5465 }
Azure.IoT Build 0:6ae2f7bca550 5466 else
Azure.IoT Build 0:6ae2f7bca550 5467 {
AzureIoTClient 23:1111ee8bcba4 5468 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 5469 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5470 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5471 {
AzureIoTClient 23:1111ee8bcba4 5472 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5473 }
AzureIoTClient 23:1111ee8bcba4 5474 else
AzureIoTClient 23:1111ee8bcba4 5475 {
AzureIoTClient 23:1111ee8bcba4 5476 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 5477 {
AzureIoTClient 23:1111ee8bcba4 5478 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5479 }
AzureIoTClient 23:1111ee8bcba4 5480 else
AzureIoTClient 23:1111ee8bcba4 5481 {
AzureIoTClient 23:1111ee8bcba4 5482 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 5483 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 5484 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 5485 {
AzureIoTClient 23:1111ee8bcba4 5486 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5487 }
AzureIoTClient 23:1111ee8bcba4 5488 else
AzureIoTClient 23:1111ee8bcba4 5489 {
AzureIoTClient 23:1111ee8bcba4 5490 if (amqpvalue_get_uint(item_value, incoming_window_value) != 0)
AzureIoTClient 23:1111ee8bcba4 5491 {
AzureIoTClient 23:1111ee8bcba4 5492 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5493 }
AzureIoTClient 23:1111ee8bcba4 5494 else
AzureIoTClient 23:1111ee8bcba4 5495 {
AzureIoTClient 23:1111ee8bcba4 5496 result = 0;
AzureIoTClient 23:1111ee8bcba4 5497 }
AzureIoTClient 23:1111ee8bcba4 5498 }
AzureIoTClient 23:1111ee8bcba4 5499 }
Azure.IoT Build 0:6ae2f7bca550 5500 }
Azure.IoT Build 0:6ae2f7bca550 5501 }
Azure.IoT Build 0:6ae2f7bca550 5502
Azure.IoT Build 0:6ae2f7bca550 5503 return result;
Azure.IoT Build 0:6ae2f7bca550 5504 }
Azure.IoT Build 0:6ae2f7bca550 5505
Azure.IoT Build 0:6ae2f7bca550 5506 int flow_set_incoming_window(FLOW_HANDLE flow, uint32_t incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 5507 {
Azure.IoT Build 0:6ae2f7bca550 5508 int result;
Azure.IoT Build 0:6ae2f7bca550 5509
Azure.IoT Build 0:6ae2f7bca550 5510 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5511 {
AzureIoTClient 19:000ab4e6a2c1 5512 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5513 }
Azure.IoT Build 0:6ae2f7bca550 5514 else
Azure.IoT Build 0:6ae2f7bca550 5515 {
Azure.IoT Build 0:6ae2f7bca550 5516 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 5517 AMQP_VALUE incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
Azure.IoT Build 0:6ae2f7bca550 5518 if (incoming_window_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 5519 {
AzureIoTClient 19:000ab4e6a2c1 5520 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5521 }
Azure.IoT Build 0:6ae2f7bca550 5522 else
Azure.IoT Build 0:6ae2f7bca550 5523 {
Azure.IoT Build 0:6ae2f7bca550 5524 if (amqpvalue_set_composite_item(flow_instance->composite_value, 1, incoming_window_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 5525 {
AzureIoTClient 19:000ab4e6a2c1 5526 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5527 }
Azure.IoT Build 0:6ae2f7bca550 5528 else
Azure.IoT Build 0:6ae2f7bca550 5529 {
Azure.IoT Build 0:6ae2f7bca550 5530 result = 0;
Azure.IoT Build 0:6ae2f7bca550 5531 }
Azure.IoT Build 0:6ae2f7bca550 5532
Azure.IoT Build 0:6ae2f7bca550 5533 amqpvalue_destroy(incoming_window_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 5534 }
Azure.IoT Build 0:6ae2f7bca550 5535 }
Azure.IoT Build 0:6ae2f7bca550 5536
Azure.IoT Build 0:6ae2f7bca550 5537 return result;
Azure.IoT Build 0:6ae2f7bca550 5538 }
Azure.IoT Build 0:6ae2f7bca550 5539
Azure.IoT Build 0:6ae2f7bca550 5540 int flow_get_next_outgoing_id(FLOW_HANDLE flow, transfer_number* next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 5541 {
Azure.IoT Build 0:6ae2f7bca550 5542 int result;
Azure.IoT Build 0:6ae2f7bca550 5543
Azure.IoT Build 0:6ae2f7bca550 5544 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5545 {
AzureIoTClient 19:000ab4e6a2c1 5546 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5547 }
Azure.IoT Build 0:6ae2f7bca550 5548 else
Azure.IoT Build 0:6ae2f7bca550 5549 {
AzureIoTClient 23:1111ee8bcba4 5550 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 5551 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5552 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5553 {
AzureIoTClient 23:1111ee8bcba4 5554 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5555 }
AzureIoTClient 23:1111ee8bcba4 5556 else
AzureIoTClient 23:1111ee8bcba4 5557 {
AzureIoTClient 23:1111ee8bcba4 5558 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 5559 {
AzureIoTClient 23:1111ee8bcba4 5560 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5561 }
AzureIoTClient 23:1111ee8bcba4 5562 else
AzureIoTClient 23:1111ee8bcba4 5563 {
AzureIoTClient 23:1111ee8bcba4 5564 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 5565 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 5566 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 5567 {
AzureIoTClient 23:1111ee8bcba4 5568 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5569 }
AzureIoTClient 23:1111ee8bcba4 5570 else
AzureIoTClient 23:1111ee8bcba4 5571 {
AzureIoTClient 23:1111ee8bcba4 5572 if (amqpvalue_get_transfer_number(item_value, next_outgoing_id_value) != 0)
AzureIoTClient 23:1111ee8bcba4 5573 {
AzureIoTClient 23:1111ee8bcba4 5574 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5575 }
AzureIoTClient 23:1111ee8bcba4 5576 else
AzureIoTClient 23:1111ee8bcba4 5577 {
AzureIoTClient 23:1111ee8bcba4 5578 result = 0;
AzureIoTClient 23:1111ee8bcba4 5579 }
AzureIoTClient 23:1111ee8bcba4 5580 }
AzureIoTClient 23:1111ee8bcba4 5581 }
Azure.IoT Build 0:6ae2f7bca550 5582 }
Azure.IoT Build 0:6ae2f7bca550 5583 }
Azure.IoT Build 0:6ae2f7bca550 5584
Azure.IoT Build 0:6ae2f7bca550 5585 return result;
Azure.IoT Build 0:6ae2f7bca550 5586 }
Azure.IoT Build 0:6ae2f7bca550 5587
Azure.IoT Build 0:6ae2f7bca550 5588 int flow_set_next_outgoing_id(FLOW_HANDLE flow, transfer_number next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 5589 {
Azure.IoT Build 0:6ae2f7bca550 5590 int result;
Azure.IoT Build 0:6ae2f7bca550 5591
Azure.IoT Build 0:6ae2f7bca550 5592 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5593 {
AzureIoTClient 19:000ab4e6a2c1 5594 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5595 }
Azure.IoT Build 0:6ae2f7bca550 5596 else
Azure.IoT Build 0:6ae2f7bca550 5597 {
Azure.IoT Build 0:6ae2f7bca550 5598 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 5599 AMQP_VALUE next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
Azure.IoT Build 0:6ae2f7bca550 5600 if (next_outgoing_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 5601 {
AzureIoTClient 19:000ab4e6a2c1 5602 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5603 }
Azure.IoT Build 0:6ae2f7bca550 5604 else
Azure.IoT Build 0:6ae2f7bca550 5605 {
Azure.IoT Build 0:6ae2f7bca550 5606 if (amqpvalue_set_composite_item(flow_instance->composite_value, 2, next_outgoing_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 5607 {
AzureIoTClient 19:000ab4e6a2c1 5608 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5609 }
Azure.IoT Build 0:6ae2f7bca550 5610 else
Azure.IoT Build 0:6ae2f7bca550 5611 {
Azure.IoT Build 0:6ae2f7bca550 5612 result = 0;
Azure.IoT Build 0:6ae2f7bca550 5613 }
Azure.IoT Build 0:6ae2f7bca550 5614
Azure.IoT Build 0:6ae2f7bca550 5615 amqpvalue_destroy(next_outgoing_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 5616 }
Azure.IoT Build 0:6ae2f7bca550 5617 }
Azure.IoT Build 0:6ae2f7bca550 5618
Azure.IoT Build 0:6ae2f7bca550 5619 return result;
Azure.IoT Build 0:6ae2f7bca550 5620 }
Azure.IoT Build 0:6ae2f7bca550 5621
Azure.IoT Build 0:6ae2f7bca550 5622 int flow_get_outgoing_window(FLOW_HANDLE flow, uint32_t* outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 5623 {
Azure.IoT Build 0:6ae2f7bca550 5624 int result;
Azure.IoT Build 0:6ae2f7bca550 5625
Azure.IoT Build 0:6ae2f7bca550 5626 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5627 {
AzureIoTClient 19:000ab4e6a2c1 5628 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5629 }
Azure.IoT Build 0:6ae2f7bca550 5630 else
Azure.IoT Build 0:6ae2f7bca550 5631 {
AzureIoTClient 23:1111ee8bcba4 5632 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 5633 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5634 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5635 {
AzureIoTClient 23:1111ee8bcba4 5636 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5637 }
AzureIoTClient 23:1111ee8bcba4 5638 else
AzureIoTClient 23:1111ee8bcba4 5639 {
AzureIoTClient 23:1111ee8bcba4 5640 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 5641 {
AzureIoTClient 23:1111ee8bcba4 5642 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5643 }
AzureIoTClient 23:1111ee8bcba4 5644 else
AzureIoTClient 23:1111ee8bcba4 5645 {
AzureIoTClient 23:1111ee8bcba4 5646 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 5647 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 5648 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 5649 {
AzureIoTClient 23:1111ee8bcba4 5650 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5651 }
AzureIoTClient 23:1111ee8bcba4 5652 else
AzureIoTClient 23:1111ee8bcba4 5653 {
AzureIoTClient 23:1111ee8bcba4 5654 if (amqpvalue_get_uint(item_value, outgoing_window_value) != 0)
AzureIoTClient 23:1111ee8bcba4 5655 {
AzureIoTClient 23:1111ee8bcba4 5656 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5657 }
AzureIoTClient 23:1111ee8bcba4 5658 else
AzureIoTClient 23:1111ee8bcba4 5659 {
AzureIoTClient 23:1111ee8bcba4 5660 result = 0;
AzureIoTClient 23:1111ee8bcba4 5661 }
AzureIoTClient 23:1111ee8bcba4 5662 }
AzureIoTClient 23:1111ee8bcba4 5663 }
Azure.IoT Build 0:6ae2f7bca550 5664 }
Azure.IoT Build 0:6ae2f7bca550 5665 }
Azure.IoT Build 0:6ae2f7bca550 5666
Azure.IoT Build 0:6ae2f7bca550 5667 return result;
Azure.IoT Build 0:6ae2f7bca550 5668 }
Azure.IoT Build 0:6ae2f7bca550 5669
Azure.IoT Build 0:6ae2f7bca550 5670 int flow_set_outgoing_window(FLOW_HANDLE flow, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 5671 {
Azure.IoT Build 0:6ae2f7bca550 5672 int result;
Azure.IoT Build 0:6ae2f7bca550 5673
Azure.IoT Build 0:6ae2f7bca550 5674 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5675 {
AzureIoTClient 19:000ab4e6a2c1 5676 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5677 }
Azure.IoT Build 0:6ae2f7bca550 5678 else
Azure.IoT Build 0:6ae2f7bca550 5679 {
Azure.IoT Build 0:6ae2f7bca550 5680 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 5681 AMQP_VALUE outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
Azure.IoT Build 0:6ae2f7bca550 5682 if (outgoing_window_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 5683 {
AzureIoTClient 19:000ab4e6a2c1 5684 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5685 }
Azure.IoT Build 0:6ae2f7bca550 5686 else
Azure.IoT Build 0:6ae2f7bca550 5687 {
Azure.IoT Build 0:6ae2f7bca550 5688 if (amqpvalue_set_composite_item(flow_instance->composite_value, 3, outgoing_window_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 5689 {
AzureIoTClient 19:000ab4e6a2c1 5690 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5691 }
Azure.IoT Build 0:6ae2f7bca550 5692 else
Azure.IoT Build 0:6ae2f7bca550 5693 {
Azure.IoT Build 0:6ae2f7bca550 5694 result = 0;
Azure.IoT Build 0:6ae2f7bca550 5695 }
Azure.IoT Build 0:6ae2f7bca550 5696
Azure.IoT Build 0:6ae2f7bca550 5697 amqpvalue_destroy(outgoing_window_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 5698 }
Azure.IoT Build 0:6ae2f7bca550 5699 }
Azure.IoT Build 0:6ae2f7bca550 5700
Azure.IoT Build 0:6ae2f7bca550 5701 return result;
Azure.IoT Build 0:6ae2f7bca550 5702 }
Azure.IoT Build 0:6ae2f7bca550 5703
Azure.IoT Build 0:6ae2f7bca550 5704 int flow_get_handle(FLOW_HANDLE flow, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 5705 {
Azure.IoT Build 0:6ae2f7bca550 5706 int result;
Azure.IoT Build 0:6ae2f7bca550 5707
Azure.IoT Build 0:6ae2f7bca550 5708 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5709 {
AzureIoTClient 19:000ab4e6a2c1 5710 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5711 }
Azure.IoT Build 0:6ae2f7bca550 5712 else
Azure.IoT Build 0:6ae2f7bca550 5713 {
AzureIoTClient 23:1111ee8bcba4 5714 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 5715 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5716 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5717 {
AzureIoTClient 23:1111ee8bcba4 5718 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5719 }
AzureIoTClient 23:1111ee8bcba4 5720 else
AzureIoTClient 23:1111ee8bcba4 5721 {
AzureIoTClient 23:1111ee8bcba4 5722 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 5723 {
AzureIoTClient 23:1111ee8bcba4 5724 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5725 }
AzureIoTClient 23:1111ee8bcba4 5726 else
AzureIoTClient 23:1111ee8bcba4 5727 {
AzureIoTClient 23:1111ee8bcba4 5728 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 5729 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 5730 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 5731 {
AzureIoTClient 23:1111ee8bcba4 5732 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5733 }
AzureIoTClient 23:1111ee8bcba4 5734 else
AzureIoTClient 23:1111ee8bcba4 5735 {
AzureIoTClient 23:1111ee8bcba4 5736 if (amqpvalue_get_handle(item_value, handle_value) != 0)
AzureIoTClient 23:1111ee8bcba4 5737 {
AzureIoTClient 23:1111ee8bcba4 5738 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5739 }
AzureIoTClient 23:1111ee8bcba4 5740 else
AzureIoTClient 23:1111ee8bcba4 5741 {
AzureIoTClient 23:1111ee8bcba4 5742 result = 0;
AzureIoTClient 23:1111ee8bcba4 5743 }
AzureIoTClient 23:1111ee8bcba4 5744 }
AzureIoTClient 23:1111ee8bcba4 5745 }
Azure.IoT Build 0:6ae2f7bca550 5746 }
Azure.IoT Build 0:6ae2f7bca550 5747 }
Azure.IoT Build 0:6ae2f7bca550 5748
Azure.IoT Build 0:6ae2f7bca550 5749 return result;
Azure.IoT Build 0:6ae2f7bca550 5750 }
Azure.IoT Build 0:6ae2f7bca550 5751
Azure.IoT Build 0:6ae2f7bca550 5752 int flow_set_handle(FLOW_HANDLE flow, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 5753 {
Azure.IoT Build 0:6ae2f7bca550 5754 int result;
Azure.IoT Build 0:6ae2f7bca550 5755
Azure.IoT Build 0:6ae2f7bca550 5756 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5757 {
AzureIoTClient 19:000ab4e6a2c1 5758 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5759 }
Azure.IoT Build 0:6ae2f7bca550 5760 else
Azure.IoT Build 0:6ae2f7bca550 5761 {
Azure.IoT Build 0:6ae2f7bca550 5762 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 5763 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
Azure.IoT Build 0:6ae2f7bca550 5764 if (handle_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 5765 {
AzureIoTClient 19:000ab4e6a2c1 5766 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5767 }
Azure.IoT Build 0:6ae2f7bca550 5768 else
Azure.IoT Build 0:6ae2f7bca550 5769 {
Azure.IoT Build 0:6ae2f7bca550 5770 if (amqpvalue_set_composite_item(flow_instance->composite_value, 4, handle_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 5771 {
AzureIoTClient 19:000ab4e6a2c1 5772 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5773 }
Azure.IoT Build 0:6ae2f7bca550 5774 else
Azure.IoT Build 0:6ae2f7bca550 5775 {
Azure.IoT Build 0:6ae2f7bca550 5776 result = 0;
Azure.IoT Build 0:6ae2f7bca550 5777 }
Azure.IoT Build 0:6ae2f7bca550 5778
Azure.IoT Build 0:6ae2f7bca550 5779 amqpvalue_destroy(handle_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 5780 }
Azure.IoT Build 0:6ae2f7bca550 5781 }
Azure.IoT Build 0:6ae2f7bca550 5782
Azure.IoT Build 0:6ae2f7bca550 5783 return result;
Azure.IoT Build 0:6ae2f7bca550 5784 }
Azure.IoT Build 0:6ae2f7bca550 5785
Azure.IoT Build 0:6ae2f7bca550 5786 int flow_get_delivery_count(FLOW_HANDLE flow, sequence_no* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 5787 {
Azure.IoT Build 0:6ae2f7bca550 5788 int result;
Azure.IoT Build 0:6ae2f7bca550 5789
Azure.IoT Build 0:6ae2f7bca550 5790 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5791 {
AzureIoTClient 19:000ab4e6a2c1 5792 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5793 }
Azure.IoT Build 0:6ae2f7bca550 5794 else
Azure.IoT Build 0:6ae2f7bca550 5795 {
AzureIoTClient 23:1111ee8bcba4 5796 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 5797 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5798 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5799 {
AzureIoTClient 23:1111ee8bcba4 5800 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5801 }
AzureIoTClient 23:1111ee8bcba4 5802 else
AzureIoTClient 23:1111ee8bcba4 5803 {
AzureIoTClient 23:1111ee8bcba4 5804 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 5805 {
AzureIoTClient 23:1111ee8bcba4 5806 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5807 }
AzureIoTClient 23:1111ee8bcba4 5808 else
AzureIoTClient 23:1111ee8bcba4 5809 {
AzureIoTClient 23:1111ee8bcba4 5810 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 5811 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 5812 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 5813 {
AzureIoTClient 23:1111ee8bcba4 5814 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5815 }
AzureIoTClient 23:1111ee8bcba4 5816 else
AzureIoTClient 23:1111ee8bcba4 5817 {
AzureIoTClient 23:1111ee8bcba4 5818 if (amqpvalue_get_sequence_no(item_value, delivery_count_value) != 0)
AzureIoTClient 23:1111ee8bcba4 5819 {
AzureIoTClient 23:1111ee8bcba4 5820 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5821 }
AzureIoTClient 23:1111ee8bcba4 5822 else
AzureIoTClient 23:1111ee8bcba4 5823 {
AzureIoTClient 23:1111ee8bcba4 5824 result = 0;
AzureIoTClient 23:1111ee8bcba4 5825 }
AzureIoTClient 23:1111ee8bcba4 5826 }
AzureIoTClient 23:1111ee8bcba4 5827 }
Azure.IoT Build 0:6ae2f7bca550 5828 }
Azure.IoT Build 0:6ae2f7bca550 5829 }
Azure.IoT Build 0:6ae2f7bca550 5830
Azure.IoT Build 0:6ae2f7bca550 5831 return result;
Azure.IoT Build 0:6ae2f7bca550 5832 }
Azure.IoT Build 0:6ae2f7bca550 5833
Azure.IoT Build 0:6ae2f7bca550 5834 int flow_set_delivery_count(FLOW_HANDLE flow, sequence_no delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 5835 {
Azure.IoT Build 0:6ae2f7bca550 5836 int result;
Azure.IoT Build 0:6ae2f7bca550 5837
Azure.IoT Build 0:6ae2f7bca550 5838 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5839 {
AzureIoTClient 19:000ab4e6a2c1 5840 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5841 }
Azure.IoT Build 0:6ae2f7bca550 5842 else
Azure.IoT Build 0:6ae2f7bca550 5843 {
Azure.IoT Build 0:6ae2f7bca550 5844 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 5845 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_sequence_no(delivery_count_value);
Azure.IoT Build 0:6ae2f7bca550 5846 if (delivery_count_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 5847 {
AzureIoTClient 19:000ab4e6a2c1 5848 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5849 }
Azure.IoT Build 0:6ae2f7bca550 5850 else
Azure.IoT Build 0:6ae2f7bca550 5851 {
Azure.IoT Build 0:6ae2f7bca550 5852 if (amqpvalue_set_composite_item(flow_instance->composite_value, 5, delivery_count_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 5853 {
AzureIoTClient 19:000ab4e6a2c1 5854 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5855 }
Azure.IoT Build 0:6ae2f7bca550 5856 else
Azure.IoT Build 0:6ae2f7bca550 5857 {
Azure.IoT Build 0:6ae2f7bca550 5858 result = 0;
Azure.IoT Build 0:6ae2f7bca550 5859 }
Azure.IoT Build 0:6ae2f7bca550 5860
Azure.IoT Build 0:6ae2f7bca550 5861 amqpvalue_destroy(delivery_count_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 5862 }
Azure.IoT Build 0:6ae2f7bca550 5863 }
Azure.IoT Build 0:6ae2f7bca550 5864
Azure.IoT Build 0:6ae2f7bca550 5865 return result;
Azure.IoT Build 0:6ae2f7bca550 5866 }
Azure.IoT Build 0:6ae2f7bca550 5867
Azure.IoT Build 0:6ae2f7bca550 5868 int flow_get_link_credit(FLOW_HANDLE flow, uint32_t* link_credit_value)
Azure.IoT Build 0:6ae2f7bca550 5869 {
Azure.IoT Build 0:6ae2f7bca550 5870 int result;
Azure.IoT Build 0:6ae2f7bca550 5871
Azure.IoT Build 0:6ae2f7bca550 5872 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5873 {
AzureIoTClient 19:000ab4e6a2c1 5874 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5875 }
Azure.IoT Build 0:6ae2f7bca550 5876 else
Azure.IoT Build 0:6ae2f7bca550 5877 {
AzureIoTClient 23:1111ee8bcba4 5878 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 5879 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5880 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5881 {
AzureIoTClient 23:1111ee8bcba4 5882 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5883 }
AzureIoTClient 23:1111ee8bcba4 5884 else
AzureIoTClient 23:1111ee8bcba4 5885 {
AzureIoTClient 23:1111ee8bcba4 5886 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 5887 {
AzureIoTClient 23:1111ee8bcba4 5888 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5889 }
AzureIoTClient 23:1111ee8bcba4 5890 else
AzureIoTClient 23:1111ee8bcba4 5891 {
AzureIoTClient 23:1111ee8bcba4 5892 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 6);
AzureIoTClient 23:1111ee8bcba4 5893 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 5894 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 5895 {
AzureIoTClient 23:1111ee8bcba4 5896 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5897 }
AzureIoTClient 23:1111ee8bcba4 5898 else
AzureIoTClient 23:1111ee8bcba4 5899 {
AzureIoTClient 23:1111ee8bcba4 5900 if (amqpvalue_get_uint(item_value, link_credit_value) != 0)
AzureIoTClient 23:1111ee8bcba4 5901 {
AzureIoTClient 23:1111ee8bcba4 5902 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5903 }
AzureIoTClient 23:1111ee8bcba4 5904 else
AzureIoTClient 23:1111ee8bcba4 5905 {
AzureIoTClient 23:1111ee8bcba4 5906 result = 0;
AzureIoTClient 23:1111ee8bcba4 5907 }
AzureIoTClient 23:1111ee8bcba4 5908 }
AzureIoTClient 23:1111ee8bcba4 5909 }
Azure.IoT Build 0:6ae2f7bca550 5910 }
Azure.IoT Build 0:6ae2f7bca550 5911 }
Azure.IoT Build 0:6ae2f7bca550 5912
Azure.IoT Build 0:6ae2f7bca550 5913 return result;
Azure.IoT Build 0:6ae2f7bca550 5914 }
Azure.IoT Build 0:6ae2f7bca550 5915
Azure.IoT Build 0:6ae2f7bca550 5916 int flow_set_link_credit(FLOW_HANDLE flow, uint32_t link_credit_value)
Azure.IoT Build 0:6ae2f7bca550 5917 {
Azure.IoT Build 0:6ae2f7bca550 5918 int result;
Azure.IoT Build 0:6ae2f7bca550 5919
Azure.IoT Build 0:6ae2f7bca550 5920 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5921 {
AzureIoTClient 19:000ab4e6a2c1 5922 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5923 }
Azure.IoT Build 0:6ae2f7bca550 5924 else
Azure.IoT Build 0:6ae2f7bca550 5925 {
Azure.IoT Build 0:6ae2f7bca550 5926 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 5927 AMQP_VALUE link_credit_amqp_value = amqpvalue_create_uint(link_credit_value);
Azure.IoT Build 0:6ae2f7bca550 5928 if (link_credit_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 5929 {
AzureIoTClient 19:000ab4e6a2c1 5930 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5931 }
Azure.IoT Build 0:6ae2f7bca550 5932 else
Azure.IoT Build 0:6ae2f7bca550 5933 {
Azure.IoT Build 0:6ae2f7bca550 5934 if (amqpvalue_set_composite_item(flow_instance->composite_value, 6, link_credit_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 5935 {
AzureIoTClient 19:000ab4e6a2c1 5936 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5937 }
Azure.IoT Build 0:6ae2f7bca550 5938 else
Azure.IoT Build 0:6ae2f7bca550 5939 {
Azure.IoT Build 0:6ae2f7bca550 5940 result = 0;
Azure.IoT Build 0:6ae2f7bca550 5941 }
Azure.IoT Build 0:6ae2f7bca550 5942
Azure.IoT Build 0:6ae2f7bca550 5943 amqpvalue_destroy(link_credit_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 5944 }
Azure.IoT Build 0:6ae2f7bca550 5945 }
Azure.IoT Build 0:6ae2f7bca550 5946
Azure.IoT Build 0:6ae2f7bca550 5947 return result;
Azure.IoT Build 0:6ae2f7bca550 5948 }
Azure.IoT Build 0:6ae2f7bca550 5949
Azure.IoT Build 0:6ae2f7bca550 5950 int flow_get_available(FLOW_HANDLE flow, uint32_t* available_value)
Azure.IoT Build 0:6ae2f7bca550 5951 {
Azure.IoT Build 0:6ae2f7bca550 5952 int result;
Azure.IoT Build 0:6ae2f7bca550 5953
Azure.IoT Build 0:6ae2f7bca550 5954 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 5955 {
AzureIoTClient 19:000ab4e6a2c1 5956 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 5957 }
Azure.IoT Build 0:6ae2f7bca550 5958 else
Azure.IoT Build 0:6ae2f7bca550 5959 {
AzureIoTClient 23:1111ee8bcba4 5960 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 5961 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5962 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5963 {
AzureIoTClient 23:1111ee8bcba4 5964 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5965 }
AzureIoTClient 23:1111ee8bcba4 5966 else
AzureIoTClient 23:1111ee8bcba4 5967 {
AzureIoTClient 23:1111ee8bcba4 5968 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 5969 {
AzureIoTClient 23:1111ee8bcba4 5970 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5971 }
AzureIoTClient 23:1111ee8bcba4 5972 else
AzureIoTClient 23:1111ee8bcba4 5973 {
AzureIoTClient 23:1111ee8bcba4 5974 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 7);
AzureIoTClient 23:1111ee8bcba4 5975 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 5976 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 5977 {
AzureIoTClient 23:1111ee8bcba4 5978 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5979 }
AzureIoTClient 23:1111ee8bcba4 5980 else
AzureIoTClient 23:1111ee8bcba4 5981 {
AzureIoTClient 23:1111ee8bcba4 5982 if (amqpvalue_get_uint(item_value, available_value) != 0)
AzureIoTClient 23:1111ee8bcba4 5983 {
AzureIoTClient 23:1111ee8bcba4 5984 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5985 }
AzureIoTClient 23:1111ee8bcba4 5986 else
AzureIoTClient 23:1111ee8bcba4 5987 {
AzureIoTClient 23:1111ee8bcba4 5988 result = 0;
AzureIoTClient 23:1111ee8bcba4 5989 }
AzureIoTClient 23:1111ee8bcba4 5990 }
AzureIoTClient 23:1111ee8bcba4 5991 }
Azure.IoT Build 0:6ae2f7bca550 5992 }
Azure.IoT Build 0:6ae2f7bca550 5993 }
Azure.IoT Build 0:6ae2f7bca550 5994
Azure.IoT Build 0:6ae2f7bca550 5995 return result;
Azure.IoT Build 0:6ae2f7bca550 5996 }
Azure.IoT Build 0:6ae2f7bca550 5997
Azure.IoT Build 0:6ae2f7bca550 5998 int flow_set_available(FLOW_HANDLE flow, uint32_t available_value)
Azure.IoT Build 0:6ae2f7bca550 5999 {
Azure.IoT Build 0:6ae2f7bca550 6000 int result;
Azure.IoT Build 0:6ae2f7bca550 6001
Azure.IoT Build 0:6ae2f7bca550 6002 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 6003 {
AzureIoTClient 19:000ab4e6a2c1 6004 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6005 }
Azure.IoT Build 0:6ae2f7bca550 6006 else
Azure.IoT Build 0:6ae2f7bca550 6007 {
Azure.IoT Build 0:6ae2f7bca550 6008 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 6009 AMQP_VALUE available_amqp_value = amqpvalue_create_uint(available_value);
Azure.IoT Build 0:6ae2f7bca550 6010 if (available_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6011 {
AzureIoTClient 19:000ab4e6a2c1 6012 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6013 }
Azure.IoT Build 0:6ae2f7bca550 6014 else
Azure.IoT Build 0:6ae2f7bca550 6015 {
Azure.IoT Build 0:6ae2f7bca550 6016 if (amqpvalue_set_composite_item(flow_instance->composite_value, 7, available_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 6017 {
AzureIoTClient 19:000ab4e6a2c1 6018 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6019 }
Azure.IoT Build 0:6ae2f7bca550 6020 else
Azure.IoT Build 0:6ae2f7bca550 6021 {
Azure.IoT Build 0:6ae2f7bca550 6022 result = 0;
Azure.IoT Build 0:6ae2f7bca550 6023 }
Azure.IoT Build 0:6ae2f7bca550 6024
Azure.IoT Build 0:6ae2f7bca550 6025 amqpvalue_destroy(available_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 6026 }
Azure.IoT Build 0:6ae2f7bca550 6027 }
Azure.IoT Build 0:6ae2f7bca550 6028
Azure.IoT Build 0:6ae2f7bca550 6029 return result;
Azure.IoT Build 0:6ae2f7bca550 6030 }
Azure.IoT Build 0:6ae2f7bca550 6031
Azure.IoT Build 0:6ae2f7bca550 6032 int flow_get_drain(FLOW_HANDLE flow, bool* drain_value)
Azure.IoT Build 0:6ae2f7bca550 6033 {
Azure.IoT Build 0:6ae2f7bca550 6034 int result;
Azure.IoT Build 0:6ae2f7bca550 6035
Azure.IoT Build 0:6ae2f7bca550 6036 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 6037 {
AzureIoTClient 19:000ab4e6a2c1 6038 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6039 }
Azure.IoT Build 0:6ae2f7bca550 6040 else
Azure.IoT Build 0:6ae2f7bca550 6041 {
AzureIoTClient 23:1111ee8bcba4 6042 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 6043 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6044 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6045 {
AzureIoTClient 23:1111ee8bcba4 6046 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6047 }
AzureIoTClient 23:1111ee8bcba4 6048 else
AzureIoTClient 23:1111ee8bcba4 6049 {
AzureIoTClient 23:1111ee8bcba4 6050 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 6051 {
AzureIoTClient 23:1111ee8bcba4 6052 *drain_value = false;
AzureIoTClient 23:1111ee8bcba4 6053 result = 0;
AzureIoTClient 23:1111ee8bcba4 6054 }
AzureIoTClient 23:1111ee8bcba4 6055 else
AzureIoTClient 23:1111ee8bcba4 6056 {
AzureIoTClient 23:1111ee8bcba4 6057 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 8);
AzureIoTClient 23:1111ee8bcba4 6058 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 6059 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 6060 {
AzureIoTClient 16:22a72cf8e416 6061 *drain_value = false;
AzureIoTClient 16:22a72cf8e416 6062 result = 0;
AzureIoTClient 23:1111ee8bcba4 6063 }
AzureIoTClient 23:1111ee8bcba4 6064 else
AzureIoTClient 23:1111ee8bcba4 6065 {
AzureIoTClient 23:1111ee8bcba4 6066 if (amqpvalue_get_boolean(item_value, drain_value) != 0)
AzureIoTClient 23:1111ee8bcba4 6067 {
AzureIoTClient 23:1111ee8bcba4 6068 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 6069 {
AzureIoTClient 23:1111ee8bcba4 6070 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6071 }
AzureIoTClient 23:1111ee8bcba4 6072 else
AzureIoTClient 23:1111ee8bcba4 6073 {
AzureIoTClient 23:1111ee8bcba4 6074 *drain_value = false;
AzureIoTClient 23:1111ee8bcba4 6075 result = 0;
AzureIoTClient 23:1111ee8bcba4 6076 }
AzureIoTClient 23:1111ee8bcba4 6077 }
AzureIoTClient 23:1111ee8bcba4 6078 else
AzureIoTClient 23:1111ee8bcba4 6079 {
AzureIoTClient 23:1111ee8bcba4 6080 result = 0;
AzureIoTClient 23:1111ee8bcba4 6081 }
AzureIoTClient 23:1111ee8bcba4 6082 }
AzureIoTClient 23:1111ee8bcba4 6083 }
Azure.IoT Build 0:6ae2f7bca550 6084 }
Azure.IoT Build 0:6ae2f7bca550 6085 }
Azure.IoT Build 0:6ae2f7bca550 6086
Azure.IoT Build 0:6ae2f7bca550 6087 return result;
Azure.IoT Build 0:6ae2f7bca550 6088 }
Azure.IoT Build 0:6ae2f7bca550 6089
Azure.IoT Build 0:6ae2f7bca550 6090 int flow_set_drain(FLOW_HANDLE flow, bool drain_value)
Azure.IoT Build 0:6ae2f7bca550 6091 {
Azure.IoT Build 0:6ae2f7bca550 6092 int result;
Azure.IoT Build 0:6ae2f7bca550 6093
Azure.IoT Build 0:6ae2f7bca550 6094 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 6095 {
AzureIoTClient 19:000ab4e6a2c1 6096 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6097 }
Azure.IoT Build 0:6ae2f7bca550 6098 else
Azure.IoT Build 0:6ae2f7bca550 6099 {
Azure.IoT Build 0:6ae2f7bca550 6100 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 6101 AMQP_VALUE drain_amqp_value = amqpvalue_create_boolean(drain_value);
Azure.IoT Build 0:6ae2f7bca550 6102 if (drain_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6103 {
AzureIoTClient 19:000ab4e6a2c1 6104 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6105 }
Azure.IoT Build 0:6ae2f7bca550 6106 else
Azure.IoT Build 0:6ae2f7bca550 6107 {
Azure.IoT Build 0:6ae2f7bca550 6108 if (amqpvalue_set_composite_item(flow_instance->composite_value, 8, drain_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 6109 {
AzureIoTClient 19:000ab4e6a2c1 6110 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6111 }
Azure.IoT Build 0:6ae2f7bca550 6112 else
Azure.IoT Build 0:6ae2f7bca550 6113 {
Azure.IoT Build 0:6ae2f7bca550 6114 result = 0;
Azure.IoT Build 0:6ae2f7bca550 6115 }
Azure.IoT Build 0:6ae2f7bca550 6116
Azure.IoT Build 0:6ae2f7bca550 6117 amqpvalue_destroy(drain_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 6118 }
Azure.IoT Build 0:6ae2f7bca550 6119 }
Azure.IoT Build 0:6ae2f7bca550 6120
Azure.IoT Build 0:6ae2f7bca550 6121 return result;
Azure.IoT Build 0:6ae2f7bca550 6122 }
Azure.IoT Build 0:6ae2f7bca550 6123
Azure.IoT Build 0:6ae2f7bca550 6124 int flow_get_echo(FLOW_HANDLE flow, bool* echo_value)
Azure.IoT Build 0:6ae2f7bca550 6125 {
Azure.IoT Build 0:6ae2f7bca550 6126 int result;
Azure.IoT Build 0:6ae2f7bca550 6127
Azure.IoT Build 0:6ae2f7bca550 6128 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 6129 {
AzureIoTClient 19:000ab4e6a2c1 6130 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6131 }
Azure.IoT Build 0:6ae2f7bca550 6132 else
Azure.IoT Build 0:6ae2f7bca550 6133 {
AzureIoTClient 23:1111ee8bcba4 6134 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 6135 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6136 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6137 {
AzureIoTClient 23:1111ee8bcba4 6138 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6139 }
AzureIoTClient 23:1111ee8bcba4 6140 else
AzureIoTClient 23:1111ee8bcba4 6141 {
AzureIoTClient 23:1111ee8bcba4 6142 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 6143 {
AzureIoTClient 23:1111ee8bcba4 6144 *echo_value = false;
AzureIoTClient 23:1111ee8bcba4 6145 result = 0;
AzureIoTClient 23:1111ee8bcba4 6146 }
AzureIoTClient 23:1111ee8bcba4 6147 else
AzureIoTClient 23:1111ee8bcba4 6148 {
AzureIoTClient 23:1111ee8bcba4 6149 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 9);
AzureIoTClient 23:1111ee8bcba4 6150 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 6151 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 6152 {
AzureIoTClient 16:22a72cf8e416 6153 *echo_value = false;
AzureIoTClient 16:22a72cf8e416 6154 result = 0;
AzureIoTClient 23:1111ee8bcba4 6155 }
AzureIoTClient 23:1111ee8bcba4 6156 else
AzureIoTClient 23:1111ee8bcba4 6157 {
AzureIoTClient 23:1111ee8bcba4 6158 if (amqpvalue_get_boolean(item_value, echo_value) != 0)
AzureIoTClient 23:1111ee8bcba4 6159 {
AzureIoTClient 23:1111ee8bcba4 6160 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 6161 {
AzureIoTClient 23:1111ee8bcba4 6162 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6163 }
AzureIoTClient 23:1111ee8bcba4 6164 else
AzureIoTClient 23:1111ee8bcba4 6165 {
AzureIoTClient 23:1111ee8bcba4 6166 *echo_value = false;
AzureIoTClient 23:1111ee8bcba4 6167 result = 0;
AzureIoTClient 23:1111ee8bcba4 6168 }
AzureIoTClient 23:1111ee8bcba4 6169 }
AzureIoTClient 23:1111ee8bcba4 6170 else
AzureIoTClient 23:1111ee8bcba4 6171 {
AzureIoTClient 23:1111ee8bcba4 6172 result = 0;
AzureIoTClient 23:1111ee8bcba4 6173 }
AzureIoTClient 23:1111ee8bcba4 6174 }
AzureIoTClient 23:1111ee8bcba4 6175 }
Azure.IoT Build 0:6ae2f7bca550 6176 }
Azure.IoT Build 0:6ae2f7bca550 6177 }
Azure.IoT Build 0:6ae2f7bca550 6178
Azure.IoT Build 0:6ae2f7bca550 6179 return result;
Azure.IoT Build 0:6ae2f7bca550 6180 }
Azure.IoT Build 0:6ae2f7bca550 6181
Azure.IoT Build 0:6ae2f7bca550 6182 int flow_set_echo(FLOW_HANDLE flow, bool echo_value)
Azure.IoT Build 0:6ae2f7bca550 6183 {
Azure.IoT Build 0:6ae2f7bca550 6184 int result;
Azure.IoT Build 0:6ae2f7bca550 6185
Azure.IoT Build 0:6ae2f7bca550 6186 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 6187 {
AzureIoTClient 19:000ab4e6a2c1 6188 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6189 }
Azure.IoT Build 0:6ae2f7bca550 6190 else
Azure.IoT Build 0:6ae2f7bca550 6191 {
Azure.IoT Build 0:6ae2f7bca550 6192 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 6193 AMQP_VALUE echo_amqp_value = amqpvalue_create_boolean(echo_value);
Azure.IoT Build 0:6ae2f7bca550 6194 if (echo_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6195 {
AzureIoTClient 19:000ab4e6a2c1 6196 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6197 }
Azure.IoT Build 0:6ae2f7bca550 6198 else
Azure.IoT Build 0:6ae2f7bca550 6199 {
Azure.IoT Build 0:6ae2f7bca550 6200 if (amqpvalue_set_composite_item(flow_instance->composite_value, 9, echo_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 6201 {
AzureIoTClient 19:000ab4e6a2c1 6202 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6203 }
Azure.IoT Build 0:6ae2f7bca550 6204 else
Azure.IoT Build 0:6ae2f7bca550 6205 {
Azure.IoT Build 0:6ae2f7bca550 6206 result = 0;
Azure.IoT Build 0:6ae2f7bca550 6207 }
Azure.IoT Build 0:6ae2f7bca550 6208
Azure.IoT Build 0:6ae2f7bca550 6209 amqpvalue_destroy(echo_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 6210 }
Azure.IoT Build 0:6ae2f7bca550 6211 }
Azure.IoT Build 0:6ae2f7bca550 6212
Azure.IoT Build 0:6ae2f7bca550 6213 return result;
Azure.IoT Build 0:6ae2f7bca550 6214 }
Azure.IoT Build 0:6ae2f7bca550 6215
Azure.IoT Build 0:6ae2f7bca550 6216 int flow_get_properties(FLOW_HANDLE flow, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 6217 {
Azure.IoT Build 0:6ae2f7bca550 6218 int result;
Azure.IoT Build 0:6ae2f7bca550 6219
Azure.IoT Build 0:6ae2f7bca550 6220 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 6221 {
AzureIoTClient 19:000ab4e6a2c1 6222 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6223 }
Azure.IoT Build 0:6ae2f7bca550 6224 else
Azure.IoT Build 0:6ae2f7bca550 6225 {
AzureIoTClient 23:1111ee8bcba4 6226 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 6227 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6228 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6229 {
AzureIoTClient 23:1111ee8bcba4 6230 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6231 }
AzureIoTClient 23:1111ee8bcba4 6232 else
AzureIoTClient 23:1111ee8bcba4 6233 {
AzureIoTClient 23:1111ee8bcba4 6234 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 6235 {
AzureIoTClient 23:1111ee8bcba4 6236 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6237 }
AzureIoTClient 23:1111ee8bcba4 6238 else
AzureIoTClient 23:1111ee8bcba4 6239 {
AzureIoTClient 23:1111ee8bcba4 6240 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 10);
AzureIoTClient 23:1111ee8bcba4 6241 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 6242 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 6243 {
AzureIoTClient 23:1111ee8bcba4 6244 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6245 }
AzureIoTClient 23:1111ee8bcba4 6246 else
AzureIoTClient 23:1111ee8bcba4 6247 {
AzureIoTClient 23:1111ee8bcba4 6248 if (amqpvalue_get_fields(item_value, properties_value) != 0)
AzureIoTClient 23:1111ee8bcba4 6249 {
AzureIoTClient 23:1111ee8bcba4 6250 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6251 }
AzureIoTClient 23:1111ee8bcba4 6252 else
AzureIoTClient 23:1111ee8bcba4 6253 {
AzureIoTClient 23:1111ee8bcba4 6254 result = 0;
AzureIoTClient 23:1111ee8bcba4 6255 }
AzureIoTClient 23:1111ee8bcba4 6256 }
AzureIoTClient 23:1111ee8bcba4 6257 }
Azure.IoT Build 0:6ae2f7bca550 6258 }
Azure.IoT Build 0:6ae2f7bca550 6259 }
Azure.IoT Build 0:6ae2f7bca550 6260
Azure.IoT Build 0:6ae2f7bca550 6261 return result;
Azure.IoT Build 0:6ae2f7bca550 6262 }
Azure.IoT Build 0:6ae2f7bca550 6263
Azure.IoT Build 0:6ae2f7bca550 6264 int flow_set_properties(FLOW_HANDLE flow, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 6265 {
Azure.IoT Build 0:6ae2f7bca550 6266 int result;
Azure.IoT Build 0:6ae2f7bca550 6267
Azure.IoT Build 0:6ae2f7bca550 6268 if (flow == NULL)
Azure.IoT Build 0:6ae2f7bca550 6269 {
AzureIoTClient 19:000ab4e6a2c1 6270 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6271 }
Azure.IoT Build 0:6ae2f7bca550 6272 else
Azure.IoT Build 0:6ae2f7bca550 6273 {
Azure.IoT Build 0:6ae2f7bca550 6274 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
Azure.IoT Build 0:6ae2f7bca550 6275 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
Azure.IoT Build 0:6ae2f7bca550 6276 if (properties_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6277 {
AzureIoTClient 19:000ab4e6a2c1 6278 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6279 }
Azure.IoT Build 0:6ae2f7bca550 6280 else
Azure.IoT Build 0:6ae2f7bca550 6281 {
Azure.IoT Build 0:6ae2f7bca550 6282 if (amqpvalue_set_composite_item(flow_instance->composite_value, 10, properties_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 6283 {
AzureIoTClient 19:000ab4e6a2c1 6284 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6285 }
Azure.IoT Build 0:6ae2f7bca550 6286 else
Azure.IoT Build 0:6ae2f7bca550 6287 {
Azure.IoT Build 0:6ae2f7bca550 6288 result = 0;
Azure.IoT Build 0:6ae2f7bca550 6289 }
Azure.IoT Build 0:6ae2f7bca550 6290
Azure.IoT Build 0:6ae2f7bca550 6291 amqpvalue_destroy(properties_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 6292 }
Azure.IoT Build 0:6ae2f7bca550 6293 }
Azure.IoT Build 0:6ae2f7bca550 6294
Azure.IoT Build 0:6ae2f7bca550 6295 return result;
Azure.IoT Build 0:6ae2f7bca550 6296 }
Azure.IoT Build 0:6ae2f7bca550 6297
Azure.IoT Build 0:6ae2f7bca550 6298
Azure.IoT Build 0:6ae2f7bca550 6299 /* transfer */
Azure.IoT Build 0:6ae2f7bca550 6300
Azure.IoT Build 0:6ae2f7bca550 6301 typedef struct TRANSFER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 6302 {
Azure.IoT Build 0:6ae2f7bca550 6303 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 6304 } TRANSFER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 6305
Azure.IoT Build 0:6ae2f7bca550 6306 static TRANSFER_HANDLE transfer_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 6307 {
AzureIoTClient 21:f9c433d8e6ca 6308 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 6309 if (transfer_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 6310 {
Azure.IoT Build 0:6ae2f7bca550 6311 transfer_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 6312 }
Azure.IoT Build 0:6ae2f7bca550 6313
Azure.IoT Build 0:6ae2f7bca550 6314 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6315 }
Azure.IoT Build 0:6ae2f7bca550 6316
Azure.IoT Build 0:6ae2f7bca550 6317 TRANSFER_HANDLE transfer_create(handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 6318 {
AzureIoTClient 21:f9c433d8e6ca 6319 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 6320 if (transfer_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 6321 {
Azure.IoT Build 0:6ae2f7bca550 6322 transfer_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(20);
Azure.IoT Build 0:6ae2f7bca550 6323 if (transfer_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6324 {
AzureIoTClient 21:f9c433d8e6ca 6325 free(transfer_instance);
Azure.IoT Build 0:6ae2f7bca550 6326 transfer_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 6327 }
Azure.IoT Build 0:6ae2f7bca550 6328 else
Azure.IoT Build 0:6ae2f7bca550 6329 {
Azure.IoT Build 0:6ae2f7bca550 6330 AMQP_VALUE handle_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 6331 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 6332
Azure.IoT Build 0:6ae2f7bca550 6333 handle_amqp_value = amqpvalue_create_handle(handle_value);
Azure.IoT Build 0:6ae2f7bca550 6334 if ((result == 0) && (amqpvalue_set_composite_item(transfer_instance->composite_value, 0, handle_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 6335 {
AzureIoTClient 19:000ab4e6a2c1 6336 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6337 }
Azure.IoT Build 0:6ae2f7bca550 6338
Azure.IoT Build 0:6ae2f7bca550 6339 amqpvalue_destroy(handle_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 6340 }
Azure.IoT Build 0:6ae2f7bca550 6341 }
Azure.IoT Build 0:6ae2f7bca550 6342
Azure.IoT Build 0:6ae2f7bca550 6343 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6344 }
Azure.IoT Build 0:6ae2f7bca550 6345
Azure.IoT Build 0:6ae2f7bca550 6346 TRANSFER_HANDLE transfer_clone(TRANSFER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 6347 {
AzureIoTClient 21:f9c433d8e6ca 6348 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 6349 if (transfer_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 6350 {
Azure.IoT Build 0:6ae2f7bca550 6351 transfer_instance->composite_value = amqpvalue_clone(((TRANSFER_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 6352 if (transfer_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6353 {
AzureIoTClient 21:f9c433d8e6ca 6354 free(transfer_instance);
Azure.IoT Build 0:6ae2f7bca550 6355 transfer_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 6356 }
Azure.IoT Build 0:6ae2f7bca550 6357 }
Azure.IoT Build 0:6ae2f7bca550 6358
Azure.IoT Build 0:6ae2f7bca550 6359 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6360 }
Azure.IoT Build 0:6ae2f7bca550 6361
Azure.IoT Build 0:6ae2f7bca550 6362 void transfer_destroy(TRANSFER_HANDLE transfer)
Azure.IoT Build 0:6ae2f7bca550 6363 {
Azure.IoT Build 0:6ae2f7bca550 6364 if (transfer != NULL)
Azure.IoT Build 0:6ae2f7bca550 6365 {
Azure.IoT Build 0:6ae2f7bca550 6366 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 6367 amqpvalue_destroy(transfer_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 6368 free(transfer_instance);
Azure.IoT Build 0:6ae2f7bca550 6369 }
Azure.IoT Build 0:6ae2f7bca550 6370 }
Azure.IoT Build 0:6ae2f7bca550 6371
Azure.IoT Build 0:6ae2f7bca550 6372 AMQP_VALUE amqpvalue_create_transfer(TRANSFER_HANDLE transfer)
Azure.IoT Build 0:6ae2f7bca550 6373 {
Azure.IoT Build 0:6ae2f7bca550 6374 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 6375
Azure.IoT Build 0:6ae2f7bca550 6376 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 6377 {
Azure.IoT Build 0:6ae2f7bca550 6378 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 6379 }
Azure.IoT Build 0:6ae2f7bca550 6380 else
Azure.IoT Build 0:6ae2f7bca550 6381 {
Azure.IoT Build 0:6ae2f7bca550 6382 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 6383 result = amqpvalue_clone(transfer_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 6384 }
Azure.IoT Build 0:6ae2f7bca550 6385
Azure.IoT Build 0:6ae2f7bca550 6386 return result;
Azure.IoT Build 0:6ae2f7bca550 6387 }
Azure.IoT Build 0:6ae2f7bca550 6388
Azure.IoT Build 0:6ae2f7bca550 6389 bool is_transfer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 6390 {
Azure.IoT Build 0:6ae2f7bca550 6391 bool result;
Azure.IoT Build 0:6ae2f7bca550 6392
Azure.IoT Build 0:6ae2f7bca550 6393 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 6394 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 6395 (descriptor_ulong == 20))
Azure.IoT Build 0:6ae2f7bca550 6396 {
Azure.IoT Build 0:6ae2f7bca550 6397 result = true;
Azure.IoT Build 0:6ae2f7bca550 6398 }
Azure.IoT Build 0:6ae2f7bca550 6399 else
Azure.IoT Build 0:6ae2f7bca550 6400 {
Azure.IoT Build 0:6ae2f7bca550 6401 result = false;
Azure.IoT Build 0:6ae2f7bca550 6402 }
Azure.IoT Build 0:6ae2f7bca550 6403
Azure.IoT Build 0:6ae2f7bca550 6404 return result;
Azure.IoT Build 0:6ae2f7bca550 6405 }
Azure.IoT Build 0:6ae2f7bca550 6406
Azure.IoT Build 0:6ae2f7bca550 6407
Azure.IoT Build 0:6ae2f7bca550 6408 int amqpvalue_get_transfer(AMQP_VALUE value, TRANSFER_HANDLE* transfer_handle)
Azure.IoT Build 0:6ae2f7bca550 6409 {
Azure.IoT Build 0:6ae2f7bca550 6410 int result;
Azure.IoT Build 0:6ae2f7bca550 6411 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer_create_internal();
Azure.IoT Build 0:6ae2f7bca550 6412 *transfer_handle = transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6413 if (*transfer_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 6414 {
AzureIoTClient 19:000ab4e6a2c1 6415 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6416 }
Azure.IoT Build 0:6ae2f7bca550 6417 else
Azure.IoT Build 0:6ae2f7bca550 6418 {
Azure.IoT Build 0:6ae2f7bca550 6419 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 6420 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6421 {
Azure.IoT Build 0:6ae2f7bca550 6422 transfer_destroy(*transfer_handle);
AzureIoTClient 19:000ab4e6a2c1 6423 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6424 }
Azure.IoT Build 0:6ae2f7bca550 6425 else
Azure.IoT Build 0:6ae2f7bca550 6426 {
AzureIoTClient 23:1111ee8bcba4 6427 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 6428 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6429 {
AzureIoTClient 23:1111ee8bcba4 6430 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6431 }
AzureIoTClient 23:1111ee8bcba4 6432 else
AzureIoTClient 23:1111ee8bcba4 6433 {
AzureIoTClient 23:1111ee8bcba4 6434 do
AzureIoTClient 23:1111ee8bcba4 6435 {
AzureIoTClient 23:1111ee8bcba4 6436 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 6437 /* handle */
AzureIoTClient 23:1111ee8bcba4 6438 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 6439 {
AzureIoTClient 23:1111ee8bcba4 6440 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 6441 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6442 {
AzureIoTClient 23:1111ee8bcba4 6443 {
AzureIoTClient 23:1111ee8bcba4 6444 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6445 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6446 break;
AzureIoTClient 23:1111ee8bcba4 6447 }
AzureIoTClient 23:1111ee8bcba4 6448 }
AzureIoTClient 23:1111ee8bcba4 6449 else
AzureIoTClient 23:1111ee8bcba4 6450 {
AzureIoTClient 25:1101516ee67d 6451 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6452 {
AzureIoTClient 25:1101516ee67d 6453 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6454 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6455 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6456 break;
AzureIoTClient 23:1111ee8bcba4 6457 }
AzureIoTClient 23:1111ee8bcba4 6458 else
AzureIoTClient 23:1111ee8bcba4 6459 {
AzureIoTClient 25:1101516ee67d 6460 handle handle;
AzureIoTClient 23:1111ee8bcba4 6461 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 23:1111ee8bcba4 6462 {
AzureIoTClient 25:1101516ee67d 6463 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6464 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6465 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6466 break;
AzureIoTClient 23:1111ee8bcba4 6467 }
AzureIoTClient 23:1111ee8bcba4 6468 }
AzureIoTClient 23:1111ee8bcba4 6469
AzureIoTClient 23:1111ee8bcba4 6470 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6471 }
AzureIoTClient 23:1111ee8bcba4 6472 }
AzureIoTClient 23:1111ee8bcba4 6473 else
AzureIoTClient 23:1111ee8bcba4 6474 {
AzureIoTClient 23:1111ee8bcba4 6475 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6476 }
AzureIoTClient 23:1111ee8bcba4 6477 /* delivery-id */
AzureIoTClient 23:1111ee8bcba4 6478 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 6479 {
AzureIoTClient 23:1111ee8bcba4 6480 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 6481 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6482 {
AzureIoTClient 23:1111ee8bcba4 6483 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6484 }
AzureIoTClient 23:1111ee8bcba4 6485 else
AzureIoTClient 23:1111ee8bcba4 6486 {
AzureIoTClient 25:1101516ee67d 6487 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6488 {
AzureIoTClient 25:1101516ee67d 6489 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6490 }
AzureIoTClient 25:1101516ee67d 6491 else
AzureIoTClient 25:1101516ee67d 6492 {
AzureIoTClient 25:1101516ee67d 6493 delivery_number delivery_id;
AzureIoTClient 23:1111ee8bcba4 6494 if (amqpvalue_get_delivery_number(item_value, &delivery_id) != 0)
AzureIoTClient 23:1111ee8bcba4 6495 {
AzureIoTClient 25:1101516ee67d 6496 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6497 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6498 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6499 break;
AzureIoTClient 23:1111ee8bcba4 6500 }
AzureIoTClient 23:1111ee8bcba4 6501 }
AzureIoTClient 23:1111ee8bcba4 6502
AzureIoTClient 23:1111ee8bcba4 6503 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6504 }
AzureIoTClient 23:1111ee8bcba4 6505 }
AzureIoTClient 23:1111ee8bcba4 6506 /* delivery-tag */
AzureIoTClient 23:1111ee8bcba4 6507 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 6508 {
AzureIoTClient 23:1111ee8bcba4 6509 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 6510 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6511 {
AzureIoTClient 23:1111ee8bcba4 6512 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6513 }
AzureIoTClient 23:1111ee8bcba4 6514 else
AzureIoTClient 23:1111ee8bcba4 6515 {
AzureIoTClient 25:1101516ee67d 6516 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6517 {
AzureIoTClient 25:1101516ee67d 6518 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6519 }
AzureIoTClient 25:1101516ee67d 6520 else
AzureIoTClient 25:1101516ee67d 6521 {
AzureIoTClient 25:1101516ee67d 6522 delivery_tag delivery_tag;
AzureIoTClient 23:1111ee8bcba4 6523 if (amqpvalue_get_delivery_tag(item_value, &delivery_tag) != 0)
AzureIoTClient 23:1111ee8bcba4 6524 {
AzureIoTClient 25:1101516ee67d 6525 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6526 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6527 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6528 break;
AzureIoTClient 23:1111ee8bcba4 6529 }
AzureIoTClient 23:1111ee8bcba4 6530 }
AzureIoTClient 23:1111ee8bcba4 6531
AzureIoTClient 23:1111ee8bcba4 6532 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6533 }
AzureIoTClient 23:1111ee8bcba4 6534 }
AzureIoTClient 23:1111ee8bcba4 6535 /* message-format */
AzureIoTClient 23:1111ee8bcba4 6536 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 6537 {
AzureIoTClient 23:1111ee8bcba4 6538 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 6539 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6540 {
AzureIoTClient 23:1111ee8bcba4 6541 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6542 }
AzureIoTClient 23:1111ee8bcba4 6543 else
AzureIoTClient 23:1111ee8bcba4 6544 {
AzureIoTClient 25:1101516ee67d 6545 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6546 {
AzureIoTClient 25:1101516ee67d 6547 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6548 }
AzureIoTClient 25:1101516ee67d 6549 else
AzureIoTClient 25:1101516ee67d 6550 {
AzureIoTClient 25:1101516ee67d 6551 message_format message_format;
AzureIoTClient 23:1111ee8bcba4 6552 if (amqpvalue_get_message_format(item_value, &message_format) != 0)
AzureIoTClient 23:1111ee8bcba4 6553 {
AzureIoTClient 25:1101516ee67d 6554 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6555 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6556 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6557 break;
AzureIoTClient 23:1111ee8bcba4 6558 }
AzureIoTClient 23:1111ee8bcba4 6559 }
AzureIoTClient 23:1111ee8bcba4 6560
AzureIoTClient 23:1111ee8bcba4 6561 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6562 }
AzureIoTClient 23:1111ee8bcba4 6563 }
AzureIoTClient 23:1111ee8bcba4 6564 /* settled */
AzureIoTClient 23:1111ee8bcba4 6565 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 6566 {
AzureIoTClient 23:1111ee8bcba4 6567 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 6568 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6569 {
AzureIoTClient 23:1111ee8bcba4 6570 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6571 }
AzureIoTClient 23:1111ee8bcba4 6572 else
AzureIoTClient 23:1111ee8bcba4 6573 {
AzureIoTClient 25:1101516ee67d 6574 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6575 {
AzureIoTClient 25:1101516ee67d 6576 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6577 }
AzureIoTClient 25:1101516ee67d 6578 else
AzureIoTClient 25:1101516ee67d 6579 {
AzureIoTClient 25:1101516ee67d 6580 bool settled;
AzureIoTClient 23:1111ee8bcba4 6581 if (amqpvalue_get_boolean(item_value, &settled) != 0)
AzureIoTClient 23:1111ee8bcba4 6582 {
AzureIoTClient 25:1101516ee67d 6583 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6584 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6585 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6586 break;
AzureIoTClient 23:1111ee8bcba4 6587 }
AzureIoTClient 23:1111ee8bcba4 6588 }
AzureIoTClient 23:1111ee8bcba4 6589
AzureIoTClient 23:1111ee8bcba4 6590 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6591 }
AzureIoTClient 23:1111ee8bcba4 6592 }
AzureIoTClient 23:1111ee8bcba4 6593 /* more */
AzureIoTClient 23:1111ee8bcba4 6594 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 6595 {
AzureIoTClient 23:1111ee8bcba4 6596 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 6597 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6598 {
AzureIoTClient 23:1111ee8bcba4 6599 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6600 }
AzureIoTClient 23:1111ee8bcba4 6601 else
AzureIoTClient 23:1111ee8bcba4 6602 {
AzureIoTClient 25:1101516ee67d 6603 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6604 {
AzureIoTClient 25:1101516ee67d 6605 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6606 }
AzureIoTClient 25:1101516ee67d 6607 else
AzureIoTClient 25:1101516ee67d 6608 {
AzureIoTClient 25:1101516ee67d 6609 bool more;
AzureIoTClient 23:1111ee8bcba4 6610 if (amqpvalue_get_boolean(item_value, &more) != 0)
AzureIoTClient 23:1111ee8bcba4 6611 {
AzureIoTClient 25:1101516ee67d 6612 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6613 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6614 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6615 break;
AzureIoTClient 23:1111ee8bcba4 6616 }
AzureIoTClient 23:1111ee8bcba4 6617 }
AzureIoTClient 23:1111ee8bcba4 6618
AzureIoTClient 23:1111ee8bcba4 6619 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6620 }
AzureIoTClient 23:1111ee8bcba4 6621 }
AzureIoTClient 23:1111ee8bcba4 6622 /* rcv-settle-mode */
AzureIoTClient 23:1111ee8bcba4 6623 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 6624 {
AzureIoTClient 23:1111ee8bcba4 6625 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 23:1111ee8bcba4 6626 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6627 {
AzureIoTClient 23:1111ee8bcba4 6628 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6629 }
AzureIoTClient 23:1111ee8bcba4 6630 else
AzureIoTClient 23:1111ee8bcba4 6631 {
AzureIoTClient 25:1101516ee67d 6632 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6633 {
AzureIoTClient 25:1101516ee67d 6634 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6635 }
AzureIoTClient 25:1101516ee67d 6636 else
AzureIoTClient 25:1101516ee67d 6637 {
AzureIoTClient 25:1101516ee67d 6638 receiver_settle_mode rcv_settle_mode;
AzureIoTClient 23:1111ee8bcba4 6639 if (amqpvalue_get_receiver_settle_mode(item_value, &rcv_settle_mode) != 0)
AzureIoTClient 23:1111ee8bcba4 6640 {
AzureIoTClient 25:1101516ee67d 6641 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6642 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6643 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6644 break;
AzureIoTClient 23:1111ee8bcba4 6645 }
AzureIoTClient 23:1111ee8bcba4 6646 }
AzureIoTClient 23:1111ee8bcba4 6647
AzureIoTClient 23:1111ee8bcba4 6648 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6649 }
AzureIoTClient 23:1111ee8bcba4 6650 }
AzureIoTClient 23:1111ee8bcba4 6651 /* state */
AzureIoTClient 23:1111ee8bcba4 6652 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 6653 {
AzureIoTClient 23:1111ee8bcba4 6654 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 23:1111ee8bcba4 6655 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6656 {
AzureIoTClient 23:1111ee8bcba4 6657 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6658 }
AzureIoTClient 23:1111ee8bcba4 6659 else
AzureIoTClient 23:1111ee8bcba4 6660 {
AzureIoTClient 23:1111ee8bcba4 6661 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6662 }
AzureIoTClient 23:1111ee8bcba4 6663 }
AzureIoTClient 23:1111ee8bcba4 6664 /* resume */
AzureIoTClient 23:1111ee8bcba4 6665 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 6666 {
AzureIoTClient 23:1111ee8bcba4 6667 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 23:1111ee8bcba4 6668 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6669 {
AzureIoTClient 23:1111ee8bcba4 6670 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6671 }
AzureIoTClient 23:1111ee8bcba4 6672 else
AzureIoTClient 23:1111ee8bcba4 6673 {
AzureIoTClient 25:1101516ee67d 6674 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6675 {
AzureIoTClient 25:1101516ee67d 6676 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6677 }
AzureIoTClient 25:1101516ee67d 6678 else
AzureIoTClient 25:1101516ee67d 6679 {
AzureIoTClient 25:1101516ee67d 6680 bool resume;
AzureIoTClient 23:1111ee8bcba4 6681 if (amqpvalue_get_boolean(item_value, &resume) != 0)
AzureIoTClient 23:1111ee8bcba4 6682 {
AzureIoTClient 25:1101516ee67d 6683 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6684 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6685 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6686 break;
AzureIoTClient 23:1111ee8bcba4 6687 }
AzureIoTClient 23:1111ee8bcba4 6688 }
AzureIoTClient 23:1111ee8bcba4 6689
AzureIoTClient 23:1111ee8bcba4 6690 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6691 }
AzureIoTClient 23:1111ee8bcba4 6692 }
AzureIoTClient 23:1111ee8bcba4 6693 /* aborted */
AzureIoTClient 23:1111ee8bcba4 6694 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 6695 {
AzureIoTClient 23:1111ee8bcba4 6696 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 23:1111ee8bcba4 6697 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6698 {
AzureIoTClient 23:1111ee8bcba4 6699 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6700 }
AzureIoTClient 23:1111ee8bcba4 6701 else
AzureIoTClient 23:1111ee8bcba4 6702 {
AzureIoTClient 25:1101516ee67d 6703 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6704 {
AzureIoTClient 25:1101516ee67d 6705 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6706 }
AzureIoTClient 25:1101516ee67d 6707 else
AzureIoTClient 25:1101516ee67d 6708 {
AzureIoTClient 25:1101516ee67d 6709 bool aborted;
AzureIoTClient 23:1111ee8bcba4 6710 if (amqpvalue_get_boolean(item_value, &aborted) != 0)
AzureIoTClient 23:1111ee8bcba4 6711 {
AzureIoTClient 25:1101516ee67d 6712 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6713 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6714 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6715 break;
AzureIoTClient 23:1111ee8bcba4 6716 }
AzureIoTClient 23:1111ee8bcba4 6717 }
AzureIoTClient 23:1111ee8bcba4 6718
AzureIoTClient 23:1111ee8bcba4 6719 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6720 }
AzureIoTClient 23:1111ee8bcba4 6721 }
AzureIoTClient 23:1111ee8bcba4 6722 /* batchable */
AzureIoTClient 23:1111ee8bcba4 6723 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 6724 {
AzureIoTClient 23:1111ee8bcba4 6725 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 23:1111ee8bcba4 6726 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 6727 {
AzureIoTClient 23:1111ee8bcba4 6728 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 6729 }
AzureIoTClient 23:1111ee8bcba4 6730 else
AzureIoTClient 23:1111ee8bcba4 6731 {
AzureIoTClient 25:1101516ee67d 6732 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 6733 {
AzureIoTClient 25:1101516ee67d 6734 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 6735 }
AzureIoTClient 25:1101516ee67d 6736 else
AzureIoTClient 25:1101516ee67d 6737 {
AzureIoTClient 25:1101516ee67d 6738 bool batchable;
AzureIoTClient 23:1111ee8bcba4 6739 if (amqpvalue_get_boolean(item_value, &batchable) != 0)
AzureIoTClient 23:1111ee8bcba4 6740 {
AzureIoTClient 25:1101516ee67d 6741 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6742 transfer_destroy(*transfer_handle);
AzureIoTClient 23:1111ee8bcba4 6743 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6744 break;
AzureIoTClient 23:1111ee8bcba4 6745 }
AzureIoTClient 23:1111ee8bcba4 6746 }
AzureIoTClient 23:1111ee8bcba4 6747
AzureIoTClient 23:1111ee8bcba4 6748 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 6749 }
AzureIoTClient 23:1111ee8bcba4 6750 }
AzureIoTClient 23:1111ee8bcba4 6751
AzureIoTClient 23:1111ee8bcba4 6752 transfer_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 6753
AzureIoTClient 23:1111ee8bcba4 6754 result = 0;
AzureIoTClient 23:1111ee8bcba4 6755 } while (0);
AzureIoTClient 23:1111ee8bcba4 6756 }
Azure.IoT Build 0:6ae2f7bca550 6757 }
Azure.IoT Build 0:6ae2f7bca550 6758 }
Azure.IoT Build 0:6ae2f7bca550 6759
Azure.IoT Build 0:6ae2f7bca550 6760 return result;
Azure.IoT Build 0:6ae2f7bca550 6761 }
Azure.IoT Build 0:6ae2f7bca550 6762
Azure.IoT Build 0:6ae2f7bca550 6763 int transfer_get_handle(TRANSFER_HANDLE transfer, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 6764 {
Azure.IoT Build 0:6ae2f7bca550 6765 int result;
Azure.IoT Build 0:6ae2f7bca550 6766
Azure.IoT Build 0:6ae2f7bca550 6767 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 6768 {
AzureIoTClient 19:000ab4e6a2c1 6769 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6770 }
Azure.IoT Build 0:6ae2f7bca550 6771 else
Azure.IoT Build 0:6ae2f7bca550 6772 {
AzureIoTClient 23:1111ee8bcba4 6773 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 6774 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 6775 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6776 {
AzureIoTClient 23:1111ee8bcba4 6777 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6778 }
AzureIoTClient 23:1111ee8bcba4 6779 else
AzureIoTClient 23:1111ee8bcba4 6780 {
AzureIoTClient 23:1111ee8bcba4 6781 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 6782 {
AzureIoTClient 23:1111ee8bcba4 6783 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6784 }
AzureIoTClient 23:1111ee8bcba4 6785 else
AzureIoTClient 23:1111ee8bcba4 6786 {
AzureIoTClient 23:1111ee8bcba4 6787 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 6788 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 6789 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 6790 {
AzureIoTClient 23:1111ee8bcba4 6791 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6792 }
AzureIoTClient 23:1111ee8bcba4 6793 else
AzureIoTClient 23:1111ee8bcba4 6794 {
AzureIoTClient 23:1111ee8bcba4 6795 if (amqpvalue_get_handle(item_value, handle_value) != 0)
AzureIoTClient 23:1111ee8bcba4 6796 {
AzureIoTClient 23:1111ee8bcba4 6797 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6798 }
AzureIoTClient 23:1111ee8bcba4 6799 else
AzureIoTClient 23:1111ee8bcba4 6800 {
AzureIoTClient 23:1111ee8bcba4 6801 result = 0;
AzureIoTClient 23:1111ee8bcba4 6802 }
AzureIoTClient 23:1111ee8bcba4 6803 }
AzureIoTClient 23:1111ee8bcba4 6804 }
Azure.IoT Build 0:6ae2f7bca550 6805 }
Azure.IoT Build 0:6ae2f7bca550 6806 }
Azure.IoT Build 0:6ae2f7bca550 6807
Azure.IoT Build 0:6ae2f7bca550 6808 return result;
Azure.IoT Build 0:6ae2f7bca550 6809 }
Azure.IoT Build 0:6ae2f7bca550 6810
Azure.IoT Build 0:6ae2f7bca550 6811 int transfer_set_handle(TRANSFER_HANDLE transfer, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 6812 {
Azure.IoT Build 0:6ae2f7bca550 6813 int result;
Azure.IoT Build 0:6ae2f7bca550 6814
Azure.IoT Build 0:6ae2f7bca550 6815 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 6816 {
AzureIoTClient 19:000ab4e6a2c1 6817 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6818 }
Azure.IoT Build 0:6ae2f7bca550 6819 else
Azure.IoT Build 0:6ae2f7bca550 6820 {
Azure.IoT Build 0:6ae2f7bca550 6821 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 6822 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
Azure.IoT Build 0:6ae2f7bca550 6823 if (handle_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6824 {
AzureIoTClient 19:000ab4e6a2c1 6825 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6826 }
Azure.IoT Build 0:6ae2f7bca550 6827 else
Azure.IoT Build 0:6ae2f7bca550 6828 {
Azure.IoT Build 0:6ae2f7bca550 6829 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 0, handle_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 6830 {
AzureIoTClient 19:000ab4e6a2c1 6831 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6832 }
Azure.IoT Build 0:6ae2f7bca550 6833 else
Azure.IoT Build 0:6ae2f7bca550 6834 {
Azure.IoT Build 0:6ae2f7bca550 6835 result = 0;
Azure.IoT Build 0:6ae2f7bca550 6836 }
Azure.IoT Build 0:6ae2f7bca550 6837
Azure.IoT Build 0:6ae2f7bca550 6838 amqpvalue_destroy(handle_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 6839 }
Azure.IoT Build 0:6ae2f7bca550 6840 }
Azure.IoT Build 0:6ae2f7bca550 6841
Azure.IoT Build 0:6ae2f7bca550 6842 return result;
Azure.IoT Build 0:6ae2f7bca550 6843 }
Azure.IoT Build 0:6ae2f7bca550 6844
Azure.IoT Build 0:6ae2f7bca550 6845 int transfer_get_delivery_id(TRANSFER_HANDLE transfer, delivery_number* delivery_id_value)
Azure.IoT Build 0:6ae2f7bca550 6846 {
Azure.IoT Build 0:6ae2f7bca550 6847 int result;
Azure.IoT Build 0:6ae2f7bca550 6848
Azure.IoT Build 0:6ae2f7bca550 6849 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 6850 {
AzureIoTClient 19:000ab4e6a2c1 6851 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6852 }
Azure.IoT Build 0:6ae2f7bca550 6853 else
Azure.IoT Build 0:6ae2f7bca550 6854 {
AzureIoTClient 23:1111ee8bcba4 6855 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 6856 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 6857 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6858 {
AzureIoTClient 23:1111ee8bcba4 6859 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6860 }
AzureIoTClient 23:1111ee8bcba4 6861 else
AzureIoTClient 23:1111ee8bcba4 6862 {
AzureIoTClient 23:1111ee8bcba4 6863 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 6864 {
AzureIoTClient 23:1111ee8bcba4 6865 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6866 }
AzureIoTClient 23:1111ee8bcba4 6867 else
AzureIoTClient 23:1111ee8bcba4 6868 {
AzureIoTClient 23:1111ee8bcba4 6869 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 6870 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 6871 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 6872 {
AzureIoTClient 23:1111ee8bcba4 6873 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6874 }
AzureIoTClient 23:1111ee8bcba4 6875 else
AzureIoTClient 23:1111ee8bcba4 6876 {
AzureIoTClient 23:1111ee8bcba4 6877 if (amqpvalue_get_delivery_number(item_value, delivery_id_value) != 0)
AzureIoTClient 23:1111ee8bcba4 6878 {
AzureIoTClient 23:1111ee8bcba4 6879 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6880 }
AzureIoTClient 23:1111ee8bcba4 6881 else
AzureIoTClient 23:1111ee8bcba4 6882 {
AzureIoTClient 23:1111ee8bcba4 6883 result = 0;
AzureIoTClient 23:1111ee8bcba4 6884 }
AzureIoTClient 23:1111ee8bcba4 6885 }
AzureIoTClient 23:1111ee8bcba4 6886 }
Azure.IoT Build 0:6ae2f7bca550 6887 }
Azure.IoT Build 0:6ae2f7bca550 6888 }
Azure.IoT Build 0:6ae2f7bca550 6889
Azure.IoT Build 0:6ae2f7bca550 6890 return result;
Azure.IoT Build 0:6ae2f7bca550 6891 }
Azure.IoT Build 0:6ae2f7bca550 6892
Azure.IoT Build 0:6ae2f7bca550 6893 int transfer_set_delivery_id(TRANSFER_HANDLE transfer, delivery_number delivery_id_value)
Azure.IoT Build 0:6ae2f7bca550 6894 {
Azure.IoT Build 0:6ae2f7bca550 6895 int result;
Azure.IoT Build 0:6ae2f7bca550 6896
Azure.IoT Build 0:6ae2f7bca550 6897 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 6898 {
AzureIoTClient 19:000ab4e6a2c1 6899 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6900 }
Azure.IoT Build 0:6ae2f7bca550 6901 else
Azure.IoT Build 0:6ae2f7bca550 6902 {
Azure.IoT Build 0:6ae2f7bca550 6903 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 6904 AMQP_VALUE delivery_id_amqp_value = amqpvalue_create_delivery_number(delivery_id_value);
Azure.IoT Build 0:6ae2f7bca550 6905 if (delivery_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6906 {
AzureIoTClient 19:000ab4e6a2c1 6907 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6908 }
Azure.IoT Build 0:6ae2f7bca550 6909 else
Azure.IoT Build 0:6ae2f7bca550 6910 {
Azure.IoT Build 0:6ae2f7bca550 6911 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 1, delivery_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 6912 {
AzureIoTClient 19:000ab4e6a2c1 6913 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6914 }
Azure.IoT Build 0:6ae2f7bca550 6915 else
Azure.IoT Build 0:6ae2f7bca550 6916 {
Azure.IoT Build 0:6ae2f7bca550 6917 result = 0;
Azure.IoT Build 0:6ae2f7bca550 6918 }
Azure.IoT Build 0:6ae2f7bca550 6919
Azure.IoT Build 0:6ae2f7bca550 6920 amqpvalue_destroy(delivery_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 6921 }
Azure.IoT Build 0:6ae2f7bca550 6922 }
Azure.IoT Build 0:6ae2f7bca550 6923
Azure.IoT Build 0:6ae2f7bca550 6924 return result;
Azure.IoT Build 0:6ae2f7bca550 6925 }
Azure.IoT Build 0:6ae2f7bca550 6926
Azure.IoT Build 0:6ae2f7bca550 6927 int transfer_get_delivery_tag(TRANSFER_HANDLE transfer, delivery_tag* delivery_tag_value)
Azure.IoT Build 0:6ae2f7bca550 6928 {
Azure.IoT Build 0:6ae2f7bca550 6929 int result;
Azure.IoT Build 0:6ae2f7bca550 6930
Azure.IoT Build 0:6ae2f7bca550 6931 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 6932 {
AzureIoTClient 19:000ab4e6a2c1 6933 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6934 }
Azure.IoT Build 0:6ae2f7bca550 6935 else
Azure.IoT Build 0:6ae2f7bca550 6936 {
AzureIoTClient 23:1111ee8bcba4 6937 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 6938 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 6939 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6940 {
AzureIoTClient 23:1111ee8bcba4 6941 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6942 }
AzureIoTClient 23:1111ee8bcba4 6943 else
AzureIoTClient 23:1111ee8bcba4 6944 {
AzureIoTClient 23:1111ee8bcba4 6945 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 6946 {
AzureIoTClient 23:1111ee8bcba4 6947 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6948 }
AzureIoTClient 23:1111ee8bcba4 6949 else
AzureIoTClient 23:1111ee8bcba4 6950 {
AzureIoTClient 23:1111ee8bcba4 6951 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 6952 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 6953 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 6954 {
AzureIoTClient 23:1111ee8bcba4 6955 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6956 }
AzureIoTClient 23:1111ee8bcba4 6957 else
AzureIoTClient 23:1111ee8bcba4 6958 {
AzureIoTClient 23:1111ee8bcba4 6959 if (amqpvalue_get_delivery_tag(item_value, delivery_tag_value) != 0)
AzureIoTClient 23:1111ee8bcba4 6960 {
AzureIoTClient 23:1111ee8bcba4 6961 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6962 }
AzureIoTClient 23:1111ee8bcba4 6963 else
AzureIoTClient 23:1111ee8bcba4 6964 {
AzureIoTClient 23:1111ee8bcba4 6965 result = 0;
AzureIoTClient 23:1111ee8bcba4 6966 }
AzureIoTClient 23:1111ee8bcba4 6967 }
AzureIoTClient 23:1111ee8bcba4 6968 }
Azure.IoT Build 0:6ae2f7bca550 6969 }
Azure.IoT Build 0:6ae2f7bca550 6970 }
Azure.IoT Build 0:6ae2f7bca550 6971
Azure.IoT Build 0:6ae2f7bca550 6972 return result;
Azure.IoT Build 0:6ae2f7bca550 6973 }
Azure.IoT Build 0:6ae2f7bca550 6974
Azure.IoT Build 0:6ae2f7bca550 6975 int transfer_set_delivery_tag(TRANSFER_HANDLE transfer, delivery_tag delivery_tag_value)
Azure.IoT Build 0:6ae2f7bca550 6976 {
Azure.IoT Build 0:6ae2f7bca550 6977 int result;
Azure.IoT Build 0:6ae2f7bca550 6978
Azure.IoT Build 0:6ae2f7bca550 6979 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 6980 {
AzureIoTClient 19:000ab4e6a2c1 6981 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6982 }
Azure.IoT Build 0:6ae2f7bca550 6983 else
Azure.IoT Build 0:6ae2f7bca550 6984 {
Azure.IoT Build 0:6ae2f7bca550 6985 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 6986 AMQP_VALUE delivery_tag_amqp_value = amqpvalue_create_delivery_tag(delivery_tag_value);
Azure.IoT Build 0:6ae2f7bca550 6987 if (delivery_tag_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 6988 {
AzureIoTClient 19:000ab4e6a2c1 6989 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6990 }
Azure.IoT Build 0:6ae2f7bca550 6991 else
Azure.IoT Build 0:6ae2f7bca550 6992 {
Azure.IoT Build 0:6ae2f7bca550 6993 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 2, delivery_tag_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 6994 {
AzureIoTClient 19:000ab4e6a2c1 6995 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 6996 }
Azure.IoT Build 0:6ae2f7bca550 6997 else
Azure.IoT Build 0:6ae2f7bca550 6998 {
Azure.IoT Build 0:6ae2f7bca550 6999 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7000 }
Azure.IoT Build 0:6ae2f7bca550 7001
Azure.IoT Build 0:6ae2f7bca550 7002 amqpvalue_destroy(delivery_tag_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7003 }
Azure.IoT Build 0:6ae2f7bca550 7004 }
Azure.IoT Build 0:6ae2f7bca550 7005
Azure.IoT Build 0:6ae2f7bca550 7006 return result;
Azure.IoT Build 0:6ae2f7bca550 7007 }
Azure.IoT Build 0:6ae2f7bca550 7008
Azure.IoT Build 0:6ae2f7bca550 7009 int transfer_get_message_format(TRANSFER_HANDLE transfer, message_format* message_format_value)
Azure.IoT Build 0:6ae2f7bca550 7010 {
Azure.IoT Build 0:6ae2f7bca550 7011 int result;
Azure.IoT Build 0:6ae2f7bca550 7012
Azure.IoT Build 0:6ae2f7bca550 7013 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7014 {
AzureIoTClient 19:000ab4e6a2c1 7015 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7016 }
Azure.IoT Build 0:6ae2f7bca550 7017 else
Azure.IoT Build 0:6ae2f7bca550 7018 {
AzureIoTClient 23:1111ee8bcba4 7019 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 7020 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7021 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7022 {
AzureIoTClient 23:1111ee8bcba4 7023 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7024 }
AzureIoTClient 23:1111ee8bcba4 7025 else
AzureIoTClient 23:1111ee8bcba4 7026 {
AzureIoTClient 23:1111ee8bcba4 7027 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 7028 {
AzureIoTClient 23:1111ee8bcba4 7029 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7030 }
AzureIoTClient 23:1111ee8bcba4 7031 else
AzureIoTClient 23:1111ee8bcba4 7032 {
AzureIoTClient 23:1111ee8bcba4 7033 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 7034 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 7035 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 7036 {
AzureIoTClient 23:1111ee8bcba4 7037 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7038 }
AzureIoTClient 23:1111ee8bcba4 7039 else
AzureIoTClient 23:1111ee8bcba4 7040 {
AzureIoTClient 23:1111ee8bcba4 7041 if (amqpvalue_get_message_format(item_value, message_format_value) != 0)
AzureIoTClient 23:1111ee8bcba4 7042 {
AzureIoTClient 23:1111ee8bcba4 7043 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7044 }
AzureIoTClient 23:1111ee8bcba4 7045 else
AzureIoTClient 23:1111ee8bcba4 7046 {
AzureIoTClient 23:1111ee8bcba4 7047 result = 0;
AzureIoTClient 23:1111ee8bcba4 7048 }
AzureIoTClient 23:1111ee8bcba4 7049 }
AzureIoTClient 23:1111ee8bcba4 7050 }
Azure.IoT Build 0:6ae2f7bca550 7051 }
Azure.IoT Build 0:6ae2f7bca550 7052 }
Azure.IoT Build 0:6ae2f7bca550 7053
Azure.IoT Build 0:6ae2f7bca550 7054 return result;
Azure.IoT Build 0:6ae2f7bca550 7055 }
Azure.IoT Build 0:6ae2f7bca550 7056
Azure.IoT Build 0:6ae2f7bca550 7057 int transfer_set_message_format(TRANSFER_HANDLE transfer, message_format message_format_value)
Azure.IoT Build 0:6ae2f7bca550 7058 {
Azure.IoT Build 0:6ae2f7bca550 7059 int result;
Azure.IoT Build 0:6ae2f7bca550 7060
Azure.IoT Build 0:6ae2f7bca550 7061 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7062 {
AzureIoTClient 19:000ab4e6a2c1 7063 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7064 }
Azure.IoT Build 0:6ae2f7bca550 7065 else
Azure.IoT Build 0:6ae2f7bca550 7066 {
Azure.IoT Build 0:6ae2f7bca550 7067 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 7068 AMQP_VALUE message_format_amqp_value = amqpvalue_create_message_format(message_format_value);
Azure.IoT Build 0:6ae2f7bca550 7069 if (message_format_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7070 {
AzureIoTClient 19:000ab4e6a2c1 7071 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7072 }
Azure.IoT Build 0:6ae2f7bca550 7073 else
Azure.IoT Build 0:6ae2f7bca550 7074 {
Azure.IoT Build 0:6ae2f7bca550 7075 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 3, message_format_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 7076 {
AzureIoTClient 19:000ab4e6a2c1 7077 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7078 }
Azure.IoT Build 0:6ae2f7bca550 7079 else
Azure.IoT Build 0:6ae2f7bca550 7080 {
Azure.IoT Build 0:6ae2f7bca550 7081 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7082 }
Azure.IoT Build 0:6ae2f7bca550 7083
Azure.IoT Build 0:6ae2f7bca550 7084 amqpvalue_destroy(message_format_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7085 }
Azure.IoT Build 0:6ae2f7bca550 7086 }
Azure.IoT Build 0:6ae2f7bca550 7087
Azure.IoT Build 0:6ae2f7bca550 7088 return result;
Azure.IoT Build 0:6ae2f7bca550 7089 }
Azure.IoT Build 0:6ae2f7bca550 7090
Azure.IoT Build 0:6ae2f7bca550 7091 int transfer_get_settled(TRANSFER_HANDLE transfer, bool* settled_value)
Azure.IoT Build 0:6ae2f7bca550 7092 {
Azure.IoT Build 0:6ae2f7bca550 7093 int result;
Azure.IoT Build 0:6ae2f7bca550 7094
Azure.IoT Build 0:6ae2f7bca550 7095 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7096 {
AzureIoTClient 19:000ab4e6a2c1 7097 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7098 }
Azure.IoT Build 0:6ae2f7bca550 7099 else
Azure.IoT Build 0:6ae2f7bca550 7100 {
AzureIoTClient 23:1111ee8bcba4 7101 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 7102 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7103 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7104 {
AzureIoTClient 23:1111ee8bcba4 7105 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7106 }
AzureIoTClient 23:1111ee8bcba4 7107 else
AzureIoTClient 23:1111ee8bcba4 7108 {
AzureIoTClient 23:1111ee8bcba4 7109 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 7110 {
AzureIoTClient 23:1111ee8bcba4 7111 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7112 }
AzureIoTClient 23:1111ee8bcba4 7113 else
AzureIoTClient 23:1111ee8bcba4 7114 {
AzureIoTClient 23:1111ee8bcba4 7115 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 7116 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 7117 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 7118 {
AzureIoTClient 23:1111ee8bcba4 7119 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7120 }
AzureIoTClient 23:1111ee8bcba4 7121 else
AzureIoTClient 23:1111ee8bcba4 7122 {
AzureIoTClient 23:1111ee8bcba4 7123 if (amqpvalue_get_boolean(item_value, settled_value) != 0)
AzureIoTClient 23:1111ee8bcba4 7124 {
AzureIoTClient 23:1111ee8bcba4 7125 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7126 }
AzureIoTClient 23:1111ee8bcba4 7127 else
AzureIoTClient 23:1111ee8bcba4 7128 {
AzureIoTClient 23:1111ee8bcba4 7129 result = 0;
AzureIoTClient 23:1111ee8bcba4 7130 }
AzureIoTClient 23:1111ee8bcba4 7131 }
AzureIoTClient 23:1111ee8bcba4 7132 }
Azure.IoT Build 0:6ae2f7bca550 7133 }
Azure.IoT Build 0:6ae2f7bca550 7134 }
Azure.IoT Build 0:6ae2f7bca550 7135
Azure.IoT Build 0:6ae2f7bca550 7136 return result;
Azure.IoT Build 0:6ae2f7bca550 7137 }
Azure.IoT Build 0:6ae2f7bca550 7138
Azure.IoT Build 0:6ae2f7bca550 7139 int transfer_set_settled(TRANSFER_HANDLE transfer, bool settled_value)
Azure.IoT Build 0:6ae2f7bca550 7140 {
Azure.IoT Build 0:6ae2f7bca550 7141 int result;
Azure.IoT Build 0:6ae2f7bca550 7142
Azure.IoT Build 0:6ae2f7bca550 7143 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7144 {
AzureIoTClient 19:000ab4e6a2c1 7145 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7146 }
Azure.IoT Build 0:6ae2f7bca550 7147 else
Azure.IoT Build 0:6ae2f7bca550 7148 {
Azure.IoT Build 0:6ae2f7bca550 7149 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 7150 AMQP_VALUE settled_amqp_value = amqpvalue_create_boolean(settled_value);
Azure.IoT Build 0:6ae2f7bca550 7151 if (settled_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7152 {
AzureIoTClient 19:000ab4e6a2c1 7153 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7154 }
Azure.IoT Build 0:6ae2f7bca550 7155 else
Azure.IoT Build 0:6ae2f7bca550 7156 {
Azure.IoT Build 0:6ae2f7bca550 7157 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 4, settled_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 7158 {
AzureIoTClient 19:000ab4e6a2c1 7159 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7160 }
Azure.IoT Build 0:6ae2f7bca550 7161 else
Azure.IoT Build 0:6ae2f7bca550 7162 {
Azure.IoT Build 0:6ae2f7bca550 7163 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7164 }
Azure.IoT Build 0:6ae2f7bca550 7165
Azure.IoT Build 0:6ae2f7bca550 7166 amqpvalue_destroy(settled_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7167 }
Azure.IoT Build 0:6ae2f7bca550 7168 }
Azure.IoT Build 0:6ae2f7bca550 7169
Azure.IoT Build 0:6ae2f7bca550 7170 return result;
Azure.IoT Build 0:6ae2f7bca550 7171 }
Azure.IoT Build 0:6ae2f7bca550 7172
Azure.IoT Build 0:6ae2f7bca550 7173 int transfer_get_more(TRANSFER_HANDLE transfer, bool* more_value)
Azure.IoT Build 0:6ae2f7bca550 7174 {
Azure.IoT Build 0:6ae2f7bca550 7175 int result;
Azure.IoT Build 0:6ae2f7bca550 7176
Azure.IoT Build 0:6ae2f7bca550 7177 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7178 {
AzureIoTClient 19:000ab4e6a2c1 7179 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7180 }
Azure.IoT Build 0:6ae2f7bca550 7181 else
Azure.IoT Build 0:6ae2f7bca550 7182 {
AzureIoTClient 23:1111ee8bcba4 7183 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 7184 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7185 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7186 {
AzureIoTClient 23:1111ee8bcba4 7187 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7188 }
AzureIoTClient 23:1111ee8bcba4 7189 else
AzureIoTClient 23:1111ee8bcba4 7190 {
AzureIoTClient 23:1111ee8bcba4 7191 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 7192 {
AzureIoTClient 23:1111ee8bcba4 7193 *more_value = false;
AzureIoTClient 23:1111ee8bcba4 7194 result = 0;
AzureIoTClient 23:1111ee8bcba4 7195 }
AzureIoTClient 23:1111ee8bcba4 7196 else
AzureIoTClient 23:1111ee8bcba4 7197 {
AzureIoTClient 23:1111ee8bcba4 7198 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 7199 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 7200 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 7201 {
AzureIoTClient 16:22a72cf8e416 7202 *more_value = false;
AzureIoTClient 16:22a72cf8e416 7203 result = 0;
AzureIoTClient 23:1111ee8bcba4 7204 }
AzureIoTClient 23:1111ee8bcba4 7205 else
AzureIoTClient 23:1111ee8bcba4 7206 {
AzureIoTClient 23:1111ee8bcba4 7207 if (amqpvalue_get_boolean(item_value, more_value) != 0)
AzureIoTClient 23:1111ee8bcba4 7208 {
AzureIoTClient 23:1111ee8bcba4 7209 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7210 {
AzureIoTClient 23:1111ee8bcba4 7211 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7212 }
AzureIoTClient 23:1111ee8bcba4 7213 else
AzureIoTClient 23:1111ee8bcba4 7214 {
AzureIoTClient 23:1111ee8bcba4 7215 *more_value = false;
AzureIoTClient 23:1111ee8bcba4 7216 result = 0;
AzureIoTClient 23:1111ee8bcba4 7217 }
AzureIoTClient 23:1111ee8bcba4 7218 }
AzureIoTClient 23:1111ee8bcba4 7219 else
AzureIoTClient 23:1111ee8bcba4 7220 {
AzureIoTClient 23:1111ee8bcba4 7221 result = 0;
AzureIoTClient 23:1111ee8bcba4 7222 }
AzureIoTClient 23:1111ee8bcba4 7223 }
AzureIoTClient 23:1111ee8bcba4 7224 }
Azure.IoT Build 0:6ae2f7bca550 7225 }
Azure.IoT Build 0:6ae2f7bca550 7226 }
Azure.IoT Build 0:6ae2f7bca550 7227
Azure.IoT Build 0:6ae2f7bca550 7228 return result;
Azure.IoT Build 0:6ae2f7bca550 7229 }
Azure.IoT Build 0:6ae2f7bca550 7230
Azure.IoT Build 0:6ae2f7bca550 7231 int transfer_set_more(TRANSFER_HANDLE transfer, bool more_value)
Azure.IoT Build 0:6ae2f7bca550 7232 {
Azure.IoT Build 0:6ae2f7bca550 7233 int result;
Azure.IoT Build 0:6ae2f7bca550 7234
Azure.IoT Build 0:6ae2f7bca550 7235 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7236 {
AzureIoTClient 19:000ab4e6a2c1 7237 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7238 }
Azure.IoT Build 0:6ae2f7bca550 7239 else
Azure.IoT Build 0:6ae2f7bca550 7240 {
Azure.IoT Build 0:6ae2f7bca550 7241 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 7242 AMQP_VALUE more_amqp_value = amqpvalue_create_boolean(more_value);
Azure.IoT Build 0:6ae2f7bca550 7243 if (more_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7244 {
AzureIoTClient 19:000ab4e6a2c1 7245 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7246 }
Azure.IoT Build 0:6ae2f7bca550 7247 else
Azure.IoT Build 0:6ae2f7bca550 7248 {
Azure.IoT Build 0:6ae2f7bca550 7249 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 5, more_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 7250 {
AzureIoTClient 19:000ab4e6a2c1 7251 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7252 }
Azure.IoT Build 0:6ae2f7bca550 7253 else
Azure.IoT Build 0:6ae2f7bca550 7254 {
Azure.IoT Build 0:6ae2f7bca550 7255 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7256 }
Azure.IoT Build 0:6ae2f7bca550 7257
Azure.IoT Build 0:6ae2f7bca550 7258 amqpvalue_destroy(more_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7259 }
Azure.IoT Build 0:6ae2f7bca550 7260 }
Azure.IoT Build 0:6ae2f7bca550 7261
Azure.IoT Build 0:6ae2f7bca550 7262 return result;
Azure.IoT Build 0:6ae2f7bca550 7263 }
Azure.IoT Build 0:6ae2f7bca550 7264
Azure.IoT Build 0:6ae2f7bca550 7265 int transfer_get_rcv_settle_mode(TRANSFER_HANDLE transfer, receiver_settle_mode* rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 7266 {
Azure.IoT Build 0:6ae2f7bca550 7267 int result;
Azure.IoT Build 0:6ae2f7bca550 7268
Azure.IoT Build 0:6ae2f7bca550 7269 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7270 {
AzureIoTClient 19:000ab4e6a2c1 7271 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7272 }
Azure.IoT Build 0:6ae2f7bca550 7273 else
Azure.IoT Build 0:6ae2f7bca550 7274 {
AzureIoTClient 23:1111ee8bcba4 7275 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 7276 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7277 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7278 {
AzureIoTClient 23:1111ee8bcba4 7279 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7280 }
AzureIoTClient 23:1111ee8bcba4 7281 else
AzureIoTClient 23:1111ee8bcba4 7282 {
AzureIoTClient 23:1111ee8bcba4 7283 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 7284 {
AzureIoTClient 23:1111ee8bcba4 7285 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7286 }
AzureIoTClient 23:1111ee8bcba4 7287 else
AzureIoTClient 23:1111ee8bcba4 7288 {
AzureIoTClient 23:1111ee8bcba4 7289 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 6);
AzureIoTClient 23:1111ee8bcba4 7290 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 7291 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 7292 {
AzureIoTClient 23:1111ee8bcba4 7293 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7294 }
AzureIoTClient 23:1111ee8bcba4 7295 else
AzureIoTClient 23:1111ee8bcba4 7296 {
AzureIoTClient 23:1111ee8bcba4 7297 if (amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value) != 0)
AzureIoTClient 23:1111ee8bcba4 7298 {
AzureIoTClient 23:1111ee8bcba4 7299 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7300 }
AzureIoTClient 23:1111ee8bcba4 7301 else
AzureIoTClient 23:1111ee8bcba4 7302 {
AzureIoTClient 23:1111ee8bcba4 7303 result = 0;
AzureIoTClient 23:1111ee8bcba4 7304 }
AzureIoTClient 23:1111ee8bcba4 7305 }
AzureIoTClient 23:1111ee8bcba4 7306 }
Azure.IoT Build 0:6ae2f7bca550 7307 }
Azure.IoT Build 0:6ae2f7bca550 7308 }
Azure.IoT Build 0:6ae2f7bca550 7309
Azure.IoT Build 0:6ae2f7bca550 7310 return result;
Azure.IoT Build 0:6ae2f7bca550 7311 }
Azure.IoT Build 0:6ae2f7bca550 7312
Azure.IoT Build 0:6ae2f7bca550 7313 int transfer_set_rcv_settle_mode(TRANSFER_HANDLE transfer, receiver_settle_mode rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 7314 {
Azure.IoT Build 0:6ae2f7bca550 7315 int result;
Azure.IoT Build 0:6ae2f7bca550 7316
Azure.IoT Build 0:6ae2f7bca550 7317 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7318 {
AzureIoTClient 19:000ab4e6a2c1 7319 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7320 }
Azure.IoT Build 0:6ae2f7bca550 7321 else
Azure.IoT Build 0:6ae2f7bca550 7322 {
Azure.IoT Build 0:6ae2f7bca550 7323 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 7324 AMQP_VALUE rcv_settle_mode_amqp_value = amqpvalue_create_receiver_settle_mode(rcv_settle_mode_value);
Azure.IoT Build 0:6ae2f7bca550 7325 if (rcv_settle_mode_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7326 {
AzureIoTClient 19:000ab4e6a2c1 7327 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7328 }
Azure.IoT Build 0:6ae2f7bca550 7329 else
Azure.IoT Build 0:6ae2f7bca550 7330 {
Azure.IoT Build 0:6ae2f7bca550 7331 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 6, rcv_settle_mode_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 7332 {
AzureIoTClient 19:000ab4e6a2c1 7333 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7334 }
Azure.IoT Build 0:6ae2f7bca550 7335 else
Azure.IoT Build 0:6ae2f7bca550 7336 {
Azure.IoT Build 0:6ae2f7bca550 7337 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7338 }
Azure.IoT Build 0:6ae2f7bca550 7339
Azure.IoT Build 0:6ae2f7bca550 7340 amqpvalue_destroy(rcv_settle_mode_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7341 }
Azure.IoT Build 0:6ae2f7bca550 7342 }
Azure.IoT Build 0:6ae2f7bca550 7343
Azure.IoT Build 0:6ae2f7bca550 7344 return result;
Azure.IoT Build 0:6ae2f7bca550 7345 }
Azure.IoT Build 0:6ae2f7bca550 7346
Azure.IoT Build 0:6ae2f7bca550 7347 int transfer_get_state(TRANSFER_HANDLE transfer, AMQP_VALUE* state_value)
Azure.IoT Build 0:6ae2f7bca550 7348 {
Azure.IoT Build 0:6ae2f7bca550 7349 int result;
Azure.IoT Build 0:6ae2f7bca550 7350
Azure.IoT Build 0:6ae2f7bca550 7351 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7352 {
AzureIoTClient 19:000ab4e6a2c1 7353 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7354 }
Azure.IoT Build 0:6ae2f7bca550 7355 else
Azure.IoT Build 0:6ae2f7bca550 7356 {
AzureIoTClient 23:1111ee8bcba4 7357 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 7358 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7359 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7360 {
AzureIoTClient 23:1111ee8bcba4 7361 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7362 }
AzureIoTClient 23:1111ee8bcba4 7363 else
AzureIoTClient 23:1111ee8bcba4 7364 {
AzureIoTClient 23:1111ee8bcba4 7365 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 7366 {
AzureIoTClient 23:1111ee8bcba4 7367 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7368 }
AzureIoTClient 23:1111ee8bcba4 7369 else
AzureIoTClient 23:1111ee8bcba4 7370 {
AzureIoTClient 23:1111ee8bcba4 7371 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 7);
AzureIoTClient 23:1111ee8bcba4 7372 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 7373 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 7374 {
AzureIoTClient 23:1111ee8bcba4 7375 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7376 }
AzureIoTClient 23:1111ee8bcba4 7377 else
AzureIoTClient 23:1111ee8bcba4 7378 {
AzureIoTClient 23:1111ee8bcba4 7379 *state_value = item_value;
AzureIoTClient 23:1111ee8bcba4 7380 result = 0;
AzureIoTClient 23:1111ee8bcba4 7381 }
AzureIoTClient 23:1111ee8bcba4 7382 }
Azure.IoT Build 0:6ae2f7bca550 7383 }
Azure.IoT Build 0:6ae2f7bca550 7384 }
Azure.IoT Build 0:6ae2f7bca550 7385
Azure.IoT Build 0:6ae2f7bca550 7386 return result;
Azure.IoT Build 0:6ae2f7bca550 7387 }
Azure.IoT Build 0:6ae2f7bca550 7388
Azure.IoT Build 0:6ae2f7bca550 7389 int transfer_set_state(TRANSFER_HANDLE transfer, AMQP_VALUE state_value)
Azure.IoT Build 0:6ae2f7bca550 7390 {
Azure.IoT Build 0:6ae2f7bca550 7391 int result;
Azure.IoT Build 0:6ae2f7bca550 7392
Azure.IoT Build 0:6ae2f7bca550 7393 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7394 {
AzureIoTClient 19:000ab4e6a2c1 7395 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7396 }
Azure.IoT Build 0:6ae2f7bca550 7397 else
Azure.IoT Build 0:6ae2f7bca550 7398 {
Azure.IoT Build 0:6ae2f7bca550 7399 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7400 AMQP_VALUE state_amqp_value;
AzureIoTClient 23:1111ee8bcba4 7401 if (state_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7402 {
AzureIoTClient 23:1111ee8bcba4 7403 state_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 7404 }
AzureIoTClient 23:1111ee8bcba4 7405 else
AzureIoTClient 23:1111ee8bcba4 7406 {
AzureIoTClient 23:1111ee8bcba4 7407 state_amqp_value = amqpvalue_clone(state_value);
AzureIoTClient 23:1111ee8bcba4 7408 }
Azure.IoT Build 0:6ae2f7bca550 7409 if (state_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7410 {
AzureIoTClient 19:000ab4e6a2c1 7411 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7412 }
Azure.IoT Build 0:6ae2f7bca550 7413 else
Azure.IoT Build 0:6ae2f7bca550 7414 {
Azure.IoT Build 0:6ae2f7bca550 7415 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 7, state_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 7416 {
AzureIoTClient 19:000ab4e6a2c1 7417 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7418 }
Azure.IoT Build 0:6ae2f7bca550 7419 else
Azure.IoT Build 0:6ae2f7bca550 7420 {
Azure.IoT Build 0:6ae2f7bca550 7421 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7422 }
Azure.IoT Build 0:6ae2f7bca550 7423
Azure.IoT Build 0:6ae2f7bca550 7424 amqpvalue_destroy(state_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7425 }
Azure.IoT Build 0:6ae2f7bca550 7426 }
Azure.IoT Build 0:6ae2f7bca550 7427
Azure.IoT Build 0:6ae2f7bca550 7428 return result;
Azure.IoT Build 0:6ae2f7bca550 7429 }
Azure.IoT Build 0:6ae2f7bca550 7430
Azure.IoT Build 0:6ae2f7bca550 7431 int transfer_get_resume(TRANSFER_HANDLE transfer, bool* resume_value)
Azure.IoT Build 0:6ae2f7bca550 7432 {
Azure.IoT Build 0:6ae2f7bca550 7433 int result;
Azure.IoT Build 0:6ae2f7bca550 7434
Azure.IoT Build 0:6ae2f7bca550 7435 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7436 {
AzureIoTClient 19:000ab4e6a2c1 7437 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7438 }
Azure.IoT Build 0:6ae2f7bca550 7439 else
Azure.IoT Build 0:6ae2f7bca550 7440 {
AzureIoTClient 23:1111ee8bcba4 7441 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 7442 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7443 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7444 {
AzureIoTClient 23:1111ee8bcba4 7445 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7446 }
AzureIoTClient 23:1111ee8bcba4 7447 else
AzureIoTClient 23:1111ee8bcba4 7448 {
AzureIoTClient 23:1111ee8bcba4 7449 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 7450 {
AzureIoTClient 23:1111ee8bcba4 7451 *resume_value = false;
AzureIoTClient 23:1111ee8bcba4 7452 result = 0;
AzureIoTClient 23:1111ee8bcba4 7453 }
AzureIoTClient 23:1111ee8bcba4 7454 else
AzureIoTClient 23:1111ee8bcba4 7455 {
AzureIoTClient 23:1111ee8bcba4 7456 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 8);
AzureIoTClient 23:1111ee8bcba4 7457 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 7458 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 7459 {
AzureIoTClient 16:22a72cf8e416 7460 *resume_value = false;
AzureIoTClient 16:22a72cf8e416 7461 result = 0;
AzureIoTClient 23:1111ee8bcba4 7462 }
AzureIoTClient 23:1111ee8bcba4 7463 else
AzureIoTClient 23:1111ee8bcba4 7464 {
AzureIoTClient 23:1111ee8bcba4 7465 if (amqpvalue_get_boolean(item_value, resume_value) != 0)
AzureIoTClient 23:1111ee8bcba4 7466 {
AzureIoTClient 23:1111ee8bcba4 7467 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7468 {
AzureIoTClient 23:1111ee8bcba4 7469 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7470 }
AzureIoTClient 23:1111ee8bcba4 7471 else
AzureIoTClient 23:1111ee8bcba4 7472 {
AzureIoTClient 23:1111ee8bcba4 7473 *resume_value = false;
AzureIoTClient 23:1111ee8bcba4 7474 result = 0;
AzureIoTClient 23:1111ee8bcba4 7475 }
AzureIoTClient 23:1111ee8bcba4 7476 }
AzureIoTClient 23:1111ee8bcba4 7477 else
AzureIoTClient 23:1111ee8bcba4 7478 {
AzureIoTClient 23:1111ee8bcba4 7479 result = 0;
AzureIoTClient 23:1111ee8bcba4 7480 }
AzureIoTClient 23:1111ee8bcba4 7481 }
AzureIoTClient 23:1111ee8bcba4 7482 }
Azure.IoT Build 0:6ae2f7bca550 7483 }
Azure.IoT Build 0:6ae2f7bca550 7484 }
Azure.IoT Build 0:6ae2f7bca550 7485
Azure.IoT Build 0:6ae2f7bca550 7486 return result;
Azure.IoT Build 0:6ae2f7bca550 7487 }
Azure.IoT Build 0:6ae2f7bca550 7488
Azure.IoT Build 0:6ae2f7bca550 7489 int transfer_set_resume(TRANSFER_HANDLE transfer, bool resume_value)
Azure.IoT Build 0:6ae2f7bca550 7490 {
Azure.IoT Build 0:6ae2f7bca550 7491 int result;
Azure.IoT Build 0:6ae2f7bca550 7492
Azure.IoT Build 0:6ae2f7bca550 7493 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7494 {
AzureIoTClient 19:000ab4e6a2c1 7495 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7496 }
Azure.IoT Build 0:6ae2f7bca550 7497 else
Azure.IoT Build 0:6ae2f7bca550 7498 {
Azure.IoT Build 0:6ae2f7bca550 7499 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 7500 AMQP_VALUE resume_amqp_value = amqpvalue_create_boolean(resume_value);
Azure.IoT Build 0:6ae2f7bca550 7501 if (resume_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7502 {
AzureIoTClient 19:000ab4e6a2c1 7503 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7504 }
Azure.IoT Build 0:6ae2f7bca550 7505 else
Azure.IoT Build 0:6ae2f7bca550 7506 {
Azure.IoT Build 0:6ae2f7bca550 7507 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 8, resume_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 7508 {
AzureIoTClient 19:000ab4e6a2c1 7509 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7510 }
Azure.IoT Build 0:6ae2f7bca550 7511 else
Azure.IoT Build 0:6ae2f7bca550 7512 {
Azure.IoT Build 0:6ae2f7bca550 7513 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7514 }
Azure.IoT Build 0:6ae2f7bca550 7515
Azure.IoT Build 0:6ae2f7bca550 7516 amqpvalue_destroy(resume_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7517 }
Azure.IoT Build 0:6ae2f7bca550 7518 }
Azure.IoT Build 0:6ae2f7bca550 7519
Azure.IoT Build 0:6ae2f7bca550 7520 return result;
Azure.IoT Build 0:6ae2f7bca550 7521 }
Azure.IoT Build 0:6ae2f7bca550 7522
Azure.IoT Build 0:6ae2f7bca550 7523 int transfer_get_aborted(TRANSFER_HANDLE transfer, bool* aborted_value)
Azure.IoT Build 0:6ae2f7bca550 7524 {
Azure.IoT Build 0:6ae2f7bca550 7525 int result;
Azure.IoT Build 0:6ae2f7bca550 7526
Azure.IoT Build 0:6ae2f7bca550 7527 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7528 {
AzureIoTClient 19:000ab4e6a2c1 7529 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7530 }
Azure.IoT Build 0:6ae2f7bca550 7531 else
Azure.IoT Build 0:6ae2f7bca550 7532 {
AzureIoTClient 23:1111ee8bcba4 7533 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 7534 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7535 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7536 {
AzureIoTClient 23:1111ee8bcba4 7537 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7538 }
AzureIoTClient 23:1111ee8bcba4 7539 else
AzureIoTClient 23:1111ee8bcba4 7540 {
AzureIoTClient 23:1111ee8bcba4 7541 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 7542 {
AzureIoTClient 23:1111ee8bcba4 7543 *aborted_value = false;
AzureIoTClient 23:1111ee8bcba4 7544 result = 0;
AzureIoTClient 23:1111ee8bcba4 7545 }
AzureIoTClient 23:1111ee8bcba4 7546 else
AzureIoTClient 23:1111ee8bcba4 7547 {
AzureIoTClient 23:1111ee8bcba4 7548 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 9);
AzureIoTClient 23:1111ee8bcba4 7549 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 7550 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 7551 {
AzureIoTClient 16:22a72cf8e416 7552 *aborted_value = false;
AzureIoTClient 16:22a72cf8e416 7553 result = 0;
AzureIoTClient 23:1111ee8bcba4 7554 }
AzureIoTClient 23:1111ee8bcba4 7555 else
AzureIoTClient 23:1111ee8bcba4 7556 {
AzureIoTClient 23:1111ee8bcba4 7557 if (amqpvalue_get_boolean(item_value, aborted_value) != 0)
AzureIoTClient 23:1111ee8bcba4 7558 {
AzureIoTClient 23:1111ee8bcba4 7559 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7560 {
AzureIoTClient 23:1111ee8bcba4 7561 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7562 }
AzureIoTClient 23:1111ee8bcba4 7563 else
AzureIoTClient 23:1111ee8bcba4 7564 {
AzureIoTClient 23:1111ee8bcba4 7565 *aborted_value = false;
AzureIoTClient 23:1111ee8bcba4 7566 result = 0;
AzureIoTClient 23:1111ee8bcba4 7567 }
AzureIoTClient 23:1111ee8bcba4 7568 }
AzureIoTClient 23:1111ee8bcba4 7569 else
AzureIoTClient 23:1111ee8bcba4 7570 {
AzureIoTClient 23:1111ee8bcba4 7571 result = 0;
AzureIoTClient 23:1111ee8bcba4 7572 }
AzureIoTClient 23:1111ee8bcba4 7573 }
AzureIoTClient 23:1111ee8bcba4 7574 }
Azure.IoT Build 0:6ae2f7bca550 7575 }
Azure.IoT Build 0:6ae2f7bca550 7576 }
Azure.IoT Build 0:6ae2f7bca550 7577
Azure.IoT Build 0:6ae2f7bca550 7578 return result;
Azure.IoT Build 0:6ae2f7bca550 7579 }
Azure.IoT Build 0:6ae2f7bca550 7580
Azure.IoT Build 0:6ae2f7bca550 7581 int transfer_set_aborted(TRANSFER_HANDLE transfer, bool aborted_value)
Azure.IoT Build 0:6ae2f7bca550 7582 {
Azure.IoT Build 0:6ae2f7bca550 7583 int result;
Azure.IoT Build 0:6ae2f7bca550 7584
Azure.IoT Build 0:6ae2f7bca550 7585 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7586 {
AzureIoTClient 19:000ab4e6a2c1 7587 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7588 }
Azure.IoT Build 0:6ae2f7bca550 7589 else
Azure.IoT Build 0:6ae2f7bca550 7590 {
Azure.IoT Build 0:6ae2f7bca550 7591 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 7592 AMQP_VALUE aborted_amqp_value = amqpvalue_create_boolean(aborted_value);
Azure.IoT Build 0:6ae2f7bca550 7593 if (aborted_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7594 {
AzureIoTClient 19:000ab4e6a2c1 7595 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7596 }
Azure.IoT Build 0:6ae2f7bca550 7597 else
Azure.IoT Build 0:6ae2f7bca550 7598 {
Azure.IoT Build 0:6ae2f7bca550 7599 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 9, aborted_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 7600 {
AzureIoTClient 19:000ab4e6a2c1 7601 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7602 }
Azure.IoT Build 0:6ae2f7bca550 7603 else
Azure.IoT Build 0:6ae2f7bca550 7604 {
Azure.IoT Build 0:6ae2f7bca550 7605 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7606 }
Azure.IoT Build 0:6ae2f7bca550 7607
Azure.IoT Build 0:6ae2f7bca550 7608 amqpvalue_destroy(aborted_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7609 }
Azure.IoT Build 0:6ae2f7bca550 7610 }
Azure.IoT Build 0:6ae2f7bca550 7611
Azure.IoT Build 0:6ae2f7bca550 7612 return result;
Azure.IoT Build 0:6ae2f7bca550 7613 }
Azure.IoT Build 0:6ae2f7bca550 7614
Azure.IoT Build 0:6ae2f7bca550 7615 int transfer_get_batchable(TRANSFER_HANDLE transfer, bool* batchable_value)
Azure.IoT Build 0:6ae2f7bca550 7616 {
Azure.IoT Build 0:6ae2f7bca550 7617 int result;
Azure.IoT Build 0:6ae2f7bca550 7618
Azure.IoT Build 0:6ae2f7bca550 7619 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7620 {
AzureIoTClient 19:000ab4e6a2c1 7621 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7622 }
Azure.IoT Build 0:6ae2f7bca550 7623 else
Azure.IoT Build 0:6ae2f7bca550 7624 {
AzureIoTClient 23:1111ee8bcba4 7625 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 7626 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7627 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7628 {
AzureIoTClient 23:1111ee8bcba4 7629 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7630 }
AzureIoTClient 23:1111ee8bcba4 7631 else
AzureIoTClient 23:1111ee8bcba4 7632 {
AzureIoTClient 23:1111ee8bcba4 7633 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 7634 {
AzureIoTClient 23:1111ee8bcba4 7635 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 7636 result = 0;
AzureIoTClient 23:1111ee8bcba4 7637 }
AzureIoTClient 23:1111ee8bcba4 7638 else
AzureIoTClient 23:1111ee8bcba4 7639 {
AzureIoTClient 23:1111ee8bcba4 7640 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 10);
AzureIoTClient 23:1111ee8bcba4 7641 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 7642 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 7643 {
AzureIoTClient 16:22a72cf8e416 7644 *batchable_value = false;
AzureIoTClient 16:22a72cf8e416 7645 result = 0;
AzureIoTClient 23:1111ee8bcba4 7646 }
AzureIoTClient 23:1111ee8bcba4 7647 else
AzureIoTClient 23:1111ee8bcba4 7648 {
AzureIoTClient 23:1111ee8bcba4 7649 if (amqpvalue_get_boolean(item_value, batchable_value) != 0)
AzureIoTClient 23:1111ee8bcba4 7650 {
AzureIoTClient 23:1111ee8bcba4 7651 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7652 {
AzureIoTClient 23:1111ee8bcba4 7653 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7654 }
AzureIoTClient 23:1111ee8bcba4 7655 else
AzureIoTClient 23:1111ee8bcba4 7656 {
AzureIoTClient 23:1111ee8bcba4 7657 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 7658 result = 0;
AzureIoTClient 23:1111ee8bcba4 7659 }
AzureIoTClient 23:1111ee8bcba4 7660 }
AzureIoTClient 23:1111ee8bcba4 7661 else
AzureIoTClient 23:1111ee8bcba4 7662 {
AzureIoTClient 23:1111ee8bcba4 7663 result = 0;
AzureIoTClient 23:1111ee8bcba4 7664 }
AzureIoTClient 23:1111ee8bcba4 7665 }
AzureIoTClient 23:1111ee8bcba4 7666 }
Azure.IoT Build 0:6ae2f7bca550 7667 }
Azure.IoT Build 0:6ae2f7bca550 7668 }
Azure.IoT Build 0:6ae2f7bca550 7669
Azure.IoT Build 0:6ae2f7bca550 7670 return result;
Azure.IoT Build 0:6ae2f7bca550 7671 }
Azure.IoT Build 0:6ae2f7bca550 7672
Azure.IoT Build 0:6ae2f7bca550 7673 int transfer_set_batchable(TRANSFER_HANDLE transfer, bool batchable_value)
Azure.IoT Build 0:6ae2f7bca550 7674 {
Azure.IoT Build 0:6ae2f7bca550 7675 int result;
Azure.IoT Build 0:6ae2f7bca550 7676
Azure.IoT Build 0:6ae2f7bca550 7677 if (transfer == NULL)
Azure.IoT Build 0:6ae2f7bca550 7678 {
AzureIoTClient 19:000ab4e6a2c1 7679 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7680 }
Azure.IoT Build 0:6ae2f7bca550 7681 else
Azure.IoT Build 0:6ae2f7bca550 7682 {
Azure.IoT Build 0:6ae2f7bca550 7683 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
Azure.IoT Build 0:6ae2f7bca550 7684 AMQP_VALUE batchable_amqp_value = amqpvalue_create_boolean(batchable_value);
Azure.IoT Build 0:6ae2f7bca550 7685 if (batchable_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7686 {
AzureIoTClient 19:000ab4e6a2c1 7687 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7688 }
Azure.IoT Build 0:6ae2f7bca550 7689 else
Azure.IoT Build 0:6ae2f7bca550 7690 {
Azure.IoT Build 0:6ae2f7bca550 7691 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 10, batchable_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 7692 {
AzureIoTClient 19:000ab4e6a2c1 7693 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7694 }
Azure.IoT Build 0:6ae2f7bca550 7695 else
Azure.IoT Build 0:6ae2f7bca550 7696 {
Azure.IoT Build 0:6ae2f7bca550 7697 result = 0;
Azure.IoT Build 0:6ae2f7bca550 7698 }
Azure.IoT Build 0:6ae2f7bca550 7699
Azure.IoT Build 0:6ae2f7bca550 7700 amqpvalue_destroy(batchable_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7701 }
Azure.IoT Build 0:6ae2f7bca550 7702 }
Azure.IoT Build 0:6ae2f7bca550 7703
Azure.IoT Build 0:6ae2f7bca550 7704 return result;
Azure.IoT Build 0:6ae2f7bca550 7705 }
Azure.IoT Build 0:6ae2f7bca550 7706
Azure.IoT Build 0:6ae2f7bca550 7707
Azure.IoT Build 0:6ae2f7bca550 7708 /* disposition */
Azure.IoT Build 0:6ae2f7bca550 7709
Azure.IoT Build 0:6ae2f7bca550 7710 typedef struct DISPOSITION_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 7711 {
Azure.IoT Build 0:6ae2f7bca550 7712 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 7713 } DISPOSITION_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 7714
Azure.IoT Build 0:6ae2f7bca550 7715 static DISPOSITION_HANDLE disposition_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 7716 {
AzureIoTClient 21:f9c433d8e6ca 7717 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 7718 if (disposition_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 7719 {
Azure.IoT Build 0:6ae2f7bca550 7720 disposition_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 7721 }
Azure.IoT Build 0:6ae2f7bca550 7722
Azure.IoT Build 0:6ae2f7bca550 7723 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 7724 }
Azure.IoT Build 0:6ae2f7bca550 7725
Azure.IoT Build 0:6ae2f7bca550 7726 DISPOSITION_HANDLE disposition_create(role role_value, delivery_number first_value)
Azure.IoT Build 0:6ae2f7bca550 7727 {
AzureIoTClient 21:f9c433d8e6ca 7728 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 7729 if (disposition_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 7730 {
Azure.IoT Build 0:6ae2f7bca550 7731 disposition_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(21);
Azure.IoT Build 0:6ae2f7bca550 7732 if (disposition_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7733 {
AzureIoTClient 21:f9c433d8e6ca 7734 free(disposition_instance);
Azure.IoT Build 0:6ae2f7bca550 7735 disposition_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 7736 }
Azure.IoT Build 0:6ae2f7bca550 7737 else
Azure.IoT Build 0:6ae2f7bca550 7738 {
Azure.IoT Build 0:6ae2f7bca550 7739 AMQP_VALUE role_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 7740 AMQP_VALUE first_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 7741 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 7742
Azure.IoT Build 0:6ae2f7bca550 7743 role_amqp_value = amqpvalue_create_role(role_value);
Azure.IoT Build 0:6ae2f7bca550 7744 if ((result == 0) && (amqpvalue_set_composite_item(disposition_instance->composite_value, 0, role_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 7745 {
AzureIoTClient 19:000ab4e6a2c1 7746 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7747 }
Azure.IoT Build 0:6ae2f7bca550 7748 first_amqp_value = amqpvalue_create_delivery_number(first_value);
Azure.IoT Build 0:6ae2f7bca550 7749 if ((result == 0) && (amqpvalue_set_composite_item(disposition_instance->composite_value, 1, first_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 7750 {
AzureIoTClient 19:000ab4e6a2c1 7751 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7752 }
Azure.IoT Build 0:6ae2f7bca550 7753
Azure.IoT Build 0:6ae2f7bca550 7754 amqpvalue_destroy(role_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7755 amqpvalue_destroy(first_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 7756 }
Azure.IoT Build 0:6ae2f7bca550 7757 }
Azure.IoT Build 0:6ae2f7bca550 7758
Azure.IoT Build 0:6ae2f7bca550 7759 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 7760 }
Azure.IoT Build 0:6ae2f7bca550 7761
Azure.IoT Build 0:6ae2f7bca550 7762 DISPOSITION_HANDLE disposition_clone(DISPOSITION_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 7763 {
AzureIoTClient 21:f9c433d8e6ca 7764 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 7765 if (disposition_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 7766 {
Azure.IoT Build 0:6ae2f7bca550 7767 disposition_instance->composite_value = amqpvalue_clone(((DISPOSITION_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 7768 if (disposition_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7769 {
AzureIoTClient 21:f9c433d8e6ca 7770 free(disposition_instance);
Azure.IoT Build 0:6ae2f7bca550 7771 disposition_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 7772 }
Azure.IoT Build 0:6ae2f7bca550 7773 }
Azure.IoT Build 0:6ae2f7bca550 7774
Azure.IoT Build 0:6ae2f7bca550 7775 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 7776 }
Azure.IoT Build 0:6ae2f7bca550 7777
Azure.IoT Build 0:6ae2f7bca550 7778 void disposition_destroy(DISPOSITION_HANDLE disposition)
Azure.IoT Build 0:6ae2f7bca550 7779 {
Azure.IoT Build 0:6ae2f7bca550 7780 if (disposition != NULL)
Azure.IoT Build 0:6ae2f7bca550 7781 {
Azure.IoT Build 0:6ae2f7bca550 7782 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
Azure.IoT Build 0:6ae2f7bca550 7783 amqpvalue_destroy(disposition_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 7784 free(disposition_instance);
Azure.IoT Build 0:6ae2f7bca550 7785 }
Azure.IoT Build 0:6ae2f7bca550 7786 }
Azure.IoT Build 0:6ae2f7bca550 7787
Azure.IoT Build 0:6ae2f7bca550 7788 AMQP_VALUE amqpvalue_create_disposition(DISPOSITION_HANDLE disposition)
Azure.IoT Build 0:6ae2f7bca550 7789 {
Azure.IoT Build 0:6ae2f7bca550 7790 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 7791
Azure.IoT Build 0:6ae2f7bca550 7792 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 7793 {
Azure.IoT Build 0:6ae2f7bca550 7794 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 7795 }
Azure.IoT Build 0:6ae2f7bca550 7796 else
Azure.IoT Build 0:6ae2f7bca550 7797 {
Azure.IoT Build 0:6ae2f7bca550 7798 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
Azure.IoT Build 0:6ae2f7bca550 7799 result = amqpvalue_clone(disposition_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 7800 }
Azure.IoT Build 0:6ae2f7bca550 7801
Azure.IoT Build 0:6ae2f7bca550 7802 return result;
Azure.IoT Build 0:6ae2f7bca550 7803 }
Azure.IoT Build 0:6ae2f7bca550 7804
Azure.IoT Build 0:6ae2f7bca550 7805 bool is_disposition_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 7806 {
Azure.IoT Build 0:6ae2f7bca550 7807 bool result;
Azure.IoT Build 0:6ae2f7bca550 7808
Azure.IoT Build 0:6ae2f7bca550 7809 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 7810 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 7811 (descriptor_ulong == 21))
Azure.IoT Build 0:6ae2f7bca550 7812 {
Azure.IoT Build 0:6ae2f7bca550 7813 result = true;
Azure.IoT Build 0:6ae2f7bca550 7814 }
Azure.IoT Build 0:6ae2f7bca550 7815 else
Azure.IoT Build 0:6ae2f7bca550 7816 {
Azure.IoT Build 0:6ae2f7bca550 7817 result = false;
Azure.IoT Build 0:6ae2f7bca550 7818 }
Azure.IoT Build 0:6ae2f7bca550 7819
Azure.IoT Build 0:6ae2f7bca550 7820 return result;
Azure.IoT Build 0:6ae2f7bca550 7821 }
Azure.IoT Build 0:6ae2f7bca550 7822
Azure.IoT Build 0:6ae2f7bca550 7823
Azure.IoT Build 0:6ae2f7bca550 7824 int amqpvalue_get_disposition(AMQP_VALUE value, DISPOSITION_HANDLE* disposition_handle)
Azure.IoT Build 0:6ae2f7bca550 7825 {
Azure.IoT Build 0:6ae2f7bca550 7826 int result;
Azure.IoT Build 0:6ae2f7bca550 7827 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition_create_internal();
Azure.IoT Build 0:6ae2f7bca550 7828 *disposition_handle = disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 7829 if (*disposition_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 7830 {
AzureIoTClient 19:000ab4e6a2c1 7831 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7832 }
Azure.IoT Build 0:6ae2f7bca550 7833 else
Azure.IoT Build 0:6ae2f7bca550 7834 {
Azure.IoT Build 0:6ae2f7bca550 7835 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 7836 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 7837 {
Azure.IoT Build 0:6ae2f7bca550 7838 disposition_destroy(*disposition_handle);
AzureIoTClient 19:000ab4e6a2c1 7839 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 7840 }
Azure.IoT Build 0:6ae2f7bca550 7841 else
Azure.IoT Build 0:6ae2f7bca550 7842 {
AzureIoTClient 23:1111ee8bcba4 7843 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 7844 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7845 {
AzureIoTClient 23:1111ee8bcba4 7846 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7847 }
AzureIoTClient 23:1111ee8bcba4 7848 else
AzureIoTClient 23:1111ee8bcba4 7849 {
AzureIoTClient 23:1111ee8bcba4 7850 do
AzureIoTClient 23:1111ee8bcba4 7851 {
AzureIoTClient 23:1111ee8bcba4 7852 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 7853 /* role */
AzureIoTClient 23:1111ee8bcba4 7854 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 7855 {
AzureIoTClient 23:1111ee8bcba4 7856 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 7857 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7858 {
AzureIoTClient 23:1111ee8bcba4 7859 {
AzureIoTClient 23:1111ee8bcba4 7860 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 7861 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7862 break;
AzureIoTClient 23:1111ee8bcba4 7863 }
AzureIoTClient 23:1111ee8bcba4 7864 }
AzureIoTClient 23:1111ee8bcba4 7865 else
AzureIoTClient 23:1111ee8bcba4 7866 {
AzureIoTClient 25:1101516ee67d 7867 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 7868 {
AzureIoTClient 25:1101516ee67d 7869 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7870 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 7871 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7872 break;
AzureIoTClient 23:1111ee8bcba4 7873 }
AzureIoTClient 23:1111ee8bcba4 7874 else
AzureIoTClient 23:1111ee8bcba4 7875 {
AzureIoTClient 25:1101516ee67d 7876 role role;
AzureIoTClient 23:1111ee8bcba4 7877 if (amqpvalue_get_role(item_value, &role) != 0)
AzureIoTClient 23:1111ee8bcba4 7878 {
AzureIoTClient 25:1101516ee67d 7879 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7880 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 7881 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7882 break;
AzureIoTClient 23:1111ee8bcba4 7883 }
AzureIoTClient 23:1111ee8bcba4 7884 }
AzureIoTClient 23:1111ee8bcba4 7885
AzureIoTClient 23:1111ee8bcba4 7886 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7887 }
AzureIoTClient 23:1111ee8bcba4 7888 }
AzureIoTClient 23:1111ee8bcba4 7889 else
AzureIoTClient 23:1111ee8bcba4 7890 {
AzureIoTClient 23:1111ee8bcba4 7891 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7892 }
AzureIoTClient 23:1111ee8bcba4 7893 /* first */
AzureIoTClient 23:1111ee8bcba4 7894 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 7895 {
AzureIoTClient 23:1111ee8bcba4 7896 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 7897 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7898 {
AzureIoTClient 23:1111ee8bcba4 7899 {
AzureIoTClient 23:1111ee8bcba4 7900 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 7901 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7902 break;
AzureIoTClient 23:1111ee8bcba4 7903 }
AzureIoTClient 23:1111ee8bcba4 7904 }
AzureIoTClient 23:1111ee8bcba4 7905 else
AzureIoTClient 23:1111ee8bcba4 7906 {
AzureIoTClient 25:1101516ee67d 7907 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 7908 {
AzureIoTClient 25:1101516ee67d 7909 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7910 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 7911 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7912 break;
AzureIoTClient 23:1111ee8bcba4 7913 }
AzureIoTClient 23:1111ee8bcba4 7914 else
AzureIoTClient 23:1111ee8bcba4 7915 {
AzureIoTClient 25:1101516ee67d 7916 delivery_number first;
AzureIoTClient 23:1111ee8bcba4 7917 if (amqpvalue_get_delivery_number(item_value, &first) != 0)
AzureIoTClient 23:1111ee8bcba4 7918 {
AzureIoTClient 25:1101516ee67d 7919 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7920 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 7921 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7922 break;
AzureIoTClient 23:1111ee8bcba4 7923 }
AzureIoTClient 23:1111ee8bcba4 7924 }
AzureIoTClient 23:1111ee8bcba4 7925
AzureIoTClient 23:1111ee8bcba4 7926 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7927 }
AzureIoTClient 23:1111ee8bcba4 7928 }
AzureIoTClient 23:1111ee8bcba4 7929 else
AzureIoTClient 23:1111ee8bcba4 7930 {
AzureIoTClient 23:1111ee8bcba4 7931 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7932 }
AzureIoTClient 23:1111ee8bcba4 7933 /* last */
AzureIoTClient 23:1111ee8bcba4 7934 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 7935 {
AzureIoTClient 23:1111ee8bcba4 7936 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 7937 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7938 {
AzureIoTClient 23:1111ee8bcba4 7939 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 7940 }
AzureIoTClient 23:1111ee8bcba4 7941 else
AzureIoTClient 23:1111ee8bcba4 7942 {
AzureIoTClient 25:1101516ee67d 7943 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 7944 {
AzureIoTClient 25:1101516ee67d 7945 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 7946 }
AzureIoTClient 25:1101516ee67d 7947 else
AzureIoTClient 25:1101516ee67d 7948 {
AzureIoTClient 25:1101516ee67d 7949 delivery_number last;
AzureIoTClient 23:1111ee8bcba4 7950 if (amqpvalue_get_delivery_number(item_value, &last) != 0)
AzureIoTClient 23:1111ee8bcba4 7951 {
AzureIoTClient 25:1101516ee67d 7952 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7953 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 7954 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7955 break;
AzureIoTClient 23:1111ee8bcba4 7956 }
AzureIoTClient 23:1111ee8bcba4 7957 }
AzureIoTClient 23:1111ee8bcba4 7958
AzureIoTClient 23:1111ee8bcba4 7959 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7960 }
AzureIoTClient 23:1111ee8bcba4 7961 }
AzureIoTClient 23:1111ee8bcba4 7962 /* settled */
AzureIoTClient 23:1111ee8bcba4 7963 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 7964 {
AzureIoTClient 23:1111ee8bcba4 7965 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 7966 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7967 {
AzureIoTClient 23:1111ee8bcba4 7968 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 7969 }
AzureIoTClient 23:1111ee8bcba4 7970 else
AzureIoTClient 23:1111ee8bcba4 7971 {
AzureIoTClient 25:1101516ee67d 7972 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 7973 {
AzureIoTClient 25:1101516ee67d 7974 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 7975 }
AzureIoTClient 25:1101516ee67d 7976 else
AzureIoTClient 25:1101516ee67d 7977 {
AzureIoTClient 25:1101516ee67d 7978 bool settled;
AzureIoTClient 23:1111ee8bcba4 7979 if (amqpvalue_get_boolean(item_value, &settled) != 0)
AzureIoTClient 23:1111ee8bcba4 7980 {
AzureIoTClient 25:1101516ee67d 7981 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7982 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 7983 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7984 break;
AzureIoTClient 23:1111ee8bcba4 7985 }
AzureIoTClient 23:1111ee8bcba4 7986 }
AzureIoTClient 23:1111ee8bcba4 7987
AzureIoTClient 23:1111ee8bcba4 7988 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 7989 }
AzureIoTClient 23:1111ee8bcba4 7990 }
AzureIoTClient 23:1111ee8bcba4 7991 /* state */
AzureIoTClient 23:1111ee8bcba4 7992 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 7993 {
AzureIoTClient 23:1111ee8bcba4 7994 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 7995 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7996 {
AzureIoTClient 23:1111ee8bcba4 7997 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 7998 }
AzureIoTClient 23:1111ee8bcba4 7999 else
AzureIoTClient 23:1111ee8bcba4 8000 {
AzureIoTClient 23:1111ee8bcba4 8001 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8002 }
AzureIoTClient 23:1111ee8bcba4 8003 }
AzureIoTClient 23:1111ee8bcba4 8004 /* batchable */
AzureIoTClient 23:1111ee8bcba4 8005 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 8006 {
AzureIoTClient 23:1111ee8bcba4 8007 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 8008 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 8009 {
AzureIoTClient 23:1111ee8bcba4 8010 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 8011 }
AzureIoTClient 23:1111ee8bcba4 8012 else
AzureIoTClient 23:1111ee8bcba4 8013 {
AzureIoTClient 25:1101516ee67d 8014 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 8015 {
AzureIoTClient 25:1101516ee67d 8016 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 8017 }
AzureIoTClient 25:1101516ee67d 8018 else
AzureIoTClient 25:1101516ee67d 8019 {
AzureIoTClient 25:1101516ee67d 8020 bool batchable;
AzureIoTClient 23:1111ee8bcba4 8021 if (amqpvalue_get_boolean(item_value, &batchable) != 0)
AzureIoTClient 23:1111ee8bcba4 8022 {
AzureIoTClient 25:1101516ee67d 8023 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8024 disposition_destroy(*disposition_handle);
AzureIoTClient 23:1111ee8bcba4 8025 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8026 break;
AzureIoTClient 23:1111ee8bcba4 8027 }
AzureIoTClient 23:1111ee8bcba4 8028 }
AzureIoTClient 23:1111ee8bcba4 8029
AzureIoTClient 23:1111ee8bcba4 8030 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8031 }
AzureIoTClient 23:1111ee8bcba4 8032 }
AzureIoTClient 23:1111ee8bcba4 8033
AzureIoTClient 23:1111ee8bcba4 8034 disposition_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 8035
AzureIoTClient 23:1111ee8bcba4 8036 result = 0;
AzureIoTClient 23:1111ee8bcba4 8037 } while (0);
AzureIoTClient 23:1111ee8bcba4 8038 }
Azure.IoT Build 0:6ae2f7bca550 8039 }
Azure.IoT Build 0:6ae2f7bca550 8040 }
Azure.IoT Build 0:6ae2f7bca550 8041
Azure.IoT Build 0:6ae2f7bca550 8042 return result;
Azure.IoT Build 0:6ae2f7bca550 8043 }
Azure.IoT Build 0:6ae2f7bca550 8044
Azure.IoT Build 0:6ae2f7bca550 8045 int disposition_get_role(DISPOSITION_HANDLE disposition, role* role_value)
Azure.IoT Build 0:6ae2f7bca550 8046 {
Azure.IoT Build 0:6ae2f7bca550 8047 int result;
Azure.IoT Build 0:6ae2f7bca550 8048
Azure.IoT Build 0:6ae2f7bca550 8049 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8050 {
AzureIoTClient 19:000ab4e6a2c1 8051 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8052 }
Azure.IoT Build 0:6ae2f7bca550 8053 else
Azure.IoT Build 0:6ae2f7bca550 8054 {
AzureIoTClient 23:1111ee8bcba4 8055 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8056 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8057 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8058 {
AzureIoTClient 23:1111ee8bcba4 8059 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8060 }
AzureIoTClient 23:1111ee8bcba4 8061 else
AzureIoTClient 23:1111ee8bcba4 8062 {
AzureIoTClient 23:1111ee8bcba4 8063 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 8064 {
AzureIoTClient 23:1111ee8bcba4 8065 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8066 }
AzureIoTClient 23:1111ee8bcba4 8067 else
AzureIoTClient 23:1111ee8bcba4 8068 {
AzureIoTClient 23:1111ee8bcba4 8069 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 8070 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 8071 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 8072 {
AzureIoTClient 23:1111ee8bcba4 8073 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8074 }
AzureIoTClient 23:1111ee8bcba4 8075 else
AzureIoTClient 23:1111ee8bcba4 8076 {
AzureIoTClient 23:1111ee8bcba4 8077 if (amqpvalue_get_role(item_value, role_value) != 0)
AzureIoTClient 23:1111ee8bcba4 8078 {
AzureIoTClient 23:1111ee8bcba4 8079 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8080 }
AzureIoTClient 23:1111ee8bcba4 8081 else
AzureIoTClient 23:1111ee8bcba4 8082 {
AzureIoTClient 23:1111ee8bcba4 8083 result = 0;
AzureIoTClient 23:1111ee8bcba4 8084 }
AzureIoTClient 23:1111ee8bcba4 8085 }
AzureIoTClient 23:1111ee8bcba4 8086 }
Azure.IoT Build 0:6ae2f7bca550 8087 }
Azure.IoT Build 0:6ae2f7bca550 8088 }
Azure.IoT Build 0:6ae2f7bca550 8089
Azure.IoT Build 0:6ae2f7bca550 8090 return result;
Azure.IoT Build 0:6ae2f7bca550 8091 }
Azure.IoT Build 0:6ae2f7bca550 8092
Azure.IoT Build 0:6ae2f7bca550 8093 int disposition_set_role(DISPOSITION_HANDLE disposition, role role_value)
Azure.IoT Build 0:6ae2f7bca550 8094 {
Azure.IoT Build 0:6ae2f7bca550 8095 int result;
Azure.IoT Build 0:6ae2f7bca550 8096
Azure.IoT Build 0:6ae2f7bca550 8097 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8098 {
AzureIoTClient 19:000ab4e6a2c1 8099 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8100 }
Azure.IoT Build 0:6ae2f7bca550 8101 else
Azure.IoT Build 0:6ae2f7bca550 8102 {
Azure.IoT Build 0:6ae2f7bca550 8103 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
Azure.IoT Build 0:6ae2f7bca550 8104 AMQP_VALUE role_amqp_value = amqpvalue_create_role(role_value);
Azure.IoT Build 0:6ae2f7bca550 8105 if (role_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8106 {
AzureIoTClient 19:000ab4e6a2c1 8107 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8108 }
Azure.IoT Build 0:6ae2f7bca550 8109 else
Azure.IoT Build 0:6ae2f7bca550 8110 {
Azure.IoT Build 0:6ae2f7bca550 8111 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 0, role_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 8112 {
AzureIoTClient 19:000ab4e6a2c1 8113 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8114 }
Azure.IoT Build 0:6ae2f7bca550 8115 else
Azure.IoT Build 0:6ae2f7bca550 8116 {
Azure.IoT Build 0:6ae2f7bca550 8117 result = 0;
Azure.IoT Build 0:6ae2f7bca550 8118 }
Azure.IoT Build 0:6ae2f7bca550 8119
Azure.IoT Build 0:6ae2f7bca550 8120 amqpvalue_destroy(role_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8121 }
Azure.IoT Build 0:6ae2f7bca550 8122 }
Azure.IoT Build 0:6ae2f7bca550 8123
Azure.IoT Build 0:6ae2f7bca550 8124 return result;
Azure.IoT Build 0:6ae2f7bca550 8125 }
Azure.IoT Build 0:6ae2f7bca550 8126
Azure.IoT Build 0:6ae2f7bca550 8127 int disposition_get_first(DISPOSITION_HANDLE disposition, delivery_number* first_value)
Azure.IoT Build 0:6ae2f7bca550 8128 {
Azure.IoT Build 0:6ae2f7bca550 8129 int result;
Azure.IoT Build 0:6ae2f7bca550 8130
Azure.IoT Build 0:6ae2f7bca550 8131 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8132 {
AzureIoTClient 19:000ab4e6a2c1 8133 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8134 }
Azure.IoT Build 0:6ae2f7bca550 8135 else
Azure.IoT Build 0:6ae2f7bca550 8136 {
AzureIoTClient 23:1111ee8bcba4 8137 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8138 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8139 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8140 {
AzureIoTClient 23:1111ee8bcba4 8141 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8142 }
AzureIoTClient 23:1111ee8bcba4 8143 else
AzureIoTClient 23:1111ee8bcba4 8144 {
AzureIoTClient 23:1111ee8bcba4 8145 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 8146 {
AzureIoTClient 23:1111ee8bcba4 8147 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8148 }
AzureIoTClient 23:1111ee8bcba4 8149 else
AzureIoTClient 23:1111ee8bcba4 8150 {
AzureIoTClient 23:1111ee8bcba4 8151 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 8152 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 8153 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 8154 {
AzureIoTClient 23:1111ee8bcba4 8155 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8156 }
AzureIoTClient 23:1111ee8bcba4 8157 else
AzureIoTClient 23:1111ee8bcba4 8158 {
AzureIoTClient 23:1111ee8bcba4 8159 if (amqpvalue_get_delivery_number(item_value, first_value) != 0)
AzureIoTClient 23:1111ee8bcba4 8160 {
AzureIoTClient 23:1111ee8bcba4 8161 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8162 }
AzureIoTClient 23:1111ee8bcba4 8163 else
AzureIoTClient 23:1111ee8bcba4 8164 {
AzureIoTClient 23:1111ee8bcba4 8165 result = 0;
AzureIoTClient 23:1111ee8bcba4 8166 }
AzureIoTClient 23:1111ee8bcba4 8167 }
AzureIoTClient 23:1111ee8bcba4 8168 }
Azure.IoT Build 0:6ae2f7bca550 8169 }
Azure.IoT Build 0:6ae2f7bca550 8170 }
Azure.IoT Build 0:6ae2f7bca550 8171
Azure.IoT Build 0:6ae2f7bca550 8172 return result;
Azure.IoT Build 0:6ae2f7bca550 8173 }
Azure.IoT Build 0:6ae2f7bca550 8174
Azure.IoT Build 0:6ae2f7bca550 8175 int disposition_set_first(DISPOSITION_HANDLE disposition, delivery_number first_value)
Azure.IoT Build 0:6ae2f7bca550 8176 {
Azure.IoT Build 0:6ae2f7bca550 8177 int result;
Azure.IoT Build 0:6ae2f7bca550 8178
Azure.IoT Build 0:6ae2f7bca550 8179 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8180 {
AzureIoTClient 19:000ab4e6a2c1 8181 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8182 }
Azure.IoT Build 0:6ae2f7bca550 8183 else
Azure.IoT Build 0:6ae2f7bca550 8184 {
Azure.IoT Build 0:6ae2f7bca550 8185 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
Azure.IoT Build 0:6ae2f7bca550 8186 AMQP_VALUE first_amqp_value = amqpvalue_create_delivery_number(first_value);
Azure.IoT Build 0:6ae2f7bca550 8187 if (first_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8188 {
AzureIoTClient 19:000ab4e6a2c1 8189 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8190 }
Azure.IoT Build 0:6ae2f7bca550 8191 else
Azure.IoT Build 0:6ae2f7bca550 8192 {
Azure.IoT Build 0:6ae2f7bca550 8193 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 1, first_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 8194 {
AzureIoTClient 19:000ab4e6a2c1 8195 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8196 }
Azure.IoT Build 0:6ae2f7bca550 8197 else
Azure.IoT Build 0:6ae2f7bca550 8198 {
Azure.IoT Build 0:6ae2f7bca550 8199 result = 0;
Azure.IoT Build 0:6ae2f7bca550 8200 }
Azure.IoT Build 0:6ae2f7bca550 8201
Azure.IoT Build 0:6ae2f7bca550 8202 amqpvalue_destroy(first_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8203 }
Azure.IoT Build 0:6ae2f7bca550 8204 }
Azure.IoT Build 0:6ae2f7bca550 8205
Azure.IoT Build 0:6ae2f7bca550 8206 return result;
Azure.IoT Build 0:6ae2f7bca550 8207 }
Azure.IoT Build 0:6ae2f7bca550 8208
Azure.IoT Build 0:6ae2f7bca550 8209 int disposition_get_last(DISPOSITION_HANDLE disposition, delivery_number* last_value)
Azure.IoT Build 0:6ae2f7bca550 8210 {
Azure.IoT Build 0:6ae2f7bca550 8211 int result;
Azure.IoT Build 0:6ae2f7bca550 8212
Azure.IoT Build 0:6ae2f7bca550 8213 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8214 {
AzureIoTClient 19:000ab4e6a2c1 8215 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8216 }
Azure.IoT Build 0:6ae2f7bca550 8217 else
Azure.IoT Build 0:6ae2f7bca550 8218 {
AzureIoTClient 23:1111ee8bcba4 8219 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8220 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8221 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8222 {
AzureIoTClient 23:1111ee8bcba4 8223 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8224 }
AzureIoTClient 23:1111ee8bcba4 8225 else
AzureIoTClient 23:1111ee8bcba4 8226 {
AzureIoTClient 23:1111ee8bcba4 8227 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 8228 {
AzureIoTClient 23:1111ee8bcba4 8229 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8230 }
AzureIoTClient 23:1111ee8bcba4 8231 else
AzureIoTClient 23:1111ee8bcba4 8232 {
AzureIoTClient 23:1111ee8bcba4 8233 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 8234 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 8235 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 8236 {
AzureIoTClient 23:1111ee8bcba4 8237 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8238 }
AzureIoTClient 23:1111ee8bcba4 8239 else
AzureIoTClient 23:1111ee8bcba4 8240 {
AzureIoTClient 23:1111ee8bcba4 8241 if (amqpvalue_get_delivery_number(item_value, last_value) != 0)
AzureIoTClient 23:1111ee8bcba4 8242 {
AzureIoTClient 23:1111ee8bcba4 8243 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8244 }
AzureIoTClient 23:1111ee8bcba4 8245 else
AzureIoTClient 23:1111ee8bcba4 8246 {
AzureIoTClient 23:1111ee8bcba4 8247 result = 0;
AzureIoTClient 23:1111ee8bcba4 8248 }
AzureIoTClient 23:1111ee8bcba4 8249 }
AzureIoTClient 23:1111ee8bcba4 8250 }
Azure.IoT Build 0:6ae2f7bca550 8251 }
Azure.IoT Build 0:6ae2f7bca550 8252 }
Azure.IoT Build 0:6ae2f7bca550 8253
Azure.IoT Build 0:6ae2f7bca550 8254 return result;
Azure.IoT Build 0:6ae2f7bca550 8255 }
Azure.IoT Build 0:6ae2f7bca550 8256
Azure.IoT Build 0:6ae2f7bca550 8257 int disposition_set_last(DISPOSITION_HANDLE disposition, delivery_number last_value)
Azure.IoT Build 0:6ae2f7bca550 8258 {
Azure.IoT Build 0:6ae2f7bca550 8259 int result;
Azure.IoT Build 0:6ae2f7bca550 8260
Azure.IoT Build 0:6ae2f7bca550 8261 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8262 {
AzureIoTClient 19:000ab4e6a2c1 8263 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8264 }
Azure.IoT Build 0:6ae2f7bca550 8265 else
Azure.IoT Build 0:6ae2f7bca550 8266 {
Azure.IoT Build 0:6ae2f7bca550 8267 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
Azure.IoT Build 0:6ae2f7bca550 8268 AMQP_VALUE last_amqp_value = amqpvalue_create_delivery_number(last_value);
Azure.IoT Build 0:6ae2f7bca550 8269 if (last_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8270 {
AzureIoTClient 19:000ab4e6a2c1 8271 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8272 }
Azure.IoT Build 0:6ae2f7bca550 8273 else
Azure.IoT Build 0:6ae2f7bca550 8274 {
Azure.IoT Build 0:6ae2f7bca550 8275 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 2, last_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 8276 {
AzureIoTClient 19:000ab4e6a2c1 8277 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8278 }
Azure.IoT Build 0:6ae2f7bca550 8279 else
Azure.IoT Build 0:6ae2f7bca550 8280 {
Azure.IoT Build 0:6ae2f7bca550 8281 result = 0;
Azure.IoT Build 0:6ae2f7bca550 8282 }
Azure.IoT Build 0:6ae2f7bca550 8283
Azure.IoT Build 0:6ae2f7bca550 8284 amqpvalue_destroy(last_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8285 }
Azure.IoT Build 0:6ae2f7bca550 8286 }
Azure.IoT Build 0:6ae2f7bca550 8287
Azure.IoT Build 0:6ae2f7bca550 8288 return result;
Azure.IoT Build 0:6ae2f7bca550 8289 }
Azure.IoT Build 0:6ae2f7bca550 8290
Azure.IoT Build 0:6ae2f7bca550 8291 int disposition_get_settled(DISPOSITION_HANDLE disposition, bool* settled_value)
Azure.IoT Build 0:6ae2f7bca550 8292 {
Azure.IoT Build 0:6ae2f7bca550 8293 int result;
Azure.IoT Build 0:6ae2f7bca550 8294
Azure.IoT Build 0:6ae2f7bca550 8295 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8296 {
AzureIoTClient 19:000ab4e6a2c1 8297 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8298 }
Azure.IoT Build 0:6ae2f7bca550 8299 else
Azure.IoT Build 0:6ae2f7bca550 8300 {
AzureIoTClient 23:1111ee8bcba4 8301 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8302 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8303 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8304 {
AzureIoTClient 23:1111ee8bcba4 8305 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8306 }
AzureIoTClient 23:1111ee8bcba4 8307 else
AzureIoTClient 23:1111ee8bcba4 8308 {
AzureIoTClient 23:1111ee8bcba4 8309 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 8310 {
AzureIoTClient 23:1111ee8bcba4 8311 *settled_value = false;
AzureIoTClient 23:1111ee8bcba4 8312 result = 0;
AzureIoTClient 23:1111ee8bcba4 8313 }
AzureIoTClient 23:1111ee8bcba4 8314 else
AzureIoTClient 23:1111ee8bcba4 8315 {
AzureIoTClient 23:1111ee8bcba4 8316 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 8317 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 8318 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 8319 {
AzureIoTClient 16:22a72cf8e416 8320 *settled_value = false;
AzureIoTClient 16:22a72cf8e416 8321 result = 0;
AzureIoTClient 23:1111ee8bcba4 8322 }
AzureIoTClient 23:1111ee8bcba4 8323 else
AzureIoTClient 23:1111ee8bcba4 8324 {
AzureIoTClient 23:1111ee8bcba4 8325 if (amqpvalue_get_boolean(item_value, settled_value) != 0)
AzureIoTClient 23:1111ee8bcba4 8326 {
AzureIoTClient 23:1111ee8bcba4 8327 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8328 {
AzureIoTClient 23:1111ee8bcba4 8329 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8330 }
AzureIoTClient 23:1111ee8bcba4 8331 else
AzureIoTClient 23:1111ee8bcba4 8332 {
AzureIoTClient 23:1111ee8bcba4 8333 *settled_value = false;
AzureIoTClient 23:1111ee8bcba4 8334 result = 0;
AzureIoTClient 23:1111ee8bcba4 8335 }
AzureIoTClient 23:1111ee8bcba4 8336 }
AzureIoTClient 23:1111ee8bcba4 8337 else
AzureIoTClient 23:1111ee8bcba4 8338 {
AzureIoTClient 23:1111ee8bcba4 8339 result = 0;
AzureIoTClient 23:1111ee8bcba4 8340 }
AzureIoTClient 23:1111ee8bcba4 8341 }
AzureIoTClient 23:1111ee8bcba4 8342 }
Azure.IoT Build 0:6ae2f7bca550 8343 }
Azure.IoT Build 0:6ae2f7bca550 8344 }
Azure.IoT Build 0:6ae2f7bca550 8345
Azure.IoT Build 0:6ae2f7bca550 8346 return result;
Azure.IoT Build 0:6ae2f7bca550 8347 }
Azure.IoT Build 0:6ae2f7bca550 8348
Azure.IoT Build 0:6ae2f7bca550 8349 int disposition_set_settled(DISPOSITION_HANDLE disposition, bool settled_value)
Azure.IoT Build 0:6ae2f7bca550 8350 {
Azure.IoT Build 0:6ae2f7bca550 8351 int result;
Azure.IoT Build 0:6ae2f7bca550 8352
Azure.IoT Build 0:6ae2f7bca550 8353 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8354 {
AzureIoTClient 19:000ab4e6a2c1 8355 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8356 }
Azure.IoT Build 0:6ae2f7bca550 8357 else
Azure.IoT Build 0:6ae2f7bca550 8358 {
Azure.IoT Build 0:6ae2f7bca550 8359 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
Azure.IoT Build 0:6ae2f7bca550 8360 AMQP_VALUE settled_amqp_value = amqpvalue_create_boolean(settled_value);
Azure.IoT Build 0:6ae2f7bca550 8361 if (settled_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8362 {
AzureIoTClient 19:000ab4e6a2c1 8363 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8364 }
Azure.IoT Build 0:6ae2f7bca550 8365 else
Azure.IoT Build 0:6ae2f7bca550 8366 {
Azure.IoT Build 0:6ae2f7bca550 8367 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 3, settled_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 8368 {
AzureIoTClient 19:000ab4e6a2c1 8369 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8370 }
Azure.IoT Build 0:6ae2f7bca550 8371 else
Azure.IoT Build 0:6ae2f7bca550 8372 {
Azure.IoT Build 0:6ae2f7bca550 8373 result = 0;
Azure.IoT Build 0:6ae2f7bca550 8374 }
Azure.IoT Build 0:6ae2f7bca550 8375
Azure.IoT Build 0:6ae2f7bca550 8376 amqpvalue_destroy(settled_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8377 }
Azure.IoT Build 0:6ae2f7bca550 8378 }
Azure.IoT Build 0:6ae2f7bca550 8379
Azure.IoT Build 0:6ae2f7bca550 8380 return result;
Azure.IoT Build 0:6ae2f7bca550 8381 }
Azure.IoT Build 0:6ae2f7bca550 8382
Azure.IoT Build 0:6ae2f7bca550 8383 int disposition_get_state(DISPOSITION_HANDLE disposition, AMQP_VALUE* state_value)
Azure.IoT Build 0:6ae2f7bca550 8384 {
Azure.IoT Build 0:6ae2f7bca550 8385 int result;
Azure.IoT Build 0:6ae2f7bca550 8386
Azure.IoT Build 0:6ae2f7bca550 8387 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8388 {
AzureIoTClient 19:000ab4e6a2c1 8389 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8390 }
Azure.IoT Build 0:6ae2f7bca550 8391 else
Azure.IoT Build 0:6ae2f7bca550 8392 {
AzureIoTClient 23:1111ee8bcba4 8393 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8394 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8395 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8396 {
AzureIoTClient 23:1111ee8bcba4 8397 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8398 }
AzureIoTClient 23:1111ee8bcba4 8399 else
AzureIoTClient 23:1111ee8bcba4 8400 {
AzureIoTClient 23:1111ee8bcba4 8401 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 8402 {
AzureIoTClient 23:1111ee8bcba4 8403 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8404 }
AzureIoTClient 23:1111ee8bcba4 8405 else
AzureIoTClient 23:1111ee8bcba4 8406 {
AzureIoTClient 23:1111ee8bcba4 8407 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 8408 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 8409 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 8410 {
AzureIoTClient 23:1111ee8bcba4 8411 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8412 }
AzureIoTClient 23:1111ee8bcba4 8413 else
AzureIoTClient 23:1111ee8bcba4 8414 {
AzureIoTClient 23:1111ee8bcba4 8415 *state_value = item_value;
AzureIoTClient 23:1111ee8bcba4 8416 result = 0;
AzureIoTClient 23:1111ee8bcba4 8417 }
AzureIoTClient 23:1111ee8bcba4 8418 }
Azure.IoT Build 0:6ae2f7bca550 8419 }
Azure.IoT Build 0:6ae2f7bca550 8420 }
Azure.IoT Build 0:6ae2f7bca550 8421
Azure.IoT Build 0:6ae2f7bca550 8422 return result;
Azure.IoT Build 0:6ae2f7bca550 8423 }
Azure.IoT Build 0:6ae2f7bca550 8424
Azure.IoT Build 0:6ae2f7bca550 8425 int disposition_set_state(DISPOSITION_HANDLE disposition, AMQP_VALUE state_value)
Azure.IoT Build 0:6ae2f7bca550 8426 {
Azure.IoT Build 0:6ae2f7bca550 8427 int result;
Azure.IoT Build 0:6ae2f7bca550 8428
Azure.IoT Build 0:6ae2f7bca550 8429 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8430 {
AzureIoTClient 19:000ab4e6a2c1 8431 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8432 }
Azure.IoT Build 0:6ae2f7bca550 8433 else
Azure.IoT Build 0:6ae2f7bca550 8434 {
Azure.IoT Build 0:6ae2f7bca550 8435 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8436 AMQP_VALUE state_amqp_value;
AzureIoTClient 23:1111ee8bcba4 8437 if (state_value == NULL)
AzureIoTClient 23:1111ee8bcba4 8438 {
AzureIoTClient 23:1111ee8bcba4 8439 state_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 8440 }
AzureIoTClient 23:1111ee8bcba4 8441 else
AzureIoTClient 23:1111ee8bcba4 8442 {
AzureIoTClient 23:1111ee8bcba4 8443 state_amqp_value = amqpvalue_clone(state_value);
AzureIoTClient 23:1111ee8bcba4 8444 }
Azure.IoT Build 0:6ae2f7bca550 8445 if (state_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8446 {
AzureIoTClient 19:000ab4e6a2c1 8447 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8448 }
Azure.IoT Build 0:6ae2f7bca550 8449 else
Azure.IoT Build 0:6ae2f7bca550 8450 {
Azure.IoT Build 0:6ae2f7bca550 8451 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 4, state_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 8452 {
AzureIoTClient 19:000ab4e6a2c1 8453 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8454 }
Azure.IoT Build 0:6ae2f7bca550 8455 else
Azure.IoT Build 0:6ae2f7bca550 8456 {
Azure.IoT Build 0:6ae2f7bca550 8457 result = 0;
Azure.IoT Build 0:6ae2f7bca550 8458 }
Azure.IoT Build 0:6ae2f7bca550 8459
Azure.IoT Build 0:6ae2f7bca550 8460 amqpvalue_destroy(state_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8461 }
Azure.IoT Build 0:6ae2f7bca550 8462 }
Azure.IoT Build 0:6ae2f7bca550 8463
Azure.IoT Build 0:6ae2f7bca550 8464 return result;
Azure.IoT Build 0:6ae2f7bca550 8465 }
Azure.IoT Build 0:6ae2f7bca550 8466
Azure.IoT Build 0:6ae2f7bca550 8467 int disposition_get_batchable(DISPOSITION_HANDLE disposition, bool* batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8468 {
Azure.IoT Build 0:6ae2f7bca550 8469 int result;
Azure.IoT Build 0:6ae2f7bca550 8470
Azure.IoT Build 0:6ae2f7bca550 8471 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8472 {
AzureIoTClient 19:000ab4e6a2c1 8473 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8474 }
Azure.IoT Build 0:6ae2f7bca550 8475 else
Azure.IoT Build 0:6ae2f7bca550 8476 {
AzureIoTClient 23:1111ee8bcba4 8477 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8478 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8479 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8480 {
AzureIoTClient 23:1111ee8bcba4 8481 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8482 }
AzureIoTClient 23:1111ee8bcba4 8483 else
AzureIoTClient 23:1111ee8bcba4 8484 {
AzureIoTClient 23:1111ee8bcba4 8485 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 8486 {
AzureIoTClient 23:1111ee8bcba4 8487 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 8488 result = 0;
AzureIoTClient 23:1111ee8bcba4 8489 }
AzureIoTClient 23:1111ee8bcba4 8490 else
AzureIoTClient 23:1111ee8bcba4 8491 {
AzureIoTClient 23:1111ee8bcba4 8492 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 8493 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 8494 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 8495 {
AzureIoTClient 16:22a72cf8e416 8496 *batchable_value = false;
AzureIoTClient 16:22a72cf8e416 8497 result = 0;
AzureIoTClient 23:1111ee8bcba4 8498 }
AzureIoTClient 23:1111ee8bcba4 8499 else
AzureIoTClient 23:1111ee8bcba4 8500 {
AzureIoTClient 23:1111ee8bcba4 8501 if (amqpvalue_get_boolean(item_value, batchable_value) != 0)
AzureIoTClient 23:1111ee8bcba4 8502 {
AzureIoTClient 23:1111ee8bcba4 8503 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8504 {
AzureIoTClient 23:1111ee8bcba4 8505 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8506 }
AzureIoTClient 23:1111ee8bcba4 8507 else
AzureIoTClient 23:1111ee8bcba4 8508 {
AzureIoTClient 23:1111ee8bcba4 8509 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 8510 result = 0;
AzureIoTClient 23:1111ee8bcba4 8511 }
AzureIoTClient 23:1111ee8bcba4 8512 }
AzureIoTClient 23:1111ee8bcba4 8513 else
AzureIoTClient 23:1111ee8bcba4 8514 {
AzureIoTClient 23:1111ee8bcba4 8515 result = 0;
AzureIoTClient 23:1111ee8bcba4 8516 }
AzureIoTClient 23:1111ee8bcba4 8517 }
AzureIoTClient 23:1111ee8bcba4 8518 }
Azure.IoT Build 0:6ae2f7bca550 8519 }
Azure.IoT Build 0:6ae2f7bca550 8520 }
Azure.IoT Build 0:6ae2f7bca550 8521
Azure.IoT Build 0:6ae2f7bca550 8522 return result;
Azure.IoT Build 0:6ae2f7bca550 8523 }
Azure.IoT Build 0:6ae2f7bca550 8524
Azure.IoT Build 0:6ae2f7bca550 8525 int disposition_set_batchable(DISPOSITION_HANDLE disposition, bool batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8526 {
Azure.IoT Build 0:6ae2f7bca550 8527 int result;
Azure.IoT Build 0:6ae2f7bca550 8528
Azure.IoT Build 0:6ae2f7bca550 8529 if (disposition == NULL)
Azure.IoT Build 0:6ae2f7bca550 8530 {
AzureIoTClient 19:000ab4e6a2c1 8531 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8532 }
Azure.IoT Build 0:6ae2f7bca550 8533 else
Azure.IoT Build 0:6ae2f7bca550 8534 {
Azure.IoT Build 0:6ae2f7bca550 8535 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
Azure.IoT Build 0:6ae2f7bca550 8536 AMQP_VALUE batchable_amqp_value = amqpvalue_create_boolean(batchable_value);
Azure.IoT Build 0:6ae2f7bca550 8537 if (batchable_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8538 {
AzureIoTClient 19:000ab4e6a2c1 8539 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8540 }
Azure.IoT Build 0:6ae2f7bca550 8541 else
Azure.IoT Build 0:6ae2f7bca550 8542 {
Azure.IoT Build 0:6ae2f7bca550 8543 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 5, batchable_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 8544 {
AzureIoTClient 19:000ab4e6a2c1 8545 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8546 }
Azure.IoT Build 0:6ae2f7bca550 8547 else
Azure.IoT Build 0:6ae2f7bca550 8548 {
Azure.IoT Build 0:6ae2f7bca550 8549 result = 0;
Azure.IoT Build 0:6ae2f7bca550 8550 }
Azure.IoT Build 0:6ae2f7bca550 8551
Azure.IoT Build 0:6ae2f7bca550 8552 amqpvalue_destroy(batchable_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8553 }
Azure.IoT Build 0:6ae2f7bca550 8554 }
Azure.IoT Build 0:6ae2f7bca550 8555
Azure.IoT Build 0:6ae2f7bca550 8556 return result;
Azure.IoT Build 0:6ae2f7bca550 8557 }
Azure.IoT Build 0:6ae2f7bca550 8558
Azure.IoT Build 0:6ae2f7bca550 8559
Azure.IoT Build 0:6ae2f7bca550 8560 /* detach */
Azure.IoT Build 0:6ae2f7bca550 8561
Azure.IoT Build 0:6ae2f7bca550 8562 typedef struct DETACH_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 8563 {
Azure.IoT Build 0:6ae2f7bca550 8564 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 8565 } DETACH_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 8566
Azure.IoT Build 0:6ae2f7bca550 8567 static DETACH_HANDLE detach_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 8568 {
AzureIoTClient 21:f9c433d8e6ca 8569 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 8570 if (detach_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 8571 {
Azure.IoT Build 0:6ae2f7bca550 8572 detach_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 8573 }
Azure.IoT Build 0:6ae2f7bca550 8574
Azure.IoT Build 0:6ae2f7bca550 8575 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 8576 }
Azure.IoT Build 0:6ae2f7bca550 8577
Azure.IoT Build 0:6ae2f7bca550 8578 DETACH_HANDLE detach_create(handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 8579 {
AzureIoTClient 21:f9c433d8e6ca 8580 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 8581 if (detach_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 8582 {
Azure.IoT Build 0:6ae2f7bca550 8583 detach_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(22);
Azure.IoT Build 0:6ae2f7bca550 8584 if (detach_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8585 {
AzureIoTClient 21:f9c433d8e6ca 8586 free(detach_instance);
Azure.IoT Build 0:6ae2f7bca550 8587 detach_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 8588 }
Azure.IoT Build 0:6ae2f7bca550 8589 else
Azure.IoT Build 0:6ae2f7bca550 8590 {
Azure.IoT Build 0:6ae2f7bca550 8591 AMQP_VALUE handle_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 8592 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 8593
Azure.IoT Build 0:6ae2f7bca550 8594 handle_amqp_value = amqpvalue_create_handle(handle_value);
Azure.IoT Build 0:6ae2f7bca550 8595 if ((result == 0) && (amqpvalue_set_composite_item(detach_instance->composite_value, 0, handle_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 8596 {
AzureIoTClient 19:000ab4e6a2c1 8597 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8598 }
Azure.IoT Build 0:6ae2f7bca550 8599
Azure.IoT Build 0:6ae2f7bca550 8600 amqpvalue_destroy(handle_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8601 }
Azure.IoT Build 0:6ae2f7bca550 8602 }
Azure.IoT Build 0:6ae2f7bca550 8603
Azure.IoT Build 0:6ae2f7bca550 8604 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 8605 }
Azure.IoT Build 0:6ae2f7bca550 8606
Azure.IoT Build 0:6ae2f7bca550 8607 DETACH_HANDLE detach_clone(DETACH_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 8608 {
AzureIoTClient 21:f9c433d8e6ca 8609 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 8610 if (detach_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 8611 {
Azure.IoT Build 0:6ae2f7bca550 8612 detach_instance->composite_value = amqpvalue_clone(((DETACH_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 8613 if (detach_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8614 {
AzureIoTClient 21:f9c433d8e6ca 8615 free(detach_instance);
Azure.IoT Build 0:6ae2f7bca550 8616 detach_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 8617 }
Azure.IoT Build 0:6ae2f7bca550 8618 }
Azure.IoT Build 0:6ae2f7bca550 8619
Azure.IoT Build 0:6ae2f7bca550 8620 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 8621 }
Azure.IoT Build 0:6ae2f7bca550 8622
Azure.IoT Build 0:6ae2f7bca550 8623 void detach_destroy(DETACH_HANDLE detach)
Azure.IoT Build 0:6ae2f7bca550 8624 {
Azure.IoT Build 0:6ae2f7bca550 8625 if (detach != NULL)
Azure.IoT Build 0:6ae2f7bca550 8626 {
Azure.IoT Build 0:6ae2f7bca550 8627 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
Azure.IoT Build 0:6ae2f7bca550 8628 amqpvalue_destroy(detach_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 8629 free(detach_instance);
Azure.IoT Build 0:6ae2f7bca550 8630 }
Azure.IoT Build 0:6ae2f7bca550 8631 }
Azure.IoT Build 0:6ae2f7bca550 8632
Azure.IoT Build 0:6ae2f7bca550 8633 AMQP_VALUE amqpvalue_create_detach(DETACH_HANDLE detach)
Azure.IoT Build 0:6ae2f7bca550 8634 {
Azure.IoT Build 0:6ae2f7bca550 8635 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 8636
Azure.IoT Build 0:6ae2f7bca550 8637 if (detach == NULL)
Azure.IoT Build 0:6ae2f7bca550 8638 {
Azure.IoT Build 0:6ae2f7bca550 8639 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 8640 }
Azure.IoT Build 0:6ae2f7bca550 8641 else
Azure.IoT Build 0:6ae2f7bca550 8642 {
Azure.IoT Build 0:6ae2f7bca550 8643 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
Azure.IoT Build 0:6ae2f7bca550 8644 result = amqpvalue_clone(detach_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 8645 }
Azure.IoT Build 0:6ae2f7bca550 8646
Azure.IoT Build 0:6ae2f7bca550 8647 return result;
Azure.IoT Build 0:6ae2f7bca550 8648 }
Azure.IoT Build 0:6ae2f7bca550 8649
Azure.IoT Build 0:6ae2f7bca550 8650 bool is_detach_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 8651 {
Azure.IoT Build 0:6ae2f7bca550 8652 bool result;
Azure.IoT Build 0:6ae2f7bca550 8653
Azure.IoT Build 0:6ae2f7bca550 8654 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 8655 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 8656 (descriptor_ulong == 22))
Azure.IoT Build 0:6ae2f7bca550 8657 {
Azure.IoT Build 0:6ae2f7bca550 8658 result = true;
Azure.IoT Build 0:6ae2f7bca550 8659 }
Azure.IoT Build 0:6ae2f7bca550 8660 else
Azure.IoT Build 0:6ae2f7bca550 8661 {
Azure.IoT Build 0:6ae2f7bca550 8662 result = false;
Azure.IoT Build 0:6ae2f7bca550 8663 }
Azure.IoT Build 0:6ae2f7bca550 8664
Azure.IoT Build 0:6ae2f7bca550 8665 return result;
Azure.IoT Build 0:6ae2f7bca550 8666 }
Azure.IoT Build 0:6ae2f7bca550 8667
Azure.IoT Build 0:6ae2f7bca550 8668
Azure.IoT Build 0:6ae2f7bca550 8669 int amqpvalue_get_detach(AMQP_VALUE value, DETACH_HANDLE* detach_handle)
Azure.IoT Build 0:6ae2f7bca550 8670 {
Azure.IoT Build 0:6ae2f7bca550 8671 int result;
Azure.IoT Build 0:6ae2f7bca550 8672 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach_create_internal();
Azure.IoT Build 0:6ae2f7bca550 8673 *detach_handle = detach_instance;
Azure.IoT Build 0:6ae2f7bca550 8674 if (*detach_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 8675 {
AzureIoTClient 19:000ab4e6a2c1 8676 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8677 }
Azure.IoT Build 0:6ae2f7bca550 8678 else
Azure.IoT Build 0:6ae2f7bca550 8679 {
Azure.IoT Build 0:6ae2f7bca550 8680 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 8681 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8682 {
Azure.IoT Build 0:6ae2f7bca550 8683 detach_destroy(*detach_handle);
AzureIoTClient 19:000ab4e6a2c1 8684 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8685 }
Azure.IoT Build 0:6ae2f7bca550 8686 else
Azure.IoT Build 0:6ae2f7bca550 8687 {
AzureIoTClient 23:1111ee8bcba4 8688 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 8689 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8690 {
AzureIoTClient 23:1111ee8bcba4 8691 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8692 }
AzureIoTClient 23:1111ee8bcba4 8693 else
AzureIoTClient 23:1111ee8bcba4 8694 {
AzureIoTClient 23:1111ee8bcba4 8695 do
AzureIoTClient 23:1111ee8bcba4 8696 {
AzureIoTClient 23:1111ee8bcba4 8697 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 8698 /* handle */
AzureIoTClient 23:1111ee8bcba4 8699 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 8700 {
AzureIoTClient 23:1111ee8bcba4 8701 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 8702 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 8703 {
AzureIoTClient 23:1111ee8bcba4 8704 {
AzureIoTClient 23:1111ee8bcba4 8705 detach_destroy(*detach_handle);
AzureIoTClient 23:1111ee8bcba4 8706 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8707 break;
AzureIoTClient 23:1111ee8bcba4 8708 }
AzureIoTClient 23:1111ee8bcba4 8709 }
AzureIoTClient 23:1111ee8bcba4 8710 else
AzureIoTClient 23:1111ee8bcba4 8711 {
AzureIoTClient 25:1101516ee67d 8712 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 8713 {
AzureIoTClient 25:1101516ee67d 8714 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8715 detach_destroy(*detach_handle);
AzureIoTClient 23:1111ee8bcba4 8716 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8717 break;
AzureIoTClient 23:1111ee8bcba4 8718 }
AzureIoTClient 23:1111ee8bcba4 8719 else
AzureIoTClient 23:1111ee8bcba4 8720 {
AzureIoTClient 25:1101516ee67d 8721 handle handle;
AzureIoTClient 23:1111ee8bcba4 8722 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 23:1111ee8bcba4 8723 {
AzureIoTClient 25:1101516ee67d 8724 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8725 detach_destroy(*detach_handle);
AzureIoTClient 23:1111ee8bcba4 8726 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8727 break;
AzureIoTClient 23:1111ee8bcba4 8728 }
AzureIoTClient 23:1111ee8bcba4 8729 }
AzureIoTClient 23:1111ee8bcba4 8730
AzureIoTClient 23:1111ee8bcba4 8731 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8732 }
AzureIoTClient 23:1111ee8bcba4 8733 }
AzureIoTClient 23:1111ee8bcba4 8734 else
AzureIoTClient 23:1111ee8bcba4 8735 {
AzureIoTClient 23:1111ee8bcba4 8736 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8737 }
AzureIoTClient 23:1111ee8bcba4 8738 /* closed */
AzureIoTClient 23:1111ee8bcba4 8739 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 8740 {
AzureIoTClient 23:1111ee8bcba4 8741 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 8742 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 8743 {
AzureIoTClient 23:1111ee8bcba4 8744 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 8745 }
AzureIoTClient 23:1111ee8bcba4 8746 else
AzureIoTClient 23:1111ee8bcba4 8747 {
AzureIoTClient 25:1101516ee67d 8748 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 8749 {
AzureIoTClient 25:1101516ee67d 8750 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 8751 }
AzureIoTClient 25:1101516ee67d 8752 else
AzureIoTClient 25:1101516ee67d 8753 {
AzureIoTClient 25:1101516ee67d 8754 bool closed;
AzureIoTClient 23:1111ee8bcba4 8755 if (amqpvalue_get_boolean(item_value, &closed) != 0)
AzureIoTClient 23:1111ee8bcba4 8756 {
AzureIoTClient 25:1101516ee67d 8757 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8758 detach_destroy(*detach_handle);
AzureIoTClient 23:1111ee8bcba4 8759 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8760 break;
AzureIoTClient 23:1111ee8bcba4 8761 }
AzureIoTClient 23:1111ee8bcba4 8762 }
AzureIoTClient 23:1111ee8bcba4 8763
AzureIoTClient 23:1111ee8bcba4 8764 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8765 }
AzureIoTClient 23:1111ee8bcba4 8766 }
AzureIoTClient 23:1111ee8bcba4 8767 /* error */
AzureIoTClient 23:1111ee8bcba4 8768 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 8769 {
AzureIoTClient 23:1111ee8bcba4 8770 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 8771 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 8772 {
AzureIoTClient 23:1111ee8bcba4 8773 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 8774 }
AzureIoTClient 23:1111ee8bcba4 8775 else
AzureIoTClient 23:1111ee8bcba4 8776 {
AzureIoTClient 25:1101516ee67d 8777 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 8778 {
AzureIoTClient 25:1101516ee67d 8779 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 8780 }
AzureIoTClient 25:1101516ee67d 8781 else
AzureIoTClient 25:1101516ee67d 8782 {
AzureIoTClient 25:1101516ee67d 8783 ERROR_HANDLE error;
AzureIoTClient 23:1111ee8bcba4 8784 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 23:1111ee8bcba4 8785 {
AzureIoTClient 25:1101516ee67d 8786 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8787 detach_destroy(*detach_handle);
AzureIoTClient 23:1111ee8bcba4 8788 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8789 break;
AzureIoTClient 23:1111ee8bcba4 8790 }
AzureIoTClient 25:1101516ee67d 8791 else
AzureIoTClient 25:1101516ee67d 8792 {
AzureIoTClient 25:1101516ee67d 8793 error_destroy(error);
AzureIoTClient 25:1101516ee67d 8794 }
AzureIoTClient 23:1111ee8bcba4 8795 }
AzureIoTClient 23:1111ee8bcba4 8796
AzureIoTClient 23:1111ee8bcba4 8797 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 8798 }
AzureIoTClient 23:1111ee8bcba4 8799 }
AzureIoTClient 23:1111ee8bcba4 8800
AzureIoTClient 23:1111ee8bcba4 8801 detach_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 8802
AzureIoTClient 23:1111ee8bcba4 8803 result = 0;
AzureIoTClient 23:1111ee8bcba4 8804 } while (0);
AzureIoTClient 23:1111ee8bcba4 8805 }
Azure.IoT Build 0:6ae2f7bca550 8806 }
Azure.IoT Build 0:6ae2f7bca550 8807 }
Azure.IoT Build 0:6ae2f7bca550 8808
Azure.IoT Build 0:6ae2f7bca550 8809 return result;
Azure.IoT Build 0:6ae2f7bca550 8810 }
Azure.IoT Build 0:6ae2f7bca550 8811
Azure.IoT Build 0:6ae2f7bca550 8812 int detach_get_handle(DETACH_HANDLE detach, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 8813 {
Azure.IoT Build 0:6ae2f7bca550 8814 int result;
Azure.IoT Build 0:6ae2f7bca550 8815
Azure.IoT Build 0:6ae2f7bca550 8816 if (detach == NULL)
Azure.IoT Build 0:6ae2f7bca550 8817 {
AzureIoTClient 19:000ab4e6a2c1 8818 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8819 }
Azure.IoT Build 0:6ae2f7bca550 8820 else
Azure.IoT Build 0:6ae2f7bca550 8821 {
AzureIoTClient 23:1111ee8bcba4 8822 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8823 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 8824 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8825 {
AzureIoTClient 23:1111ee8bcba4 8826 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8827 }
AzureIoTClient 23:1111ee8bcba4 8828 else
AzureIoTClient 23:1111ee8bcba4 8829 {
AzureIoTClient 23:1111ee8bcba4 8830 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 8831 {
AzureIoTClient 23:1111ee8bcba4 8832 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8833 }
AzureIoTClient 23:1111ee8bcba4 8834 else
AzureIoTClient 23:1111ee8bcba4 8835 {
AzureIoTClient 23:1111ee8bcba4 8836 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 8837 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 8838 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 8839 {
AzureIoTClient 23:1111ee8bcba4 8840 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8841 }
AzureIoTClient 23:1111ee8bcba4 8842 else
AzureIoTClient 23:1111ee8bcba4 8843 {
AzureIoTClient 23:1111ee8bcba4 8844 if (amqpvalue_get_handle(item_value, handle_value) != 0)
AzureIoTClient 23:1111ee8bcba4 8845 {
AzureIoTClient 23:1111ee8bcba4 8846 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8847 }
AzureIoTClient 23:1111ee8bcba4 8848 else
AzureIoTClient 23:1111ee8bcba4 8849 {
AzureIoTClient 23:1111ee8bcba4 8850 result = 0;
AzureIoTClient 23:1111ee8bcba4 8851 }
AzureIoTClient 23:1111ee8bcba4 8852 }
AzureIoTClient 23:1111ee8bcba4 8853 }
Azure.IoT Build 0:6ae2f7bca550 8854 }
Azure.IoT Build 0:6ae2f7bca550 8855 }
Azure.IoT Build 0:6ae2f7bca550 8856
Azure.IoT Build 0:6ae2f7bca550 8857 return result;
Azure.IoT Build 0:6ae2f7bca550 8858 }
Azure.IoT Build 0:6ae2f7bca550 8859
Azure.IoT Build 0:6ae2f7bca550 8860 int detach_set_handle(DETACH_HANDLE detach, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 8861 {
Azure.IoT Build 0:6ae2f7bca550 8862 int result;
Azure.IoT Build 0:6ae2f7bca550 8863
Azure.IoT Build 0:6ae2f7bca550 8864 if (detach == NULL)
Azure.IoT Build 0:6ae2f7bca550 8865 {
AzureIoTClient 19:000ab4e6a2c1 8866 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8867 }
Azure.IoT Build 0:6ae2f7bca550 8868 else
Azure.IoT Build 0:6ae2f7bca550 8869 {
Azure.IoT Build 0:6ae2f7bca550 8870 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
Azure.IoT Build 0:6ae2f7bca550 8871 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
Azure.IoT Build 0:6ae2f7bca550 8872 if (handle_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8873 {
AzureIoTClient 19:000ab4e6a2c1 8874 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8875 }
Azure.IoT Build 0:6ae2f7bca550 8876 else
Azure.IoT Build 0:6ae2f7bca550 8877 {
Azure.IoT Build 0:6ae2f7bca550 8878 if (amqpvalue_set_composite_item(detach_instance->composite_value, 0, handle_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 8879 {
AzureIoTClient 19:000ab4e6a2c1 8880 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8881 }
Azure.IoT Build 0:6ae2f7bca550 8882 else
Azure.IoT Build 0:6ae2f7bca550 8883 {
Azure.IoT Build 0:6ae2f7bca550 8884 result = 0;
Azure.IoT Build 0:6ae2f7bca550 8885 }
Azure.IoT Build 0:6ae2f7bca550 8886
Azure.IoT Build 0:6ae2f7bca550 8887 amqpvalue_destroy(handle_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8888 }
Azure.IoT Build 0:6ae2f7bca550 8889 }
Azure.IoT Build 0:6ae2f7bca550 8890
Azure.IoT Build 0:6ae2f7bca550 8891 return result;
Azure.IoT Build 0:6ae2f7bca550 8892 }
Azure.IoT Build 0:6ae2f7bca550 8893
Azure.IoT Build 0:6ae2f7bca550 8894 int detach_get_closed(DETACH_HANDLE detach, bool* closed_value)
Azure.IoT Build 0:6ae2f7bca550 8895 {
Azure.IoT Build 0:6ae2f7bca550 8896 int result;
Azure.IoT Build 0:6ae2f7bca550 8897
Azure.IoT Build 0:6ae2f7bca550 8898 if (detach == NULL)
Azure.IoT Build 0:6ae2f7bca550 8899 {
AzureIoTClient 19:000ab4e6a2c1 8900 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8901 }
Azure.IoT Build 0:6ae2f7bca550 8902 else
Azure.IoT Build 0:6ae2f7bca550 8903 {
AzureIoTClient 23:1111ee8bcba4 8904 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8905 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 8906 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8907 {
AzureIoTClient 23:1111ee8bcba4 8908 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8909 }
AzureIoTClient 23:1111ee8bcba4 8910 else
AzureIoTClient 23:1111ee8bcba4 8911 {
AzureIoTClient 23:1111ee8bcba4 8912 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 8913 {
AzureIoTClient 23:1111ee8bcba4 8914 *closed_value = false;
AzureIoTClient 23:1111ee8bcba4 8915 result = 0;
AzureIoTClient 23:1111ee8bcba4 8916 }
AzureIoTClient 23:1111ee8bcba4 8917 else
AzureIoTClient 23:1111ee8bcba4 8918 {
AzureIoTClient 23:1111ee8bcba4 8919 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 8920 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 8921 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 8922 {
AzureIoTClient 16:22a72cf8e416 8923 *closed_value = false;
AzureIoTClient 16:22a72cf8e416 8924 result = 0;
AzureIoTClient 23:1111ee8bcba4 8925 }
AzureIoTClient 23:1111ee8bcba4 8926 else
AzureIoTClient 23:1111ee8bcba4 8927 {
AzureIoTClient 23:1111ee8bcba4 8928 if (amqpvalue_get_boolean(item_value, closed_value) != 0)
AzureIoTClient 23:1111ee8bcba4 8929 {
AzureIoTClient 23:1111ee8bcba4 8930 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8931 {
AzureIoTClient 23:1111ee8bcba4 8932 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8933 }
AzureIoTClient 23:1111ee8bcba4 8934 else
AzureIoTClient 23:1111ee8bcba4 8935 {
AzureIoTClient 23:1111ee8bcba4 8936 *closed_value = false;
AzureIoTClient 23:1111ee8bcba4 8937 result = 0;
AzureIoTClient 23:1111ee8bcba4 8938 }
AzureIoTClient 23:1111ee8bcba4 8939 }
AzureIoTClient 23:1111ee8bcba4 8940 else
AzureIoTClient 23:1111ee8bcba4 8941 {
AzureIoTClient 23:1111ee8bcba4 8942 result = 0;
AzureIoTClient 23:1111ee8bcba4 8943 }
AzureIoTClient 23:1111ee8bcba4 8944 }
AzureIoTClient 23:1111ee8bcba4 8945 }
Azure.IoT Build 0:6ae2f7bca550 8946 }
Azure.IoT Build 0:6ae2f7bca550 8947 }
Azure.IoT Build 0:6ae2f7bca550 8948
Azure.IoT Build 0:6ae2f7bca550 8949 return result;
Azure.IoT Build 0:6ae2f7bca550 8950 }
Azure.IoT Build 0:6ae2f7bca550 8951
Azure.IoT Build 0:6ae2f7bca550 8952 int detach_set_closed(DETACH_HANDLE detach, bool closed_value)
Azure.IoT Build 0:6ae2f7bca550 8953 {
Azure.IoT Build 0:6ae2f7bca550 8954 int result;
Azure.IoT Build 0:6ae2f7bca550 8955
Azure.IoT Build 0:6ae2f7bca550 8956 if (detach == NULL)
Azure.IoT Build 0:6ae2f7bca550 8957 {
AzureIoTClient 19:000ab4e6a2c1 8958 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8959 }
Azure.IoT Build 0:6ae2f7bca550 8960 else
Azure.IoT Build 0:6ae2f7bca550 8961 {
Azure.IoT Build 0:6ae2f7bca550 8962 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
Azure.IoT Build 0:6ae2f7bca550 8963 AMQP_VALUE closed_amqp_value = amqpvalue_create_boolean(closed_value);
Azure.IoT Build 0:6ae2f7bca550 8964 if (closed_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 8965 {
AzureIoTClient 19:000ab4e6a2c1 8966 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8967 }
Azure.IoT Build 0:6ae2f7bca550 8968 else
Azure.IoT Build 0:6ae2f7bca550 8969 {
Azure.IoT Build 0:6ae2f7bca550 8970 if (amqpvalue_set_composite_item(detach_instance->composite_value, 1, closed_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 8971 {
AzureIoTClient 19:000ab4e6a2c1 8972 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8973 }
Azure.IoT Build 0:6ae2f7bca550 8974 else
Azure.IoT Build 0:6ae2f7bca550 8975 {
Azure.IoT Build 0:6ae2f7bca550 8976 result = 0;
Azure.IoT Build 0:6ae2f7bca550 8977 }
Azure.IoT Build 0:6ae2f7bca550 8978
Azure.IoT Build 0:6ae2f7bca550 8979 amqpvalue_destroy(closed_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 8980 }
Azure.IoT Build 0:6ae2f7bca550 8981 }
Azure.IoT Build 0:6ae2f7bca550 8982
Azure.IoT Build 0:6ae2f7bca550 8983 return result;
Azure.IoT Build 0:6ae2f7bca550 8984 }
Azure.IoT Build 0:6ae2f7bca550 8985
Azure.IoT Build 0:6ae2f7bca550 8986 int detach_get_error(DETACH_HANDLE detach, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 8987 {
Azure.IoT Build 0:6ae2f7bca550 8988 int result;
Azure.IoT Build 0:6ae2f7bca550 8989
Azure.IoT Build 0:6ae2f7bca550 8990 if (detach == NULL)
Azure.IoT Build 0:6ae2f7bca550 8991 {
AzureIoTClient 19:000ab4e6a2c1 8992 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 8993 }
Azure.IoT Build 0:6ae2f7bca550 8994 else
Azure.IoT Build 0:6ae2f7bca550 8995 {
AzureIoTClient 23:1111ee8bcba4 8996 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 8997 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 8998 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8999 {
AzureIoTClient 23:1111ee8bcba4 9000 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9001 }
AzureIoTClient 23:1111ee8bcba4 9002 else
AzureIoTClient 23:1111ee8bcba4 9003 {
AzureIoTClient 23:1111ee8bcba4 9004 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 9005 {
AzureIoTClient 23:1111ee8bcba4 9006 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9007 }
AzureIoTClient 23:1111ee8bcba4 9008 else
AzureIoTClient 23:1111ee8bcba4 9009 {
AzureIoTClient 23:1111ee8bcba4 9010 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 9011 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 9012 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 9013 {
AzureIoTClient 23:1111ee8bcba4 9014 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9015 }
AzureIoTClient 23:1111ee8bcba4 9016 else
AzureIoTClient 23:1111ee8bcba4 9017 {
AzureIoTClient 23:1111ee8bcba4 9018 if (amqpvalue_get_error(item_value, error_value) != 0)
AzureIoTClient 23:1111ee8bcba4 9019 {
AzureIoTClient 23:1111ee8bcba4 9020 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9021 }
AzureIoTClient 23:1111ee8bcba4 9022 else
AzureIoTClient 23:1111ee8bcba4 9023 {
AzureIoTClient 23:1111ee8bcba4 9024 result = 0;
AzureIoTClient 23:1111ee8bcba4 9025 }
AzureIoTClient 23:1111ee8bcba4 9026 }
AzureIoTClient 23:1111ee8bcba4 9027 }
Azure.IoT Build 0:6ae2f7bca550 9028 }
Azure.IoT Build 0:6ae2f7bca550 9029 }
Azure.IoT Build 0:6ae2f7bca550 9030
Azure.IoT Build 0:6ae2f7bca550 9031 return result;
Azure.IoT Build 0:6ae2f7bca550 9032 }
Azure.IoT Build 0:6ae2f7bca550 9033
Azure.IoT Build 0:6ae2f7bca550 9034 int detach_set_error(DETACH_HANDLE detach, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9035 {
Azure.IoT Build 0:6ae2f7bca550 9036 int result;
Azure.IoT Build 0:6ae2f7bca550 9037
Azure.IoT Build 0:6ae2f7bca550 9038 if (detach == NULL)
Azure.IoT Build 0:6ae2f7bca550 9039 {
AzureIoTClient 19:000ab4e6a2c1 9040 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9041 }
Azure.IoT Build 0:6ae2f7bca550 9042 else
Azure.IoT Build 0:6ae2f7bca550 9043 {
Azure.IoT Build 0:6ae2f7bca550 9044 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
Azure.IoT Build 0:6ae2f7bca550 9045 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
Azure.IoT Build 0:6ae2f7bca550 9046 if (error_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9047 {
AzureIoTClient 19:000ab4e6a2c1 9048 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9049 }
Azure.IoT Build 0:6ae2f7bca550 9050 else
Azure.IoT Build 0:6ae2f7bca550 9051 {
Azure.IoT Build 0:6ae2f7bca550 9052 if (amqpvalue_set_composite_item(detach_instance->composite_value, 2, error_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 9053 {
AzureIoTClient 19:000ab4e6a2c1 9054 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9055 }
Azure.IoT Build 0:6ae2f7bca550 9056 else
Azure.IoT Build 0:6ae2f7bca550 9057 {
Azure.IoT Build 0:6ae2f7bca550 9058 result = 0;
Azure.IoT Build 0:6ae2f7bca550 9059 }
Azure.IoT Build 0:6ae2f7bca550 9060
Azure.IoT Build 0:6ae2f7bca550 9061 amqpvalue_destroy(error_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 9062 }
Azure.IoT Build 0:6ae2f7bca550 9063 }
Azure.IoT Build 0:6ae2f7bca550 9064
Azure.IoT Build 0:6ae2f7bca550 9065 return result;
Azure.IoT Build 0:6ae2f7bca550 9066 }
Azure.IoT Build 0:6ae2f7bca550 9067
Azure.IoT Build 0:6ae2f7bca550 9068
Azure.IoT Build 0:6ae2f7bca550 9069 /* end */
Azure.IoT Build 0:6ae2f7bca550 9070
Azure.IoT Build 0:6ae2f7bca550 9071 typedef struct END_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9072 {
Azure.IoT Build 0:6ae2f7bca550 9073 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9074 } END_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9075
Azure.IoT Build 0:6ae2f7bca550 9076 static END_HANDLE end_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9077 {
AzureIoTClient 21:f9c433d8e6ca 9078 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9079 if (end_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9080 {
Azure.IoT Build 0:6ae2f7bca550 9081 end_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 9082 }
Azure.IoT Build 0:6ae2f7bca550 9083
Azure.IoT Build 0:6ae2f7bca550 9084 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9085 }
Azure.IoT Build 0:6ae2f7bca550 9086
Azure.IoT Build 0:6ae2f7bca550 9087 END_HANDLE end_create(void)
Azure.IoT Build 0:6ae2f7bca550 9088 {
AzureIoTClient 21:f9c433d8e6ca 9089 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9090 if (end_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9091 {
Azure.IoT Build 0:6ae2f7bca550 9092 end_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(23);
Azure.IoT Build 0:6ae2f7bca550 9093 if (end_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9094 {
AzureIoTClient 21:f9c433d8e6ca 9095 free(end_instance);
Azure.IoT Build 0:6ae2f7bca550 9096 end_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 9097 }
Azure.IoT Build 0:6ae2f7bca550 9098 }
Azure.IoT Build 0:6ae2f7bca550 9099
Azure.IoT Build 0:6ae2f7bca550 9100 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9101 }
Azure.IoT Build 0:6ae2f7bca550 9102
Azure.IoT Build 0:6ae2f7bca550 9103 END_HANDLE end_clone(END_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9104 {
AzureIoTClient 21:f9c433d8e6ca 9105 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9106 if (end_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9107 {
Azure.IoT Build 0:6ae2f7bca550 9108 end_instance->composite_value = amqpvalue_clone(((END_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 9109 if (end_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9110 {
AzureIoTClient 21:f9c433d8e6ca 9111 free(end_instance);
Azure.IoT Build 0:6ae2f7bca550 9112 end_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 9113 }
Azure.IoT Build 0:6ae2f7bca550 9114 }
Azure.IoT Build 0:6ae2f7bca550 9115
Azure.IoT Build 0:6ae2f7bca550 9116 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9117 }
Azure.IoT Build 0:6ae2f7bca550 9118
Azure.IoT Build 0:6ae2f7bca550 9119 void end_destroy(END_HANDLE end)
Azure.IoT Build 0:6ae2f7bca550 9120 {
Azure.IoT Build 0:6ae2f7bca550 9121 if (end != NULL)
Azure.IoT Build 0:6ae2f7bca550 9122 {
Azure.IoT Build 0:6ae2f7bca550 9123 END_INSTANCE* end_instance = (END_INSTANCE*)end;
Azure.IoT Build 0:6ae2f7bca550 9124 amqpvalue_destroy(end_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 9125 free(end_instance);
Azure.IoT Build 0:6ae2f7bca550 9126 }
Azure.IoT Build 0:6ae2f7bca550 9127 }
Azure.IoT Build 0:6ae2f7bca550 9128
Azure.IoT Build 0:6ae2f7bca550 9129 AMQP_VALUE amqpvalue_create_end(END_HANDLE end)
Azure.IoT Build 0:6ae2f7bca550 9130 {
Azure.IoT Build 0:6ae2f7bca550 9131 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 9132
Azure.IoT Build 0:6ae2f7bca550 9133 if (end == NULL)
Azure.IoT Build 0:6ae2f7bca550 9134 {
Azure.IoT Build 0:6ae2f7bca550 9135 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 9136 }
Azure.IoT Build 0:6ae2f7bca550 9137 else
Azure.IoT Build 0:6ae2f7bca550 9138 {
Azure.IoT Build 0:6ae2f7bca550 9139 END_INSTANCE* end_instance = (END_INSTANCE*)end;
Azure.IoT Build 0:6ae2f7bca550 9140 result = amqpvalue_clone(end_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 9141 }
Azure.IoT Build 0:6ae2f7bca550 9142
Azure.IoT Build 0:6ae2f7bca550 9143 return result;
Azure.IoT Build 0:6ae2f7bca550 9144 }
Azure.IoT Build 0:6ae2f7bca550 9145
Azure.IoT Build 0:6ae2f7bca550 9146 bool is_end_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9147 {
Azure.IoT Build 0:6ae2f7bca550 9148 bool result;
Azure.IoT Build 0:6ae2f7bca550 9149
Azure.IoT Build 0:6ae2f7bca550 9150 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 9151 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 9152 (descriptor_ulong == 23))
Azure.IoT Build 0:6ae2f7bca550 9153 {
Azure.IoT Build 0:6ae2f7bca550 9154 result = true;
Azure.IoT Build 0:6ae2f7bca550 9155 }
Azure.IoT Build 0:6ae2f7bca550 9156 else
Azure.IoT Build 0:6ae2f7bca550 9157 {
Azure.IoT Build 0:6ae2f7bca550 9158 result = false;
Azure.IoT Build 0:6ae2f7bca550 9159 }
Azure.IoT Build 0:6ae2f7bca550 9160
Azure.IoT Build 0:6ae2f7bca550 9161 return result;
Azure.IoT Build 0:6ae2f7bca550 9162 }
Azure.IoT Build 0:6ae2f7bca550 9163
Azure.IoT Build 0:6ae2f7bca550 9164
Azure.IoT Build 0:6ae2f7bca550 9165 int amqpvalue_get_end(AMQP_VALUE value, END_HANDLE* end_handle)
Azure.IoT Build 0:6ae2f7bca550 9166 {
Azure.IoT Build 0:6ae2f7bca550 9167 int result;
Azure.IoT Build 0:6ae2f7bca550 9168 END_INSTANCE* end_instance = (END_INSTANCE*)end_create_internal();
Azure.IoT Build 0:6ae2f7bca550 9169 *end_handle = end_instance;
Azure.IoT Build 0:6ae2f7bca550 9170 if (*end_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 9171 {
AzureIoTClient 19:000ab4e6a2c1 9172 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9173 }
Azure.IoT Build 0:6ae2f7bca550 9174 else
Azure.IoT Build 0:6ae2f7bca550 9175 {
Azure.IoT Build 0:6ae2f7bca550 9176 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 9177 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9178 {
Azure.IoT Build 0:6ae2f7bca550 9179 end_destroy(*end_handle);
AzureIoTClient 19:000ab4e6a2c1 9180 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9181 }
Azure.IoT Build 0:6ae2f7bca550 9182 else
Azure.IoT Build 0:6ae2f7bca550 9183 {
AzureIoTClient 23:1111ee8bcba4 9184 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9185 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9186 {
AzureIoTClient 23:1111ee8bcba4 9187 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9188 }
AzureIoTClient 23:1111ee8bcba4 9189 else
AzureIoTClient 23:1111ee8bcba4 9190 {
AzureIoTClient 23:1111ee8bcba4 9191 do
AzureIoTClient 23:1111ee8bcba4 9192 {
AzureIoTClient 23:1111ee8bcba4 9193 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 9194 /* error */
AzureIoTClient 23:1111ee8bcba4 9195 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9196 {
AzureIoTClient 23:1111ee8bcba4 9197 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 9198 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 9199 {
AzureIoTClient 23:1111ee8bcba4 9200 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 9201 }
AzureIoTClient 23:1111ee8bcba4 9202 else
AzureIoTClient 23:1111ee8bcba4 9203 {
AzureIoTClient 25:1101516ee67d 9204 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 9205 {
AzureIoTClient 25:1101516ee67d 9206 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 9207 }
AzureIoTClient 25:1101516ee67d 9208 else
AzureIoTClient 25:1101516ee67d 9209 {
AzureIoTClient 25:1101516ee67d 9210 ERROR_HANDLE error;
AzureIoTClient 23:1111ee8bcba4 9211 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 23:1111ee8bcba4 9212 {
AzureIoTClient 25:1101516ee67d 9213 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 9214 end_destroy(*end_handle);
AzureIoTClient 23:1111ee8bcba4 9215 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9216 break;
AzureIoTClient 23:1111ee8bcba4 9217 }
AzureIoTClient 25:1101516ee67d 9218 else
AzureIoTClient 25:1101516ee67d 9219 {
AzureIoTClient 25:1101516ee67d 9220 error_destroy(error);
AzureIoTClient 25:1101516ee67d 9221 }
AzureIoTClient 23:1111ee8bcba4 9222 }
AzureIoTClient 23:1111ee8bcba4 9223
AzureIoTClient 23:1111ee8bcba4 9224 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 9225 }
AzureIoTClient 23:1111ee8bcba4 9226 }
AzureIoTClient 23:1111ee8bcba4 9227
AzureIoTClient 23:1111ee8bcba4 9228 end_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 9229
AzureIoTClient 23:1111ee8bcba4 9230 result = 0;
AzureIoTClient 23:1111ee8bcba4 9231 } while (0);
AzureIoTClient 23:1111ee8bcba4 9232 }
Azure.IoT Build 0:6ae2f7bca550 9233 }
Azure.IoT Build 0:6ae2f7bca550 9234 }
Azure.IoT Build 0:6ae2f7bca550 9235
Azure.IoT Build 0:6ae2f7bca550 9236 return result;
Azure.IoT Build 0:6ae2f7bca550 9237 }
Azure.IoT Build 0:6ae2f7bca550 9238
Azure.IoT Build 0:6ae2f7bca550 9239 int end_get_error(END_HANDLE end, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9240 {
Azure.IoT Build 0:6ae2f7bca550 9241 int result;
Azure.IoT Build 0:6ae2f7bca550 9242
Azure.IoT Build 0:6ae2f7bca550 9243 if (end == NULL)
Azure.IoT Build 0:6ae2f7bca550 9244 {
AzureIoTClient 19:000ab4e6a2c1 9245 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9246 }
Azure.IoT Build 0:6ae2f7bca550 9247 else
Azure.IoT Build 0:6ae2f7bca550 9248 {
AzureIoTClient 23:1111ee8bcba4 9249 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 9250 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 23:1111ee8bcba4 9251 if (amqpvalue_get_composite_item_count(end_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9252 {
AzureIoTClient 23:1111ee8bcba4 9253 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9254 }
AzureIoTClient 23:1111ee8bcba4 9255 else
AzureIoTClient 23:1111ee8bcba4 9256 {
AzureIoTClient 23:1111ee8bcba4 9257 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9258 {
AzureIoTClient 23:1111ee8bcba4 9259 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9260 }
AzureIoTClient 23:1111ee8bcba4 9261 else
AzureIoTClient 23:1111ee8bcba4 9262 {
AzureIoTClient 23:1111ee8bcba4 9263 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(end_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 9264 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 9265 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 9266 {
AzureIoTClient 23:1111ee8bcba4 9267 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9268 }
AzureIoTClient 23:1111ee8bcba4 9269 else
AzureIoTClient 23:1111ee8bcba4 9270 {
AzureIoTClient 23:1111ee8bcba4 9271 if (amqpvalue_get_error(item_value, error_value) != 0)
AzureIoTClient 23:1111ee8bcba4 9272 {
AzureIoTClient 23:1111ee8bcba4 9273 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9274 }
AzureIoTClient 23:1111ee8bcba4 9275 else
AzureIoTClient 23:1111ee8bcba4 9276 {
AzureIoTClient 23:1111ee8bcba4 9277 result = 0;
AzureIoTClient 23:1111ee8bcba4 9278 }
AzureIoTClient 23:1111ee8bcba4 9279 }
AzureIoTClient 23:1111ee8bcba4 9280 }
Azure.IoT Build 0:6ae2f7bca550 9281 }
Azure.IoT Build 0:6ae2f7bca550 9282 }
Azure.IoT Build 0:6ae2f7bca550 9283
Azure.IoT Build 0:6ae2f7bca550 9284 return result;
Azure.IoT Build 0:6ae2f7bca550 9285 }
Azure.IoT Build 0:6ae2f7bca550 9286
Azure.IoT Build 0:6ae2f7bca550 9287 int end_set_error(END_HANDLE end, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9288 {
Azure.IoT Build 0:6ae2f7bca550 9289 int result;
Azure.IoT Build 0:6ae2f7bca550 9290
Azure.IoT Build 0:6ae2f7bca550 9291 if (end == NULL)
Azure.IoT Build 0:6ae2f7bca550 9292 {
AzureIoTClient 19:000ab4e6a2c1 9293 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9294 }
Azure.IoT Build 0:6ae2f7bca550 9295 else
Azure.IoT Build 0:6ae2f7bca550 9296 {
Azure.IoT Build 0:6ae2f7bca550 9297 END_INSTANCE* end_instance = (END_INSTANCE*)end;
Azure.IoT Build 0:6ae2f7bca550 9298 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
Azure.IoT Build 0:6ae2f7bca550 9299 if (error_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9300 {
AzureIoTClient 19:000ab4e6a2c1 9301 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9302 }
Azure.IoT Build 0:6ae2f7bca550 9303 else
Azure.IoT Build 0:6ae2f7bca550 9304 {
Azure.IoT Build 0:6ae2f7bca550 9305 if (amqpvalue_set_composite_item(end_instance->composite_value, 0, error_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 9306 {
AzureIoTClient 19:000ab4e6a2c1 9307 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9308 }
Azure.IoT Build 0:6ae2f7bca550 9309 else
Azure.IoT Build 0:6ae2f7bca550 9310 {
Azure.IoT Build 0:6ae2f7bca550 9311 result = 0;
Azure.IoT Build 0:6ae2f7bca550 9312 }
Azure.IoT Build 0:6ae2f7bca550 9313
Azure.IoT Build 0:6ae2f7bca550 9314 amqpvalue_destroy(error_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 9315 }
Azure.IoT Build 0:6ae2f7bca550 9316 }
Azure.IoT Build 0:6ae2f7bca550 9317
Azure.IoT Build 0:6ae2f7bca550 9318 return result;
Azure.IoT Build 0:6ae2f7bca550 9319 }
Azure.IoT Build 0:6ae2f7bca550 9320
Azure.IoT Build 0:6ae2f7bca550 9321
Azure.IoT Build 0:6ae2f7bca550 9322 /* close */
Azure.IoT Build 0:6ae2f7bca550 9323
Azure.IoT Build 0:6ae2f7bca550 9324 typedef struct CLOSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9325 {
Azure.IoT Build 0:6ae2f7bca550 9326 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9327 } CLOSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9328
Azure.IoT Build 0:6ae2f7bca550 9329 static CLOSE_HANDLE close_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9330 {
AzureIoTClient 21:f9c433d8e6ca 9331 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9332 if (close_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9333 {
Azure.IoT Build 0:6ae2f7bca550 9334 close_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 9335 }
Azure.IoT Build 0:6ae2f7bca550 9336
Azure.IoT Build 0:6ae2f7bca550 9337 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9338 }
Azure.IoT Build 0:6ae2f7bca550 9339
Azure.IoT Build 0:6ae2f7bca550 9340 CLOSE_HANDLE close_create(void)
Azure.IoT Build 0:6ae2f7bca550 9341 {
AzureIoTClient 21:f9c433d8e6ca 9342 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9343 if (close_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9344 {
Azure.IoT Build 0:6ae2f7bca550 9345 close_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(24);
Azure.IoT Build 0:6ae2f7bca550 9346 if (close_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9347 {
AzureIoTClient 21:f9c433d8e6ca 9348 free(close_instance);
Azure.IoT Build 0:6ae2f7bca550 9349 close_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 9350 }
Azure.IoT Build 0:6ae2f7bca550 9351 }
Azure.IoT Build 0:6ae2f7bca550 9352
Azure.IoT Build 0:6ae2f7bca550 9353 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9354 }
Azure.IoT Build 0:6ae2f7bca550 9355
Azure.IoT Build 0:6ae2f7bca550 9356 CLOSE_HANDLE close_clone(CLOSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9357 {
AzureIoTClient 21:f9c433d8e6ca 9358 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9359 if (close_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9360 {
Azure.IoT Build 0:6ae2f7bca550 9361 close_instance->composite_value = amqpvalue_clone(((CLOSE_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 9362 if (close_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9363 {
AzureIoTClient 21:f9c433d8e6ca 9364 free(close_instance);
Azure.IoT Build 0:6ae2f7bca550 9365 close_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 9366 }
Azure.IoT Build 0:6ae2f7bca550 9367 }
Azure.IoT Build 0:6ae2f7bca550 9368
Azure.IoT Build 0:6ae2f7bca550 9369 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9370 }
Azure.IoT Build 0:6ae2f7bca550 9371
Azure.IoT Build 0:6ae2f7bca550 9372 void close_destroy(CLOSE_HANDLE close)
Azure.IoT Build 0:6ae2f7bca550 9373 {
Azure.IoT Build 0:6ae2f7bca550 9374 if (close != NULL)
Azure.IoT Build 0:6ae2f7bca550 9375 {
Azure.IoT Build 0:6ae2f7bca550 9376 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
Azure.IoT Build 0:6ae2f7bca550 9377 amqpvalue_destroy(close_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 9378 free(close_instance);
Azure.IoT Build 0:6ae2f7bca550 9379 }
Azure.IoT Build 0:6ae2f7bca550 9380 }
Azure.IoT Build 0:6ae2f7bca550 9381
Azure.IoT Build 0:6ae2f7bca550 9382 AMQP_VALUE amqpvalue_create_close(CLOSE_HANDLE close)
Azure.IoT Build 0:6ae2f7bca550 9383 {
Azure.IoT Build 0:6ae2f7bca550 9384 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 9385
Azure.IoT Build 0:6ae2f7bca550 9386 if (close == NULL)
Azure.IoT Build 0:6ae2f7bca550 9387 {
Azure.IoT Build 0:6ae2f7bca550 9388 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 9389 }
Azure.IoT Build 0:6ae2f7bca550 9390 else
Azure.IoT Build 0:6ae2f7bca550 9391 {
Azure.IoT Build 0:6ae2f7bca550 9392 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
Azure.IoT Build 0:6ae2f7bca550 9393 result = amqpvalue_clone(close_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 9394 }
Azure.IoT Build 0:6ae2f7bca550 9395
Azure.IoT Build 0:6ae2f7bca550 9396 return result;
Azure.IoT Build 0:6ae2f7bca550 9397 }
Azure.IoT Build 0:6ae2f7bca550 9398
Azure.IoT Build 0:6ae2f7bca550 9399 bool is_close_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9400 {
Azure.IoT Build 0:6ae2f7bca550 9401 bool result;
Azure.IoT Build 0:6ae2f7bca550 9402
Azure.IoT Build 0:6ae2f7bca550 9403 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 9404 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 9405 (descriptor_ulong == 24))
Azure.IoT Build 0:6ae2f7bca550 9406 {
Azure.IoT Build 0:6ae2f7bca550 9407 result = true;
Azure.IoT Build 0:6ae2f7bca550 9408 }
Azure.IoT Build 0:6ae2f7bca550 9409 else
Azure.IoT Build 0:6ae2f7bca550 9410 {
Azure.IoT Build 0:6ae2f7bca550 9411 result = false;
Azure.IoT Build 0:6ae2f7bca550 9412 }
Azure.IoT Build 0:6ae2f7bca550 9413
Azure.IoT Build 0:6ae2f7bca550 9414 return result;
Azure.IoT Build 0:6ae2f7bca550 9415 }
Azure.IoT Build 0:6ae2f7bca550 9416
Azure.IoT Build 0:6ae2f7bca550 9417
Azure.IoT Build 0:6ae2f7bca550 9418 int amqpvalue_get_close(AMQP_VALUE value, CLOSE_HANDLE* close_handle)
Azure.IoT Build 0:6ae2f7bca550 9419 {
Azure.IoT Build 0:6ae2f7bca550 9420 int result;
Azure.IoT Build 0:6ae2f7bca550 9421 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close_create_internal();
Azure.IoT Build 0:6ae2f7bca550 9422 *close_handle = close_instance;
Azure.IoT Build 0:6ae2f7bca550 9423 if (*close_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 9424 {
AzureIoTClient 19:000ab4e6a2c1 9425 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9426 }
Azure.IoT Build 0:6ae2f7bca550 9427 else
Azure.IoT Build 0:6ae2f7bca550 9428 {
Azure.IoT Build 0:6ae2f7bca550 9429 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 9430 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9431 {
Azure.IoT Build 0:6ae2f7bca550 9432 close_destroy(*close_handle);
AzureIoTClient 19:000ab4e6a2c1 9433 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9434 }
Azure.IoT Build 0:6ae2f7bca550 9435 else
Azure.IoT Build 0:6ae2f7bca550 9436 {
AzureIoTClient 23:1111ee8bcba4 9437 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9438 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9439 {
AzureIoTClient 23:1111ee8bcba4 9440 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9441 }
AzureIoTClient 23:1111ee8bcba4 9442 else
AzureIoTClient 23:1111ee8bcba4 9443 {
AzureIoTClient 23:1111ee8bcba4 9444 do
AzureIoTClient 23:1111ee8bcba4 9445 {
AzureIoTClient 23:1111ee8bcba4 9446 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 9447 /* error */
AzureIoTClient 23:1111ee8bcba4 9448 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9449 {
AzureIoTClient 23:1111ee8bcba4 9450 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 9451 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 9452 {
AzureIoTClient 23:1111ee8bcba4 9453 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 9454 }
AzureIoTClient 23:1111ee8bcba4 9455 else
AzureIoTClient 23:1111ee8bcba4 9456 {
AzureIoTClient 25:1101516ee67d 9457 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 9458 {
AzureIoTClient 25:1101516ee67d 9459 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 9460 }
AzureIoTClient 25:1101516ee67d 9461 else
AzureIoTClient 25:1101516ee67d 9462 {
AzureIoTClient 25:1101516ee67d 9463 ERROR_HANDLE error;
AzureIoTClient 23:1111ee8bcba4 9464 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 23:1111ee8bcba4 9465 {
AzureIoTClient 25:1101516ee67d 9466 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 9467 close_destroy(*close_handle);
AzureIoTClient 23:1111ee8bcba4 9468 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9469 break;
AzureIoTClient 23:1111ee8bcba4 9470 }
AzureIoTClient 25:1101516ee67d 9471 else
AzureIoTClient 25:1101516ee67d 9472 {
AzureIoTClient 25:1101516ee67d 9473 error_destroy(error);
AzureIoTClient 25:1101516ee67d 9474 }
AzureIoTClient 23:1111ee8bcba4 9475 }
AzureIoTClient 23:1111ee8bcba4 9476
AzureIoTClient 23:1111ee8bcba4 9477 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 9478 }
AzureIoTClient 23:1111ee8bcba4 9479 }
AzureIoTClient 23:1111ee8bcba4 9480
AzureIoTClient 23:1111ee8bcba4 9481 close_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 9482
AzureIoTClient 23:1111ee8bcba4 9483 result = 0;
AzureIoTClient 23:1111ee8bcba4 9484 } while (0);
AzureIoTClient 23:1111ee8bcba4 9485 }
Azure.IoT Build 0:6ae2f7bca550 9486 }
Azure.IoT Build 0:6ae2f7bca550 9487 }
Azure.IoT Build 0:6ae2f7bca550 9488
Azure.IoT Build 0:6ae2f7bca550 9489 return result;
Azure.IoT Build 0:6ae2f7bca550 9490 }
Azure.IoT Build 0:6ae2f7bca550 9491
Azure.IoT Build 0:6ae2f7bca550 9492 int close_get_error(CLOSE_HANDLE close, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9493 {
Azure.IoT Build 0:6ae2f7bca550 9494 int result;
Azure.IoT Build 0:6ae2f7bca550 9495
Azure.IoT Build 0:6ae2f7bca550 9496 if (close == NULL)
Azure.IoT Build 0:6ae2f7bca550 9497 {
AzureIoTClient 19:000ab4e6a2c1 9498 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9499 }
Azure.IoT Build 0:6ae2f7bca550 9500 else
Azure.IoT Build 0:6ae2f7bca550 9501 {
AzureIoTClient 23:1111ee8bcba4 9502 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 9503 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 23:1111ee8bcba4 9504 if (amqpvalue_get_composite_item_count(close_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9505 {
AzureIoTClient 23:1111ee8bcba4 9506 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9507 }
AzureIoTClient 23:1111ee8bcba4 9508 else
AzureIoTClient 23:1111ee8bcba4 9509 {
AzureIoTClient 23:1111ee8bcba4 9510 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9511 {
AzureIoTClient 23:1111ee8bcba4 9512 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9513 }
AzureIoTClient 23:1111ee8bcba4 9514 else
AzureIoTClient 23:1111ee8bcba4 9515 {
AzureIoTClient 23:1111ee8bcba4 9516 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(close_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 9517 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 9518 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 9519 {
AzureIoTClient 23:1111ee8bcba4 9520 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9521 }
AzureIoTClient 23:1111ee8bcba4 9522 else
AzureIoTClient 23:1111ee8bcba4 9523 {
AzureIoTClient 23:1111ee8bcba4 9524 if (amqpvalue_get_error(item_value, error_value) != 0)
AzureIoTClient 23:1111ee8bcba4 9525 {
AzureIoTClient 23:1111ee8bcba4 9526 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9527 }
AzureIoTClient 23:1111ee8bcba4 9528 else
AzureIoTClient 23:1111ee8bcba4 9529 {
AzureIoTClient 23:1111ee8bcba4 9530 result = 0;
AzureIoTClient 23:1111ee8bcba4 9531 }
AzureIoTClient 23:1111ee8bcba4 9532 }
AzureIoTClient 23:1111ee8bcba4 9533 }
Azure.IoT Build 0:6ae2f7bca550 9534 }
Azure.IoT Build 0:6ae2f7bca550 9535 }
Azure.IoT Build 0:6ae2f7bca550 9536
Azure.IoT Build 0:6ae2f7bca550 9537 return result;
Azure.IoT Build 0:6ae2f7bca550 9538 }
Azure.IoT Build 0:6ae2f7bca550 9539
Azure.IoT Build 0:6ae2f7bca550 9540 int close_set_error(CLOSE_HANDLE close, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9541 {
Azure.IoT Build 0:6ae2f7bca550 9542 int result;
Azure.IoT Build 0:6ae2f7bca550 9543
Azure.IoT Build 0:6ae2f7bca550 9544 if (close == NULL)
Azure.IoT Build 0:6ae2f7bca550 9545 {
AzureIoTClient 19:000ab4e6a2c1 9546 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9547 }
Azure.IoT Build 0:6ae2f7bca550 9548 else
Azure.IoT Build 0:6ae2f7bca550 9549 {
Azure.IoT Build 0:6ae2f7bca550 9550 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
Azure.IoT Build 0:6ae2f7bca550 9551 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
Azure.IoT Build 0:6ae2f7bca550 9552 if (error_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9553 {
AzureIoTClient 19:000ab4e6a2c1 9554 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9555 }
Azure.IoT Build 0:6ae2f7bca550 9556 else
Azure.IoT Build 0:6ae2f7bca550 9557 {
Azure.IoT Build 0:6ae2f7bca550 9558 if (amqpvalue_set_composite_item(close_instance->composite_value, 0, error_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 9559 {
AzureIoTClient 19:000ab4e6a2c1 9560 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9561 }
Azure.IoT Build 0:6ae2f7bca550 9562 else
Azure.IoT Build 0:6ae2f7bca550 9563 {
Azure.IoT Build 0:6ae2f7bca550 9564 result = 0;
Azure.IoT Build 0:6ae2f7bca550 9565 }
Azure.IoT Build 0:6ae2f7bca550 9566
Azure.IoT Build 0:6ae2f7bca550 9567 amqpvalue_destroy(error_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 9568 }
Azure.IoT Build 0:6ae2f7bca550 9569 }
Azure.IoT Build 0:6ae2f7bca550 9570
Azure.IoT Build 0:6ae2f7bca550 9571 return result;
Azure.IoT Build 0:6ae2f7bca550 9572 }
Azure.IoT Build 0:6ae2f7bca550 9573
Azure.IoT Build 0:6ae2f7bca550 9574
Azure.IoT Build 0:6ae2f7bca550 9575 /* sasl-code */
Azure.IoT Build 0:6ae2f7bca550 9576
Azure.IoT Build 0:6ae2f7bca550 9577 AMQP_VALUE amqpvalue_create_sasl_code(sasl_code value)
Azure.IoT Build 0:6ae2f7bca550 9578 {
Azure.IoT Build 0:6ae2f7bca550 9579 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 9580 }
Azure.IoT Build 0:6ae2f7bca550 9581
Azure.IoT Build 0:6ae2f7bca550 9582 /* sasl-mechanisms */
Azure.IoT Build 0:6ae2f7bca550 9583
Azure.IoT Build 0:6ae2f7bca550 9584 typedef struct SASL_MECHANISMS_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9585 {
Azure.IoT Build 0:6ae2f7bca550 9586 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9587 } SASL_MECHANISMS_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9588
Azure.IoT Build 0:6ae2f7bca550 9589 static SASL_MECHANISMS_HANDLE sasl_mechanisms_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9590 {
AzureIoTClient 21:f9c433d8e6ca 9591 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9592 if (sasl_mechanisms_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9593 {
Azure.IoT Build 0:6ae2f7bca550 9594 sasl_mechanisms_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 9595 }
Azure.IoT Build 0:6ae2f7bca550 9596
Azure.IoT Build 0:6ae2f7bca550 9597 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 9598 }
Azure.IoT Build 0:6ae2f7bca550 9599
Azure.IoT Build 0:6ae2f7bca550 9600 SASL_MECHANISMS_HANDLE sasl_mechanisms_create(AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 9601 {
AzureIoTClient 21:f9c433d8e6ca 9602 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9603 if (sasl_mechanisms_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9604 {
Azure.IoT Build 0:6ae2f7bca550 9605 sasl_mechanisms_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(64);
Azure.IoT Build 0:6ae2f7bca550 9606 if (sasl_mechanisms_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9607 {
AzureIoTClient 21:f9c433d8e6ca 9608 free(sasl_mechanisms_instance);
Azure.IoT Build 0:6ae2f7bca550 9609 sasl_mechanisms_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 9610 }
Azure.IoT Build 0:6ae2f7bca550 9611 else
Azure.IoT Build 0:6ae2f7bca550 9612 {
Azure.IoT Build 0:6ae2f7bca550 9613 AMQP_VALUE sasl_server_mechanisms_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 9614 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 9615
Azure.IoT Build 0:6ae2f7bca550 9616 sasl_server_mechanisms_amqp_value = sasl_server_mechanisms_value;
Azure.IoT Build 0:6ae2f7bca550 9617 if ((result == 0) && (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 9618 {
AzureIoTClient 19:000ab4e6a2c1 9619 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9620 }
Azure.IoT Build 0:6ae2f7bca550 9621
Azure.IoT Build 0:6ae2f7bca550 9622 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 9623 }
Azure.IoT Build 0:6ae2f7bca550 9624 }
Azure.IoT Build 0:6ae2f7bca550 9625
Azure.IoT Build 0:6ae2f7bca550 9626 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 9627 }
Azure.IoT Build 0:6ae2f7bca550 9628
Azure.IoT Build 0:6ae2f7bca550 9629 SASL_MECHANISMS_HANDLE sasl_mechanisms_clone(SASL_MECHANISMS_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9630 {
AzureIoTClient 21:f9c433d8e6ca 9631 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9632 if (sasl_mechanisms_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9633 {
Azure.IoT Build 0:6ae2f7bca550 9634 sasl_mechanisms_instance->composite_value = amqpvalue_clone(((SASL_MECHANISMS_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 9635 if (sasl_mechanisms_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9636 {
AzureIoTClient 21:f9c433d8e6ca 9637 free(sasl_mechanisms_instance);
Azure.IoT Build 0:6ae2f7bca550 9638 sasl_mechanisms_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 9639 }
Azure.IoT Build 0:6ae2f7bca550 9640 }
Azure.IoT Build 0:6ae2f7bca550 9641
Azure.IoT Build 0:6ae2f7bca550 9642 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 9643 }
Azure.IoT Build 0:6ae2f7bca550 9644
Azure.IoT Build 0:6ae2f7bca550 9645 void sasl_mechanisms_destroy(SASL_MECHANISMS_HANDLE sasl_mechanisms)
Azure.IoT Build 0:6ae2f7bca550 9646 {
Azure.IoT Build 0:6ae2f7bca550 9647 if (sasl_mechanisms != NULL)
Azure.IoT Build 0:6ae2f7bca550 9648 {
Azure.IoT Build 0:6ae2f7bca550 9649 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
Azure.IoT Build 0:6ae2f7bca550 9650 amqpvalue_destroy(sasl_mechanisms_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 9651 free(sasl_mechanisms_instance);
Azure.IoT Build 0:6ae2f7bca550 9652 }
Azure.IoT Build 0:6ae2f7bca550 9653 }
Azure.IoT Build 0:6ae2f7bca550 9654
Azure.IoT Build 0:6ae2f7bca550 9655 AMQP_VALUE amqpvalue_create_sasl_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms)
Azure.IoT Build 0:6ae2f7bca550 9656 {
Azure.IoT Build 0:6ae2f7bca550 9657 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 9658
Azure.IoT Build 0:6ae2f7bca550 9659 if (sasl_mechanisms == NULL)
Azure.IoT Build 0:6ae2f7bca550 9660 {
Azure.IoT Build 0:6ae2f7bca550 9661 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 9662 }
Azure.IoT Build 0:6ae2f7bca550 9663 else
Azure.IoT Build 0:6ae2f7bca550 9664 {
Azure.IoT Build 0:6ae2f7bca550 9665 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
Azure.IoT Build 0:6ae2f7bca550 9666 result = amqpvalue_clone(sasl_mechanisms_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 9667 }
Azure.IoT Build 0:6ae2f7bca550 9668
Azure.IoT Build 0:6ae2f7bca550 9669 return result;
Azure.IoT Build 0:6ae2f7bca550 9670 }
Azure.IoT Build 0:6ae2f7bca550 9671
Azure.IoT Build 0:6ae2f7bca550 9672 bool is_sasl_mechanisms_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9673 {
Azure.IoT Build 0:6ae2f7bca550 9674 bool result;
Azure.IoT Build 0:6ae2f7bca550 9675
Azure.IoT Build 0:6ae2f7bca550 9676 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 9677 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 9678 (descriptor_ulong == 64))
Azure.IoT Build 0:6ae2f7bca550 9679 {
Azure.IoT Build 0:6ae2f7bca550 9680 result = true;
Azure.IoT Build 0:6ae2f7bca550 9681 }
Azure.IoT Build 0:6ae2f7bca550 9682 else
Azure.IoT Build 0:6ae2f7bca550 9683 {
Azure.IoT Build 0:6ae2f7bca550 9684 result = false;
Azure.IoT Build 0:6ae2f7bca550 9685 }
Azure.IoT Build 0:6ae2f7bca550 9686
Azure.IoT Build 0:6ae2f7bca550 9687 return result;
Azure.IoT Build 0:6ae2f7bca550 9688 }
Azure.IoT Build 0:6ae2f7bca550 9689
Azure.IoT Build 0:6ae2f7bca550 9690
Azure.IoT Build 0:6ae2f7bca550 9691 int amqpvalue_get_sasl_mechanisms(AMQP_VALUE value, SASL_MECHANISMS_HANDLE* sasl_mechanisms_handle)
Azure.IoT Build 0:6ae2f7bca550 9692 {
Azure.IoT Build 0:6ae2f7bca550 9693 int result;
Azure.IoT Build 0:6ae2f7bca550 9694 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms_create_internal();
Azure.IoT Build 0:6ae2f7bca550 9695 *sasl_mechanisms_handle = sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 9696 if (*sasl_mechanisms_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 9697 {
AzureIoTClient 19:000ab4e6a2c1 9698 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9699 }
Azure.IoT Build 0:6ae2f7bca550 9700 else
Azure.IoT Build 0:6ae2f7bca550 9701 {
Azure.IoT Build 0:6ae2f7bca550 9702 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 9703 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9704 {
Azure.IoT Build 0:6ae2f7bca550 9705 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 19:000ab4e6a2c1 9706 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9707 }
Azure.IoT Build 0:6ae2f7bca550 9708 else
Azure.IoT Build 0:6ae2f7bca550 9709 {
AzureIoTClient 23:1111ee8bcba4 9710 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9711 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9712 {
AzureIoTClient 23:1111ee8bcba4 9713 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9714 }
AzureIoTClient 23:1111ee8bcba4 9715 else
AzureIoTClient 23:1111ee8bcba4 9716 {
AzureIoTClient 23:1111ee8bcba4 9717 do
AzureIoTClient 23:1111ee8bcba4 9718 {
AzureIoTClient 23:1111ee8bcba4 9719 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 9720 /* sasl-server-mechanisms */
AzureIoTClient 23:1111ee8bcba4 9721 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9722 {
AzureIoTClient 23:1111ee8bcba4 9723 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 9724 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 9725 {
AzureIoTClient 23:1111ee8bcba4 9726 {
AzureIoTClient 23:1111ee8bcba4 9727 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 23:1111ee8bcba4 9728 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9729 break;
AzureIoTClient 23:1111ee8bcba4 9730 }
AzureIoTClient 23:1111ee8bcba4 9731 }
AzureIoTClient 23:1111ee8bcba4 9732 else
AzureIoTClient 23:1111ee8bcba4 9733 {
AzureIoTClient 25:1101516ee67d 9734 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 9735 {
AzureIoTClient 25:1101516ee67d 9736 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 9737 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 23:1111ee8bcba4 9738 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9739 break;
AzureIoTClient 23:1111ee8bcba4 9740 }
AzureIoTClient 23:1111ee8bcba4 9741 else
AzureIoTClient 23:1111ee8bcba4 9742 {
AzureIoTClient 25:1101516ee67d 9743 const char* sasl_server_mechanisms = NULL;
AzureIoTClient 23:1111ee8bcba4 9744 AMQP_VALUE sasl_server_mechanisms_array;
AzureIoTClient 23:1111ee8bcba4 9745 if ((amqpvalue_get_array(item_value, &sasl_server_mechanisms_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 9746 (amqpvalue_get_symbol(item_value, &sasl_server_mechanisms) != 0))
AzureIoTClient 23:1111ee8bcba4 9747 {
AzureIoTClient 25:1101516ee67d 9748 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 9749 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 23:1111ee8bcba4 9750 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9751 break;
AzureIoTClient 23:1111ee8bcba4 9752 }
AzureIoTClient 23:1111ee8bcba4 9753 }
AzureIoTClient 23:1111ee8bcba4 9754
AzureIoTClient 23:1111ee8bcba4 9755 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 9756 }
AzureIoTClient 23:1111ee8bcba4 9757 }
AzureIoTClient 23:1111ee8bcba4 9758 else
AzureIoTClient 23:1111ee8bcba4 9759 {
AzureIoTClient 23:1111ee8bcba4 9760 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9761 }
AzureIoTClient 23:1111ee8bcba4 9762
AzureIoTClient 23:1111ee8bcba4 9763 sasl_mechanisms_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 9764
AzureIoTClient 23:1111ee8bcba4 9765 result = 0;
AzureIoTClient 23:1111ee8bcba4 9766 } while (0);
AzureIoTClient 23:1111ee8bcba4 9767 }
Azure.IoT Build 0:6ae2f7bca550 9768 }
Azure.IoT Build 0:6ae2f7bca550 9769 }
Azure.IoT Build 0:6ae2f7bca550 9770
Azure.IoT Build 0:6ae2f7bca550 9771 return result;
Azure.IoT Build 0:6ae2f7bca550 9772 }
Azure.IoT Build 0:6ae2f7bca550 9773
Azure.IoT Build 0:6ae2f7bca550 9774 int sasl_mechanisms_get_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE* sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 9775 {
Azure.IoT Build 0:6ae2f7bca550 9776 int result;
Azure.IoT Build 0:6ae2f7bca550 9777
Azure.IoT Build 0:6ae2f7bca550 9778 if (sasl_mechanisms == NULL)
Azure.IoT Build 0:6ae2f7bca550 9779 {
AzureIoTClient 19:000ab4e6a2c1 9780 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9781 }
Azure.IoT Build 0:6ae2f7bca550 9782 else
Azure.IoT Build 0:6ae2f7bca550 9783 {
AzureIoTClient 23:1111ee8bcba4 9784 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 9785 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 23:1111ee8bcba4 9786 if (amqpvalue_get_composite_item_count(sasl_mechanisms_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9787 {
AzureIoTClient 23:1111ee8bcba4 9788 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9789 }
AzureIoTClient 23:1111ee8bcba4 9790 else
AzureIoTClient 23:1111ee8bcba4 9791 {
AzureIoTClient 23:1111ee8bcba4 9792 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9793 {
AzureIoTClient 23:1111ee8bcba4 9794 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9795 }
AzureIoTClient 23:1111ee8bcba4 9796 else
AzureIoTClient 23:1111ee8bcba4 9797 {
AzureIoTClient 23:1111ee8bcba4 9798 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_mechanisms_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 9799 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 9800 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 9801 {
AzureIoTClient 23:1111ee8bcba4 9802 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9803 }
AzureIoTClient 23:1111ee8bcba4 9804 else
AzureIoTClient 23:1111ee8bcba4 9805 {
AzureIoTClient 23:1111ee8bcba4 9806 if (amqpvalue_get_array(item_value, sasl_server_mechanisms_value) != 0)
AzureIoTClient 23:1111ee8bcba4 9807 {
AzureIoTClient 23:1111ee8bcba4 9808 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9809 }
AzureIoTClient 23:1111ee8bcba4 9810 else
AzureIoTClient 23:1111ee8bcba4 9811 {
AzureIoTClient 23:1111ee8bcba4 9812 result = 0;
AzureIoTClient 23:1111ee8bcba4 9813 }
AzureIoTClient 23:1111ee8bcba4 9814 }
AzureIoTClient 23:1111ee8bcba4 9815 }
Azure.IoT Build 0:6ae2f7bca550 9816 }
Azure.IoT Build 0:6ae2f7bca550 9817 }
Azure.IoT Build 0:6ae2f7bca550 9818
Azure.IoT Build 0:6ae2f7bca550 9819 return result;
Azure.IoT Build 0:6ae2f7bca550 9820 }
Azure.IoT Build 0:6ae2f7bca550 9821
Azure.IoT Build 0:6ae2f7bca550 9822 int sasl_mechanisms_set_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 9823 {
Azure.IoT Build 0:6ae2f7bca550 9824 int result;
Azure.IoT Build 0:6ae2f7bca550 9825
Azure.IoT Build 0:6ae2f7bca550 9826 if (sasl_mechanisms == NULL)
Azure.IoT Build 0:6ae2f7bca550 9827 {
AzureIoTClient 19:000ab4e6a2c1 9828 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9829 }
Azure.IoT Build 0:6ae2f7bca550 9830 else
Azure.IoT Build 0:6ae2f7bca550 9831 {
Azure.IoT Build 0:6ae2f7bca550 9832 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 23:1111ee8bcba4 9833 AMQP_VALUE sasl_server_mechanisms_amqp_value;
AzureIoTClient 23:1111ee8bcba4 9834 if (sasl_server_mechanisms_value == NULL)
AzureIoTClient 23:1111ee8bcba4 9835 {
AzureIoTClient 23:1111ee8bcba4 9836 sasl_server_mechanisms_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 9837 }
AzureIoTClient 23:1111ee8bcba4 9838 else
AzureIoTClient 23:1111ee8bcba4 9839 {
AzureIoTClient 23:1111ee8bcba4 9840 sasl_server_mechanisms_amqp_value = amqpvalue_clone(sasl_server_mechanisms_value);
AzureIoTClient 23:1111ee8bcba4 9841 }
Azure.IoT Build 0:6ae2f7bca550 9842 if (sasl_server_mechanisms_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9843 {
AzureIoTClient 19:000ab4e6a2c1 9844 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9845 }
Azure.IoT Build 0:6ae2f7bca550 9846 else
Azure.IoT Build 0:6ae2f7bca550 9847 {
Azure.IoT Build 0:6ae2f7bca550 9848 if (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 9849 {
AzureIoTClient 19:000ab4e6a2c1 9850 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9851 }
Azure.IoT Build 0:6ae2f7bca550 9852 else
Azure.IoT Build 0:6ae2f7bca550 9853 {
Azure.IoT Build 0:6ae2f7bca550 9854 result = 0;
Azure.IoT Build 0:6ae2f7bca550 9855 }
Azure.IoT Build 0:6ae2f7bca550 9856
Azure.IoT Build 0:6ae2f7bca550 9857 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 9858 }
Azure.IoT Build 0:6ae2f7bca550 9859 }
Azure.IoT Build 0:6ae2f7bca550 9860
Azure.IoT Build 0:6ae2f7bca550 9861 return result;
Azure.IoT Build 0:6ae2f7bca550 9862 }
Azure.IoT Build 0:6ae2f7bca550 9863
Azure.IoT Build 0:6ae2f7bca550 9864
Azure.IoT Build 0:6ae2f7bca550 9865 /* sasl-init */
Azure.IoT Build 0:6ae2f7bca550 9866
Azure.IoT Build 0:6ae2f7bca550 9867 typedef struct SASL_INIT_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9868 {
Azure.IoT Build 0:6ae2f7bca550 9869 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9870 } SASL_INIT_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9871
Azure.IoT Build 0:6ae2f7bca550 9872 static SASL_INIT_HANDLE sasl_init_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9873 {
AzureIoTClient 21:f9c433d8e6ca 9874 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9875 if (sasl_init_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9876 {
Azure.IoT Build 0:6ae2f7bca550 9877 sasl_init_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 9878 }
Azure.IoT Build 0:6ae2f7bca550 9879
Azure.IoT Build 0:6ae2f7bca550 9880 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 9881 }
Azure.IoT Build 0:6ae2f7bca550 9882
Azure.IoT Build 0:6ae2f7bca550 9883 SASL_INIT_HANDLE sasl_init_create(const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 9884 {
AzureIoTClient 21:f9c433d8e6ca 9885 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9886 if (sasl_init_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9887 {
Azure.IoT Build 0:6ae2f7bca550 9888 sasl_init_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(65);
Azure.IoT Build 0:6ae2f7bca550 9889 if (sasl_init_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9890 {
AzureIoTClient 21:f9c433d8e6ca 9891 free(sasl_init_instance);
Azure.IoT Build 0:6ae2f7bca550 9892 sasl_init_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 9893 }
Azure.IoT Build 0:6ae2f7bca550 9894 else
Azure.IoT Build 0:6ae2f7bca550 9895 {
Azure.IoT Build 0:6ae2f7bca550 9896 AMQP_VALUE mechanism_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 9897 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 9898
Azure.IoT Build 0:6ae2f7bca550 9899 mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
Azure.IoT Build 0:6ae2f7bca550 9900 if ((result == 0) && (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 9901 {
AzureIoTClient 19:000ab4e6a2c1 9902 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9903 }
Azure.IoT Build 0:6ae2f7bca550 9904
Azure.IoT Build 0:6ae2f7bca550 9905 amqpvalue_destroy(mechanism_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 9906 }
Azure.IoT Build 0:6ae2f7bca550 9907 }
Azure.IoT Build 0:6ae2f7bca550 9908
Azure.IoT Build 0:6ae2f7bca550 9909 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 9910 }
Azure.IoT Build 0:6ae2f7bca550 9911
Azure.IoT Build 0:6ae2f7bca550 9912 SASL_INIT_HANDLE sasl_init_clone(SASL_INIT_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9913 {
AzureIoTClient 21:f9c433d8e6ca 9914 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 9915 if (sasl_init_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 9916 {
Azure.IoT Build 0:6ae2f7bca550 9917 sasl_init_instance->composite_value = amqpvalue_clone(((SASL_INIT_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 9918 if (sasl_init_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9919 {
AzureIoTClient 21:f9c433d8e6ca 9920 free(sasl_init_instance);
Azure.IoT Build 0:6ae2f7bca550 9921 sasl_init_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 9922 }
Azure.IoT Build 0:6ae2f7bca550 9923 }
Azure.IoT Build 0:6ae2f7bca550 9924
Azure.IoT Build 0:6ae2f7bca550 9925 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 9926 }
Azure.IoT Build 0:6ae2f7bca550 9927
Azure.IoT Build 0:6ae2f7bca550 9928 void sasl_init_destroy(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 9929 {
Azure.IoT Build 0:6ae2f7bca550 9930 if (sasl_init != NULL)
Azure.IoT Build 0:6ae2f7bca550 9931 {
Azure.IoT Build 0:6ae2f7bca550 9932 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
Azure.IoT Build 0:6ae2f7bca550 9933 amqpvalue_destroy(sasl_init_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 9934 free(sasl_init_instance);
Azure.IoT Build 0:6ae2f7bca550 9935 }
Azure.IoT Build 0:6ae2f7bca550 9936 }
Azure.IoT Build 0:6ae2f7bca550 9937
Azure.IoT Build 0:6ae2f7bca550 9938 AMQP_VALUE amqpvalue_create_sasl_init(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 9939 {
Azure.IoT Build 0:6ae2f7bca550 9940 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 9941
Azure.IoT Build 0:6ae2f7bca550 9942 if (sasl_init == NULL)
Azure.IoT Build 0:6ae2f7bca550 9943 {
Azure.IoT Build 0:6ae2f7bca550 9944 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 9945 }
Azure.IoT Build 0:6ae2f7bca550 9946 else
Azure.IoT Build 0:6ae2f7bca550 9947 {
Azure.IoT Build 0:6ae2f7bca550 9948 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
Azure.IoT Build 0:6ae2f7bca550 9949 result = amqpvalue_clone(sasl_init_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 9950 }
Azure.IoT Build 0:6ae2f7bca550 9951
Azure.IoT Build 0:6ae2f7bca550 9952 return result;
Azure.IoT Build 0:6ae2f7bca550 9953 }
Azure.IoT Build 0:6ae2f7bca550 9954
Azure.IoT Build 0:6ae2f7bca550 9955 bool is_sasl_init_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9956 {
Azure.IoT Build 0:6ae2f7bca550 9957 bool result;
Azure.IoT Build 0:6ae2f7bca550 9958
Azure.IoT Build 0:6ae2f7bca550 9959 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 9960 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 9961 (descriptor_ulong == 65))
Azure.IoT Build 0:6ae2f7bca550 9962 {
Azure.IoT Build 0:6ae2f7bca550 9963 result = true;
Azure.IoT Build 0:6ae2f7bca550 9964 }
Azure.IoT Build 0:6ae2f7bca550 9965 else
Azure.IoT Build 0:6ae2f7bca550 9966 {
Azure.IoT Build 0:6ae2f7bca550 9967 result = false;
Azure.IoT Build 0:6ae2f7bca550 9968 }
Azure.IoT Build 0:6ae2f7bca550 9969
Azure.IoT Build 0:6ae2f7bca550 9970 return result;
Azure.IoT Build 0:6ae2f7bca550 9971 }
Azure.IoT Build 0:6ae2f7bca550 9972
Azure.IoT Build 0:6ae2f7bca550 9973
Azure.IoT Build 0:6ae2f7bca550 9974 int amqpvalue_get_sasl_init(AMQP_VALUE value, SASL_INIT_HANDLE* sasl_init_handle)
Azure.IoT Build 0:6ae2f7bca550 9975 {
Azure.IoT Build 0:6ae2f7bca550 9976 int result;
Azure.IoT Build 0:6ae2f7bca550 9977 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init_create_internal();
Azure.IoT Build 0:6ae2f7bca550 9978 *sasl_init_handle = sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 9979 if (*sasl_init_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 9980 {
AzureIoTClient 19:000ab4e6a2c1 9981 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9982 }
Azure.IoT Build 0:6ae2f7bca550 9983 else
Azure.IoT Build 0:6ae2f7bca550 9984 {
Azure.IoT Build 0:6ae2f7bca550 9985 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 9986 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 9987 {
Azure.IoT Build 0:6ae2f7bca550 9988 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 19:000ab4e6a2c1 9989 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 9990 }
Azure.IoT Build 0:6ae2f7bca550 9991 else
Azure.IoT Build 0:6ae2f7bca550 9992 {
AzureIoTClient 23:1111ee8bcba4 9993 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9994 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9995 {
AzureIoTClient 23:1111ee8bcba4 9996 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9997 }
AzureIoTClient 23:1111ee8bcba4 9998 else
AzureIoTClient 23:1111ee8bcba4 9999 {
AzureIoTClient 23:1111ee8bcba4 10000 do
AzureIoTClient 23:1111ee8bcba4 10001 {
AzureIoTClient 23:1111ee8bcba4 10002 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 10003 /* mechanism */
AzureIoTClient 23:1111ee8bcba4 10004 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10005 {
AzureIoTClient 23:1111ee8bcba4 10006 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 10007 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10008 {
AzureIoTClient 23:1111ee8bcba4 10009 {
AzureIoTClient 23:1111ee8bcba4 10010 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 23:1111ee8bcba4 10011 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10012 break;
AzureIoTClient 23:1111ee8bcba4 10013 }
AzureIoTClient 23:1111ee8bcba4 10014 }
AzureIoTClient 23:1111ee8bcba4 10015 else
AzureIoTClient 23:1111ee8bcba4 10016 {
AzureIoTClient 25:1101516ee67d 10017 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 10018 {
AzureIoTClient 25:1101516ee67d 10019 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10020 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 23:1111ee8bcba4 10021 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10022 break;
AzureIoTClient 23:1111ee8bcba4 10023 }
AzureIoTClient 23:1111ee8bcba4 10024 else
AzureIoTClient 23:1111ee8bcba4 10025 {
AzureIoTClient 25:1101516ee67d 10026 const char* mechanism;
AzureIoTClient 23:1111ee8bcba4 10027 if (amqpvalue_get_symbol(item_value, &mechanism) != 0)
AzureIoTClient 23:1111ee8bcba4 10028 {
AzureIoTClient 25:1101516ee67d 10029 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10030 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 23:1111ee8bcba4 10031 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10032 break;
AzureIoTClient 23:1111ee8bcba4 10033 }
AzureIoTClient 23:1111ee8bcba4 10034 }
AzureIoTClient 23:1111ee8bcba4 10035
AzureIoTClient 23:1111ee8bcba4 10036 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10037 }
AzureIoTClient 23:1111ee8bcba4 10038 }
AzureIoTClient 23:1111ee8bcba4 10039 else
AzureIoTClient 23:1111ee8bcba4 10040 {
AzureIoTClient 23:1111ee8bcba4 10041 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10042 }
AzureIoTClient 23:1111ee8bcba4 10043 /* initial-response */
AzureIoTClient 23:1111ee8bcba4 10044 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 10045 {
AzureIoTClient 23:1111ee8bcba4 10046 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 10047 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10048 {
AzureIoTClient 23:1111ee8bcba4 10049 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 10050 }
AzureIoTClient 23:1111ee8bcba4 10051 else
AzureIoTClient 23:1111ee8bcba4 10052 {
AzureIoTClient 25:1101516ee67d 10053 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 10054 {
AzureIoTClient 25:1101516ee67d 10055 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 10056 }
AzureIoTClient 25:1101516ee67d 10057 else
AzureIoTClient 25:1101516ee67d 10058 {
AzureIoTClient 25:1101516ee67d 10059 amqp_binary initial_response;
AzureIoTClient 23:1111ee8bcba4 10060 if (amqpvalue_get_binary(item_value, &initial_response) != 0)
AzureIoTClient 23:1111ee8bcba4 10061 {
AzureIoTClient 25:1101516ee67d 10062 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10063 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 23:1111ee8bcba4 10064 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10065 break;
AzureIoTClient 23:1111ee8bcba4 10066 }
AzureIoTClient 23:1111ee8bcba4 10067 }
AzureIoTClient 23:1111ee8bcba4 10068
AzureIoTClient 23:1111ee8bcba4 10069 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10070 }
AzureIoTClient 23:1111ee8bcba4 10071 }
AzureIoTClient 23:1111ee8bcba4 10072 /* hostname */
AzureIoTClient 23:1111ee8bcba4 10073 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 10074 {
AzureIoTClient 23:1111ee8bcba4 10075 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 10076 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10077 {
AzureIoTClient 23:1111ee8bcba4 10078 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 10079 }
AzureIoTClient 23:1111ee8bcba4 10080 else
AzureIoTClient 23:1111ee8bcba4 10081 {
AzureIoTClient 25:1101516ee67d 10082 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 10083 {
AzureIoTClient 25:1101516ee67d 10084 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 10085 }
AzureIoTClient 25:1101516ee67d 10086 else
AzureIoTClient 25:1101516ee67d 10087 {
AzureIoTClient 25:1101516ee67d 10088 const char* hostname;
AzureIoTClient 23:1111ee8bcba4 10089 if (amqpvalue_get_string(item_value, &hostname) != 0)
AzureIoTClient 23:1111ee8bcba4 10090 {
AzureIoTClient 25:1101516ee67d 10091 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10092 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 23:1111ee8bcba4 10093 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10094 break;
AzureIoTClient 23:1111ee8bcba4 10095 }
AzureIoTClient 23:1111ee8bcba4 10096 }
AzureIoTClient 23:1111ee8bcba4 10097
AzureIoTClient 23:1111ee8bcba4 10098 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10099 }
AzureIoTClient 23:1111ee8bcba4 10100 }
AzureIoTClient 23:1111ee8bcba4 10101
AzureIoTClient 23:1111ee8bcba4 10102 sasl_init_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 10103
AzureIoTClient 23:1111ee8bcba4 10104 result = 0;
AzureIoTClient 23:1111ee8bcba4 10105 } while (0);
AzureIoTClient 23:1111ee8bcba4 10106 }
Azure.IoT Build 0:6ae2f7bca550 10107 }
Azure.IoT Build 0:6ae2f7bca550 10108 }
Azure.IoT Build 0:6ae2f7bca550 10109
Azure.IoT Build 0:6ae2f7bca550 10110 return result;
Azure.IoT Build 0:6ae2f7bca550 10111 }
Azure.IoT Build 0:6ae2f7bca550 10112
Azure.IoT Build 0:6ae2f7bca550 10113 int sasl_init_get_mechanism(SASL_INIT_HANDLE sasl_init, const char** mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10114 {
Azure.IoT Build 0:6ae2f7bca550 10115 int result;
Azure.IoT Build 0:6ae2f7bca550 10116
Azure.IoT Build 0:6ae2f7bca550 10117 if (sasl_init == NULL)
Azure.IoT Build 0:6ae2f7bca550 10118 {
AzureIoTClient 19:000ab4e6a2c1 10119 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10120 }
Azure.IoT Build 0:6ae2f7bca550 10121 else
Azure.IoT Build 0:6ae2f7bca550 10122 {
AzureIoTClient 23:1111ee8bcba4 10123 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 10124 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10125 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10126 {
AzureIoTClient 23:1111ee8bcba4 10127 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10128 }
AzureIoTClient 23:1111ee8bcba4 10129 else
AzureIoTClient 23:1111ee8bcba4 10130 {
AzureIoTClient 23:1111ee8bcba4 10131 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10132 {
AzureIoTClient 23:1111ee8bcba4 10133 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10134 }
AzureIoTClient 23:1111ee8bcba4 10135 else
AzureIoTClient 23:1111ee8bcba4 10136 {
AzureIoTClient 23:1111ee8bcba4 10137 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 10138 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 10139 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 10140 {
AzureIoTClient 23:1111ee8bcba4 10141 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10142 }
AzureIoTClient 23:1111ee8bcba4 10143 else
AzureIoTClient 23:1111ee8bcba4 10144 {
AzureIoTClient 23:1111ee8bcba4 10145 if (amqpvalue_get_symbol(item_value, mechanism_value) != 0)
AzureIoTClient 23:1111ee8bcba4 10146 {
AzureIoTClient 23:1111ee8bcba4 10147 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10148 }
AzureIoTClient 23:1111ee8bcba4 10149 else
AzureIoTClient 23:1111ee8bcba4 10150 {
AzureIoTClient 23:1111ee8bcba4 10151 result = 0;
AzureIoTClient 23:1111ee8bcba4 10152 }
AzureIoTClient 23:1111ee8bcba4 10153 }
AzureIoTClient 23:1111ee8bcba4 10154 }
Azure.IoT Build 0:6ae2f7bca550 10155 }
Azure.IoT Build 0:6ae2f7bca550 10156 }
Azure.IoT Build 0:6ae2f7bca550 10157
Azure.IoT Build 0:6ae2f7bca550 10158 return result;
Azure.IoT Build 0:6ae2f7bca550 10159 }
Azure.IoT Build 0:6ae2f7bca550 10160
Azure.IoT Build 0:6ae2f7bca550 10161 int sasl_init_set_mechanism(SASL_INIT_HANDLE sasl_init, const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10162 {
Azure.IoT Build 0:6ae2f7bca550 10163 int result;
Azure.IoT Build 0:6ae2f7bca550 10164
Azure.IoT Build 0:6ae2f7bca550 10165 if (sasl_init == NULL)
Azure.IoT Build 0:6ae2f7bca550 10166 {
AzureIoTClient 19:000ab4e6a2c1 10167 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10168 }
Azure.IoT Build 0:6ae2f7bca550 10169 else
Azure.IoT Build 0:6ae2f7bca550 10170 {
Azure.IoT Build 0:6ae2f7bca550 10171 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
Azure.IoT Build 0:6ae2f7bca550 10172 AMQP_VALUE mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
Azure.IoT Build 0:6ae2f7bca550 10173 if (mechanism_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10174 {
AzureIoTClient 19:000ab4e6a2c1 10175 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10176 }
Azure.IoT Build 0:6ae2f7bca550 10177 else
Azure.IoT Build 0:6ae2f7bca550 10178 {
Azure.IoT Build 0:6ae2f7bca550 10179 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 10180 {
AzureIoTClient 19:000ab4e6a2c1 10181 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10182 }
Azure.IoT Build 0:6ae2f7bca550 10183 else
Azure.IoT Build 0:6ae2f7bca550 10184 {
Azure.IoT Build 0:6ae2f7bca550 10185 result = 0;
Azure.IoT Build 0:6ae2f7bca550 10186 }
Azure.IoT Build 0:6ae2f7bca550 10187
Azure.IoT Build 0:6ae2f7bca550 10188 amqpvalue_destroy(mechanism_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 10189 }
Azure.IoT Build 0:6ae2f7bca550 10190 }
Azure.IoT Build 0:6ae2f7bca550 10191
Azure.IoT Build 0:6ae2f7bca550 10192 return result;
Azure.IoT Build 0:6ae2f7bca550 10193 }
Azure.IoT Build 0:6ae2f7bca550 10194
Azure.IoT Build 0:6ae2f7bca550 10195 int sasl_init_get_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary* initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10196 {
Azure.IoT Build 0:6ae2f7bca550 10197 int result;
Azure.IoT Build 0:6ae2f7bca550 10198
Azure.IoT Build 0:6ae2f7bca550 10199 if (sasl_init == NULL)
Azure.IoT Build 0:6ae2f7bca550 10200 {
AzureIoTClient 19:000ab4e6a2c1 10201 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10202 }
Azure.IoT Build 0:6ae2f7bca550 10203 else
Azure.IoT Build 0:6ae2f7bca550 10204 {
AzureIoTClient 23:1111ee8bcba4 10205 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 10206 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10207 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10208 {
AzureIoTClient 23:1111ee8bcba4 10209 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10210 }
AzureIoTClient 23:1111ee8bcba4 10211 else
AzureIoTClient 23:1111ee8bcba4 10212 {
AzureIoTClient 23:1111ee8bcba4 10213 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 10214 {
AzureIoTClient 23:1111ee8bcba4 10215 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10216 }
AzureIoTClient 23:1111ee8bcba4 10217 else
AzureIoTClient 23:1111ee8bcba4 10218 {
AzureIoTClient 23:1111ee8bcba4 10219 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 10220 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 10221 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 10222 {
AzureIoTClient 23:1111ee8bcba4 10223 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10224 }
AzureIoTClient 23:1111ee8bcba4 10225 else
AzureIoTClient 23:1111ee8bcba4 10226 {
AzureIoTClient 23:1111ee8bcba4 10227 if (amqpvalue_get_binary(item_value, initial_response_value) != 0)
AzureIoTClient 23:1111ee8bcba4 10228 {
AzureIoTClient 23:1111ee8bcba4 10229 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10230 }
AzureIoTClient 23:1111ee8bcba4 10231 else
AzureIoTClient 23:1111ee8bcba4 10232 {
AzureIoTClient 23:1111ee8bcba4 10233 result = 0;
AzureIoTClient 23:1111ee8bcba4 10234 }
AzureIoTClient 23:1111ee8bcba4 10235 }
AzureIoTClient 23:1111ee8bcba4 10236 }
Azure.IoT Build 0:6ae2f7bca550 10237 }
Azure.IoT Build 0:6ae2f7bca550 10238 }
Azure.IoT Build 0:6ae2f7bca550 10239
Azure.IoT Build 0:6ae2f7bca550 10240 return result;
Azure.IoT Build 0:6ae2f7bca550 10241 }
Azure.IoT Build 0:6ae2f7bca550 10242
Azure.IoT Build 0:6ae2f7bca550 10243 int sasl_init_set_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10244 {
Azure.IoT Build 0:6ae2f7bca550 10245 int result;
Azure.IoT Build 0:6ae2f7bca550 10246
Azure.IoT Build 0:6ae2f7bca550 10247 if (sasl_init == NULL)
Azure.IoT Build 0:6ae2f7bca550 10248 {
AzureIoTClient 19:000ab4e6a2c1 10249 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10250 }
Azure.IoT Build 0:6ae2f7bca550 10251 else
Azure.IoT Build 0:6ae2f7bca550 10252 {
Azure.IoT Build 0:6ae2f7bca550 10253 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
Azure.IoT Build 0:6ae2f7bca550 10254 AMQP_VALUE initial_response_amqp_value = amqpvalue_create_binary(initial_response_value);
Azure.IoT Build 0:6ae2f7bca550 10255 if (initial_response_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10256 {
AzureIoTClient 19:000ab4e6a2c1 10257 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10258 }
Azure.IoT Build 0:6ae2f7bca550 10259 else
Azure.IoT Build 0:6ae2f7bca550 10260 {
Azure.IoT Build 0:6ae2f7bca550 10261 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 1, initial_response_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 10262 {
AzureIoTClient 19:000ab4e6a2c1 10263 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10264 }
Azure.IoT Build 0:6ae2f7bca550 10265 else
Azure.IoT Build 0:6ae2f7bca550 10266 {
Azure.IoT Build 0:6ae2f7bca550 10267 result = 0;
Azure.IoT Build 0:6ae2f7bca550 10268 }
Azure.IoT Build 0:6ae2f7bca550 10269
Azure.IoT Build 0:6ae2f7bca550 10270 amqpvalue_destroy(initial_response_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 10271 }
Azure.IoT Build 0:6ae2f7bca550 10272 }
Azure.IoT Build 0:6ae2f7bca550 10273
Azure.IoT Build 0:6ae2f7bca550 10274 return result;
Azure.IoT Build 0:6ae2f7bca550 10275 }
Azure.IoT Build 0:6ae2f7bca550 10276
Azure.IoT Build 0:6ae2f7bca550 10277 int sasl_init_get_hostname(SASL_INIT_HANDLE sasl_init, const char** hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10278 {
Azure.IoT Build 0:6ae2f7bca550 10279 int result;
Azure.IoT Build 0:6ae2f7bca550 10280
Azure.IoT Build 0:6ae2f7bca550 10281 if (sasl_init == NULL)
Azure.IoT Build 0:6ae2f7bca550 10282 {
AzureIoTClient 19:000ab4e6a2c1 10283 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10284 }
Azure.IoT Build 0:6ae2f7bca550 10285 else
Azure.IoT Build 0:6ae2f7bca550 10286 {
AzureIoTClient 23:1111ee8bcba4 10287 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 10288 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10289 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10290 {
AzureIoTClient 23:1111ee8bcba4 10291 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10292 }
AzureIoTClient 23:1111ee8bcba4 10293 else
AzureIoTClient 23:1111ee8bcba4 10294 {
AzureIoTClient 23:1111ee8bcba4 10295 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 10296 {
AzureIoTClient 23:1111ee8bcba4 10297 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10298 }
AzureIoTClient 23:1111ee8bcba4 10299 else
AzureIoTClient 23:1111ee8bcba4 10300 {
AzureIoTClient 23:1111ee8bcba4 10301 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 10302 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 10303 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 10304 {
AzureIoTClient 23:1111ee8bcba4 10305 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10306 }
AzureIoTClient 23:1111ee8bcba4 10307 else
AzureIoTClient 23:1111ee8bcba4 10308 {
AzureIoTClient 23:1111ee8bcba4 10309 if (amqpvalue_get_string(item_value, hostname_value) != 0)
AzureIoTClient 23:1111ee8bcba4 10310 {
AzureIoTClient 23:1111ee8bcba4 10311 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10312 }
AzureIoTClient 23:1111ee8bcba4 10313 else
AzureIoTClient 23:1111ee8bcba4 10314 {
AzureIoTClient 23:1111ee8bcba4 10315 result = 0;
AzureIoTClient 23:1111ee8bcba4 10316 }
AzureIoTClient 23:1111ee8bcba4 10317 }
AzureIoTClient 23:1111ee8bcba4 10318 }
Azure.IoT Build 0:6ae2f7bca550 10319 }
Azure.IoT Build 0:6ae2f7bca550 10320 }
Azure.IoT Build 0:6ae2f7bca550 10321
Azure.IoT Build 0:6ae2f7bca550 10322 return result;
Azure.IoT Build 0:6ae2f7bca550 10323 }
Azure.IoT Build 0:6ae2f7bca550 10324
Azure.IoT Build 0:6ae2f7bca550 10325 int sasl_init_set_hostname(SASL_INIT_HANDLE sasl_init, const char* hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10326 {
Azure.IoT Build 0:6ae2f7bca550 10327 int result;
Azure.IoT Build 0:6ae2f7bca550 10328
Azure.IoT Build 0:6ae2f7bca550 10329 if (sasl_init == NULL)
Azure.IoT Build 0:6ae2f7bca550 10330 {
AzureIoTClient 19:000ab4e6a2c1 10331 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10332 }
Azure.IoT Build 0:6ae2f7bca550 10333 else
Azure.IoT Build 0:6ae2f7bca550 10334 {
Azure.IoT Build 0:6ae2f7bca550 10335 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
Azure.IoT Build 0:6ae2f7bca550 10336 AMQP_VALUE hostname_amqp_value = amqpvalue_create_string(hostname_value);
Azure.IoT Build 0:6ae2f7bca550 10337 if (hostname_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10338 {
AzureIoTClient 19:000ab4e6a2c1 10339 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10340 }
Azure.IoT Build 0:6ae2f7bca550 10341 else
Azure.IoT Build 0:6ae2f7bca550 10342 {
Azure.IoT Build 0:6ae2f7bca550 10343 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 2, hostname_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 10344 {
AzureIoTClient 19:000ab4e6a2c1 10345 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10346 }
Azure.IoT Build 0:6ae2f7bca550 10347 else
Azure.IoT Build 0:6ae2f7bca550 10348 {
Azure.IoT Build 0:6ae2f7bca550 10349 result = 0;
Azure.IoT Build 0:6ae2f7bca550 10350 }
Azure.IoT Build 0:6ae2f7bca550 10351
Azure.IoT Build 0:6ae2f7bca550 10352 amqpvalue_destroy(hostname_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 10353 }
Azure.IoT Build 0:6ae2f7bca550 10354 }
Azure.IoT Build 0:6ae2f7bca550 10355
Azure.IoT Build 0:6ae2f7bca550 10356 return result;
Azure.IoT Build 0:6ae2f7bca550 10357 }
Azure.IoT Build 0:6ae2f7bca550 10358
Azure.IoT Build 0:6ae2f7bca550 10359
Azure.IoT Build 0:6ae2f7bca550 10360 /* sasl-challenge */
Azure.IoT Build 0:6ae2f7bca550 10361
Azure.IoT Build 0:6ae2f7bca550 10362 typedef struct SASL_CHALLENGE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10363 {
Azure.IoT Build 0:6ae2f7bca550 10364 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10365 } SASL_CHALLENGE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10366
Azure.IoT Build 0:6ae2f7bca550 10367 static SASL_CHALLENGE_HANDLE sasl_challenge_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10368 {
AzureIoTClient 21:f9c433d8e6ca 10369 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10370 if (sasl_challenge_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10371 {
Azure.IoT Build 0:6ae2f7bca550 10372 sasl_challenge_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 10373 }
Azure.IoT Build 0:6ae2f7bca550 10374
Azure.IoT Build 0:6ae2f7bca550 10375 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10376 }
Azure.IoT Build 0:6ae2f7bca550 10377
Azure.IoT Build 0:6ae2f7bca550 10378 SASL_CHALLENGE_HANDLE sasl_challenge_create(amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 10379 {
AzureIoTClient 21:f9c433d8e6ca 10380 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10381 if (sasl_challenge_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10382 {
Azure.IoT Build 0:6ae2f7bca550 10383 sasl_challenge_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(66);
Azure.IoT Build 0:6ae2f7bca550 10384 if (sasl_challenge_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10385 {
AzureIoTClient 21:f9c433d8e6ca 10386 free(sasl_challenge_instance);
Azure.IoT Build 0:6ae2f7bca550 10387 sasl_challenge_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 10388 }
Azure.IoT Build 0:6ae2f7bca550 10389 else
Azure.IoT Build 0:6ae2f7bca550 10390 {
Azure.IoT Build 0:6ae2f7bca550 10391 AMQP_VALUE challenge_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 10392 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 10393
Azure.IoT Build 0:6ae2f7bca550 10394 challenge_amqp_value = amqpvalue_create_binary(challenge_value);
Azure.IoT Build 0:6ae2f7bca550 10395 if ((result == 0) && (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 10396 {
AzureIoTClient 19:000ab4e6a2c1 10397 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10398 }
Azure.IoT Build 0:6ae2f7bca550 10399
Azure.IoT Build 0:6ae2f7bca550 10400 amqpvalue_destroy(challenge_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 10401 }
Azure.IoT Build 0:6ae2f7bca550 10402 }
Azure.IoT Build 0:6ae2f7bca550 10403
Azure.IoT Build 0:6ae2f7bca550 10404 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10405 }
Azure.IoT Build 0:6ae2f7bca550 10406
Azure.IoT Build 0:6ae2f7bca550 10407 SASL_CHALLENGE_HANDLE sasl_challenge_clone(SASL_CHALLENGE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10408 {
AzureIoTClient 21:f9c433d8e6ca 10409 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10410 if (sasl_challenge_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10411 {
Azure.IoT Build 0:6ae2f7bca550 10412 sasl_challenge_instance->composite_value = amqpvalue_clone(((SASL_CHALLENGE_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 10413 if (sasl_challenge_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10414 {
AzureIoTClient 21:f9c433d8e6ca 10415 free(sasl_challenge_instance);
Azure.IoT Build 0:6ae2f7bca550 10416 sasl_challenge_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 10417 }
Azure.IoT Build 0:6ae2f7bca550 10418 }
Azure.IoT Build 0:6ae2f7bca550 10419
Azure.IoT Build 0:6ae2f7bca550 10420 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10421 }
Azure.IoT Build 0:6ae2f7bca550 10422
Azure.IoT Build 0:6ae2f7bca550 10423 void sasl_challenge_destroy(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 10424 {
Azure.IoT Build 0:6ae2f7bca550 10425 if (sasl_challenge != NULL)
Azure.IoT Build 0:6ae2f7bca550 10426 {
Azure.IoT Build 0:6ae2f7bca550 10427 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
Azure.IoT Build 0:6ae2f7bca550 10428 amqpvalue_destroy(sasl_challenge_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 10429 free(sasl_challenge_instance);
Azure.IoT Build 0:6ae2f7bca550 10430 }
Azure.IoT Build 0:6ae2f7bca550 10431 }
Azure.IoT Build 0:6ae2f7bca550 10432
Azure.IoT Build 0:6ae2f7bca550 10433 AMQP_VALUE amqpvalue_create_sasl_challenge(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 10434 {
Azure.IoT Build 0:6ae2f7bca550 10435 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 10436
Azure.IoT Build 0:6ae2f7bca550 10437 if (sasl_challenge == NULL)
Azure.IoT Build 0:6ae2f7bca550 10438 {
Azure.IoT Build 0:6ae2f7bca550 10439 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 10440 }
Azure.IoT Build 0:6ae2f7bca550 10441 else
Azure.IoT Build 0:6ae2f7bca550 10442 {
Azure.IoT Build 0:6ae2f7bca550 10443 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
Azure.IoT Build 0:6ae2f7bca550 10444 result = amqpvalue_clone(sasl_challenge_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 10445 }
Azure.IoT Build 0:6ae2f7bca550 10446
Azure.IoT Build 0:6ae2f7bca550 10447 return result;
Azure.IoT Build 0:6ae2f7bca550 10448 }
Azure.IoT Build 0:6ae2f7bca550 10449
Azure.IoT Build 0:6ae2f7bca550 10450 bool is_sasl_challenge_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10451 {
Azure.IoT Build 0:6ae2f7bca550 10452 bool result;
Azure.IoT Build 0:6ae2f7bca550 10453
Azure.IoT Build 0:6ae2f7bca550 10454 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 10455 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 10456 (descriptor_ulong == 66))
Azure.IoT Build 0:6ae2f7bca550 10457 {
Azure.IoT Build 0:6ae2f7bca550 10458 result = true;
Azure.IoT Build 0:6ae2f7bca550 10459 }
Azure.IoT Build 0:6ae2f7bca550 10460 else
Azure.IoT Build 0:6ae2f7bca550 10461 {
Azure.IoT Build 0:6ae2f7bca550 10462 result = false;
Azure.IoT Build 0:6ae2f7bca550 10463 }
Azure.IoT Build 0:6ae2f7bca550 10464
Azure.IoT Build 0:6ae2f7bca550 10465 return result;
Azure.IoT Build 0:6ae2f7bca550 10466 }
Azure.IoT Build 0:6ae2f7bca550 10467
Azure.IoT Build 0:6ae2f7bca550 10468
Azure.IoT Build 0:6ae2f7bca550 10469 int amqpvalue_get_sasl_challenge(AMQP_VALUE value, SASL_CHALLENGE_HANDLE* sasl_challenge_handle)
Azure.IoT Build 0:6ae2f7bca550 10470 {
Azure.IoT Build 0:6ae2f7bca550 10471 int result;
Azure.IoT Build 0:6ae2f7bca550 10472 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge_create_internal();
Azure.IoT Build 0:6ae2f7bca550 10473 *sasl_challenge_handle = sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10474 if (*sasl_challenge_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 10475 {
AzureIoTClient 19:000ab4e6a2c1 10476 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10477 }
Azure.IoT Build 0:6ae2f7bca550 10478 else
Azure.IoT Build 0:6ae2f7bca550 10479 {
Azure.IoT Build 0:6ae2f7bca550 10480 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 10481 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10482 {
Azure.IoT Build 0:6ae2f7bca550 10483 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 19:000ab4e6a2c1 10484 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10485 }
Azure.IoT Build 0:6ae2f7bca550 10486 else
Azure.IoT Build 0:6ae2f7bca550 10487 {
AzureIoTClient 23:1111ee8bcba4 10488 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10489 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10490 {
AzureIoTClient 23:1111ee8bcba4 10491 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10492 }
AzureIoTClient 23:1111ee8bcba4 10493 else
AzureIoTClient 23:1111ee8bcba4 10494 {
AzureIoTClient 23:1111ee8bcba4 10495 do
AzureIoTClient 23:1111ee8bcba4 10496 {
AzureIoTClient 23:1111ee8bcba4 10497 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 10498 /* challenge */
AzureIoTClient 23:1111ee8bcba4 10499 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10500 {
AzureIoTClient 23:1111ee8bcba4 10501 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 10502 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10503 {
AzureIoTClient 23:1111ee8bcba4 10504 {
AzureIoTClient 23:1111ee8bcba4 10505 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 23:1111ee8bcba4 10506 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10507 break;
AzureIoTClient 23:1111ee8bcba4 10508 }
AzureIoTClient 23:1111ee8bcba4 10509 }
AzureIoTClient 23:1111ee8bcba4 10510 else
AzureIoTClient 23:1111ee8bcba4 10511 {
AzureIoTClient 25:1101516ee67d 10512 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 10513 {
AzureIoTClient 25:1101516ee67d 10514 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10515 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 23:1111ee8bcba4 10516 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10517 break;
AzureIoTClient 23:1111ee8bcba4 10518 }
AzureIoTClient 23:1111ee8bcba4 10519 else
AzureIoTClient 23:1111ee8bcba4 10520 {
AzureIoTClient 25:1101516ee67d 10521 amqp_binary challenge;
AzureIoTClient 23:1111ee8bcba4 10522 if (amqpvalue_get_binary(item_value, &challenge) != 0)
AzureIoTClient 23:1111ee8bcba4 10523 {
AzureIoTClient 25:1101516ee67d 10524 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10525 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 23:1111ee8bcba4 10526 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10527 break;
AzureIoTClient 23:1111ee8bcba4 10528 }
AzureIoTClient 23:1111ee8bcba4 10529 }
AzureIoTClient 23:1111ee8bcba4 10530
AzureIoTClient 23:1111ee8bcba4 10531 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10532 }
AzureIoTClient 23:1111ee8bcba4 10533 }
AzureIoTClient 23:1111ee8bcba4 10534 else
AzureIoTClient 23:1111ee8bcba4 10535 {
AzureIoTClient 23:1111ee8bcba4 10536 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10537 }
AzureIoTClient 23:1111ee8bcba4 10538
AzureIoTClient 23:1111ee8bcba4 10539 sasl_challenge_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 10540
AzureIoTClient 23:1111ee8bcba4 10541 result = 0;
AzureIoTClient 23:1111ee8bcba4 10542 } while (0);
AzureIoTClient 23:1111ee8bcba4 10543 }
Azure.IoT Build 0:6ae2f7bca550 10544 }
Azure.IoT Build 0:6ae2f7bca550 10545 }
Azure.IoT Build 0:6ae2f7bca550 10546
Azure.IoT Build 0:6ae2f7bca550 10547 return result;
Azure.IoT Build 0:6ae2f7bca550 10548 }
Azure.IoT Build 0:6ae2f7bca550 10549
Azure.IoT Build 0:6ae2f7bca550 10550 int sasl_challenge_get_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary* challenge_value)
Azure.IoT Build 0:6ae2f7bca550 10551 {
Azure.IoT Build 0:6ae2f7bca550 10552 int result;
Azure.IoT Build 0:6ae2f7bca550 10553
Azure.IoT Build 0:6ae2f7bca550 10554 if (sasl_challenge == NULL)
Azure.IoT Build 0:6ae2f7bca550 10555 {
AzureIoTClient 19:000ab4e6a2c1 10556 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10557 }
Azure.IoT Build 0:6ae2f7bca550 10558 else
Azure.IoT Build 0:6ae2f7bca550 10559 {
AzureIoTClient 23:1111ee8bcba4 10560 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 10561 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 23:1111ee8bcba4 10562 if (amqpvalue_get_composite_item_count(sasl_challenge_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10563 {
AzureIoTClient 23:1111ee8bcba4 10564 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10565 }
AzureIoTClient 23:1111ee8bcba4 10566 else
AzureIoTClient 23:1111ee8bcba4 10567 {
AzureIoTClient 23:1111ee8bcba4 10568 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10569 {
AzureIoTClient 23:1111ee8bcba4 10570 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10571 }
AzureIoTClient 23:1111ee8bcba4 10572 else
AzureIoTClient 23:1111ee8bcba4 10573 {
AzureIoTClient 23:1111ee8bcba4 10574 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_challenge_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 10575 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 10576 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 10577 {
AzureIoTClient 23:1111ee8bcba4 10578 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10579 }
AzureIoTClient 23:1111ee8bcba4 10580 else
AzureIoTClient 23:1111ee8bcba4 10581 {
AzureIoTClient 23:1111ee8bcba4 10582 if (amqpvalue_get_binary(item_value, challenge_value) != 0)
AzureIoTClient 23:1111ee8bcba4 10583 {
AzureIoTClient 23:1111ee8bcba4 10584 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10585 }
AzureIoTClient 23:1111ee8bcba4 10586 else
AzureIoTClient 23:1111ee8bcba4 10587 {
AzureIoTClient 23:1111ee8bcba4 10588 result = 0;
AzureIoTClient 23:1111ee8bcba4 10589 }
AzureIoTClient 23:1111ee8bcba4 10590 }
AzureIoTClient 23:1111ee8bcba4 10591 }
Azure.IoT Build 0:6ae2f7bca550 10592 }
Azure.IoT Build 0:6ae2f7bca550 10593 }
Azure.IoT Build 0:6ae2f7bca550 10594
Azure.IoT Build 0:6ae2f7bca550 10595 return result;
Azure.IoT Build 0:6ae2f7bca550 10596 }
Azure.IoT Build 0:6ae2f7bca550 10597
Azure.IoT Build 0:6ae2f7bca550 10598 int sasl_challenge_set_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 10599 {
Azure.IoT Build 0:6ae2f7bca550 10600 int result;
Azure.IoT Build 0:6ae2f7bca550 10601
Azure.IoT Build 0:6ae2f7bca550 10602 if (sasl_challenge == NULL)
Azure.IoT Build 0:6ae2f7bca550 10603 {
AzureIoTClient 19:000ab4e6a2c1 10604 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10605 }
Azure.IoT Build 0:6ae2f7bca550 10606 else
Azure.IoT Build 0:6ae2f7bca550 10607 {
Azure.IoT Build 0:6ae2f7bca550 10608 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
Azure.IoT Build 0:6ae2f7bca550 10609 AMQP_VALUE challenge_amqp_value = amqpvalue_create_binary(challenge_value);
Azure.IoT Build 0:6ae2f7bca550 10610 if (challenge_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10611 {
AzureIoTClient 19:000ab4e6a2c1 10612 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10613 }
Azure.IoT Build 0:6ae2f7bca550 10614 else
Azure.IoT Build 0:6ae2f7bca550 10615 {
Azure.IoT Build 0:6ae2f7bca550 10616 if (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 10617 {
AzureIoTClient 19:000ab4e6a2c1 10618 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10619 }
Azure.IoT Build 0:6ae2f7bca550 10620 else
Azure.IoT Build 0:6ae2f7bca550 10621 {
Azure.IoT Build 0:6ae2f7bca550 10622 result = 0;
Azure.IoT Build 0:6ae2f7bca550 10623 }
Azure.IoT Build 0:6ae2f7bca550 10624
Azure.IoT Build 0:6ae2f7bca550 10625 amqpvalue_destroy(challenge_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 10626 }
Azure.IoT Build 0:6ae2f7bca550 10627 }
Azure.IoT Build 0:6ae2f7bca550 10628
Azure.IoT Build 0:6ae2f7bca550 10629 return result;
Azure.IoT Build 0:6ae2f7bca550 10630 }
Azure.IoT Build 0:6ae2f7bca550 10631
Azure.IoT Build 0:6ae2f7bca550 10632
Azure.IoT Build 0:6ae2f7bca550 10633 /* sasl-response */
Azure.IoT Build 0:6ae2f7bca550 10634
Azure.IoT Build 0:6ae2f7bca550 10635 typedef struct SASL_RESPONSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10636 {
Azure.IoT Build 0:6ae2f7bca550 10637 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10638 } SASL_RESPONSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10639
Azure.IoT Build 0:6ae2f7bca550 10640 static SASL_RESPONSE_HANDLE sasl_response_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10641 {
AzureIoTClient 21:f9c433d8e6ca 10642 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10643 if (sasl_response_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10644 {
Azure.IoT Build 0:6ae2f7bca550 10645 sasl_response_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 10646 }
Azure.IoT Build 0:6ae2f7bca550 10647
Azure.IoT Build 0:6ae2f7bca550 10648 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 10649 }
Azure.IoT Build 0:6ae2f7bca550 10650
Azure.IoT Build 0:6ae2f7bca550 10651 SASL_RESPONSE_HANDLE sasl_response_create(amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 10652 {
AzureIoTClient 21:f9c433d8e6ca 10653 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10654 if (sasl_response_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10655 {
Azure.IoT Build 0:6ae2f7bca550 10656 sasl_response_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(67);
Azure.IoT Build 0:6ae2f7bca550 10657 if (sasl_response_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10658 {
AzureIoTClient 21:f9c433d8e6ca 10659 free(sasl_response_instance);
Azure.IoT Build 0:6ae2f7bca550 10660 sasl_response_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 10661 }
Azure.IoT Build 0:6ae2f7bca550 10662 else
Azure.IoT Build 0:6ae2f7bca550 10663 {
Azure.IoT Build 0:6ae2f7bca550 10664 AMQP_VALUE response_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 10665 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 10666
Azure.IoT Build 0:6ae2f7bca550 10667 response_amqp_value = amqpvalue_create_binary(response_value);
Azure.IoT Build 0:6ae2f7bca550 10668 if ((result == 0) && (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 10669 {
AzureIoTClient 19:000ab4e6a2c1 10670 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10671 }
Azure.IoT Build 0:6ae2f7bca550 10672
Azure.IoT Build 0:6ae2f7bca550 10673 amqpvalue_destroy(response_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 10674 }
Azure.IoT Build 0:6ae2f7bca550 10675 }
Azure.IoT Build 0:6ae2f7bca550 10676
Azure.IoT Build 0:6ae2f7bca550 10677 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 10678 }
Azure.IoT Build 0:6ae2f7bca550 10679
Azure.IoT Build 0:6ae2f7bca550 10680 SASL_RESPONSE_HANDLE sasl_response_clone(SASL_RESPONSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10681 {
AzureIoTClient 21:f9c433d8e6ca 10682 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10683 if (sasl_response_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10684 {
Azure.IoT Build 0:6ae2f7bca550 10685 sasl_response_instance->composite_value = amqpvalue_clone(((SASL_RESPONSE_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 10686 if (sasl_response_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10687 {
AzureIoTClient 21:f9c433d8e6ca 10688 free(sasl_response_instance);
Azure.IoT Build 0:6ae2f7bca550 10689 sasl_response_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 10690 }
Azure.IoT Build 0:6ae2f7bca550 10691 }
Azure.IoT Build 0:6ae2f7bca550 10692
Azure.IoT Build 0:6ae2f7bca550 10693 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 10694 }
Azure.IoT Build 0:6ae2f7bca550 10695
Azure.IoT Build 0:6ae2f7bca550 10696 void sasl_response_destroy(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 10697 {
Azure.IoT Build 0:6ae2f7bca550 10698 if (sasl_response != NULL)
Azure.IoT Build 0:6ae2f7bca550 10699 {
Azure.IoT Build 0:6ae2f7bca550 10700 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
Azure.IoT Build 0:6ae2f7bca550 10701 amqpvalue_destroy(sasl_response_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 10702 free(sasl_response_instance);
Azure.IoT Build 0:6ae2f7bca550 10703 }
Azure.IoT Build 0:6ae2f7bca550 10704 }
Azure.IoT Build 0:6ae2f7bca550 10705
Azure.IoT Build 0:6ae2f7bca550 10706 AMQP_VALUE amqpvalue_create_sasl_response(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 10707 {
Azure.IoT Build 0:6ae2f7bca550 10708 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 10709
Azure.IoT Build 0:6ae2f7bca550 10710 if (sasl_response == NULL)
Azure.IoT Build 0:6ae2f7bca550 10711 {
Azure.IoT Build 0:6ae2f7bca550 10712 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 10713 }
Azure.IoT Build 0:6ae2f7bca550 10714 else
Azure.IoT Build 0:6ae2f7bca550 10715 {
Azure.IoT Build 0:6ae2f7bca550 10716 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
Azure.IoT Build 0:6ae2f7bca550 10717 result = amqpvalue_clone(sasl_response_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 10718 }
Azure.IoT Build 0:6ae2f7bca550 10719
Azure.IoT Build 0:6ae2f7bca550 10720 return result;
Azure.IoT Build 0:6ae2f7bca550 10721 }
Azure.IoT Build 0:6ae2f7bca550 10722
Azure.IoT Build 0:6ae2f7bca550 10723 bool is_sasl_response_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10724 {
Azure.IoT Build 0:6ae2f7bca550 10725 bool result;
Azure.IoT Build 0:6ae2f7bca550 10726
Azure.IoT Build 0:6ae2f7bca550 10727 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 10728 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 10729 (descriptor_ulong == 67))
Azure.IoT Build 0:6ae2f7bca550 10730 {
Azure.IoT Build 0:6ae2f7bca550 10731 result = true;
Azure.IoT Build 0:6ae2f7bca550 10732 }
Azure.IoT Build 0:6ae2f7bca550 10733 else
Azure.IoT Build 0:6ae2f7bca550 10734 {
Azure.IoT Build 0:6ae2f7bca550 10735 result = false;
Azure.IoT Build 0:6ae2f7bca550 10736 }
Azure.IoT Build 0:6ae2f7bca550 10737
Azure.IoT Build 0:6ae2f7bca550 10738 return result;
Azure.IoT Build 0:6ae2f7bca550 10739 }
Azure.IoT Build 0:6ae2f7bca550 10740
Azure.IoT Build 0:6ae2f7bca550 10741
Azure.IoT Build 0:6ae2f7bca550 10742 int amqpvalue_get_sasl_response(AMQP_VALUE value, SASL_RESPONSE_HANDLE* sasl_response_handle)
Azure.IoT Build 0:6ae2f7bca550 10743 {
Azure.IoT Build 0:6ae2f7bca550 10744 int result;
Azure.IoT Build 0:6ae2f7bca550 10745 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response_create_internal();
Azure.IoT Build 0:6ae2f7bca550 10746 *sasl_response_handle = sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 10747 if (*sasl_response_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 10748 {
AzureIoTClient 19:000ab4e6a2c1 10749 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10750 }
Azure.IoT Build 0:6ae2f7bca550 10751 else
Azure.IoT Build 0:6ae2f7bca550 10752 {
Azure.IoT Build 0:6ae2f7bca550 10753 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 10754 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10755 {
Azure.IoT Build 0:6ae2f7bca550 10756 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 19:000ab4e6a2c1 10757 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10758 }
Azure.IoT Build 0:6ae2f7bca550 10759 else
Azure.IoT Build 0:6ae2f7bca550 10760 {
AzureIoTClient 23:1111ee8bcba4 10761 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10762 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10763 {
AzureIoTClient 23:1111ee8bcba4 10764 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10765 }
AzureIoTClient 23:1111ee8bcba4 10766 else
AzureIoTClient 23:1111ee8bcba4 10767 {
AzureIoTClient 23:1111ee8bcba4 10768 do
AzureIoTClient 23:1111ee8bcba4 10769 {
AzureIoTClient 23:1111ee8bcba4 10770 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 10771 /* response */
AzureIoTClient 23:1111ee8bcba4 10772 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10773 {
AzureIoTClient 23:1111ee8bcba4 10774 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 10775 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10776 {
AzureIoTClient 23:1111ee8bcba4 10777 {
AzureIoTClient 23:1111ee8bcba4 10778 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 23:1111ee8bcba4 10779 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10780 break;
AzureIoTClient 23:1111ee8bcba4 10781 }
AzureIoTClient 23:1111ee8bcba4 10782 }
AzureIoTClient 23:1111ee8bcba4 10783 else
AzureIoTClient 23:1111ee8bcba4 10784 {
AzureIoTClient 25:1101516ee67d 10785 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 10786 {
AzureIoTClient 25:1101516ee67d 10787 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10788 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 23:1111ee8bcba4 10789 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10790 break;
AzureIoTClient 23:1111ee8bcba4 10791 }
AzureIoTClient 23:1111ee8bcba4 10792 else
AzureIoTClient 23:1111ee8bcba4 10793 {
AzureIoTClient 25:1101516ee67d 10794 amqp_binary response;
AzureIoTClient 23:1111ee8bcba4 10795 if (amqpvalue_get_binary(item_value, &response) != 0)
AzureIoTClient 23:1111ee8bcba4 10796 {
AzureIoTClient 25:1101516ee67d 10797 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10798 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 23:1111ee8bcba4 10799 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10800 break;
AzureIoTClient 23:1111ee8bcba4 10801 }
AzureIoTClient 23:1111ee8bcba4 10802 }
AzureIoTClient 23:1111ee8bcba4 10803
AzureIoTClient 23:1111ee8bcba4 10804 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 10805 }
AzureIoTClient 23:1111ee8bcba4 10806 }
AzureIoTClient 23:1111ee8bcba4 10807 else
AzureIoTClient 23:1111ee8bcba4 10808 {
AzureIoTClient 23:1111ee8bcba4 10809 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10810 }
AzureIoTClient 23:1111ee8bcba4 10811
AzureIoTClient 23:1111ee8bcba4 10812 sasl_response_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 10813
AzureIoTClient 23:1111ee8bcba4 10814 result = 0;
AzureIoTClient 23:1111ee8bcba4 10815 } while (0);
AzureIoTClient 23:1111ee8bcba4 10816 }
Azure.IoT Build 0:6ae2f7bca550 10817 }
Azure.IoT Build 0:6ae2f7bca550 10818 }
Azure.IoT Build 0:6ae2f7bca550 10819
Azure.IoT Build 0:6ae2f7bca550 10820 return result;
Azure.IoT Build 0:6ae2f7bca550 10821 }
Azure.IoT Build 0:6ae2f7bca550 10822
Azure.IoT Build 0:6ae2f7bca550 10823 int sasl_response_get_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary* response_value)
Azure.IoT Build 0:6ae2f7bca550 10824 {
Azure.IoT Build 0:6ae2f7bca550 10825 int result;
Azure.IoT Build 0:6ae2f7bca550 10826
Azure.IoT Build 0:6ae2f7bca550 10827 if (sasl_response == NULL)
Azure.IoT Build 0:6ae2f7bca550 10828 {
AzureIoTClient 19:000ab4e6a2c1 10829 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10830 }
Azure.IoT Build 0:6ae2f7bca550 10831 else
Azure.IoT Build 0:6ae2f7bca550 10832 {
AzureIoTClient 23:1111ee8bcba4 10833 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 10834 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 23:1111ee8bcba4 10835 if (amqpvalue_get_composite_item_count(sasl_response_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10836 {
AzureIoTClient 23:1111ee8bcba4 10837 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10838 }
AzureIoTClient 23:1111ee8bcba4 10839 else
AzureIoTClient 23:1111ee8bcba4 10840 {
AzureIoTClient 23:1111ee8bcba4 10841 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10842 {
AzureIoTClient 23:1111ee8bcba4 10843 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10844 }
AzureIoTClient 23:1111ee8bcba4 10845 else
AzureIoTClient 23:1111ee8bcba4 10846 {
AzureIoTClient 23:1111ee8bcba4 10847 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_response_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 10848 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 10849 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 10850 {
AzureIoTClient 23:1111ee8bcba4 10851 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10852 }
AzureIoTClient 23:1111ee8bcba4 10853 else
AzureIoTClient 23:1111ee8bcba4 10854 {
AzureIoTClient 23:1111ee8bcba4 10855 if (amqpvalue_get_binary(item_value, response_value) != 0)
AzureIoTClient 23:1111ee8bcba4 10856 {
AzureIoTClient 23:1111ee8bcba4 10857 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10858 }
AzureIoTClient 23:1111ee8bcba4 10859 else
AzureIoTClient 23:1111ee8bcba4 10860 {
AzureIoTClient 23:1111ee8bcba4 10861 result = 0;
AzureIoTClient 23:1111ee8bcba4 10862 }
AzureIoTClient 23:1111ee8bcba4 10863 }
AzureIoTClient 23:1111ee8bcba4 10864 }
Azure.IoT Build 0:6ae2f7bca550 10865 }
Azure.IoT Build 0:6ae2f7bca550 10866 }
Azure.IoT Build 0:6ae2f7bca550 10867
Azure.IoT Build 0:6ae2f7bca550 10868 return result;
Azure.IoT Build 0:6ae2f7bca550 10869 }
Azure.IoT Build 0:6ae2f7bca550 10870
Azure.IoT Build 0:6ae2f7bca550 10871 int sasl_response_set_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 10872 {
Azure.IoT Build 0:6ae2f7bca550 10873 int result;
Azure.IoT Build 0:6ae2f7bca550 10874
Azure.IoT Build 0:6ae2f7bca550 10875 if (sasl_response == NULL)
Azure.IoT Build 0:6ae2f7bca550 10876 {
AzureIoTClient 19:000ab4e6a2c1 10877 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10878 }
Azure.IoT Build 0:6ae2f7bca550 10879 else
Azure.IoT Build 0:6ae2f7bca550 10880 {
Azure.IoT Build 0:6ae2f7bca550 10881 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
Azure.IoT Build 0:6ae2f7bca550 10882 AMQP_VALUE response_amqp_value = amqpvalue_create_binary(response_value);
Azure.IoT Build 0:6ae2f7bca550 10883 if (response_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10884 {
AzureIoTClient 19:000ab4e6a2c1 10885 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10886 }
Azure.IoT Build 0:6ae2f7bca550 10887 else
Azure.IoT Build 0:6ae2f7bca550 10888 {
Azure.IoT Build 0:6ae2f7bca550 10889 if (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 10890 {
AzureIoTClient 19:000ab4e6a2c1 10891 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10892 }
Azure.IoT Build 0:6ae2f7bca550 10893 else
Azure.IoT Build 0:6ae2f7bca550 10894 {
Azure.IoT Build 0:6ae2f7bca550 10895 result = 0;
Azure.IoT Build 0:6ae2f7bca550 10896 }
Azure.IoT Build 0:6ae2f7bca550 10897
Azure.IoT Build 0:6ae2f7bca550 10898 amqpvalue_destroy(response_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 10899 }
Azure.IoT Build 0:6ae2f7bca550 10900 }
Azure.IoT Build 0:6ae2f7bca550 10901
Azure.IoT Build 0:6ae2f7bca550 10902 return result;
Azure.IoT Build 0:6ae2f7bca550 10903 }
Azure.IoT Build 0:6ae2f7bca550 10904
Azure.IoT Build 0:6ae2f7bca550 10905
Azure.IoT Build 0:6ae2f7bca550 10906 /* sasl-outcome */
Azure.IoT Build 0:6ae2f7bca550 10907
Azure.IoT Build 0:6ae2f7bca550 10908 typedef struct SASL_OUTCOME_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10909 {
Azure.IoT Build 0:6ae2f7bca550 10910 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10911 } SASL_OUTCOME_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10912
Azure.IoT Build 0:6ae2f7bca550 10913 static SASL_OUTCOME_HANDLE sasl_outcome_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10914 {
AzureIoTClient 21:f9c433d8e6ca 10915 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10916 if (sasl_outcome_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10917 {
Azure.IoT Build 0:6ae2f7bca550 10918 sasl_outcome_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 10919 }
Azure.IoT Build 0:6ae2f7bca550 10920
Azure.IoT Build 0:6ae2f7bca550 10921 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 10922 }
Azure.IoT Build 0:6ae2f7bca550 10923
Azure.IoT Build 0:6ae2f7bca550 10924 SASL_OUTCOME_HANDLE sasl_outcome_create(sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 10925 {
AzureIoTClient 21:f9c433d8e6ca 10926 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10927 if (sasl_outcome_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10928 {
Azure.IoT Build 0:6ae2f7bca550 10929 sasl_outcome_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(68);
Azure.IoT Build 0:6ae2f7bca550 10930 if (sasl_outcome_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10931 {
AzureIoTClient 21:f9c433d8e6ca 10932 free(sasl_outcome_instance);
Azure.IoT Build 0:6ae2f7bca550 10933 sasl_outcome_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 10934 }
Azure.IoT Build 0:6ae2f7bca550 10935 else
Azure.IoT Build 0:6ae2f7bca550 10936 {
Azure.IoT Build 0:6ae2f7bca550 10937 AMQP_VALUE code_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 10938 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 10939
Azure.IoT Build 0:6ae2f7bca550 10940 code_amqp_value = amqpvalue_create_sasl_code(code_value);
Azure.IoT Build 0:6ae2f7bca550 10941 if ((result == 0) && (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 10942 {
AzureIoTClient 19:000ab4e6a2c1 10943 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 10944 }
Azure.IoT Build 0:6ae2f7bca550 10945
Azure.IoT Build 0:6ae2f7bca550 10946 amqpvalue_destroy(code_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 10947 }
Azure.IoT Build 0:6ae2f7bca550 10948 }
Azure.IoT Build 0:6ae2f7bca550 10949
Azure.IoT Build 0:6ae2f7bca550 10950 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 10951 }
Azure.IoT Build 0:6ae2f7bca550 10952
Azure.IoT Build 0:6ae2f7bca550 10953 SASL_OUTCOME_HANDLE sasl_outcome_clone(SASL_OUTCOME_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10954 {
AzureIoTClient 21:f9c433d8e6ca 10955 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 10956 if (sasl_outcome_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 10957 {
Azure.IoT Build 0:6ae2f7bca550 10958 sasl_outcome_instance->composite_value = amqpvalue_clone(((SASL_OUTCOME_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 10959 if (sasl_outcome_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 10960 {
AzureIoTClient 21:f9c433d8e6ca 10961 free(sasl_outcome_instance);
Azure.IoT Build 0:6ae2f7bca550 10962 sasl_outcome_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 10963 }
Azure.IoT Build 0:6ae2f7bca550 10964 }
Azure.IoT Build 0:6ae2f7bca550 10965
Azure.IoT Build 0:6ae2f7bca550 10966 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 10967 }
Azure.IoT Build 0:6ae2f7bca550 10968
Azure.IoT Build 0:6ae2f7bca550 10969 void sasl_outcome_destroy(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 10970 {
Azure.IoT Build 0:6ae2f7bca550 10971 if (sasl_outcome != NULL)
Azure.IoT Build 0:6ae2f7bca550 10972 {
Azure.IoT Build 0:6ae2f7bca550 10973 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
Azure.IoT Build 0:6ae2f7bca550 10974 amqpvalue_destroy(sasl_outcome_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 10975 free(sasl_outcome_instance);
Azure.IoT Build 0:6ae2f7bca550 10976 }
Azure.IoT Build 0:6ae2f7bca550 10977 }
Azure.IoT Build 0:6ae2f7bca550 10978
Azure.IoT Build 0:6ae2f7bca550 10979 AMQP_VALUE amqpvalue_create_sasl_outcome(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 10980 {
Azure.IoT Build 0:6ae2f7bca550 10981 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 10982
Azure.IoT Build 0:6ae2f7bca550 10983 if (sasl_outcome == NULL)
Azure.IoT Build 0:6ae2f7bca550 10984 {
Azure.IoT Build 0:6ae2f7bca550 10985 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 10986 }
Azure.IoT Build 0:6ae2f7bca550 10987 else
Azure.IoT Build 0:6ae2f7bca550 10988 {
Azure.IoT Build 0:6ae2f7bca550 10989 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
Azure.IoT Build 0:6ae2f7bca550 10990 result = amqpvalue_clone(sasl_outcome_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 10991 }
Azure.IoT Build 0:6ae2f7bca550 10992
Azure.IoT Build 0:6ae2f7bca550 10993 return result;
Azure.IoT Build 0:6ae2f7bca550 10994 }
Azure.IoT Build 0:6ae2f7bca550 10995
Azure.IoT Build 0:6ae2f7bca550 10996 bool is_sasl_outcome_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10997 {
Azure.IoT Build 0:6ae2f7bca550 10998 bool result;
Azure.IoT Build 0:6ae2f7bca550 10999
Azure.IoT Build 0:6ae2f7bca550 11000 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 11001 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 11002 (descriptor_ulong == 68))
Azure.IoT Build 0:6ae2f7bca550 11003 {
Azure.IoT Build 0:6ae2f7bca550 11004 result = true;
Azure.IoT Build 0:6ae2f7bca550 11005 }
Azure.IoT Build 0:6ae2f7bca550 11006 else
Azure.IoT Build 0:6ae2f7bca550 11007 {
Azure.IoT Build 0:6ae2f7bca550 11008 result = false;
Azure.IoT Build 0:6ae2f7bca550 11009 }
Azure.IoT Build 0:6ae2f7bca550 11010
Azure.IoT Build 0:6ae2f7bca550 11011 return result;
Azure.IoT Build 0:6ae2f7bca550 11012 }
Azure.IoT Build 0:6ae2f7bca550 11013
Azure.IoT Build 0:6ae2f7bca550 11014
Azure.IoT Build 0:6ae2f7bca550 11015 int amqpvalue_get_sasl_outcome(AMQP_VALUE value, SASL_OUTCOME_HANDLE* sasl_outcome_handle)
Azure.IoT Build 0:6ae2f7bca550 11016 {
Azure.IoT Build 0:6ae2f7bca550 11017 int result;
Azure.IoT Build 0:6ae2f7bca550 11018 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome_create_internal();
Azure.IoT Build 0:6ae2f7bca550 11019 *sasl_outcome_handle = sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11020 if (*sasl_outcome_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 11021 {
AzureIoTClient 19:000ab4e6a2c1 11022 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11023 }
Azure.IoT Build 0:6ae2f7bca550 11024 else
Azure.IoT Build 0:6ae2f7bca550 11025 {
Azure.IoT Build 0:6ae2f7bca550 11026 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 11027 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11028 {
Azure.IoT Build 0:6ae2f7bca550 11029 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 19:000ab4e6a2c1 11030 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11031 }
Azure.IoT Build 0:6ae2f7bca550 11032 else
Azure.IoT Build 0:6ae2f7bca550 11033 {
AzureIoTClient 23:1111ee8bcba4 11034 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11035 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11036 {
AzureIoTClient 23:1111ee8bcba4 11037 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11038 }
AzureIoTClient 23:1111ee8bcba4 11039 else
AzureIoTClient 23:1111ee8bcba4 11040 {
AzureIoTClient 23:1111ee8bcba4 11041 do
AzureIoTClient 23:1111ee8bcba4 11042 {
AzureIoTClient 23:1111ee8bcba4 11043 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 11044 /* code */
AzureIoTClient 23:1111ee8bcba4 11045 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11046 {
AzureIoTClient 23:1111ee8bcba4 11047 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 11048 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11049 {
AzureIoTClient 23:1111ee8bcba4 11050 {
AzureIoTClient 23:1111ee8bcba4 11051 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 23:1111ee8bcba4 11052 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11053 break;
AzureIoTClient 23:1111ee8bcba4 11054 }
AzureIoTClient 23:1111ee8bcba4 11055 }
AzureIoTClient 23:1111ee8bcba4 11056 else
AzureIoTClient 23:1111ee8bcba4 11057 {
AzureIoTClient 25:1101516ee67d 11058 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11059 {
AzureIoTClient 25:1101516ee67d 11060 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11061 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 23:1111ee8bcba4 11062 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11063 break;
AzureIoTClient 23:1111ee8bcba4 11064 }
AzureIoTClient 23:1111ee8bcba4 11065 else
AzureIoTClient 23:1111ee8bcba4 11066 {
AzureIoTClient 25:1101516ee67d 11067 sasl_code code;
AzureIoTClient 23:1111ee8bcba4 11068 if (amqpvalue_get_sasl_code(item_value, &code) != 0)
AzureIoTClient 23:1111ee8bcba4 11069 {
AzureIoTClient 25:1101516ee67d 11070 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11071 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 23:1111ee8bcba4 11072 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11073 break;
AzureIoTClient 23:1111ee8bcba4 11074 }
AzureIoTClient 23:1111ee8bcba4 11075 }
AzureIoTClient 23:1111ee8bcba4 11076
AzureIoTClient 23:1111ee8bcba4 11077 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11078 }
AzureIoTClient 23:1111ee8bcba4 11079 }
AzureIoTClient 23:1111ee8bcba4 11080 else
AzureIoTClient 23:1111ee8bcba4 11081 {
AzureIoTClient 23:1111ee8bcba4 11082 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11083 }
AzureIoTClient 23:1111ee8bcba4 11084 /* additional-data */
AzureIoTClient 23:1111ee8bcba4 11085 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 11086 {
AzureIoTClient 23:1111ee8bcba4 11087 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 11088 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11089 {
AzureIoTClient 23:1111ee8bcba4 11090 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11091 }
AzureIoTClient 23:1111ee8bcba4 11092 else
AzureIoTClient 23:1111ee8bcba4 11093 {
AzureIoTClient 25:1101516ee67d 11094 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11095 {
AzureIoTClient 25:1101516ee67d 11096 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11097 }
AzureIoTClient 25:1101516ee67d 11098 else
AzureIoTClient 25:1101516ee67d 11099 {
AzureIoTClient 25:1101516ee67d 11100 amqp_binary additional_data;
AzureIoTClient 23:1111ee8bcba4 11101 if (amqpvalue_get_binary(item_value, &additional_data) != 0)
AzureIoTClient 23:1111ee8bcba4 11102 {
AzureIoTClient 25:1101516ee67d 11103 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11104 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 23:1111ee8bcba4 11105 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11106 break;
AzureIoTClient 23:1111ee8bcba4 11107 }
AzureIoTClient 23:1111ee8bcba4 11108 }
AzureIoTClient 23:1111ee8bcba4 11109
AzureIoTClient 23:1111ee8bcba4 11110 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11111 }
AzureIoTClient 23:1111ee8bcba4 11112 }
AzureIoTClient 23:1111ee8bcba4 11113
AzureIoTClient 23:1111ee8bcba4 11114 sasl_outcome_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 11115
AzureIoTClient 23:1111ee8bcba4 11116 result = 0;
AzureIoTClient 23:1111ee8bcba4 11117 } while (0);
AzureIoTClient 23:1111ee8bcba4 11118 }
Azure.IoT Build 0:6ae2f7bca550 11119 }
Azure.IoT Build 0:6ae2f7bca550 11120 }
Azure.IoT Build 0:6ae2f7bca550 11121
Azure.IoT Build 0:6ae2f7bca550 11122 return result;
Azure.IoT Build 0:6ae2f7bca550 11123 }
Azure.IoT Build 0:6ae2f7bca550 11124
Azure.IoT Build 0:6ae2f7bca550 11125 int sasl_outcome_get_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code* code_value)
Azure.IoT Build 0:6ae2f7bca550 11126 {
Azure.IoT Build 0:6ae2f7bca550 11127 int result;
Azure.IoT Build 0:6ae2f7bca550 11128
Azure.IoT Build 0:6ae2f7bca550 11129 if (sasl_outcome == NULL)
Azure.IoT Build 0:6ae2f7bca550 11130 {
AzureIoTClient 19:000ab4e6a2c1 11131 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11132 }
Azure.IoT Build 0:6ae2f7bca550 11133 else
Azure.IoT Build 0:6ae2f7bca550 11134 {
AzureIoTClient 23:1111ee8bcba4 11135 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 11136 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11137 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11138 {
AzureIoTClient 23:1111ee8bcba4 11139 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11140 }
AzureIoTClient 23:1111ee8bcba4 11141 else
AzureIoTClient 23:1111ee8bcba4 11142 {
AzureIoTClient 23:1111ee8bcba4 11143 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11144 {
AzureIoTClient 23:1111ee8bcba4 11145 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11146 }
AzureIoTClient 23:1111ee8bcba4 11147 else
AzureIoTClient 23:1111ee8bcba4 11148 {
AzureIoTClient 23:1111ee8bcba4 11149 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 11150 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 11151 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 11152 {
AzureIoTClient 23:1111ee8bcba4 11153 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11154 }
AzureIoTClient 23:1111ee8bcba4 11155 else
AzureIoTClient 23:1111ee8bcba4 11156 {
AzureIoTClient 23:1111ee8bcba4 11157 if (amqpvalue_get_sasl_code(item_value, code_value) != 0)
AzureIoTClient 23:1111ee8bcba4 11158 {
AzureIoTClient 23:1111ee8bcba4 11159 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11160 }
AzureIoTClient 23:1111ee8bcba4 11161 else
AzureIoTClient 23:1111ee8bcba4 11162 {
AzureIoTClient 23:1111ee8bcba4 11163 result = 0;
AzureIoTClient 23:1111ee8bcba4 11164 }
AzureIoTClient 23:1111ee8bcba4 11165 }
AzureIoTClient 23:1111ee8bcba4 11166 }
Azure.IoT Build 0:6ae2f7bca550 11167 }
Azure.IoT Build 0:6ae2f7bca550 11168 }
Azure.IoT Build 0:6ae2f7bca550 11169
Azure.IoT Build 0:6ae2f7bca550 11170 return result;
Azure.IoT Build 0:6ae2f7bca550 11171 }
Azure.IoT Build 0:6ae2f7bca550 11172
Azure.IoT Build 0:6ae2f7bca550 11173 int sasl_outcome_set_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11174 {
Azure.IoT Build 0:6ae2f7bca550 11175 int result;
Azure.IoT Build 0:6ae2f7bca550 11176
Azure.IoT Build 0:6ae2f7bca550 11177 if (sasl_outcome == NULL)
Azure.IoT Build 0:6ae2f7bca550 11178 {
AzureIoTClient 19:000ab4e6a2c1 11179 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11180 }
Azure.IoT Build 0:6ae2f7bca550 11181 else
Azure.IoT Build 0:6ae2f7bca550 11182 {
Azure.IoT Build 0:6ae2f7bca550 11183 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
Azure.IoT Build 0:6ae2f7bca550 11184 AMQP_VALUE code_amqp_value = amqpvalue_create_sasl_code(code_value);
Azure.IoT Build 0:6ae2f7bca550 11185 if (code_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11186 {
AzureIoTClient 19:000ab4e6a2c1 11187 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11188 }
Azure.IoT Build 0:6ae2f7bca550 11189 else
Azure.IoT Build 0:6ae2f7bca550 11190 {
Azure.IoT Build 0:6ae2f7bca550 11191 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 11192 {
AzureIoTClient 19:000ab4e6a2c1 11193 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11194 }
Azure.IoT Build 0:6ae2f7bca550 11195 else
Azure.IoT Build 0:6ae2f7bca550 11196 {
Azure.IoT Build 0:6ae2f7bca550 11197 result = 0;
Azure.IoT Build 0:6ae2f7bca550 11198 }
Azure.IoT Build 0:6ae2f7bca550 11199
Azure.IoT Build 0:6ae2f7bca550 11200 amqpvalue_destroy(code_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 11201 }
Azure.IoT Build 0:6ae2f7bca550 11202 }
Azure.IoT Build 0:6ae2f7bca550 11203
Azure.IoT Build 0:6ae2f7bca550 11204 return result;
Azure.IoT Build 0:6ae2f7bca550 11205 }
Azure.IoT Build 0:6ae2f7bca550 11206
Azure.IoT Build 0:6ae2f7bca550 11207 int sasl_outcome_get_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary* additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11208 {
Azure.IoT Build 0:6ae2f7bca550 11209 int result;
Azure.IoT Build 0:6ae2f7bca550 11210
Azure.IoT Build 0:6ae2f7bca550 11211 if (sasl_outcome == NULL)
Azure.IoT Build 0:6ae2f7bca550 11212 {
AzureIoTClient 19:000ab4e6a2c1 11213 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11214 }
Azure.IoT Build 0:6ae2f7bca550 11215 else
Azure.IoT Build 0:6ae2f7bca550 11216 {
AzureIoTClient 23:1111ee8bcba4 11217 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 11218 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11219 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11220 {
AzureIoTClient 23:1111ee8bcba4 11221 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11222 }
AzureIoTClient 23:1111ee8bcba4 11223 else
AzureIoTClient 23:1111ee8bcba4 11224 {
AzureIoTClient 23:1111ee8bcba4 11225 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 11226 {
AzureIoTClient 23:1111ee8bcba4 11227 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11228 }
AzureIoTClient 23:1111ee8bcba4 11229 else
AzureIoTClient 23:1111ee8bcba4 11230 {
AzureIoTClient 23:1111ee8bcba4 11231 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 11232 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 11233 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 11234 {
AzureIoTClient 23:1111ee8bcba4 11235 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11236 }
AzureIoTClient 23:1111ee8bcba4 11237 else
AzureIoTClient 23:1111ee8bcba4 11238 {
AzureIoTClient 23:1111ee8bcba4 11239 if (amqpvalue_get_binary(item_value, additional_data_value) != 0)
AzureIoTClient 23:1111ee8bcba4 11240 {
AzureIoTClient 23:1111ee8bcba4 11241 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11242 }
AzureIoTClient 23:1111ee8bcba4 11243 else
AzureIoTClient 23:1111ee8bcba4 11244 {
AzureIoTClient 23:1111ee8bcba4 11245 result = 0;
AzureIoTClient 23:1111ee8bcba4 11246 }
AzureIoTClient 23:1111ee8bcba4 11247 }
AzureIoTClient 23:1111ee8bcba4 11248 }
Azure.IoT Build 0:6ae2f7bca550 11249 }
Azure.IoT Build 0:6ae2f7bca550 11250 }
Azure.IoT Build 0:6ae2f7bca550 11251
Azure.IoT Build 0:6ae2f7bca550 11252 return result;
Azure.IoT Build 0:6ae2f7bca550 11253 }
Azure.IoT Build 0:6ae2f7bca550 11254
Azure.IoT Build 0:6ae2f7bca550 11255 int sasl_outcome_set_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11256 {
Azure.IoT Build 0:6ae2f7bca550 11257 int result;
Azure.IoT Build 0:6ae2f7bca550 11258
Azure.IoT Build 0:6ae2f7bca550 11259 if (sasl_outcome == NULL)
Azure.IoT Build 0:6ae2f7bca550 11260 {
AzureIoTClient 19:000ab4e6a2c1 11261 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11262 }
Azure.IoT Build 0:6ae2f7bca550 11263 else
Azure.IoT Build 0:6ae2f7bca550 11264 {
Azure.IoT Build 0:6ae2f7bca550 11265 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
Azure.IoT Build 0:6ae2f7bca550 11266 AMQP_VALUE additional_data_amqp_value = amqpvalue_create_binary(additional_data_value);
Azure.IoT Build 0:6ae2f7bca550 11267 if (additional_data_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11268 {
AzureIoTClient 19:000ab4e6a2c1 11269 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11270 }
Azure.IoT Build 0:6ae2f7bca550 11271 else
Azure.IoT Build 0:6ae2f7bca550 11272 {
Azure.IoT Build 0:6ae2f7bca550 11273 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 1, additional_data_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 11274 {
AzureIoTClient 19:000ab4e6a2c1 11275 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11276 }
Azure.IoT Build 0:6ae2f7bca550 11277 else
Azure.IoT Build 0:6ae2f7bca550 11278 {
Azure.IoT Build 0:6ae2f7bca550 11279 result = 0;
Azure.IoT Build 0:6ae2f7bca550 11280 }
Azure.IoT Build 0:6ae2f7bca550 11281
Azure.IoT Build 0:6ae2f7bca550 11282 amqpvalue_destroy(additional_data_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 11283 }
Azure.IoT Build 0:6ae2f7bca550 11284 }
Azure.IoT Build 0:6ae2f7bca550 11285
Azure.IoT Build 0:6ae2f7bca550 11286 return result;
Azure.IoT Build 0:6ae2f7bca550 11287 }
Azure.IoT Build 0:6ae2f7bca550 11288
Azure.IoT Build 0:6ae2f7bca550 11289
Azure.IoT Build 0:6ae2f7bca550 11290 /* terminus-durability */
Azure.IoT Build 0:6ae2f7bca550 11291
Azure.IoT Build 0:6ae2f7bca550 11292 AMQP_VALUE amqpvalue_create_terminus_durability(terminus_durability value)
Azure.IoT Build 0:6ae2f7bca550 11293 {
Azure.IoT Build 0:6ae2f7bca550 11294 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 11295 }
Azure.IoT Build 0:6ae2f7bca550 11296
Azure.IoT Build 0:6ae2f7bca550 11297 /* terminus-expiry-policy */
Azure.IoT Build 0:6ae2f7bca550 11298
Azure.IoT Build 0:6ae2f7bca550 11299 AMQP_VALUE amqpvalue_create_terminus_expiry_policy(terminus_expiry_policy value)
Azure.IoT Build 0:6ae2f7bca550 11300 {
Azure.IoT Build 0:6ae2f7bca550 11301 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 11302 }
Azure.IoT Build 0:6ae2f7bca550 11303
Azure.IoT Build 0:6ae2f7bca550 11304 /* node-properties */
Azure.IoT Build 0:6ae2f7bca550 11305
Azure.IoT Build 0:6ae2f7bca550 11306 AMQP_VALUE amqpvalue_create_node_properties(node_properties value)
Azure.IoT Build 0:6ae2f7bca550 11307 {
Azure.IoT Build 0:6ae2f7bca550 11308 return amqpvalue_create_fields(value);
Azure.IoT Build 0:6ae2f7bca550 11309 }
Azure.IoT Build 0:6ae2f7bca550 11310
Azure.IoT Build 0:6ae2f7bca550 11311 /* filter-set */
Azure.IoT Build 0:6ae2f7bca550 11312
Azure.IoT Build 0:6ae2f7bca550 11313 AMQP_VALUE amqpvalue_create_filter_set(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 11314 {
Azure.IoT Build 0:6ae2f7bca550 11315 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 11316 }
Azure.IoT Build 0:6ae2f7bca550 11317
Azure.IoT Build 0:6ae2f7bca550 11318 /* source */
Azure.IoT Build 0:6ae2f7bca550 11319
Azure.IoT Build 0:6ae2f7bca550 11320 typedef struct SOURCE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11321 {
Azure.IoT Build 0:6ae2f7bca550 11322 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11323 } SOURCE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11324
Azure.IoT Build 0:6ae2f7bca550 11325 static SOURCE_HANDLE source_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11326 {
AzureIoTClient 21:f9c433d8e6ca 11327 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 11328 if (source_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 11329 {
Azure.IoT Build 0:6ae2f7bca550 11330 source_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 11331 }
Azure.IoT Build 0:6ae2f7bca550 11332
Azure.IoT Build 0:6ae2f7bca550 11333 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11334 }
Azure.IoT Build 0:6ae2f7bca550 11335
Azure.IoT Build 0:6ae2f7bca550 11336 SOURCE_HANDLE source_create(void)
Azure.IoT Build 0:6ae2f7bca550 11337 {
AzureIoTClient 21:f9c433d8e6ca 11338 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 11339 if (source_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 11340 {
Azure.IoT Build 0:6ae2f7bca550 11341 source_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(40);
Azure.IoT Build 0:6ae2f7bca550 11342 if (source_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11343 {
AzureIoTClient 21:f9c433d8e6ca 11344 free(source_instance);
Azure.IoT Build 0:6ae2f7bca550 11345 source_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 11346 }
Azure.IoT Build 0:6ae2f7bca550 11347 }
Azure.IoT Build 0:6ae2f7bca550 11348
Azure.IoT Build 0:6ae2f7bca550 11349 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11350 }
Azure.IoT Build 0:6ae2f7bca550 11351
Azure.IoT Build 0:6ae2f7bca550 11352 SOURCE_HANDLE source_clone(SOURCE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11353 {
AzureIoTClient 21:f9c433d8e6ca 11354 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 11355 if (source_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 11356 {
Azure.IoT Build 0:6ae2f7bca550 11357 source_instance->composite_value = amqpvalue_clone(((SOURCE_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 11358 if (source_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11359 {
AzureIoTClient 21:f9c433d8e6ca 11360 free(source_instance);
Azure.IoT Build 0:6ae2f7bca550 11361 source_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 11362 }
Azure.IoT Build 0:6ae2f7bca550 11363 }
Azure.IoT Build 0:6ae2f7bca550 11364
Azure.IoT Build 0:6ae2f7bca550 11365 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11366 }
Azure.IoT Build 0:6ae2f7bca550 11367
Azure.IoT Build 0:6ae2f7bca550 11368 void source_destroy(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11369 {
Azure.IoT Build 0:6ae2f7bca550 11370 if (source != NULL)
Azure.IoT Build 0:6ae2f7bca550 11371 {
Azure.IoT Build 0:6ae2f7bca550 11372 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 11373 amqpvalue_destroy(source_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 11374 free(source_instance);
Azure.IoT Build 0:6ae2f7bca550 11375 }
Azure.IoT Build 0:6ae2f7bca550 11376 }
Azure.IoT Build 0:6ae2f7bca550 11377
Azure.IoT Build 0:6ae2f7bca550 11378 AMQP_VALUE amqpvalue_create_source(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11379 {
Azure.IoT Build 0:6ae2f7bca550 11380 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 11381
Azure.IoT Build 0:6ae2f7bca550 11382 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 11383 {
Azure.IoT Build 0:6ae2f7bca550 11384 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 11385 }
Azure.IoT Build 0:6ae2f7bca550 11386 else
Azure.IoT Build 0:6ae2f7bca550 11387 {
Azure.IoT Build 0:6ae2f7bca550 11388 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 11389 result = amqpvalue_clone(source_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 11390 }
Azure.IoT Build 0:6ae2f7bca550 11391
Azure.IoT Build 0:6ae2f7bca550 11392 return result;
Azure.IoT Build 0:6ae2f7bca550 11393 }
Azure.IoT Build 0:6ae2f7bca550 11394
Azure.IoT Build 0:6ae2f7bca550 11395 bool is_source_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11396 {
Azure.IoT Build 0:6ae2f7bca550 11397 bool result;
Azure.IoT Build 0:6ae2f7bca550 11398
Azure.IoT Build 0:6ae2f7bca550 11399 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 11400 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 11401 (descriptor_ulong == 40))
Azure.IoT Build 0:6ae2f7bca550 11402 {
Azure.IoT Build 0:6ae2f7bca550 11403 result = true;
Azure.IoT Build 0:6ae2f7bca550 11404 }
Azure.IoT Build 0:6ae2f7bca550 11405 else
Azure.IoT Build 0:6ae2f7bca550 11406 {
Azure.IoT Build 0:6ae2f7bca550 11407 result = false;
Azure.IoT Build 0:6ae2f7bca550 11408 }
Azure.IoT Build 0:6ae2f7bca550 11409
Azure.IoT Build 0:6ae2f7bca550 11410 return result;
Azure.IoT Build 0:6ae2f7bca550 11411 }
Azure.IoT Build 0:6ae2f7bca550 11412
Azure.IoT Build 0:6ae2f7bca550 11413
Azure.IoT Build 0:6ae2f7bca550 11414 int amqpvalue_get_source(AMQP_VALUE value, SOURCE_HANDLE* source_handle)
Azure.IoT Build 0:6ae2f7bca550 11415 {
Azure.IoT Build 0:6ae2f7bca550 11416 int result;
Azure.IoT Build 0:6ae2f7bca550 11417 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source_create_internal();
Azure.IoT Build 0:6ae2f7bca550 11418 *source_handle = source_instance;
Azure.IoT Build 0:6ae2f7bca550 11419 if (*source_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 11420 {
AzureIoTClient 19:000ab4e6a2c1 11421 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11422 }
Azure.IoT Build 0:6ae2f7bca550 11423 else
Azure.IoT Build 0:6ae2f7bca550 11424 {
Azure.IoT Build 0:6ae2f7bca550 11425 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 11426 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11427 {
Azure.IoT Build 0:6ae2f7bca550 11428 source_destroy(*source_handle);
AzureIoTClient 19:000ab4e6a2c1 11429 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11430 }
Azure.IoT Build 0:6ae2f7bca550 11431 else
Azure.IoT Build 0:6ae2f7bca550 11432 {
AzureIoTClient 23:1111ee8bcba4 11433 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11434 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11435 {
AzureIoTClient 23:1111ee8bcba4 11436 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11437 }
AzureIoTClient 23:1111ee8bcba4 11438 else
AzureIoTClient 23:1111ee8bcba4 11439 {
AzureIoTClient 23:1111ee8bcba4 11440 do
AzureIoTClient 23:1111ee8bcba4 11441 {
AzureIoTClient 23:1111ee8bcba4 11442 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 11443 /* address */
AzureIoTClient 23:1111ee8bcba4 11444 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11445 {
AzureIoTClient 23:1111ee8bcba4 11446 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 11447 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11448 {
AzureIoTClient 23:1111ee8bcba4 11449 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11450 }
AzureIoTClient 23:1111ee8bcba4 11451 else
AzureIoTClient 23:1111ee8bcba4 11452 {
AzureIoTClient 23:1111ee8bcba4 11453 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11454 }
AzureIoTClient 23:1111ee8bcba4 11455 }
AzureIoTClient 23:1111ee8bcba4 11456 /* durable */
AzureIoTClient 23:1111ee8bcba4 11457 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 11458 {
AzureIoTClient 23:1111ee8bcba4 11459 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 11460 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11461 {
AzureIoTClient 23:1111ee8bcba4 11462 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11463 }
AzureIoTClient 23:1111ee8bcba4 11464 else
AzureIoTClient 23:1111ee8bcba4 11465 {
AzureIoTClient 25:1101516ee67d 11466 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11467 {
AzureIoTClient 25:1101516ee67d 11468 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11469 }
AzureIoTClient 25:1101516ee67d 11470 else
AzureIoTClient 25:1101516ee67d 11471 {
AzureIoTClient 25:1101516ee67d 11472 terminus_durability durable;
AzureIoTClient 23:1111ee8bcba4 11473 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 23:1111ee8bcba4 11474 {
AzureIoTClient 25:1101516ee67d 11475 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11476 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11477 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11478 break;
AzureIoTClient 23:1111ee8bcba4 11479 }
AzureIoTClient 23:1111ee8bcba4 11480 }
AzureIoTClient 23:1111ee8bcba4 11481
AzureIoTClient 23:1111ee8bcba4 11482 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11483 }
AzureIoTClient 23:1111ee8bcba4 11484 }
AzureIoTClient 23:1111ee8bcba4 11485 /* expiry-policy */
AzureIoTClient 23:1111ee8bcba4 11486 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 11487 {
AzureIoTClient 23:1111ee8bcba4 11488 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 11489 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11490 {
AzureIoTClient 23:1111ee8bcba4 11491 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11492 }
AzureIoTClient 23:1111ee8bcba4 11493 else
AzureIoTClient 23:1111ee8bcba4 11494 {
AzureIoTClient 25:1101516ee67d 11495 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11496 {
AzureIoTClient 25:1101516ee67d 11497 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11498 }
AzureIoTClient 25:1101516ee67d 11499 else
AzureIoTClient 25:1101516ee67d 11500 {
AzureIoTClient 25:1101516ee67d 11501 terminus_expiry_policy expiry_policy;
AzureIoTClient 23:1111ee8bcba4 11502 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 23:1111ee8bcba4 11503 {
AzureIoTClient 25:1101516ee67d 11504 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11505 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11506 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11507 break;
AzureIoTClient 23:1111ee8bcba4 11508 }
AzureIoTClient 23:1111ee8bcba4 11509 }
AzureIoTClient 23:1111ee8bcba4 11510
AzureIoTClient 23:1111ee8bcba4 11511 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11512 }
AzureIoTClient 23:1111ee8bcba4 11513 }
AzureIoTClient 23:1111ee8bcba4 11514 /* timeout */
AzureIoTClient 23:1111ee8bcba4 11515 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 11516 {
AzureIoTClient 23:1111ee8bcba4 11517 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 11518 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11519 {
AzureIoTClient 23:1111ee8bcba4 11520 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11521 }
AzureIoTClient 23:1111ee8bcba4 11522 else
AzureIoTClient 23:1111ee8bcba4 11523 {
AzureIoTClient 25:1101516ee67d 11524 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11525 {
AzureIoTClient 25:1101516ee67d 11526 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11527 }
AzureIoTClient 25:1101516ee67d 11528 else
AzureIoTClient 25:1101516ee67d 11529 {
AzureIoTClient 25:1101516ee67d 11530 seconds timeout;
AzureIoTClient 23:1111ee8bcba4 11531 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 23:1111ee8bcba4 11532 {
AzureIoTClient 25:1101516ee67d 11533 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11534 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11535 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11536 break;
AzureIoTClient 23:1111ee8bcba4 11537 }
AzureIoTClient 23:1111ee8bcba4 11538 }
AzureIoTClient 23:1111ee8bcba4 11539
AzureIoTClient 23:1111ee8bcba4 11540 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11541 }
AzureIoTClient 23:1111ee8bcba4 11542 }
AzureIoTClient 23:1111ee8bcba4 11543 /* dynamic */
AzureIoTClient 23:1111ee8bcba4 11544 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 11545 {
AzureIoTClient 23:1111ee8bcba4 11546 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 11547 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11548 {
AzureIoTClient 23:1111ee8bcba4 11549 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11550 }
AzureIoTClient 23:1111ee8bcba4 11551 else
AzureIoTClient 23:1111ee8bcba4 11552 {
AzureIoTClient 25:1101516ee67d 11553 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11554 {
AzureIoTClient 25:1101516ee67d 11555 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11556 }
AzureIoTClient 25:1101516ee67d 11557 else
AzureIoTClient 25:1101516ee67d 11558 {
AzureIoTClient 25:1101516ee67d 11559 bool dynamic;
AzureIoTClient 23:1111ee8bcba4 11560 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 23:1111ee8bcba4 11561 {
AzureIoTClient 25:1101516ee67d 11562 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11563 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11564 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11565 break;
AzureIoTClient 23:1111ee8bcba4 11566 }
AzureIoTClient 23:1111ee8bcba4 11567 }
AzureIoTClient 23:1111ee8bcba4 11568
AzureIoTClient 23:1111ee8bcba4 11569 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11570 }
AzureIoTClient 23:1111ee8bcba4 11571 }
AzureIoTClient 23:1111ee8bcba4 11572 /* dynamic-node-properties */
AzureIoTClient 23:1111ee8bcba4 11573 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 11574 {
AzureIoTClient 23:1111ee8bcba4 11575 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 11576 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11577 {
AzureIoTClient 23:1111ee8bcba4 11578 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11579 }
AzureIoTClient 23:1111ee8bcba4 11580 else
AzureIoTClient 23:1111ee8bcba4 11581 {
AzureIoTClient 25:1101516ee67d 11582 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11583 {
AzureIoTClient 25:1101516ee67d 11584 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11585 }
AzureIoTClient 25:1101516ee67d 11586 else
AzureIoTClient 25:1101516ee67d 11587 {
AzureIoTClient 25:1101516ee67d 11588 node_properties dynamic_node_properties;
AzureIoTClient 23:1111ee8bcba4 11589 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 23:1111ee8bcba4 11590 {
AzureIoTClient 25:1101516ee67d 11591 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11592 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11593 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11594 break;
AzureIoTClient 23:1111ee8bcba4 11595 }
AzureIoTClient 23:1111ee8bcba4 11596 }
AzureIoTClient 23:1111ee8bcba4 11597
AzureIoTClient 23:1111ee8bcba4 11598 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11599 }
AzureIoTClient 23:1111ee8bcba4 11600 }
AzureIoTClient 23:1111ee8bcba4 11601 /* distribution-mode */
AzureIoTClient 23:1111ee8bcba4 11602 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 11603 {
AzureIoTClient 23:1111ee8bcba4 11604 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 23:1111ee8bcba4 11605 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11606 {
AzureIoTClient 23:1111ee8bcba4 11607 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11608 }
AzureIoTClient 23:1111ee8bcba4 11609 else
AzureIoTClient 23:1111ee8bcba4 11610 {
AzureIoTClient 25:1101516ee67d 11611 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11612 {
AzureIoTClient 25:1101516ee67d 11613 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11614 }
AzureIoTClient 25:1101516ee67d 11615 else
AzureIoTClient 25:1101516ee67d 11616 {
AzureIoTClient 25:1101516ee67d 11617 const char* distribution_mode;
AzureIoTClient 23:1111ee8bcba4 11618 if (amqpvalue_get_symbol(item_value, &distribution_mode) != 0)
AzureIoTClient 23:1111ee8bcba4 11619 {
AzureIoTClient 25:1101516ee67d 11620 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11621 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11622 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11623 break;
AzureIoTClient 23:1111ee8bcba4 11624 }
AzureIoTClient 23:1111ee8bcba4 11625 }
AzureIoTClient 23:1111ee8bcba4 11626
AzureIoTClient 23:1111ee8bcba4 11627 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11628 }
AzureIoTClient 23:1111ee8bcba4 11629 }
AzureIoTClient 23:1111ee8bcba4 11630 /* filter */
AzureIoTClient 23:1111ee8bcba4 11631 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 11632 {
AzureIoTClient 23:1111ee8bcba4 11633 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 23:1111ee8bcba4 11634 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11635 {
AzureIoTClient 23:1111ee8bcba4 11636 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11637 }
AzureIoTClient 23:1111ee8bcba4 11638 else
AzureIoTClient 23:1111ee8bcba4 11639 {
AzureIoTClient 25:1101516ee67d 11640 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11641 {
AzureIoTClient 25:1101516ee67d 11642 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11643 }
AzureIoTClient 25:1101516ee67d 11644 else
AzureIoTClient 25:1101516ee67d 11645 {
AzureIoTClient 25:1101516ee67d 11646 filter_set filter;
AzureIoTClient 23:1111ee8bcba4 11647 if (amqpvalue_get_filter_set(item_value, &filter) != 0)
AzureIoTClient 23:1111ee8bcba4 11648 {
AzureIoTClient 25:1101516ee67d 11649 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11650 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11651 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11652 break;
AzureIoTClient 23:1111ee8bcba4 11653 }
AzureIoTClient 23:1111ee8bcba4 11654 }
AzureIoTClient 23:1111ee8bcba4 11655
AzureIoTClient 23:1111ee8bcba4 11656 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11657 }
AzureIoTClient 23:1111ee8bcba4 11658 }
AzureIoTClient 23:1111ee8bcba4 11659 /* default-outcome */
AzureIoTClient 23:1111ee8bcba4 11660 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 11661 {
AzureIoTClient 23:1111ee8bcba4 11662 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 23:1111ee8bcba4 11663 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11664 {
AzureIoTClient 23:1111ee8bcba4 11665 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11666 }
AzureIoTClient 23:1111ee8bcba4 11667 else
AzureIoTClient 23:1111ee8bcba4 11668 {
AzureIoTClient 23:1111ee8bcba4 11669 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11670 }
AzureIoTClient 23:1111ee8bcba4 11671 }
AzureIoTClient 23:1111ee8bcba4 11672 /* outcomes */
AzureIoTClient 23:1111ee8bcba4 11673 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 11674 {
AzureIoTClient 23:1111ee8bcba4 11675 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 23:1111ee8bcba4 11676 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11677 {
AzureIoTClient 23:1111ee8bcba4 11678 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11679 }
AzureIoTClient 23:1111ee8bcba4 11680 else
AzureIoTClient 23:1111ee8bcba4 11681 {
AzureIoTClient 25:1101516ee67d 11682 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11683 {
AzureIoTClient 25:1101516ee67d 11684 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11685 }
AzureIoTClient 25:1101516ee67d 11686 else
AzureIoTClient 25:1101516ee67d 11687 {
AzureIoTClient 25:1101516ee67d 11688 const char* outcomes = NULL;
AzureIoTClient 23:1111ee8bcba4 11689 AMQP_VALUE outcomes_array;
AzureIoTClient 23:1111ee8bcba4 11690 if ((amqpvalue_get_array(item_value, &outcomes_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 11691 (amqpvalue_get_symbol(item_value, &outcomes) != 0))
AzureIoTClient 23:1111ee8bcba4 11692 {
AzureIoTClient 25:1101516ee67d 11693 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11694 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11695 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11696 break;
AzureIoTClient 23:1111ee8bcba4 11697 }
AzureIoTClient 23:1111ee8bcba4 11698 }
AzureIoTClient 23:1111ee8bcba4 11699
AzureIoTClient 23:1111ee8bcba4 11700 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11701 }
AzureIoTClient 23:1111ee8bcba4 11702 }
AzureIoTClient 23:1111ee8bcba4 11703 /* capabilities */
AzureIoTClient 23:1111ee8bcba4 11704 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 11705 {
AzureIoTClient 23:1111ee8bcba4 11706 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 23:1111ee8bcba4 11707 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11708 {
AzureIoTClient 23:1111ee8bcba4 11709 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 11710 }
AzureIoTClient 23:1111ee8bcba4 11711 else
AzureIoTClient 23:1111ee8bcba4 11712 {
AzureIoTClient 25:1101516ee67d 11713 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 11714 {
AzureIoTClient 25:1101516ee67d 11715 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 11716 }
AzureIoTClient 25:1101516ee67d 11717 else
AzureIoTClient 25:1101516ee67d 11718 {
AzureIoTClient 25:1101516ee67d 11719 const char* capabilities = NULL;
AzureIoTClient 23:1111ee8bcba4 11720 AMQP_VALUE capabilities_array;
AzureIoTClient 23:1111ee8bcba4 11721 if ((amqpvalue_get_array(item_value, &capabilities_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 11722 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 23:1111ee8bcba4 11723 {
AzureIoTClient 25:1101516ee67d 11724 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11725 source_destroy(*source_handle);
AzureIoTClient 23:1111ee8bcba4 11726 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11727 break;
AzureIoTClient 23:1111ee8bcba4 11728 }
AzureIoTClient 23:1111ee8bcba4 11729 }
AzureIoTClient 23:1111ee8bcba4 11730
AzureIoTClient 23:1111ee8bcba4 11731 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 11732 }
AzureIoTClient 23:1111ee8bcba4 11733 }
AzureIoTClient 23:1111ee8bcba4 11734
AzureIoTClient 23:1111ee8bcba4 11735 source_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 11736
AzureIoTClient 23:1111ee8bcba4 11737 result = 0;
AzureIoTClient 23:1111ee8bcba4 11738 } while (0);
AzureIoTClient 23:1111ee8bcba4 11739 }
Azure.IoT Build 0:6ae2f7bca550 11740 }
Azure.IoT Build 0:6ae2f7bca550 11741 }
Azure.IoT Build 0:6ae2f7bca550 11742
Azure.IoT Build 0:6ae2f7bca550 11743 return result;
Azure.IoT Build 0:6ae2f7bca550 11744 }
Azure.IoT Build 0:6ae2f7bca550 11745
Azure.IoT Build 0:6ae2f7bca550 11746 int source_get_address(SOURCE_HANDLE source, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 11747 {
Azure.IoT Build 0:6ae2f7bca550 11748 int result;
Azure.IoT Build 0:6ae2f7bca550 11749
Azure.IoT Build 0:6ae2f7bca550 11750 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 11751 {
AzureIoTClient 19:000ab4e6a2c1 11752 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11753 }
Azure.IoT Build 0:6ae2f7bca550 11754 else
Azure.IoT Build 0:6ae2f7bca550 11755 {
AzureIoTClient 23:1111ee8bcba4 11756 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 11757 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 11758 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11759 {
AzureIoTClient 23:1111ee8bcba4 11760 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11761 }
AzureIoTClient 23:1111ee8bcba4 11762 else
AzureIoTClient 23:1111ee8bcba4 11763 {
AzureIoTClient 23:1111ee8bcba4 11764 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11765 {
AzureIoTClient 23:1111ee8bcba4 11766 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11767 }
AzureIoTClient 23:1111ee8bcba4 11768 else
AzureIoTClient 23:1111ee8bcba4 11769 {
AzureIoTClient 23:1111ee8bcba4 11770 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 11771 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 11772 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 11773 {
AzureIoTClient 23:1111ee8bcba4 11774 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11775 }
AzureIoTClient 23:1111ee8bcba4 11776 else
AzureIoTClient 23:1111ee8bcba4 11777 {
AzureIoTClient 23:1111ee8bcba4 11778 *address_value = item_value;
AzureIoTClient 23:1111ee8bcba4 11779 result = 0;
AzureIoTClient 23:1111ee8bcba4 11780 }
AzureIoTClient 23:1111ee8bcba4 11781 }
Azure.IoT Build 0:6ae2f7bca550 11782 }
Azure.IoT Build 0:6ae2f7bca550 11783 }
Azure.IoT Build 0:6ae2f7bca550 11784
Azure.IoT Build 0:6ae2f7bca550 11785 return result;
Azure.IoT Build 0:6ae2f7bca550 11786 }
Azure.IoT Build 0:6ae2f7bca550 11787
Azure.IoT Build 0:6ae2f7bca550 11788 int source_set_address(SOURCE_HANDLE source, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 11789 {
Azure.IoT Build 0:6ae2f7bca550 11790 int result;
Azure.IoT Build 0:6ae2f7bca550 11791
Azure.IoT Build 0:6ae2f7bca550 11792 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 11793 {
AzureIoTClient 19:000ab4e6a2c1 11794 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11795 }
Azure.IoT Build 0:6ae2f7bca550 11796 else
Azure.IoT Build 0:6ae2f7bca550 11797 {
Azure.IoT Build 0:6ae2f7bca550 11798 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 11799 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 11800 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 11801 {
AzureIoTClient 23:1111ee8bcba4 11802 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 11803 }
AzureIoTClient 23:1111ee8bcba4 11804 else
AzureIoTClient 23:1111ee8bcba4 11805 {
AzureIoTClient 23:1111ee8bcba4 11806 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 11807 }
Azure.IoT Build 0:6ae2f7bca550 11808 if (address_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11809 {
AzureIoTClient 19:000ab4e6a2c1 11810 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11811 }
Azure.IoT Build 0:6ae2f7bca550 11812 else
Azure.IoT Build 0:6ae2f7bca550 11813 {
Azure.IoT Build 0:6ae2f7bca550 11814 if (amqpvalue_set_composite_item(source_instance->composite_value, 0, address_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 11815 {
AzureIoTClient 19:000ab4e6a2c1 11816 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11817 }
Azure.IoT Build 0:6ae2f7bca550 11818 else
Azure.IoT Build 0:6ae2f7bca550 11819 {
Azure.IoT Build 0:6ae2f7bca550 11820 result = 0;
Azure.IoT Build 0:6ae2f7bca550 11821 }
Azure.IoT Build 0:6ae2f7bca550 11822
Azure.IoT Build 0:6ae2f7bca550 11823 amqpvalue_destroy(address_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 11824 }
Azure.IoT Build 0:6ae2f7bca550 11825 }
Azure.IoT Build 0:6ae2f7bca550 11826
Azure.IoT Build 0:6ae2f7bca550 11827 return result;
Azure.IoT Build 0:6ae2f7bca550 11828 }
Azure.IoT Build 0:6ae2f7bca550 11829
Azure.IoT Build 0:6ae2f7bca550 11830 int source_get_durable(SOURCE_HANDLE source, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 11831 {
Azure.IoT Build 0:6ae2f7bca550 11832 int result;
Azure.IoT Build 0:6ae2f7bca550 11833
Azure.IoT Build 0:6ae2f7bca550 11834 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 11835 {
AzureIoTClient 19:000ab4e6a2c1 11836 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11837 }
Azure.IoT Build 0:6ae2f7bca550 11838 else
Azure.IoT Build 0:6ae2f7bca550 11839 {
AzureIoTClient 23:1111ee8bcba4 11840 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 11841 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 11842 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11843 {
AzureIoTClient 23:1111ee8bcba4 11844 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11845 }
AzureIoTClient 23:1111ee8bcba4 11846 else
AzureIoTClient 23:1111ee8bcba4 11847 {
AzureIoTClient 23:1111ee8bcba4 11848 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 11849 {
AzureIoTClient 23:1111ee8bcba4 11850 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 11851 result = 0;
AzureIoTClient 23:1111ee8bcba4 11852 }
AzureIoTClient 23:1111ee8bcba4 11853 else
AzureIoTClient 23:1111ee8bcba4 11854 {
AzureIoTClient 23:1111ee8bcba4 11855 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 11856 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 11857 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 11858 {
AzureIoTClient 16:22a72cf8e416 11859 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 11860 result = 0;
AzureIoTClient 23:1111ee8bcba4 11861 }
AzureIoTClient 23:1111ee8bcba4 11862 else
AzureIoTClient 23:1111ee8bcba4 11863 {
AzureIoTClient 23:1111ee8bcba4 11864 if (amqpvalue_get_terminus_durability(item_value, durable_value) != 0)
AzureIoTClient 23:1111ee8bcba4 11865 {
AzureIoTClient 23:1111ee8bcba4 11866 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 11867 {
AzureIoTClient 23:1111ee8bcba4 11868 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11869 }
AzureIoTClient 23:1111ee8bcba4 11870 else
AzureIoTClient 23:1111ee8bcba4 11871 {
AzureIoTClient 23:1111ee8bcba4 11872 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 11873 result = 0;
AzureIoTClient 23:1111ee8bcba4 11874 }
AzureIoTClient 23:1111ee8bcba4 11875 }
AzureIoTClient 23:1111ee8bcba4 11876 else
AzureIoTClient 23:1111ee8bcba4 11877 {
AzureIoTClient 23:1111ee8bcba4 11878 result = 0;
AzureIoTClient 23:1111ee8bcba4 11879 }
AzureIoTClient 23:1111ee8bcba4 11880 }
AzureIoTClient 23:1111ee8bcba4 11881 }
Azure.IoT Build 0:6ae2f7bca550 11882 }
Azure.IoT Build 0:6ae2f7bca550 11883 }
Azure.IoT Build 0:6ae2f7bca550 11884
Azure.IoT Build 0:6ae2f7bca550 11885 return result;
Azure.IoT Build 0:6ae2f7bca550 11886 }
Azure.IoT Build 0:6ae2f7bca550 11887
Azure.IoT Build 0:6ae2f7bca550 11888 int source_set_durable(SOURCE_HANDLE source, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 11889 {
Azure.IoT Build 0:6ae2f7bca550 11890 int result;
Azure.IoT Build 0:6ae2f7bca550 11891
Azure.IoT Build 0:6ae2f7bca550 11892 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 11893 {
AzureIoTClient 19:000ab4e6a2c1 11894 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11895 }
Azure.IoT Build 0:6ae2f7bca550 11896 else
Azure.IoT Build 0:6ae2f7bca550 11897 {
Azure.IoT Build 0:6ae2f7bca550 11898 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 11899 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
Azure.IoT Build 0:6ae2f7bca550 11900 if (durable_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11901 {
AzureIoTClient 19:000ab4e6a2c1 11902 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11903 }
Azure.IoT Build 0:6ae2f7bca550 11904 else
Azure.IoT Build 0:6ae2f7bca550 11905 {
Azure.IoT Build 0:6ae2f7bca550 11906 if (amqpvalue_set_composite_item(source_instance->composite_value, 1, durable_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 11907 {
AzureIoTClient 19:000ab4e6a2c1 11908 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11909 }
Azure.IoT Build 0:6ae2f7bca550 11910 else
Azure.IoT Build 0:6ae2f7bca550 11911 {
Azure.IoT Build 0:6ae2f7bca550 11912 result = 0;
Azure.IoT Build 0:6ae2f7bca550 11913 }
Azure.IoT Build 0:6ae2f7bca550 11914
Azure.IoT Build 0:6ae2f7bca550 11915 amqpvalue_destroy(durable_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 11916 }
Azure.IoT Build 0:6ae2f7bca550 11917 }
Azure.IoT Build 0:6ae2f7bca550 11918
Azure.IoT Build 0:6ae2f7bca550 11919 return result;
Azure.IoT Build 0:6ae2f7bca550 11920 }
Azure.IoT Build 0:6ae2f7bca550 11921
Azure.IoT Build 0:6ae2f7bca550 11922 int source_get_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 11923 {
Azure.IoT Build 0:6ae2f7bca550 11924 int result;
Azure.IoT Build 0:6ae2f7bca550 11925
Azure.IoT Build 0:6ae2f7bca550 11926 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 11927 {
AzureIoTClient 19:000ab4e6a2c1 11928 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11929 }
Azure.IoT Build 0:6ae2f7bca550 11930 else
Azure.IoT Build 0:6ae2f7bca550 11931 {
AzureIoTClient 23:1111ee8bcba4 11932 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 11933 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 11934 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11935 {
AzureIoTClient 23:1111ee8bcba4 11936 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11937 }
AzureIoTClient 23:1111ee8bcba4 11938 else
AzureIoTClient 23:1111ee8bcba4 11939 {
AzureIoTClient 23:1111ee8bcba4 11940 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 11941 {
AzureIoTClient 23:1111ee8bcba4 11942 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 11943 result = 0;
AzureIoTClient 23:1111ee8bcba4 11944 }
AzureIoTClient 23:1111ee8bcba4 11945 else
AzureIoTClient 23:1111ee8bcba4 11946 {
AzureIoTClient 23:1111ee8bcba4 11947 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 11948 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 11949 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 11950 {
AzureIoTClient 16:22a72cf8e416 11951 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 11952 result = 0;
AzureIoTClient 23:1111ee8bcba4 11953 }
AzureIoTClient 23:1111ee8bcba4 11954 else
AzureIoTClient 23:1111ee8bcba4 11955 {
AzureIoTClient 23:1111ee8bcba4 11956 if (amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value) != 0)
AzureIoTClient 23:1111ee8bcba4 11957 {
AzureIoTClient 23:1111ee8bcba4 11958 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 11959 {
AzureIoTClient 23:1111ee8bcba4 11960 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11961 }
AzureIoTClient 23:1111ee8bcba4 11962 else
AzureIoTClient 23:1111ee8bcba4 11963 {
AzureIoTClient 23:1111ee8bcba4 11964 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 11965 result = 0;
AzureIoTClient 23:1111ee8bcba4 11966 }
AzureIoTClient 23:1111ee8bcba4 11967 }
AzureIoTClient 23:1111ee8bcba4 11968 else
AzureIoTClient 23:1111ee8bcba4 11969 {
AzureIoTClient 23:1111ee8bcba4 11970 result = 0;
AzureIoTClient 23:1111ee8bcba4 11971 }
AzureIoTClient 23:1111ee8bcba4 11972 }
AzureIoTClient 23:1111ee8bcba4 11973 }
Azure.IoT Build 0:6ae2f7bca550 11974 }
Azure.IoT Build 0:6ae2f7bca550 11975 }
Azure.IoT Build 0:6ae2f7bca550 11976
Azure.IoT Build 0:6ae2f7bca550 11977 return result;
Azure.IoT Build 0:6ae2f7bca550 11978 }
Azure.IoT Build 0:6ae2f7bca550 11979
Azure.IoT Build 0:6ae2f7bca550 11980 int source_set_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 11981 {
Azure.IoT Build 0:6ae2f7bca550 11982 int result;
Azure.IoT Build 0:6ae2f7bca550 11983
Azure.IoT Build 0:6ae2f7bca550 11984 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 11985 {
AzureIoTClient 19:000ab4e6a2c1 11986 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11987 }
Azure.IoT Build 0:6ae2f7bca550 11988 else
Azure.IoT Build 0:6ae2f7bca550 11989 {
Azure.IoT Build 0:6ae2f7bca550 11990 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 11991 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
Azure.IoT Build 0:6ae2f7bca550 11992 if (expiry_policy_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 11993 {
AzureIoTClient 19:000ab4e6a2c1 11994 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 11995 }
Azure.IoT Build 0:6ae2f7bca550 11996 else
Azure.IoT Build 0:6ae2f7bca550 11997 {
Azure.IoT Build 0:6ae2f7bca550 11998 if (amqpvalue_set_composite_item(source_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 11999 {
AzureIoTClient 19:000ab4e6a2c1 12000 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12001 }
Azure.IoT Build 0:6ae2f7bca550 12002 else
Azure.IoT Build 0:6ae2f7bca550 12003 {
Azure.IoT Build 0:6ae2f7bca550 12004 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12005 }
Azure.IoT Build 0:6ae2f7bca550 12006
Azure.IoT Build 0:6ae2f7bca550 12007 amqpvalue_destroy(expiry_policy_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12008 }
Azure.IoT Build 0:6ae2f7bca550 12009 }
Azure.IoT Build 0:6ae2f7bca550 12010
Azure.IoT Build 0:6ae2f7bca550 12011 return result;
Azure.IoT Build 0:6ae2f7bca550 12012 }
Azure.IoT Build 0:6ae2f7bca550 12013
Azure.IoT Build 0:6ae2f7bca550 12014 int source_get_timeout(SOURCE_HANDLE source, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12015 {
Azure.IoT Build 0:6ae2f7bca550 12016 int result;
Azure.IoT Build 0:6ae2f7bca550 12017
Azure.IoT Build 0:6ae2f7bca550 12018 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12019 {
AzureIoTClient 19:000ab4e6a2c1 12020 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12021 }
Azure.IoT Build 0:6ae2f7bca550 12022 else
Azure.IoT Build 0:6ae2f7bca550 12023 {
AzureIoTClient 23:1111ee8bcba4 12024 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 12025 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12026 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12027 {
AzureIoTClient 23:1111ee8bcba4 12028 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12029 }
AzureIoTClient 23:1111ee8bcba4 12030 else
AzureIoTClient 23:1111ee8bcba4 12031 {
AzureIoTClient 23:1111ee8bcba4 12032 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 12033 {
AzureIoTClient 23:1111ee8bcba4 12034 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 12035 result = 0;
AzureIoTClient 23:1111ee8bcba4 12036 }
AzureIoTClient 23:1111ee8bcba4 12037 else
AzureIoTClient 23:1111ee8bcba4 12038 {
AzureIoTClient 23:1111ee8bcba4 12039 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 12040 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 12041 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 12042 {
AzureIoTClient 16:22a72cf8e416 12043 *timeout_value = 0;
AzureIoTClient 16:22a72cf8e416 12044 result = 0;
AzureIoTClient 23:1111ee8bcba4 12045 }
AzureIoTClient 23:1111ee8bcba4 12046 else
AzureIoTClient 23:1111ee8bcba4 12047 {
AzureIoTClient 23:1111ee8bcba4 12048 if (amqpvalue_get_seconds(item_value, timeout_value) != 0)
AzureIoTClient 23:1111ee8bcba4 12049 {
AzureIoTClient 23:1111ee8bcba4 12050 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12051 {
AzureIoTClient 23:1111ee8bcba4 12052 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12053 }
AzureIoTClient 23:1111ee8bcba4 12054 else
AzureIoTClient 23:1111ee8bcba4 12055 {
AzureIoTClient 23:1111ee8bcba4 12056 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 12057 result = 0;
AzureIoTClient 23:1111ee8bcba4 12058 }
AzureIoTClient 23:1111ee8bcba4 12059 }
AzureIoTClient 23:1111ee8bcba4 12060 else
AzureIoTClient 23:1111ee8bcba4 12061 {
AzureIoTClient 23:1111ee8bcba4 12062 result = 0;
AzureIoTClient 23:1111ee8bcba4 12063 }
AzureIoTClient 23:1111ee8bcba4 12064 }
AzureIoTClient 23:1111ee8bcba4 12065 }
Azure.IoT Build 0:6ae2f7bca550 12066 }
Azure.IoT Build 0:6ae2f7bca550 12067 }
Azure.IoT Build 0:6ae2f7bca550 12068
Azure.IoT Build 0:6ae2f7bca550 12069 return result;
Azure.IoT Build 0:6ae2f7bca550 12070 }
Azure.IoT Build 0:6ae2f7bca550 12071
Azure.IoT Build 0:6ae2f7bca550 12072 int source_set_timeout(SOURCE_HANDLE source, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12073 {
Azure.IoT Build 0:6ae2f7bca550 12074 int result;
Azure.IoT Build 0:6ae2f7bca550 12075
Azure.IoT Build 0:6ae2f7bca550 12076 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12077 {
AzureIoTClient 19:000ab4e6a2c1 12078 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12079 }
Azure.IoT Build 0:6ae2f7bca550 12080 else
Azure.IoT Build 0:6ae2f7bca550 12081 {
Azure.IoT Build 0:6ae2f7bca550 12082 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 12083 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
Azure.IoT Build 0:6ae2f7bca550 12084 if (timeout_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12085 {
AzureIoTClient 19:000ab4e6a2c1 12086 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12087 }
Azure.IoT Build 0:6ae2f7bca550 12088 else
Azure.IoT Build 0:6ae2f7bca550 12089 {
Azure.IoT Build 0:6ae2f7bca550 12090 if (amqpvalue_set_composite_item(source_instance->composite_value, 3, timeout_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 12091 {
AzureIoTClient 19:000ab4e6a2c1 12092 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12093 }
Azure.IoT Build 0:6ae2f7bca550 12094 else
Azure.IoT Build 0:6ae2f7bca550 12095 {
Azure.IoT Build 0:6ae2f7bca550 12096 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12097 }
Azure.IoT Build 0:6ae2f7bca550 12098
Azure.IoT Build 0:6ae2f7bca550 12099 amqpvalue_destroy(timeout_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12100 }
Azure.IoT Build 0:6ae2f7bca550 12101 }
Azure.IoT Build 0:6ae2f7bca550 12102
Azure.IoT Build 0:6ae2f7bca550 12103 return result;
Azure.IoT Build 0:6ae2f7bca550 12104 }
Azure.IoT Build 0:6ae2f7bca550 12105
Azure.IoT Build 0:6ae2f7bca550 12106 int source_get_dynamic(SOURCE_HANDLE source, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12107 {
Azure.IoT Build 0:6ae2f7bca550 12108 int result;
Azure.IoT Build 0:6ae2f7bca550 12109
Azure.IoT Build 0:6ae2f7bca550 12110 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12111 {
AzureIoTClient 19:000ab4e6a2c1 12112 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12113 }
Azure.IoT Build 0:6ae2f7bca550 12114 else
Azure.IoT Build 0:6ae2f7bca550 12115 {
AzureIoTClient 23:1111ee8bcba4 12116 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 12117 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12118 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12119 {
AzureIoTClient 23:1111ee8bcba4 12120 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12121 }
AzureIoTClient 23:1111ee8bcba4 12122 else
AzureIoTClient 23:1111ee8bcba4 12123 {
AzureIoTClient 23:1111ee8bcba4 12124 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 12125 {
AzureIoTClient 23:1111ee8bcba4 12126 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 12127 result = 0;
AzureIoTClient 23:1111ee8bcba4 12128 }
AzureIoTClient 23:1111ee8bcba4 12129 else
AzureIoTClient 23:1111ee8bcba4 12130 {
AzureIoTClient 23:1111ee8bcba4 12131 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 12132 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 12133 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 12134 {
AzureIoTClient 16:22a72cf8e416 12135 *dynamic_value = false;
AzureIoTClient 16:22a72cf8e416 12136 result = 0;
AzureIoTClient 23:1111ee8bcba4 12137 }
AzureIoTClient 23:1111ee8bcba4 12138 else
AzureIoTClient 23:1111ee8bcba4 12139 {
AzureIoTClient 23:1111ee8bcba4 12140 if (amqpvalue_get_boolean(item_value, dynamic_value) != 0)
AzureIoTClient 23:1111ee8bcba4 12141 {
AzureIoTClient 23:1111ee8bcba4 12142 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12143 {
AzureIoTClient 23:1111ee8bcba4 12144 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12145 }
AzureIoTClient 23:1111ee8bcba4 12146 else
AzureIoTClient 23:1111ee8bcba4 12147 {
AzureIoTClient 23:1111ee8bcba4 12148 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 12149 result = 0;
AzureIoTClient 23:1111ee8bcba4 12150 }
AzureIoTClient 23:1111ee8bcba4 12151 }
AzureIoTClient 23:1111ee8bcba4 12152 else
AzureIoTClient 23:1111ee8bcba4 12153 {
AzureIoTClient 23:1111ee8bcba4 12154 result = 0;
AzureIoTClient 23:1111ee8bcba4 12155 }
AzureIoTClient 23:1111ee8bcba4 12156 }
AzureIoTClient 23:1111ee8bcba4 12157 }
Azure.IoT Build 0:6ae2f7bca550 12158 }
Azure.IoT Build 0:6ae2f7bca550 12159 }
Azure.IoT Build 0:6ae2f7bca550 12160
Azure.IoT Build 0:6ae2f7bca550 12161 return result;
Azure.IoT Build 0:6ae2f7bca550 12162 }
Azure.IoT Build 0:6ae2f7bca550 12163
Azure.IoT Build 0:6ae2f7bca550 12164 int source_set_dynamic(SOURCE_HANDLE source, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12165 {
Azure.IoT Build 0:6ae2f7bca550 12166 int result;
Azure.IoT Build 0:6ae2f7bca550 12167
Azure.IoT Build 0:6ae2f7bca550 12168 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12169 {
AzureIoTClient 19:000ab4e6a2c1 12170 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12171 }
Azure.IoT Build 0:6ae2f7bca550 12172 else
Azure.IoT Build 0:6ae2f7bca550 12173 {
Azure.IoT Build 0:6ae2f7bca550 12174 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 12175 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
Azure.IoT Build 0:6ae2f7bca550 12176 if (dynamic_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12177 {
AzureIoTClient 19:000ab4e6a2c1 12178 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12179 }
Azure.IoT Build 0:6ae2f7bca550 12180 else
Azure.IoT Build 0:6ae2f7bca550 12181 {
Azure.IoT Build 0:6ae2f7bca550 12182 if (amqpvalue_set_composite_item(source_instance->composite_value, 4, dynamic_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 12183 {
AzureIoTClient 19:000ab4e6a2c1 12184 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12185 }
Azure.IoT Build 0:6ae2f7bca550 12186 else
Azure.IoT Build 0:6ae2f7bca550 12187 {
Azure.IoT Build 0:6ae2f7bca550 12188 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12189 }
Azure.IoT Build 0:6ae2f7bca550 12190
Azure.IoT Build 0:6ae2f7bca550 12191 amqpvalue_destroy(dynamic_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12192 }
Azure.IoT Build 0:6ae2f7bca550 12193 }
Azure.IoT Build 0:6ae2f7bca550 12194
Azure.IoT Build 0:6ae2f7bca550 12195 return result;
Azure.IoT Build 0:6ae2f7bca550 12196 }
Azure.IoT Build 0:6ae2f7bca550 12197
Azure.IoT Build 0:6ae2f7bca550 12198 int source_get_dynamic_node_properties(SOURCE_HANDLE source, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12199 {
Azure.IoT Build 0:6ae2f7bca550 12200 int result;
Azure.IoT Build 0:6ae2f7bca550 12201
Azure.IoT Build 0:6ae2f7bca550 12202 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12203 {
AzureIoTClient 19:000ab4e6a2c1 12204 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12205 }
Azure.IoT Build 0:6ae2f7bca550 12206 else
Azure.IoT Build 0:6ae2f7bca550 12207 {
AzureIoTClient 23:1111ee8bcba4 12208 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 12209 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12210 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12211 {
AzureIoTClient 23:1111ee8bcba4 12212 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12213 }
AzureIoTClient 23:1111ee8bcba4 12214 else
AzureIoTClient 23:1111ee8bcba4 12215 {
AzureIoTClient 23:1111ee8bcba4 12216 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 12217 {
AzureIoTClient 23:1111ee8bcba4 12218 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12219 }
AzureIoTClient 23:1111ee8bcba4 12220 else
AzureIoTClient 23:1111ee8bcba4 12221 {
AzureIoTClient 23:1111ee8bcba4 12222 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 12223 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 12224 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 12225 {
AzureIoTClient 23:1111ee8bcba4 12226 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12227 }
AzureIoTClient 23:1111ee8bcba4 12228 else
AzureIoTClient 23:1111ee8bcba4 12229 {
AzureIoTClient 23:1111ee8bcba4 12230 if (amqpvalue_get_node_properties(item_value, dynamic_node_properties_value) != 0)
AzureIoTClient 23:1111ee8bcba4 12231 {
AzureIoTClient 23:1111ee8bcba4 12232 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12233 }
AzureIoTClient 23:1111ee8bcba4 12234 else
AzureIoTClient 23:1111ee8bcba4 12235 {
AzureIoTClient 23:1111ee8bcba4 12236 result = 0;
AzureIoTClient 23:1111ee8bcba4 12237 }
AzureIoTClient 23:1111ee8bcba4 12238 }
AzureIoTClient 23:1111ee8bcba4 12239 }
Azure.IoT Build 0:6ae2f7bca550 12240 }
Azure.IoT Build 0:6ae2f7bca550 12241 }
Azure.IoT Build 0:6ae2f7bca550 12242
Azure.IoT Build 0:6ae2f7bca550 12243 return result;
Azure.IoT Build 0:6ae2f7bca550 12244 }
Azure.IoT Build 0:6ae2f7bca550 12245
Azure.IoT Build 0:6ae2f7bca550 12246 int source_set_dynamic_node_properties(SOURCE_HANDLE source, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12247 {
Azure.IoT Build 0:6ae2f7bca550 12248 int result;
Azure.IoT Build 0:6ae2f7bca550 12249
Azure.IoT Build 0:6ae2f7bca550 12250 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12251 {
AzureIoTClient 19:000ab4e6a2c1 12252 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12253 }
Azure.IoT Build 0:6ae2f7bca550 12254 else
Azure.IoT Build 0:6ae2f7bca550 12255 {
Azure.IoT Build 0:6ae2f7bca550 12256 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 12257 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
Azure.IoT Build 0:6ae2f7bca550 12258 if (dynamic_node_properties_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12259 {
AzureIoTClient 19:000ab4e6a2c1 12260 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12261 }
Azure.IoT Build 0:6ae2f7bca550 12262 else
Azure.IoT Build 0:6ae2f7bca550 12263 {
Azure.IoT Build 0:6ae2f7bca550 12264 if (amqpvalue_set_composite_item(source_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 12265 {
AzureIoTClient 19:000ab4e6a2c1 12266 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12267 }
Azure.IoT Build 0:6ae2f7bca550 12268 else
Azure.IoT Build 0:6ae2f7bca550 12269 {
Azure.IoT Build 0:6ae2f7bca550 12270 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12271 }
Azure.IoT Build 0:6ae2f7bca550 12272
Azure.IoT Build 0:6ae2f7bca550 12273 amqpvalue_destroy(dynamic_node_properties_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12274 }
Azure.IoT Build 0:6ae2f7bca550 12275 }
Azure.IoT Build 0:6ae2f7bca550 12276
Azure.IoT Build 0:6ae2f7bca550 12277 return result;
Azure.IoT Build 0:6ae2f7bca550 12278 }
Azure.IoT Build 0:6ae2f7bca550 12279
Azure.IoT Build 0:6ae2f7bca550 12280 int source_get_distribution_mode(SOURCE_HANDLE source, const char** distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12281 {
Azure.IoT Build 0:6ae2f7bca550 12282 int result;
Azure.IoT Build 0:6ae2f7bca550 12283
Azure.IoT Build 0:6ae2f7bca550 12284 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12285 {
AzureIoTClient 19:000ab4e6a2c1 12286 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12287 }
Azure.IoT Build 0:6ae2f7bca550 12288 else
Azure.IoT Build 0:6ae2f7bca550 12289 {
AzureIoTClient 23:1111ee8bcba4 12290 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 12291 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12292 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12293 {
AzureIoTClient 23:1111ee8bcba4 12294 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12295 }
AzureIoTClient 23:1111ee8bcba4 12296 else
AzureIoTClient 23:1111ee8bcba4 12297 {
AzureIoTClient 23:1111ee8bcba4 12298 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 12299 {
AzureIoTClient 23:1111ee8bcba4 12300 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12301 }
AzureIoTClient 23:1111ee8bcba4 12302 else
AzureIoTClient 23:1111ee8bcba4 12303 {
AzureIoTClient 23:1111ee8bcba4 12304 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 6);
AzureIoTClient 23:1111ee8bcba4 12305 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 12306 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 12307 {
AzureIoTClient 23:1111ee8bcba4 12308 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12309 }
AzureIoTClient 23:1111ee8bcba4 12310 else
AzureIoTClient 23:1111ee8bcba4 12311 {
AzureIoTClient 23:1111ee8bcba4 12312 if (amqpvalue_get_symbol(item_value, distribution_mode_value) != 0)
AzureIoTClient 23:1111ee8bcba4 12313 {
AzureIoTClient 23:1111ee8bcba4 12314 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12315 }
AzureIoTClient 23:1111ee8bcba4 12316 else
AzureIoTClient 23:1111ee8bcba4 12317 {
AzureIoTClient 23:1111ee8bcba4 12318 result = 0;
AzureIoTClient 23:1111ee8bcba4 12319 }
AzureIoTClient 23:1111ee8bcba4 12320 }
AzureIoTClient 23:1111ee8bcba4 12321 }
Azure.IoT Build 0:6ae2f7bca550 12322 }
Azure.IoT Build 0:6ae2f7bca550 12323 }
Azure.IoT Build 0:6ae2f7bca550 12324
Azure.IoT Build 0:6ae2f7bca550 12325 return result;
Azure.IoT Build 0:6ae2f7bca550 12326 }
Azure.IoT Build 0:6ae2f7bca550 12327
Azure.IoT Build 0:6ae2f7bca550 12328 int source_set_distribution_mode(SOURCE_HANDLE source, const char* distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12329 {
Azure.IoT Build 0:6ae2f7bca550 12330 int result;
Azure.IoT Build 0:6ae2f7bca550 12331
Azure.IoT Build 0:6ae2f7bca550 12332 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12333 {
AzureIoTClient 19:000ab4e6a2c1 12334 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12335 }
Azure.IoT Build 0:6ae2f7bca550 12336 else
Azure.IoT Build 0:6ae2f7bca550 12337 {
Azure.IoT Build 0:6ae2f7bca550 12338 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 12339 AMQP_VALUE distribution_mode_amqp_value = amqpvalue_create_symbol(distribution_mode_value);
Azure.IoT Build 0:6ae2f7bca550 12340 if (distribution_mode_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12341 {
AzureIoTClient 19:000ab4e6a2c1 12342 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12343 }
Azure.IoT Build 0:6ae2f7bca550 12344 else
Azure.IoT Build 0:6ae2f7bca550 12345 {
Azure.IoT Build 0:6ae2f7bca550 12346 if (amqpvalue_set_composite_item(source_instance->composite_value, 6, distribution_mode_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 12347 {
AzureIoTClient 19:000ab4e6a2c1 12348 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12349 }
Azure.IoT Build 0:6ae2f7bca550 12350 else
Azure.IoT Build 0:6ae2f7bca550 12351 {
Azure.IoT Build 0:6ae2f7bca550 12352 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12353 }
Azure.IoT Build 0:6ae2f7bca550 12354
Azure.IoT Build 0:6ae2f7bca550 12355 amqpvalue_destroy(distribution_mode_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12356 }
Azure.IoT Build 0:6ae2f7bca550 12357 }
Azure.IoT Build 0:6ae2f7bca550 12358
Azure.IoT Build 0:6ae2f7bca550 12359 return result;
Azure.IoT Build 0:6ae2f7bca550 12360 }
Azure.IoT Build 0:6ae2f7bca550 12361
Azure.IoT Build 0:6ae2f7bca550 12362 int source_get_filter(SOURCE_HANDLE source, filter_set* filter_value)
Azure.IoT Build 0:6ae2f7bca550 12363 {
Azure.IoT Build 0:6ae2f7bca550 12364 int result;
Azure.IoT Build 0:6ae2f7bca550 12365
Azure.IoT Build 0:6ae2f7bca550 12366 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12367 {
AzureIoTClient 19:000ab4e6a2c1 12368 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12369 }
Azure.IoT Build 0:6ae2f7bca550 12370 else
Azure.IoT Build 0:6ae2f7bca550 12371 {
AzureIoTClient 23:1111ee8bcba4 12372 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 12373 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12374 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12375 {
AzureIoTClient 23:1111ee8bcba4 12376 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12377 }
AzureIoTClient 23:1111ee8bcba4 12378 else
AzureIoTClient 23:1111ee8bcba4 12379 {
AzureIoTClient 23:1111ee8bcba4 12380 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 12381 {
AzureIoTClient 23:1111ee8bcba4 12382 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12383 }
AzureIoTClient 23:1111ee8bcba4 12384 else
AzureIoTClient 23:1111ee8bcba4 12385 {
AzureIoTClient 23:1111ee8bcba4 12386 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 7);
AzureIoTClient 23:1111ee8bcba4 12387 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 12388 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 12389 {
AzureIoTClient 23:1111ee8bcba4 12390 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12391 }
AzureIoTClient 23:1111ee8bcba4 12392 else
AzureIoTClient 23:1111ee8bcba4 12393 {
AzureIoTClient 23:1111ee8bcba4 12394 if (amqpvalue_get_filter_set(item_value, filter_value) != 0)
AzureIoTClient 23:1111ee8bcba4 12395 {
AzureIoTClient 23:1111ee8bcba4 12396 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12397 }
AzureIoTClient 23:1111ee8bcba4 12398 else
AzureIoTClient 23:1111ee8bcba4 12399 {
AzureIoTClient 23:1111ee8bcba4 12400 result = 0;
AzureIoTClient 23:1111ee8bcba4 12401 }
AzureIoTClient 23:1111ee8bcba4 12402 }
AzureIoTClient 23:1111ee8bcba4 12403 }
Azure.IoT Build 0:6ae2f7bca550 12404 }
Azure.IoT Build 0:6ae2f7bca550 12405 }
Azure.IoT Build 0:6ae2f7bca550 12406
Azure.IoT Build 0:6ae2f7bca550 12407 return result;
Azure.IoT Build 0:6ae2f7bca550 12408 }
Azure.IoT Build 0:6ae2f7bca550 12409
Azure.IoT Build 0:6ae2f7bca550 12410 int source_set_filter(SOURCE_HANDLE source, filter_set filter_value)
Azure.IoT Build 0:6ae2f7bca550 12411 {
Azure.IoT Build 0:6ae2f7bca550 12412 int result;
Azure.IoT Build 0:6ae2f7bca550 12413
Azure.IoT Build 0:6ae2f7bca550 12414 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12415 {
AzureIoTClient 19:000ab4e6a2c1 12416 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12417 }
Azure.IoT Build 0:6ae2f7bca550 12418 else
Azure.IoT Build 0:6ae2f7bca550 12419 {
Azure.IoT Build 0:6ae2f7bca550 12420 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
Azure.IoT Build 0:6ae2f7bca550 12421 AMQP_VALUE filter_amqp_value = amqpvalue_create_filter_set(filter_value);
Azure.IoT Build 0:6ae2f7bca550 12422 if (filter_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12423 {
AzureIoTClient 19:000ab4e6a2c1 12424 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12425 }
Azure.IoT Build 0:6ae2f7bca550 12426 else
Azure.IoT Build 0:6ae2f7bca550 12427 {
Azure.IoT Build 0:6ae2f7bca550 12428 if (amqpvalue_set_composite_item(source_instance->composite_value, 7, filter_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 12429 {
AzureIoTClient 19:000ab4e6a2c1 12430 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12431 }
Azure.IoT Build 0:6ae2f7bca550 12432 else
Azure.IoT Build 0:6ae2f7bca550 12433 {
Azure.IoT Build 0:6ae2f7bca550 12434 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12435 }
Azure.IoT Build 0:6ae2f7bca550 12436
Azure.IoT Build 0:6ae2f7bca550 12437 amqpvalue_destroy(filter_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12438 }
Azure.IoT Build 0:6ae2f7bca550 12439 }
Azure.IoT Build 0:6ae2f7bca550 12440
Azure.IoT Build 0:6ae2f7bca550 12441 return result;
Azure.IoT Build 0:6ae2f7bca550 12442 }
Azure.IoT Build 0:6ae2f7bca550 12443
Azure.IoT Build 0:6ae2f7bca550 12444 int source_get_default_outcome(SOURCE_HANDLE source, AMQP_VALUE* default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 12445 {
Azure.IoT Build 0:6ae2f7bca550 12446 int result;
Azure.IoT Build 0:6ae2f7bca550 12447
Azure.IoT Build 0:6ae2f7bca550 12448 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12449 {
AzureIoTClient 19:000ab4e6a2c1 12450 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12451 }
Azure.IoT Build 0:6ae2f7bca550 12452 else
Azure.IoT Build 0:6ae2f7bca550 12453 {
AzureIoTClient 23:1111ee8bcba4 12454 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 12455 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12456 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12457 {
AzureIoTClient 23:1111ee8bcba4 12458 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12459 }
AzureIoTClient 23:1111ee8bcba4 12460 else
AzureIoTClient 23:1111ee8bcba4 12461 {
AzureIoTClient 23:1111ee8bcba4 12462 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 12463 {
AzureIoTClient 23:1111ee8bcba4 12464 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12465 }
AzureIoTClient 23:1111ee8bcba4 12466 else
AzureIoTClient 23:1111ee8bcba4 12467 {
AzureIoTClient 23:1111ee8bcba4 12468 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 8);
AzureIoTClient 23:1111ee8bcba4 12469 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 12470 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 12471 {
AzureIoTClient 23:1111ee8bcba4 12472 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12473 }
AzureIoTClient 23:1111ee8bcba4 12474 else
AzureIoTClient 23:1111ee8bcba4 12475 {
AzureIoTClient 23:1111ee8bcba4 12476 *default_outcome_value = item_value;
AzureIoTClient 23:1111ee8bcba4 12477 result = 0;
AzureIoTClient 23:1111ee8bcba4 12478 }
AzureIoTClient 23:1111ee8bcba4 12479 }
Azure.IoT Build 0:6ae2f7bca550 12480 }
Azure.IoT Build 0:6ae2f7bca550 12481 }
Azure.IoT Build 0:6ae2f7bca550 12482
Azure.IoT Build 0:6ae2f7bca550 12483 return result;
Azure.IoT Build 0:6ae2f7bca550 12484 }
Azure.IoT Build 0:6ae2f7bca550 12485
Azure.IoT Build 0:6ae2f7bca550 12486 int source_set_default_outcome(SOURCE_HANDLE source, AMQP_VALUE default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 12487 {
Azure.IoT Build 0:6ae2f7bca550 12488 int result;
Azure.IoT Build 0:6ae2f7bca550 12489
Azure.IoT Build 0:6ae2f7bca550 12490 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12491 {
AzureIoTClient 19:000ab4e6a2c1 12492 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12493 }
Azure.IoT Build 0:6ae2f7bca550 12494 else
Azure.IoT Build 0:6ae2f7bca550 12495 {
Azure.IoT Build 0:6ae2f7bca550 12496 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12497 AMQP_VALUE default_outcome_amqp_value;
AzureIoTClient 23:1111ee8bcba4 12498 if (default_outcome_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12499 {
AzureIoTClient 23:1111ee8bcba4 12500 default_outcome_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 12501 }
AzureIoTClient 23:1111ee8bcba4 12502 else
AzureIoTClient 23:1111ee8bcba4 12503 {
AzureIoTClient 23:1111ee8bcba4 12504 default_outcome_amqp_value = amqpvalue_clone(default_outcome_value);
AzureIoTClient 23:1111ee8bcba4 12505 }
Azure.IoT Build 0:6ae2f7bca550 12506 if (default_outcome_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12507 {
AzureIoTClient 19:000ab4e6a2c1 12508 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12509 }
Azure.IoT Build 0:6ae2f7bca550 12510 else
Azure.IoT Build 0:6ae2f7bca550 12511 {
Azure.IoT Build 0:6ae2f7bca550 12512 if (amqpvalue_set_composite_item(source_instance->composite_value, 8, default_outcome_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 12513 {
AzureIoTClient 19:000ab4e6a2c1 12514 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12515 }
Azure.IoT Build 0:6ae2f7bca550 12516 else
Azure.IoT Build 0:6ae2f7bca550 12517 {
Azure.IoT Build 0:6ae2f7bca550 12518 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12519 }
Azure.IoT Build 0:6ae2f7bca550 12520
Azure.IoT Build 0:6ae2f7bca550 12521 amqpvalue_destroy(default_outcome_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12522 }
Azure.IoT Build 0:6ae2f7bca550 12523 }
Azure.IoT Build 0:6ae2f7bca550 12524
Azure.IoT Build 0:6ae2f7bca550 12525 return result;
Azure.IoT Build 0:6ae2f7bca550 12526 }
Azure.IoT Build 0:6ae2f7bca550 12527
Azure.IoT Build 0:6ae2f7bca550 12528 int source_get_outcomes(SOURCE_HANDLE source, AMQP_VALUE* outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 12529 {
Azure.IoT Build 0:6ae2f7bca550 12530 int result;
Azure.IoT Build 0:6ae2f7bca550 12531
Azure.IoT Build 0:6ae2f7bca550 12532 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12533 {
AzureIoTClient 19:000ab4e6a2c1 12534 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12535 }
Azure.IoT Build 0:6ae2f7bca550 12536 else
Azure.IoT Build 0:6ae2f7bca550 12537 {
AzureIoTClient 23:1111ee8bcba4 12538 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 12539 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12540 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12541 {
AzureIoTClient 23:1111ee8bcba4 12542 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12543 }
AzureIoTClient 23:1111ee8bcba4 12544 else
AzureIoTClient 23:1111ee8bcba4 12545 {
AzureIoTClient 23:1111ee8bcba4 12546 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 12547 {
AzureIoTClient 23:1111ee8bcba4 12548 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12549 }
AzureIoTClient 23:1111ee8bcba4 12550 else
AzureIoTClient 23:1111ee8bcba4 12551 {
AzureIoTClient 23:1111ee8bcba4 12552 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 9);
AzureIoTClient 23:1111ee8bcba4 12553 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 12554 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 12555 {
AzureIoTClient 23:1111ee8bcba4 12556 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12557 }
AzureIoTClient 23:1111ee8bcba4 12558 else
AzureIoTClient 23:1111ee8bcba4 12559 {
AzureIoTClient 23:1111ee8bcba4 12560 if (amqpvalue_get_array(item_value, outcomes_value) != 0)
AzureIoTClient 23:1111ee8bcba4 12561 {
AzureIoTClient 23:1111ee8bcba4 12562 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12563 }
AzureIoTClient 23:1111ee8bcba4 12564 else
AzureIoTClient 23:1111ee8bcba4 12565 {
AzureIoTClient 23:1111ee8bcba4 12566 result = 0;
AzureIoTClient 23:1111ee8bcba4 12567 }
AzureIoTClient 23:1111ee8bcba4 12568 }
AzureIoTClient 23:1111ee8bcba4 12569 }
Azure.IoT Build 0:6ae2f7bca550 12570 }
Azure.IoT Build 0:6ae2f7bca550 12571 }
Azure.IoT Build 0:6ae2f7bca550 12572
Azure.IoT Build 0:6ae2f7bca550 12573 return result;
Azure.IoT Build 0:6ae2f7bca550 12574 }
Azure.IoT Build 0:6ae2f7bca550 12575
Azure.IoT Build 0:6ae2f7bca550 12576 int source_set_outcomes(SOURCE_HANDLE source, AMQP_VALUE outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 12577 {
Azure.IoT Build 0:6ae2f7bca550 12578 int result;
Azure.IoT Build 0:6ae2f7bca550 12579
Azure.IoT Build 0:6ae2f7bca550 12580 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12581 {
AzureIoTClient 19:000ab4e6a2c1 12582 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12583 }
Azure.IoT Build 0:6ae2f7bca550 12584 else
Azure.IoT Build 0:6ae2f7bca550 12585 {
Azure.IoT Build 0:6ae2f7bca550 12586 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12587 AMQP_VALUE outcomes_amqp_value;
AzureIoTClient 23:1111ee8bcba4 12588 if (outcomes_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12589 {
AzureIoTClient 23:1111ee8bcba4 12590 outcomes_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 12591 }
AzureIoTClient 23:1111ee8bcba4 12592 else
AzureIoTClient 23:1111ee8bcba4 12593 {
AzureIoTClient 23:1111ee8bcba4 12594 outcomes_amqp_value = amqpvalue_clone(outcomes_value);
AzureIoTClient 23:1111ee8bcba4 12595 }
Azure.IoT Build 0:6ae2f7bca550 12596 if (outcomes_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12597 {
AzureIoTClient 19:000ab4e6a2c1 12598 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12599 }
Azure.IoT Build 0:6ae2f7bca550 12600 else
Azure.IoT Build 0:6ae2f7bca550 12601 {
Azure.IoT Build 0:6ae2f7bca550 12602 if (amqpvalue_set_composite_item(source_instance->composite_value, 9, outcomes_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 12603 {
AzureIoTClient 19:000ab4e6a2c1 12604 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12605 }
Azure.IoT Build 0:6ae2f7bca550 12606 else
Azure.IoT Build 0:6ae2f7bca550 12607 {
Azure.IoT Build 0:6ae2f7bca550 12608 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12609 }
Azure.IoT Build 0:6ae2f7bca550 12610
Azure.IoT Build 0:6ae2f7bca550 12611 amqpvalue_destroy(outcomes_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12612 }
Azure.IoT Build 0:6ae2f7bca550 12613 }
Azure.IoT Build 0:6ae2f7bca550 12614
Azure.IoT Build 0:6ae2f7bca550 12615 return result;
Azure.IoT Build 0:6ae2f7bca550 12616 }
Azure.IoT Build 0:6ae2f7bca550 12617
Azure.IoT Build 0:6ae2f7bca550 12618 int source_get_capabilities(SOURCE_HANDLE source, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 12619 {
Azure.IoT Build 0:6ae2f7bca550 12620 int result;
Azure.IoT Build 0:6ae2f7bca550 12621
Azure.IoT Build 0:6ae2f7bca550 12622 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12623 {
AzureIoTClient 19:000ab4e6a2c1 12624 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12625 }
Azure.IoT Build 0:6ae2f7bca550 12626 else
Azure.IoT Build 0:6ae2f7bca550 12627 {
AzureIoTClient 23:1111ee8bcba4 12628 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 12629 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12630 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12631 {
AzureIoTClient 23:1111ee8bcba4 12632 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12633 }
AzureIoTClient 23:1111ee8bcba4 12634 else
AzureIoTClient 23:1111ee8bcba4 12635 {
AzureIoTClient 23:1111ee8bcba4 12636 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 12637 {
AzureIoTClient 23:1111ee8bcba4 12638 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12639 }
AzureIoTClient 23:1111ee8bcba4 12640 else
AzureIoTClient 23:1111ee8bcba4 12641 {
AzureIoTClient 23:1111ee8bcba4 12642 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 10);
AzureIoTClient 23:1111ee8bcba4 12643 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 12644 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 12645 {
AzureIoTClient 23:1111ee8bcba4 12646 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12647 }
AzureIoTClient 23:1111ee8bcba4 12648 else
AzureIoTClient 23:1111ee8bcba4 12649 {
AzureIoTClient 23:1111ee8bcba4 12650 if (amqpvalue_get_array(item_value, capabilities_value) != 0)
AzureIoTClient 23:1111ee8bcba4 12651 {
AzureIoTClient 23:1111ee8bcba4 12652 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12653 }
AzureIoTClient 23:1111ee8bcba4 12654 else
AzureIoTClient 23:1111ee8bcba4 12655 {
AzureIoTClient 23:1111ee8bcba4 12656 result = 0;
AzureIoTClient 23:1111ee8bcba4 12657 }
AzureIoTClient 23:1111ee8bcba4 12658 }
AzureIoTClient 23:1111ee8bcba4 12659 }
Azure.IoT Build 0:6ae2f7bca550 12660 }
Azure.IoT Build 0:6ae2f7bca550 12661 }
Azure.IoT Build 0:6ae2f7bca550 12662
Azure.IoT Build 0:6ae2f7bca550 12663 return result;
Azure.IoT Build 0:6ae2f7bca550 12664 }
Azure.IoT Build 0:6ae2f7bca550 12665
Azure.IoT Build 0:6ae2f7bca550 12666 int source_set_capabilities(SOURCE_HANDLE source, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 12667 {
Azure.IoT Build 0:6ae2f7bca550 12668 int result;
Azure.IoT Build 0:6ae2f7bca550 12669
Azure.IoT Build 0:6ae2f7bca550 12670 if (source == NULL)
Azure.IoT Build 0:6ae2f7bca550 12671 {
AzureIoTClient 19:000ab4e6a2c1 12672 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12673 }
Azure.IoT Build 0:6ae2f7bca550 12674 else
Azure.IoT Build 0:6ae2f7bca550 12675 {
Azure.IoT Build 0:6ae2f7bca550 12676 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12677 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 12678 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12679 {
AzureIoTClient 23:1111ee8bcba4 12680 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 12681 }
AzureIoTClient 23:1111ee8bcba4 12682 else
AzureIoTClient 23:1111ee8bcba4 12683 {
AzureIoTClient 23:1111ee8bcba4 12684 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 12685 }
Azure.IoT Build 0:6ae2f7bca550 12686 if (capabilities_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12687 {
AzureIoTClient 19:000ab4e6a2c1 12688 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12689 }
Azure.IoT Build 0:6ae2f7bca550 12690 else
Azure.IoT Build 0:6ae2f7bca550 12691 {
Azure.IoT Build 0:6ae2f7bca550 12692 if (amqpvalue_set_composite_item(source_instance->composite_value, 10, capabilities_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 12693 {
AzureIoTClient 19:000ab4e6a2c1 12694 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12695 }
Azure.IoT Build 0:6ae2f7bca550 12696 else
Azure.IoT Build 0:6ae2f7bca550 12697 {
Azure.IoT Build 0:6ae2f7bca550 12698 result = 0;
Azure.IoT Build 0:6ae2f7bca550 12699 }
Azure.IoT Build 0:6ae2f7bca550 12700
Azure.IoT Build 0:6ae2f7bca550 12701 amqpvalue_destroy(capabilities_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 12702 }
Azure.IoT Build 0:6ae2f7bca550 12703 }
Azure.IoT Build 0:6ae2f7bca550 12704
Azure.IoT Build 0:6ae2f7bca550 12705 return result;
Azure.IoT Build 0:6ae2f7bca550 12706 }
Azure.IoT Build 0:6ae2f7bca550 12707
Azure.IoT Build 0:6ae2f7bca550 12708
Azure.IoT Build 0:6ae2f7bca550 12709 /* target */
Azure.IoT Build 0:6ae2f7bca550 12710
Azure.IoT Build 0:6ae2f7bca550 12711 typedef struct TARGET_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 12712 {
Azure.IoT Build 0:6ae2f7bca550 12713 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 12714 } TARGET_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 12715
Azure.IoT Build 0:6ae2f7bca550 12716 static TARGET_HANDLE target_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 12717 {
AzureIoTClient 21:f9c433d8e6ca 12718 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 12719 if (target_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 12720 {
Azure.IoT Build 0:6ae2f7bca550 12721 target_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 12722 }
Azure.IoT Build 0:6ae2f7bca550 12723
Azure.IoT Build 0:6ae2f7bca550 12724 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 12725 }
Azure.IoT Build 0:6ae2f7bca550 12726
Azure.IoT Build 0:6ae2f7bca550 12727 TARGET_HANDLE target_create(void)
Azure.IoT Build 0:6ae2f7bca550 12728 {
AzureIoTClient 21:f9c433d8e6ca 12729 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 12730 if (target_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 12731 {
Azure.IoT Build 0:6ae2f7bca550 12732 target_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(41);
Azure.IoT Build 0:6ae2f7bca550 12733 if (target_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12734 {
AzureIoTClient 21:f9c433d8e6ca 12735 free(target_instance);
Azure.IoT Build 0:6ae2f7bca550 12736 target_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 12737 }
Azure.IoT Build 0:6ae2f7bca550 12738 }
Azure.IoT Build 0:6ae2f7bca550 12739
Azure.IoT Build 0:6ae2f7bca550 12740 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 12741 }
Azure.IoT Build 0:6ae2f7bca550 12742
Azure.IoT Build 0:6ae2f7bca550 12743 TARGET_HANDLE target_clone(TARGET_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 12744 {
AzureIoTClient 21:f9c433d8e6ca 12745 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 12746 if (target_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 12747 {
Azure.IoT Build 0:6ae2f7bca550 12748 target_instance->composite_value = amqpvalue_clone(((TARGET_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 12749 if (target_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12750 {
AzureIoTClient 21:f9c433d8e6ca 12751 free(target_instance);
Azure.IoT Build 0:6ae2f7bca550 12752 target_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 12753 }
Azure.IoT Build 0:6ae2f7bca550 12754 }
Azure.IoT Build 0:6ae2f7bca550 12755
Azure.IoT Build 0:6ae2f7bca550 12756 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 12757 }
Azure.IoT Build 0:6ae2f7bca550 12758
Azure.IoT Build 0:6ae2f7bca550 12759 void target_destroy(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 12760 {
Azure.IoT Build 0:6ae2f7bca550 12761 if (target != NULL)
Azure.IoT Build 0:6ae2f7bca550 12762 {
Azure.IoT Build 0:6ae2f7bca550 12763 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
Azure.IoT Build 0:6ae2f7bca550 12764 amqpvalue_destroy(target_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 12765 free(target_instance);
Azure.IoT Build 0:6ae2f7bca550 12766 }
Azure.IoT Build 0:6ae2f7bca550 12767 }
Azure.IoT Build 0:6ae2f7bca550 12768
Azure.IoT Build 0:6ae2f7bca550 12769 AMQP_VALUE amqpvalue_create_target(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 12770 {
Azure.IoT Build 0:6ae2f7bca550 12771 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 12772
Azure.IoT Build 0:6ae2f7bca550 12773 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 12774 {
Azure.IoT Build 0:6ae2f7bca550 12775 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 12776 }
Azure.IoT Build 0:6ae2f7bca550 12777 else
Azure.IoT Build 0:6ae2f7bca550 12778 {
Azure.IoT Build 0:6ae2f7bca550 12779 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
Azure.IoT Build 0:6ae2f7bca550 12780 result = amqpvalue_clone(target_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 12781 }
Azure.IoT Build 0:6ae2f7bca550 12782
Azure.IoT Build 0:6ae2f7bca550 12783 return result;
Azure.IoT Build 0:6ae2f7bca550 12784 }
Azure.IoT Build 0:6ae2f7bca550 12785
Azure.IoT Build 0:6ae2f7bca550 12786 bool is_target_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 12787 {
Azure.IoT Build 0:6ae2f7bca550 12788 bool result;
Azure.IoT Build 0:6ae2f7bca550 12789
Azure.IoT Build 0:6ae2f7bca550 12790 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 12791 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 12792 (descriptor_ulong == 41))
Azure.IoT Build 0:6ae2f7bca550 12793 {
Azure.IoT Build 0:6ae2f7bca550 12794 result = true;
Azure.IoT Build 0:6ae2f7bca550 12795 }
Azure.IoT Build 0:6ae2f7bca550 12796 else
Azure.IoT Build 0:6ae2f7bca550 12797 {
Azure.IoT Build 0:6ae2f7bca550 12798 result = false;
Azure.IoT Build 0:6ae2f7bca550 12799 }
Azure.IoT Build 0:6ae2f7bca550 12800
Azure.IoT Build 0:6ae2f7bca550 12801 return result;
Azure.IoT Build 0:6ae2f7bca550 12802 }
Azure.IoT Build 0:6ae2f7bca550 12803
Azure.IoT Build 0:6ae2f7bca550 12804
Azure.IoT Build 0:6ae2f7bca550 12805 int amqpvalue_get_target(AMQP_VALUE value, TARGET_HANDLE* target_handle)
Azure.IoT Build 0:6ae2f7bca550 12806 {
Azure.IoT Build 0:6ae2f7bca550 12807 int result;
Azure.IoT Build 0:6ae2f7bca550 12808 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target_create_internal();
Azure.IoT Build 0:6ae2f7bca550 12809 *target_handle = target_instance;
Azure.IoT Build 0:6ae2f7bca550 12810 if (*target_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 12811 {
AzureIoTClient 19:000ab4e6a2c1 12812 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12813 }
Azure.IoT Build 0:6ae2f7bca550 12814 else
Azure.IoT Build 0:6ae2f7bca550 12815 {
Azure.IoT Build 0:6ae2f7bca550 12816 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 12817 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 12818 {
Azure.IoT Build 0:6ae2f7bca550 12819 target_destroy(*target_handle);
AzureIoTClient 19:000ab4e6a2c1 12820 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 12821 }
Azure.IoT Build 0:6ae2f7bca550 12822 else
Azure.IoT Build 0:6ae2f7bca550 12823 {
AzureIoTClient 23:1111ee8bcba4 12824 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 12825 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12826 {
AzureIoTClient 23:1111ee8bcba4 12827 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12828 }
AzureIoTClient 23:1111ee8bcba4 12829 else
AzureIoTClient 23:1111ee8bcba4 12830 {
AzureIoTClient 23:1111ee8bcba4 12831 do
AzureIoTClient 23:1111ee8bcba4 12832 {
AzureIoTClient 23:1111ee8bcba4 12833 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 12834 /* address */
AzureIoTClient 23:1111ee8bcba4 12835 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 12836 {
AzureIoTClient 23:1111ee8bcba4 12837 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 12838 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12839 {
AzureIoTClient 23:1111ee8bcba4 12840 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 12841 }
AzureIoTClient 23:1111ee8bcba4 12842 else
AzureIoTClient 23:1111ee8bcba4 12843 {
AzureIoTClient 23:1111ee8bcba4 12844 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12845 }
AzureIoTClient 23:1111ee8bcba4 12846 }
AzureIoTClient 23:1111ee8bcba4 12847 /* durable */
AzureIoTClient 23:1111ee8bcba4 12848 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 12849 {
AzureIoTClient 23:1111ee8bcba4 12850 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 12851 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12852 {
AzureIoTClient 23:1111ee8bcba4 12853 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 12854 }
AzureIoTClient 23:1111ee8bcba4 12855 else
AzureIoTClient 23:1111ee8bcba4 12856 {
AzureIoTClient 25:1101516ee67d 12857 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 12858 {
AzureIoTClient 25:1101516ee67d 12859 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 12860 }
AzureIoTClient 25:1101516ee67d 12861 else
AzureIoTClient 25:1101516ee67d 12862 {
AzureIoTClient 25:1101516ee67d 12863 terminus_durability durable;
AzureIoTClient 23:1111ee8bcba4 12864 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 23:1111ee8bcba4 12865 {
AzureIoTClient 25:1101516ee67d 12866 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12867 target_destroy(*target_handle);
AzureIoTClient 23:1111ee8bcba4 12868 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12869 break;
AzureIoTClient 23:1111ee8bcba4 12870 }
AzureIoTClient 23:1111ee8bcba4 12871 }
AzureIoTClient 23:1111ee8bcba4 12872
AzureIoTClient 23:1111ee8bcba4 12873 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12874 }
AzureIoTClient 23:1111ee8bcba4 12875 }
AzureIoTClient 23:1111ee8bcba4 12876 /* expiry-policy */
AzureIoTClient 23:1111ee8bcba4 12877 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 12878 {
AzureIoTClient 23:1111ee8bcba4 12879 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 12880 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12881 {
AzureIoTClient 23:1111ee8bcba4 12882 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 12883 }
AzureIoTClient 23:1111ee8bcba4 12884 else
AzureIoTClient 23:1111ee8bcba4 12885 {
AzureIoTClient 25:1101516ee67d 12886 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 12887 {
AzureIoTClient 25:1101516ee67d 12888 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 12889 }
AzureIoTClient 25:1101516ee67d 12890 else
AzureIoTClient 25:1101516ee67d 12891 {
AzureIoTClient 25:1101516ee67d 12892 terminus_expiry_policy expiry_policy;
AzureIoTClient 23:1111ee8bcba4 12893 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 23:1111ee8bcba4 12894 {
AzureIoTClient 25:1101516ee67d 12895 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12896 target_destroy(*target_handle);
AzureIoTClient 23:1111ee8bcba4 12897 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12898 break;
AzureIoTClient 23:1111ee8bcba4 12899 }
AzureIoTClient 23:1111ee8bcba4 12900 }
AzureIoTClient 23:1111ee8bcba4 12901
AzureIoTClient 23:1111ee8bcba4 12902 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12903 }
AzureIoTClient 23:1111ee8bcba4 12904 }
AzureIoTClient 23:1111ee8bcba4 12905 /* timeout */
AzureIoTClient 23:1111ee8bcba4 12906 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 12907 {
AzureIoTClient 23:1111ee8bcba4 12908 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 12909 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12910 {
AzureIoTClient 23:1111ee8bcba4 12911 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 12912 }
AzureIoTClient 23:1111ee8bcba4 12913 else
AzureIoTClient 23:1111ee8bcba4 12914 {
AzureIoTClient 25:1101516ee67d 12915 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 12916 {
AzureIoTClient 25:1101516ee67d 12917 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 12918 }
AzureIoTClient 25:1101516ee67d 12919 else
AzureIoTClient 25:1101516ee67d 12920 {
AzureIoTClient 25:1101516ee67d 12921 seconds timeout;
AzureIoTClient 23:1111ee8bcba4 12922 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 23:1111ee8bcba4 12923 {
AzureIoTClient 25:1101516ee67d 12924 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12925 target_destroy(*target_handle);
AzureIoTClient 23:1111ee8bcba4 12926 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12927 break;
AzureIoTClient 23:1111ee8bcba4 12928 }
AzureIoTClient 23:1111ee8bcba4 12929 }
AzureIoTClient 23:1111ee8bcba4 12930
AzureIoTClient 23:1111ee8bcba4 12931 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12932 }
AzureIoTClient 23:1111ee8bcba4 12933 }
AzureIoTClient 23:1111ee8bcba4 12934 /* dynamic */
AzureIoTClient 23:1111ee8bcba4 12935 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 12936 {
AzureIoTClient 23:1111ee8bcba4 12937 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 12938 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12939 {
AzureIoTClient 23:1111ee8bcba4 12940 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 12941 }
AzureIoTClient 23:1111ee8bcba4 12942 else
AzureIoTClient 23:1111ee8bcba4 12943 {
AzureIoTClient 25:1101516ee67d 12944 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 12945 {
AzureIoTClient 25:1101516ee67d 12946 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 12947 }
AzureIoTClient 25:1101516ee67d 12948 else
AzureIoTClient 25:1101516ee67d 12949 {
AzureIoTClient 25:1101516ee67d 12950 bool dynamic;
AzureIoTClient 23:1111ee8bcba4 12951 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 23:1111ee8bcba4 12952 {
AzureIoTClient 25:1101516ee67d 12953 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12954 target_destroy(*target_handle);
AzureIoTClient 23:1111ee8bcba4 12955 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12956 break;
AzureIoTClient 23:1111ee8bcba4 12957 }
AzureIoTClient 23:1111ee8bcba4 12958 }
AzureIoTClient 23:1111ee8bcba4 12959
AzureIoTClient 23:1111ee8bcba4 12960 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12961 }
AzureIoTClient 23:1111ee8bcba4 12962 }
AzureIoTClient 23:1111ee8bcba4 12963 /* dynamic-node-properties */
AzureIoTClient 23:1111ee8bcba4 12964 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 12965 {
AzureIoTClient 23:1111ee8bcba4 12966 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 12967 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12968 {
AzureIoTClient 23:1111ee8bcba4 12969 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 12970 }
AzureIoTClient 23:1111ee8bcba4 12971 else
AzureIoTClient 23:1111ee8bcba4 12972 {
AzureIoTClient 25:1101516ee67d 12973 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 12974 {
AzureIoTClient 25:1101516ee67d 12975 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 12976 }
AzureIoTClient 25:1101516ee67d 12977 else
AzureIoTClient 25:1101516ee67d 12978 {
AzureIoTClient 25:1101516ee67d 12979 node_properties dynamic_node_properties;
AzureIoTClient 23:1111ee8bcba4 12980 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 23:1111ee8bcba4 12981 {
AzureIoTClient 25:1101516ee67d 12982 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12983 target_destroy(*target_handle);
AzureIoTClient 23:1111ee8bcba4 12984 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12985 break;
AzureIoTClient 23:1111ee8bcba4 12986 }
AzureIoTClient 23:1111ee8bcba4 12987 }
AzureIoTClient 23:1111ee8bcba4 12988
AzureIoTClient 23:1111ee8bcba4 12989 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 12990 }
AzureIoTClient 23:1111ee8bcba4 12991 }
AzureIoTClient 23:1111ee8bcba4 12992 /* capabilities */
AzureIoTClient 23:1111ee8bcba4 12993 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 12994 {
AzureIoTClient 23:1111ee8bcba4 12995 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 23:1111ee8bcba4 12996 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12997 {
AzureIoTClient 23:1111ee8bcba4 12998 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 12999 }
AzureIoTClient 23:1111ee8bcba4 13000 else
AzureIoTClient 23:1111ee8bcba4 13001 {
AzureIoTClient 25:1101516ee67d 13002 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 13003 {
AzureIoTClient 25:1101516ee67d 13004 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 13005 }
AzureIoTClient 25:1101516ee67d 13006 else
AzureIoTClient 25:1101516ee67d 13007 {
AzureIoTClient 25:1101516ee67d 13008 const char* capabilities = NULL;
AzureIoTClient 23:1111ee8bcba4 13009 AMQP_VALUE capabilities_array;
AzureIoTClient 23:1111ee8bcba4 13010 if ((amqpvalue_get_array(item_value, &capabilities_array) != 0) &&
AzureIoTClient 23:1111ee8bcba4 13011 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 23:1111ee8bcba4 13012 {
AzureIoTClient 25:1101516ee67d 13013 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13014 target_destroy(*target_handle);
AzureIoTClient 23:1111ee8bcba4 13015 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13016 break;
AzureIoTClient 23:1111ee8bcba4 13017 }
AzureIoTClient 23:1111ee8bcba4 13018 }
AzureIoTClient 23:1111ee8bcba4 13019
AzureIoTClient 23:1111ee8bcba4 13020 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13021 }
AzureIoTClient 23:1111ee8bcba4 13022 }
AzureIoTClient 23:1111ee8bcba4 13023
AzureIoTClient 23:1111ee8bcba4 13024 target_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 13025
AzureIoTClient 23:1111ee8bcba4 13026 result = 0;
AzureIoTClient 23:1111ee8bcba4 13027 } while (0);
AzureIoTClient 23:1111ee8bcba4 13028 }
Azure.IoT Build 0:6ae2f7bca550 13029 }
Azure.IoT Build 0:6ae2f7bca550 13030 }
Azure.IoT Build 0:6ae2f7bca550 13031
Azure.IoT Build 0:6ae2f7bca550 13032 return result;
Azure.IoT Build 0:6ae2f7bca550 13033 }
Azure.IoT Build 0:6ae2f7bca550 13034
Azure.IoT Build 0:6ae2f7bca550 13035 int target_get_address(TARGET_HANDLE target, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 13036 {
Azure.IoT Build 0:6ae2f7bca550 13037 int result;
Azure.IoT Build 0:6ae2f7bca550 13038
Azure.IoT Build 0:6ae2f7bca550 13039 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13040 {
AzureIoTClient 19:000ab4e6a2c1 13041 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13042 }
Azure.IoT Build 0:6ae2f7bca550 13043 else
Azure.IoT Build 0:6ae2f7bca550 13044 {
AzureIoTClient 23:1111ee8bcba4 13045 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 13046 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13047 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13048 {
AzureIoTClient 23:1111ee8bcba4 13049 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13050 }
AzureIoTClient 23:1111ee8bcba4 13051 else
AzureIoTClient 23:1111ee8bcba4 13052 {
AzureIoTClient 23:1111ee8bcba4 13053 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 13054 {
AzureIoTClient 23:1111ee8bcba4 13055 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13056 }
AzureIoTClient 23:1111ee8bcba4 13057 else
AzureIoTClient 23:1111ee8bcba4 13058 {
AzureIoTClient 23:1111ee8bcba4 13059 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 13060 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 13061 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 13062 {
AzureIoTClient 23:1111ee8bcba4 13063 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13064 }
AzureIoTClient 23:1111ee8bcba4 13065 else
AzureIoTClient 23:1111ee8bcba4 13066 {
AzureIoTClient 23:1111ee8bcba4 13067 *address_value = item_value;
AzureIoTClient 23:1111ee8bcba4 13068 result = 0;
AzureIoTClient 23:1111ee8bcba4 13069 }
AzureIoTClient 23:1111ee8bcba4 13070 }
Azure.IoT Build 0:6ae2f7bca550 13071 }
Azure.IoT Build 0:6ae2f7bca550 13072 }
Azure.IoT Build 0:6ae2f7bca550 13073
Azure.IoT Build 0:6ae2f7bca550 13074 return result;
Azure.IoT Build 0:6ae2f7bca550 13075 }
Azure.IoT Build 0:6ae2f7bca550 13076
Azure.IoT Build 0:6ae2f7bca550 13077 int target_set_address(TARGET_HANDLE target, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 13078 {
Azure.IoT Build 0:6ae2f7bca550 13079 int result;
Azure.IoT Build 0:6ae2f7bca550 13080
Azure.IoT Build 0:6ae2f7bca550 13081 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13082 {
AzureIoTClient 19:000ab4e6a2c1 13083 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13084 }
Azure.IoT Build 0:6ae2f7bca550 13085 else
Azure.IoT Build 0:6ae2f7bca550 13086 {
Azure.IoT Build 0:6ae2f7bca550 13087 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13088 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13089 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13090 {
AzureIoTClient 23:1111ee8bcba4 13091 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13092 }
AzureIoTClient 23:1111ee8bcba4 13093 else
AzureIoTClient 23:1111ee8bcba4 13094 {
AzureIoTClient 23:1111ee8bcba4 13095 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 13096 }
Azure.IoT Build 0:6ae2f7bca550 13097 if (address_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13098 {
AzureIoTClient 19:000ab4e6a2c1 13099 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13100 }
Azure.IoT Build 0:6ae2f7bca550 13101 else
Azure.IoT Build 0:6ae2f7bca550 13102 {
Azure.IoT Build 0:6ae2f7bca550 13103 if (amqpvalue_set_composite_item(target_instance->composite_value, 0, address_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 13104 {
AzureIoTClient 19:000ab4e6a2c1 13105 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13106 }
Azure.IoT Build 0:6ae2f7bca550 13107 else
Azure.IoT Build 0:6ae2f7bca550 13108 {
Azure.IoT Build 0:6ae2f7bca550 13109 result = 0;
Azure.IoT Build 0:6ae2f7bca550 13110 }
Azure.IoT Build 0:6ae2f7bca550 13111
Azure.IoT Build 0:6ae2f7bca550 13112 amqpvalue_destroy(address_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 13113 }
Azure.IoT Build 0:6ae2f7bca550 13114 }
Azure.IoT Build 0:6ae2f7bca550 13115
Azure.IoT Build 0:6ae2f7bca550 13116 return result;
Azure.IoT Build 0:6ae2f7bca550 13117 }
Azure.IoT Build 0:6ae2f7bca550 13118
Azure.IoT Build 0:6ae2f7bca550 13119 int target_get_durable(TARGET_HANDLE target, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 13120 {
Azure.IoT Build 0:6ae2f7bca550 13121 int result;
Azure.IoT Build 0:6ae2f7bca550 13122
Azure.IoT Build 0:6ae2f7bca550 13123 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13124 {
AzureIoTClient 19:000ab4e6a2c1 13125 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13126 }
Azure.IoT Build 0:6ae2f7bca550 13127 else
Azure.IoT Build 0:6ae2f7bca550 13128 {
AzureIoTClient 23:1111ee8bcba4 13129 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 13130 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13131 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13132 {
AzureIoTClient 23:1111ee8bcba4 13133 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13134 }
AzureIoTClient 23:1111ee8bcba4 13135 else
AzureIoTClient 23:1111ee8bcba4 13136 {
AzureIoTClient 23:1111ee8bcba4 13137 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 13138 {
AzureIoTClient 23:1111ee8bcba4 13139 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13140 result = 0;
AzureIoTClient 23:1111ee8bcba4 13141 }
AzureIoTClient 23:1111ee8bcba4 13142 else
AzureIoTClient 23:1111ee8bcba4 13143 {
AzureIoTClient 23:1111ee8bcba4 13144 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 13145 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 13146 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 13147 {
AzureIoTClient 16:22a72cf8e416 13148 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 13149 result = 0;
AzureIoTClient 23:1111ee8bcba4 13150 }
AzureIoTClient 23:1111ee8bcba4 13151 else
AzureIoTClient 23:1111ee8bcba4 13152 {
AzureIoTClient 23:1111ee8bcba4 13153 if (amqpvalue_get_terminus_durability(item_value, durable_value) != 0)
AzureIoTClient 23:1111ee8bcba4 13154 {
AzureIoTClient 23:1111ee8bcba4 13155 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13156 {
AzureIoTClient 23:1111ee8bcba4 13157 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13158 }
AzureIoTClient 23:1111ee8bcba4 13159 else
AzureIoTClient 23:1111ee8bcba4 13160 {
AzureIoTClient 23:1111ee8bcba4 13161 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13162 result = 0;
AzureIoTClient 23:1111ee8bcba4 13163 }
AzureIoTClient 23:1111ee8bcba4 13164 }
AzureIoTClient 23:1111ee8bcba4 13165 else
AzureIoTClient 23:1111ee8bcba4 13166 {
AzureIoTClient 23:1111ee8bcba4 13167 result = 0;
AzureIoTClient 23:1111ee8bcba4 13168 }
AzureIoTClient 23:1111ee8bcba4 13169 }
AzureIoTClient 23:1111ee8bcba4 13170 }
Azure.IoT Build 0:6ae2f7bca550 13171 }
Azure.IoT Build 0:6ae2f7bca550 13172 }
Azure.IoT Build 0:6ae2f7bca550 13173
Azure.IoT Build 0:6ae2f7bca550 13174 return result;
Azure.IoT Build 0:6ae2f7bca550 13175 }
Azure.IoT Build 0:6ae2f7bca550 13176
Azure.IoT Build 0:6ae2f7bca550 13177 int target_set_durable(TARGET_HANDLE target, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 13178 {
Azure.IoT Build 0:6ae2f7bca550 13179 int result;
Azure.IoT Build 0:6ae2f7bca550 13180
Azure.IoT Build 0:6ae2f7bca550 13181 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13182 {
AzureIoTClient 19:000ab4e6a2c1 13183 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13184 }
Azure.IoT Build 0:6ae2f7bca550 13185 else
Azure.IoT Build 0:6ae2f7bca550 13186 {
Azure.IoT Build 0:6ae2f7bca550 13187 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
Azure.IoT Build 0:6ae2f7bca550 13188 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
Azure.IoT Build 0:6ae2f7bca550 13189 if (durable_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13190 {
AzureIoTClient 19:000ab4e6a2c1 13191 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13192 }
Azure.IoT Build 0:6ae2f7bca550 13193 else
Azure.IoT Build 0:6ae2f7bca550 13194 {
Azure.IoT Build 0:6ae2f7bca550 13195 if (amqpvalue_set_composite_item(target_instance->composite_value, 1, durable_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 13196 {
AzureIoTClient 19:000ab4e6a2c1 13197 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13198 }
Azure.IoT Build 0:6ae2f7bca550 13199 else
Azure.IoT Build 0:6ae2f7bca550 13200 {
Azure.IoT Build 0:6ae2f7bca550 13201 result = 0;
Azure.IoT Build 0:6ae2f7bca550 13202 }
Azure.IoT Build 0:6ae2f7bca550 13203
Azure.IoT Build 0:6ae2f7bca550 13204 amqpvalue_destroy(durable_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 13205 }
Azure.IoT Build 0:6ae2f7bca550 13206 }
Azure.IoT Build 0:6ae2f7bca550 13207
Azure.IoT Build 0:6ae2f7bca550 13208 return result;
Azure.IoT Build 0:6ae2f7bca550 13209 }
Azure.IoT Build 0:6ae2f7bca550 13210
Azure.IoT Build 0:6ae2f7bca550 13211 int target_get_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13212 {
Azure.IoT Build 0:6ae2f7bca550 13213 int result;
Azure.IoT Build 0:6ae2f7bca550 13214
Azure.IoT Build 0:6ae2f7bca550 13215 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13216 {
AzureIoTClient 19:000ab4e6a2c1 13217 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13218 }
Azure.IoT Build 0:6ae2f7bca550 13219 else
Azure.IoT Build 0:6ae2f7bca550 13220 {
AzureIoTClient 23:1111ee8bcba4 13221 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 13222 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13223 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13224 {
AzureIoTClient 23:1111ee8bcba4 13225 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13226 }
AzureIoTClient 23:1111ee8bcba4 13227 else
AzureIoTClient 23:1111ee8bcba4 13228 {
AzureIoTClient 23:1111ee8bcba4 13229 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 13230 {
AzureIoTClient 23:1111ee8bcba4 13231 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13232 result = 0;
AzureIoTClient 23:1111ee8bcba4 13233 }
AzureIoTClient 23:1111ee8bcba4 13234 else
AzureIoTClient 23:1111ee8bcba4 13235 {
AzureIoTClient 23:1111ee8bcba4 13236 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 13237 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 13238 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 13239 {
AzureIoTClient 16:22a72cf8e416 13240 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 13241 result = 0;
AzureIoTClient 23:1111ee8bcba4 13242 }
AzureIoTClient 23:1111ee8bcba4 13243 else
AzureIoTClient 23:1111ee8bcba4 13244 {
AzureIoTClient 23:1111ee8bcba4 13245 if (amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value) != 0)
AzureIoTClient 23:1111ee8bcba4 13246 {
AzureIoTClient 23:1111ee8bcba4 13247 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13248 {
AzureIoTClient 23:1111ee8bcba4 13249 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13250 }
AzureIoTClient 23:1111ee8bcba4 13251 else
AzureIoTClient 23:1111ee8bcba4 13252 {
AzureIoTClient 23:1111ee8bcba4 13253 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13254 result = 0;
AzureIoTClient 23:1111ee8bcba4 13255 }
AzureIoTClient 23:1111ee8bcba4 13256 }
AzureIoTClient 23:1111ee8bcba4 13257 else
AzureIoTClient 23:1111ee8bcba4 13258 {
AzureIoTClient 23:1111ee8bcba4 13259 result = 0;
AzureIoTClient 23:1111ee8bcba4 13260 }
AzureIoTClient 23:1111ee8bcba4 13261 }
AzureIoTClient 23:1111ee8bcba4 13262 }
Azure.IoT Build 0:6ae2f7bca550 13263 }
Azure.IoT Build 0:6ae2f7bca550 13264 }
Azure.IoT Build 0:6ae2f7bca550 13265
Azure.IoT Build 0:6ae2f7bca550 13266 return result;
Azure.IoT Build 0:6ae2f7bca550 13267 }
Azure.IoT Build 0:6ae2f7bca550 13268
Azure.IoT Build 0:6ae2f7bca550 13269 int target_set_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13270 {
Azure.IoT Build 0:6ae2f7bca550 13271 int result;
Azure.IoT Build 0:6ae2f7bca550 13272
Azure.IoT Build 0:6ae2f7bca550 13273 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13274 {
AzureIoTClient 19:000ab4e6a2c1 13275 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13276 }
Azure.IoT Build 0:6ae2f7bca550 13277 else
Azure.IoT Build 0:6ae2f7bca550 13278 {
Azure.IoT Build 0:6ae2f7bca550 13279 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
Azure.IoT Build 0:6ae2f7bca550 13280 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
Azure.IoT Build 0:6ae2f7bca550 13281 if (expiry_policy_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13282 {
AzureIoTClient 19:000ab4e6a2c1 13283 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13284 }
Azure.IoT Build 0:6ae2f7bca550 13285 else
Azure.IoT Build 0:6ae2f7bca550 13286 {
Azure.IoT Build 0:6ae2f7bca550 13287 if (amqpvalue_set_composite_item(target_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 13288 {
AzureIoTClient 19:000ab4e6a2c1 13289 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13290 }
Azure.IoT Build 0:6ae2f7bca550 13291 else
Azure.IoT Build 0:6ae2f7bca550 13292 {
Azure.IoT Build 0:6ae2f7bca550 13293 result = 0;
Azure.IoT Build 0:6ae2f7bca550 13294 }
Azure.IoT Build 0:6ae2f7bca550 13295
Azure.IoT Build 0:6ae2f7bca550 13296 amqpvalue_destroy(expiry_policy_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 13297 }
Azure.IoT Build 0:6ae2f7bca550 13298 }
Azure.IoT Build 0:6ae2f7bca550 13299
Azure.IoT Build 0:6ae2f7bca550 13300 return result;
Azure.IoT Build 0:6ae2f7bca550 13301 }
Azure.IoT Build 0:6ae2f7bca550 13302
Azure.IoT Build 0:6ae2f7bca550 13303 int target_get_timeout(TARGET_HANDLE target, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 13304 {
Azure.IoT Build 0:6ae2f7bca550 13305 int result;
Azure.IoT Build 0:6ae2f7bca550 13306
Azure.IoT Build 0:6ae2f7bca550 13307 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13308 {
AzureIoTClient 19:000ab4e6a2c1 13309 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13310 }
Azure.IoT Build 0:6ae2f7bca550 13311 else
Azure.IoT Build 0:6ae2f7bca550 13312 {
AzureIoTClient 23:1111ee8bcba4 13313 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 13314 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13315 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13316 {
AzureIoTClient 23:1111ee8bcba4 13317 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13318 }
AzureIoTClient 23:1111ee8bcba4 13319 else
AzureIoTClient 23:1111ee8bcba4 13320 {
AzureIoTClient 23:1111ee8bcba4 13321 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 13322 {
AzureIoTClient 23:1111ee8bcba4 13323 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 13324 result = 0;
AzureIoTClient 23:1111ee8bcba4 13325 }
AzureIoTClient 23:1111ee8bcba4 13326 else
AzureIoTClient 23:1111ee8bcba4 13327 {
AzureIoTClient 23:1111ee8bcba4 13328 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 13329 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 13330 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 13331 {
AzureIoTClient 16:22a72cf8e416 13332 *timeout_value = 0;
AzureIoTClient 16:22a72cf8e416 13333 result = 0;
AzureIoTClient 23:1111ee8bcba4 13334 }
AzureIoTClient 23:1111ee8bcba4 13335 else
AzureIoTClient 23:1111ee8bcba4 13336 {
AzureIoTClient 23:1111ee8bcba4 13337 if (amqpvalue_get_seconds(item_value, timeout_value) != 0)
AzureIoTClient 23:1111ee8bcba4 13338 {
AzureIoTClient 23:1111ee8bcba4 13339 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13340 {
AzureIoTClient 23:1111ee8bcba4 13341 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13342 }
AzureIoTClient 23:1111ee8bcba4 13343 else
AzureIoTClient 23:1111ee8bcba4 13344 {
AzureIoTClient 23:1111ee8bcba4 13345 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 13346 result = 0;
AzureIoTClient 23:1111ee8bcba4 13347 }
AzureIoTClient 23:1111ee8bcba4 13348 }
AzureIoTClient 23:1111ee8bcba4 13349 else
AzureIoTClient 23:1111ee8bcba4 13350 {
AzureIoTClient 23:1111ee8bcba4 13351 result = 0;
AzureIoTClient 23:1111ee8bcba4 13352 }
AzureIoTClient 23:1111ee8bcba4 13353 }
AzureIoTClient 23:1111ee8bcba4 13354 }
Azure.IoT Build 0:6ae2f7bca550 13355 }
Azure.IoT Build 0:6ae2f7bca550 13356 }
Azure.IoT Build 0:6ae2f7bca550 13357
Azure.IoT Build 0:6ae2f7bca550 13358 return result;
Azure.IoT Build 0:6ae2f7bca550 13359 }
Azure.IoT Build 0:6ae2f7bca550 13360
Azure.IoT Build 0:6ae2f7bca550 13361 int target_set_timeout(TARGET_HANDLE target, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 13362 {
Azure.IoT Build 0:6ae2f7bca550 13363 int result;
Azure.IoT Build 0:6ae2f7bca550 13364
Azure.IoT Build 0:6ae2f7bca550 13365 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13366 {
AzureIoTClient 19:000ab4e6a2c1 13367 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13368 }
Azure.IoT Build 0:6ae2f7bca550 13369 else
Azure.IoT Build 0:6ae2f7bca550 13370 {
Azure.IoT Build 0:6ae2f7bca550 13371 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
Azure.IoT Build 0:6ae2f7bca550 13372 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
Azure.IoT Build 0:6ae2f7bca550 13373 if (timeout_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13374 {
AzureIoTClient 19:000ab4e6a2c1 13375 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13376 }
Azure.IoT Build 0:6ae2f7bca550 13377 else
Azure.IoT Build 0:6ae2f7bca550 13378 {
Azure.IoT Build 0:6ae2f7bca550 13379 if (amqpvalue_set_composite_item(target_instance->composite_value, 3, timeout_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 13380 {
AzureIoTClient 19:000ab4e6a2c1 13381 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13382 }
Azure.IoT Build 0:6ae2f7bca550 13383 else
Azure.IoT Build 0:6ae2f7bca550 13384 {
Azure.IoT Build 0:6ae2f7bca550 13385 result = 0;
Azure.IoT Build 0:6ae2f7bca550 13386 }
Azure.IoT Build 0:6ae2f7bca550 13387
Azure.IoT Build 0:6ae2f7bca550 13388 amqpvalue_destroy(timeout_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 13389 }
Azure.IoT Build 0:6ae2f7bca550 13390 }
Azure.IoT Build 0:6ae2f7bca550 13391
Azure.IoT Build 0:6ae2f7bca550 13392 return result;
Azure.IoT Build 0:6ae2f7bca550 13393 }
Azure.IoT Build 0:6ae2f7bca550 13394
Azure.IoT Build 0:6ae2f7bca550 13395 int target_get_dynamic(TARGET_HANDLE target, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 13396 {
Azure.IoT Build 0:6ae2f7bca550 13397 int result;
Azure.IoT Build 0:6ae2f7bca550 13398
Azure.IoT Build 0:6ae2f7bca550 13399 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13400 {
AzureIoTClient 19:000ab4e6a2c1 13401 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13402 }
Azure.IoT Build 0:6ae2f7bca550 13403 else
Azure.IoT Build 0:6ae2f7bca550 13404 {
AzureIoTClient 23:1111ee8bcba4 13405 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 13406 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13407 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13408 {
AzureIoTClient 23:1111ee8bcba4 13409 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13410 }
AzureIoTClient 23:1111ee8bcba4 13411 else
AzureIoTClient 23:1111ee8bcba4 13412 {
AzureIoTClient 23:1111ee8bcba4 13413 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 13414 {
AzureIoTClient 23:1111ee8bcba4 13415 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 13416 result = 0;
AzureIoTClient 23:1111ee8bcba4 13417 }
AzureIoTClient 23:1111ee8bcba4 13418 else
AzureIoTClient 23:1111ee8bcba4 13419 {
AzureIoTClient 23:1111ee8bcba4 13420 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 13421 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 13422 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 13423 {
AzureIoTClient 16:22a72cf8e416 13424 *dynamic_value = false;
AzureIoTClient 16:22a72cf8e416 13425 result = 0;
AzureIoTClient 23:1111ee8bcba4 13426 }
AzureIoTClient 23:1111ee8bcba4 13427 else
AzureIoTClient 23:1111ee8bcba4 13428 {
AzureIoTClient 23:1111ee8bcba4 13429 if (amqpvalue_get_boolean(item_value, dynamic_value) != 0)
AzureIoTClient 23:1111ee8bcba4 13430 {
AzureIoTClient 23:1111ee8bcba4 13431 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13432 {
AzureIoTClient 23:1111ee8bcba4 13433 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13434 }
AzureIoTClient 23:1111ee8bcba4 13435 else
AzureIoTClient 23:1111ee8bcba4 13436 {
AzureIoTClient 23:1111ee8bcba4 13437 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 13438 result = 0;
AzureIoTClient 23:1111ee8bcba4 13439 }
AzureIoTClient 23:1111ee8bcba4 13440 }
AzureIoTClient 23:1111ee8bcba4 13441 else
AzureIoTClient 23:1111ee8bcba4 13442 {
AzureIoTClient 23:1111ee8bcba4 13443 result = 0;
AzureIoTClient 23:1111ee8bcba4 13444 }
AzureIoTClient 23:1111ee8bcba4 13445 }
AzureIoTClient 23:1111ee8bcba4 13446 }
Azure.IoT Build 0:6ae2f7bca550 13447 }
Azure.IoT Build 0:6ae2f7bca550 13448 }
Azure.IoT Build 0:6ae2f7bca550 13449
Azure.IoT Build 0:6ae2f7bca550 13450 return result;
Azure.IoT Build 0:6ae2f7bca550 13451 }
Azure.IoT Build 0:6ae2f7bca550 13452
Azure.IoT Build 0:6ae2f7bca550 13453 int target_set_dynamic(TARGET_HANDLE target, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 13454 {
Azure.IoT Build 0:6ae2f7bca550 13455 int result;
Azure.IoT Build 0:6ae2f7bca550 13456
Azure.IoT Build 0:6ae2f7bca550 13457 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13458 {
AzureIoTClient 19:000ab4e6a2c1 13459 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13460 }
Azure.IoT Build 0:6ae2f7bca550 13461 else
Azure.IoT Build 0:6ae2f7bca550 13462 {
Azure.IoT Build 0:6ae2f7bca550 13463 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
Azure.IoT Build 0:6ae2f7bca550 13464 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
Azure.IoT Build 0:6ae2f7bca550 13465 if (dynamic_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13466 {
AzureIoTClient 19:000ab4e6a2c1 13467 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13468 }
Azure.IoT Build 0:6ae2f7bca550 13469 else
Azure.IoT Build 0:6ae2f7bca550 13470 {
Azure.IoT Build 0:6ae2f7bca550 13471 if (amqpvalue_set_composite_item(target_instance->composite_value, 4, dynamic_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 13472 {
AzureIoTClient 19:000ab4e6a2c1 13473 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13474 }
Azure.IoT Build 0:6ae2f7bca550 13475 else
Azure.IoT Build 0:6ae2f7bca550 13476 {
Azure.IoT Build 0:6ae2f7bca550 13477 result = 0;
Azure.IoT Build 0:6ae2f7bca550 13478 }
Azure.IoT Build 0:6ae2f7bca550 13479
Azure.IoT Build 0:6ae2f7bca550 13480 amqpvalue_destroy(dynamic_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 13481 }
Azure.IoT Build 0:6ae2f7bca550 13482 }
Azure.IoT Build 0:6ae2f7bca550 13483
Azure.IoT Build 0:6ae2f7bca550 13484 return result;
Azure.IoT Build 0:6ae2f7bca550 13485 }
Azure.IoT Build 0:6ae2f7bca550 13486
Azure.IoT Build 0:6ae2f7bca550 13487 int target_get_dynamic_node_properties(TARGET_HANDLE target, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 13488 {
Azure.IoT Build 0:6ae2f7bca550 13489 int result;
Azure.IoT Build 0:6ae2f7bca550 13490
Azure.IoT Build 0:6ae2f7bca550 13491 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13492 {
AzureIoTClient 19:000ab4e6a2c1 13493 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13494 }
Azure.IoT Build 0:6ae2f7bca550 13495 else
Azure.IoT Build 0:6ae2f7bca550 13496 {
AzureIoTClient 23:1111ee8bcba4 13497 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 13498 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13499 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13500 {
AzureIoTClient 23:1111ee8bcba4 13501 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13502 }
AzureIoTClient 23:1111ee8bcba4 13503 else
AzureIoTClient 23:1111ee8bcba4 13504 {
AzureIoTClient 23:1111ee8bcba4 13505 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 13506 {
AzureIoTClient 23:1111ee8bcba4 13507 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13508 }
AzureIoTClient 23:1111ee8bcba4 13509 else
AzureIoTClient 23:1111ee8bcba4 13510 {
AzureIoTClient 23:1111ee8bcba4 13511 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 13512 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 13513 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 13514 {
AzureIoTClient 23:1111ee8bcba4 13515 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13516 }
AzureIoTClient 23:1111ee8bcba4 13517 else
AzureIoTClient 23:1111ee8bcba4 13518 {
AzureIoTClient 23:1111ee8bcba4 13519 if (amqpvalue_get_node_properties(item_value, dynamic_node_properties_value) != 0)
AzureIoTClient 23:1111ee8bcba4 13520 {
AzureIoTClient 23:1111ee8bcba4 13521 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13522 }
AzureIoTClient 23:1111ee8bcba4 13523 else
AzureIoTClient 23:1111ee8bcba4 13524 {
AzureIoTClient 23:1111ee8bcba4 13525 result = 0;
AzureIoTClient 23:1111ee8bcba4 13526 }
AzureIoTClient 23:1111ee8bcba4 13527 }
AzureIoTClient 23:1111ee8bcba4 13528 }
Azure.IoT Build 0:6ae2f7bca550 13529 }
Azure.IoT Build 0:6ae2f7bca550 13530 }
Azure.IoT Build 0:6ae2f7bca550 13531
Azure.IoT Build 0:6ae2f7bca550 13532 return result;
Azure.IoT Build 0:6ae2f7bca550 13533 }
Azure.IoT Build 0:6ae2f7bca550 13534
Azure.IoT Build 0:6ae2f7bca550 13535 int target_set_dynamic_node_properties(TARGET_HANDLE target, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 13536 {
Azure.IoT Build 0:6ae2f7bca550 13537 int result;
Azure.IoT Build 0:6ae2f7bca550 13538
Azure.IoT Build 0:6ae2f7bca550 13539 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13540 {
AzureIoTClient 19:000ab4e6a2c1 13541 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13542 }
Azure.IoT Build 0:6ae2f7bca550 13543 else
Azure.IoT Build 0:6ae2f7bca550 13544 {
Azure.IoT Build 0:6ae2f7bca550 13545 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
Azure.IoT Build 0:6ae2f7bca550 13546 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
Azure.IoT Build 0:6ae2f7bca550 13547 if (dynamic_node_properties_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13548 {
AzureIoTClient 19:000ab4e6a2c1 13549 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13550 }
Azure.IoT Build 0:6ae2f7bca550 13551 else
Azure.IoT Build 0:6ae2f7bca550 13552 {
Azure.IoT Build 0:6ae2f7bca550 13553 if (amqpvalue_set_composite_item(target_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 13554 {
AzureIoTClient 19:000ab4e6a2c1 13555 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13556 }
Azure.IoT Build 0:6ae2f7bca550 13557 else
Azure.IoT Build 0:6ae2f7bca550 13558 {
Azure.IoT Build 0:6ae2f7bca550 13559 result = 0;
Azure.IoT Build 0:6ae2f7bca550 13560 }
Azure.IoT Build 0:6ae2f7bca550 13561
Azure.IoT Build 0:6ae2f7bca550 13562 amqpvalue_destroy(dynamic_node_properties_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 13563 }
Azure.IoT Build 0:6ae2f7bca550 13564 }
Azure.IoT Build 0:6ae2f7bca550 13565
Azure.IoT Build 0:6ae2f7bca550 13566 return result;
Azure.IoT Build 0:6ae2f7bca550 13567 }
Azure.IoT Build 0:6ae2f7bca550 13568
Azure.IoT Build 0:6ae2f7bca550 13569 int target_get_capabilities(TARGET_HANDLE target, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13570 {
Azure.IoT Build 0:6ae2f7bca550 13571 int result;
Azure.IoT Build 0:6ae2f7bca550 13572
Azure.IoT Build 0:6ae2f7bca550 13573 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13574 {
AzureIoTClient 19:000ab4e6a2c1 13575 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13576 }
Azure.IoT Build 0:6ae2f7bca550 13577 else
Azure.IoT Build 0:6ae2f7bca550 13578 {
AzureIoTClient 23:1111ee8bcba4 13579 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 13580 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13581 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13582 {
AzureIoTClient 23:1111ee8bcba4 13583 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13584 }
AzureIoTClient 23:1111ee8bcba4 13585 else
AzureIoTClient 23:1111ee8bcba4 13586 {
AzureIoTClient 23:1111ee8bcba4 13587 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 13588 {
AzureIoTClient 23:1111ee8bcba4 13589 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13590 }
AzureIoTClient 23:1111ee8bcba4 13591 else
AzureIoTClient 23:1111ee8bcba4 13592 {
AzureIoTClient 23:1111ee8bcba4 13593 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 6);
AzureIoTClient 23:1111ee8bcba4 13594 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 13595 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 13596 {
AzureIoTClient 23:1111ee8bcba4 13597 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13598 }
AzureIoTClient 23:1111ee8bcba4 13599 else
AzureIoTClient 23:1111ee8bcba4 13600 {
AzureIoTClient 23:1111ee8bcba4 13601 if (amqpvalue_get_array(item_value, capabilities_value) != 0)
AzureIoTClient 23:1111ee8bcba4 13602 {
AzureIoTClient 23:1111ee8bcba4 13603 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13604 }
AzureIoTClient 23:1111ee8bcba4 13605 else
AzureIoTClient 23:1111ee8bcba4 13606 {
AzureIoTClient 23:1111ee8bcba4 13607 result = 0;
AzureIoTClient 23:1111ee8bcba4 13608 }
AzureIoTClient 23:1111ee8bcba4 13609 }
AzureIoTClient 23:1111ee8bcba4 13610 }
Azure.IoT Build 0:6ae2f7bca550 13611 }
Azure.IoT Build 0:6ae2f7bca550 13612 }
Azure.IoT Build 0:6ae2f7bca550 13613
Azure.IoT Build 0:6ae2f7bca550 13614 return result;
Azure.IoT Build 0:6ae2f7bca550 13615 }
Azure.IoT Build 0:6ae2f7bca550 13616
Azure.IoT Build 0:6ae2f7bca550 13617 int target_set_capabilities(TARGET_HANDLE target, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13618 {
Azure.IoT Build 0:6ae2f7bca550 13619 int result;
Azure.IoT Build 0:6ae2f7bca550 13620
Azure.IoT Build 0:6ae2f7bca550 13621 if (target == NULL)
Azure.IoT Build 0:6ae2f7bca550 13622 {
AzureIoTClient 19:000ab4e6a2c1 13623 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13624 }
Azure.IoT Build 0:6ae2f7bca550 13625 else
Azure.IoT Build 0:6ae2f7bca550 13626 {
Azure.IoT Build 0:6ae2f7bca550 13627 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13628 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13629 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13630 {
AzureIoTClient 23:1111ee8bcba4 13631 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13632 }
AzureIoTClient 23:1111ee8bcba4 13633 else
AzureIoTClient 23:1111ee8bcba4 13634 {
AzureIoTClient 23:1111ee8bcba4 13635 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 13636 }
Azure.IoT Build 0:6ae2f7bca550 13637 if (capabilities_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13638 {
AzureIoTClient 19:000ab4e6a2c1 13639 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13640 }
Azure.IoT Build 0:6ae2f7bca550 13641 else
Azure.IoT Build 0:6ae2f7bca550 13642 {
Azure.IoT Build 0:6ae2f7bca550 13643 if (amqpvalue_set_composite_item(target_instance->composite_value, 6, capabilities_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 13644 {
AzureIoTClient 19:000ab4e6a2c1 13645 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13646 }
Azure.IoT Build 0:6ae2f7bca550 13647 else
Azure.IoT Build 0:6ae2f7bca550 13648 {
Azure.IoT Build 0:6ae2f7bca550 13649 result = 0;
Azure.IoT Build 0:6ae2f7bca550 13650 }
Azure.IoT Build 0:6ae2f7bca550 13651
Azure.IoT Build 0:6ae2f7bca550 13652 amqpvalue_destroy(capabilities_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 13653 }
Azure.IoT Build 0:6ae2f7bca550 13654 }
Azure.IoT Build 0:6ae2f7bca550 13655
Azure.IoT Build 0:6ae2f7bca550 13656 return result;
Azure.IoT Build 0:6ae2f7bca550 13657 }
Azure.IoT Build 0:6ae2f7bca550 13658
Azure.IoT Build 0:6ae2f7bca550 13659
Azure.IoT Build 0:6ae2f7bca550 13660 /* annotations */
Azure.IoT Build 0:6ae2f7bca550 13661
Azure.IoT Build 0:6ae2f7bca550 13662 AMQP_VALUE amqpvalue_create_annotations(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 13663 {
Azure.IoT Build 0:6ae2f7bca550 13664 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 13665 }
Azure.IoT Build 0:6ae2f7bca550 13666
Azure.IoT Build 0:6ae2f7bca550 13667 /* message-id-ulong */
Azure.IoT Build 0:6ae2f7bca550 13668
Azure.IoT Build 0:6ae2f7bca550 13669 AMQP_VALUE amqpvalue_create_message_id_ulong(message_id_ulong value)
Azure.IoT Build 0:6ae2f7bca550 13670 {
Azure.IoT Build 0:6ae2f7bca550 13671 return amqpvalue_create_ulong(value);
Azure.IoT Build 0:6ae2f7bca550 13672 }
Azure.IoT Build 0:6ae2f7bca550 13673
Azure.IoT Build 0:6ae2f7bca550 13674 /* message-id-uuid */
Azure.IoT Build 0:6ae2f7bca550 13675
Azure.IoT Build 0:6ae2f7bca550 13676 AMQP_VALUE amqpvalue_create_message_id_uuid(message_id_uuid value)
Azure.IoT Build 0:6ae2f7bca550 13677 {
Azure.IoT Build 0:6ae2f7bca550 13678 return amqpvalue_create_uuid(value);
Azure.IoT Build 0:6ae2f7bca550 13679 }
Azure.IoT Build 0:6ae2f7bca550 13680
Azure.IoT Build 0:6ae2f7bca550 13681 /* message-id-binary */
Azure.IoT Build 0:6ae2f7bca550 13682
Azure.IoT Build 0:6ae2f7bca550 13683 AMQP_VALUE amqpvalue_create_message_id_binary(message_id_binary value)
Azure.IoT Build 0:6ae2f7bca550 13684 {
Azure.IoT Build 0:6ae2f7bca550 13685 return amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 13686 }
Azure.IoT Build 0:6ae2f7bca550 13687
Azure.IoT Build 0:6ae2f7bca550 13688 /* message-id-string */
Azure.IoT Build 0:6ae2f7bca550 13689
Azure.IoT Build 0:6ae2f7bca550 13690 AMQP_VALUE amqpvalue_create_message_id_string(message_id_string value)
Azure.IoT Build 0:6ae2f7bca550 13691 {
Azure.IoT Build 0:6ae2f7bca550 13692 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 13693 }
Azure.IoT Build 0:6ae2f7bca550 13694
Azure.IoT Build 0:6ae2f7bca550 13695 /* address-string */
Azure.IoT Build 0:6ae2f7bca550 13696
Azure.IoT Build 0:6ae2f7bca550 13697 AMQP_VALUE amqpvalue_create_address_string(address_string value)
Azure.IoT Build 0:6ae2f7bca550 13698 {
Azure.IoT Build 0:6ae2f7bca550 13699 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 13700 }
Azure.IoT Build 0:6ae2f7bca550 13701
Azure.IoT Build 0:6ae2f7bca550 13702 /* header */
Azure.IoT Build 0:6ae2f7bca550 13703
Azure.IoT Build 0:6ae2f7bca550 13704 typedef struct HEADER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 13705 {
Azure.IoT Build 0:6ae2f7bca550 13706 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 13707 } HEADER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 13708
Azure.IoT Build 0:6ae2f7bca550 13709 static HEADER_HANDLE header_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 13710 {
AzureIoTClient 21:f9c433d8e6ca 13711 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 13712 if (header_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 13713 {
Azure.IoT Build 0:6ae2f7bca550 13714 header_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 13715 }
Azure.IoT Build 0:6ae2f7bca550 13716
Azure.IoT Build 0:6ae2f7bca550 13717 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 13718 }
Azure.IoT Build 0:6ae2f7bca550 13719
Azure.IoT Build 0:6ae2f7bca550 13720 HEADER_HANDLE header_create(void)
Azure.IoT Build 0:6ae2f7bca550 13721 {
AzureIoTClient 21:f9c433d8e6ca 13722 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 13723 if (header_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 13724 {
Azure.IoT Build 0:6ae2f7bca550 13725 header_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(112);
Azure.IoT Build 0:6ae2f7bca550 13726 if (header_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13727 {
AzureIoTClient 21:f9c433d8e6ca 13728 free(header_instance);
Azure.IoT Build 0:6ae2f7bca550 13729 header_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 13730 }
Azure.IoT Build 0:6ae2f7bca550 13731 }
Azure.IoT Build 0:6ae2f7bca550 13732
Azure.IoT Build 0:6ae2f7bca550 13733 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 13734 }
Azure.IoT Build 0:6ae2f7bca550 13735
Azure.IoT Build 0:6ae2f7bca550 13736 HEADER_HANDLE header_clone(HEADER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 13737 {
AzureIoTClient 21:f9c433d8e6ca 13738 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 13739 if (header_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 13740 {
Azure.IoT Build 0:6ae2f7bca550 13741 header_instance->composite_value = amqpvalue_clone(((HEADER_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 13742 if (header_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13743 {
AzureIoTClient 21:f9c433d8e6ca 13744 free(header_instance);
Azure.IoT Build 0:6ae2f7bca550 13745 header_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 13746 }
Azure.IoT Build 0:6ae2f7bca550 13747 }
Azure.IoT Build 0:6ae2f7bca550 13748
Azure.IoT Build 0:6ae2f7bca550 13749 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 13750 }
Azure.IoT Build 0:6ae2f7bca550 13751
Azure.IoT Build 0:6ae2f7bca550 13752 void header_destroy(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 13753 {
Azure.IoT Build 0:6ae2f7bca550 13754 if (header != NULL)
Azure.IoT Build 0:6ae2f7bca550 13755 {
Azure.IoT Build 0:6ae2f7bca550 13756 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
Azure.IoT Build 0:6ae2f7bca550 13757 amqpvalue_destroy(header_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 13758 free(header_instance);
Azure.IoT Build 0:6ae2f7bca550 13759 }
Azure.IoT Build 0:6ae2f7bca550 13760 }
Azure.IoT Build 0:6ae2f7bca550 13761
Azure.IoT Build 0:6ae2f7bca550 13762 AMQP_VALUE amqpvalue_create_header(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 13763 {
Azure.IoT Build 0:6ae2f7bca550 13764 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 13765
Azure.IoT Build 0:6ae2f7bca550 13766 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 13767 {
Azure.IoT Build 0:6ae2f7bca550 13768 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 13769 }
Azure.IoT Build 0:6ae2f7bca550 13770 else
Azure.IoT Build 0:6ae2f7bca550 13771 {
Azure.IoT Build 0:6ae2f7bca550 13772 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
Azure.IoT Build 0:6ae2f7bca550 13773 result = amqpvalue_clone(header_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 13774 }
Azure.IoT Build 0:6ae2f7bca550 13775
Azure.IoT Build 0:6ae2f7bca550 13776 return result;
Azure.IoT Build 0:6ae2f7bca550 13777 }
Azure.IoT Build 0:6ae2f7bca550 13778
Azure.IoT Build 0:6ae2f7bca550 13779 bool is_header_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 13780 {
Azure.IoT Build 0:6ae2f7bca550 13781 bool result;
Azure.IoT Build 0:6ae2f7bca550 13782
Azure.IoT Build 0:6ae2f7bca550 13783 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 13784 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 13785 (descriptor_ulong == 112))
Azure.IoT Build 0:6ae2f7bca550 13786 {
Azure.IoT Build 0:6ae2f7bca550 13787 result = true;
Azure.IoT Build 0:6ae2f7bca550 13788 }
Azure.IoT Build 0:6ae2f7bca550 13789 else
Azure.IoT Build 0:6ae2f7bca550 13790 {
Azure.IoT Build 0:6ae2f7bca550 13791 result = false;
Azure.IoT Build 0:6ae2f7bca550 13792 }
Azure.IoT Build 0:6ae2f7bca550 13793
Azure.IoT Build 0:6ae2f7bca550 13794 return result;
Azure.IoT Build 0:6ae2f7bca550 13795 }
Azure.IoT Build 0:6ae2f7bca550 13796
Azure.IoT Build 0:6ae2f7bca550 13797
Azure.IoT Build 0:6ae2f7bca550 13798 int amqpvalue_get_header(AMQP_VALUE value, HEADER_HANDLE* header_handle)
Azure.IoT Build 0:6ae2f7bca550 13799 {
Azure.IoT Build 0:6ae2f7bca550 13800 int result;
Azure.IoT Build 0:6ae2f7bca550 13801 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header_create_internal();
Azure.IoT Build 0:6ae2f7bca550 13802 *header_handle = header_instance;
Azure.IoT Build 0:6ae2f7bca550 13803 if (*header_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 13804 {
AzureIoTClient 19:000ab4e6a2c1 13805 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13806 }
Azure.IoT Build 0:6ae2f7bca550 13807 else
Azure.IoT Build 0:6ae2f7bca550 13808 {
Azure.IoT Build 0:6ae2f7bca550 13809 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 13810 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 13811 {
Azure.IoT Build 0:6ae2f7bca550 13812 header_destroy(*header_handle);
AzureIoTClient 19:000ab4e6a2c1 13813 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13814 }
Azure.IoT Build 0:6ae2f7bca550 13815 else
Azure.IoT Build 0:6ae2f7bca550 13816 {
AzureIoTClient 23:1111ee8bcba4 13817 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 13818 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13819 {
AzureIoTClient 23:1111ee8bcba4 13820 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13821 }
AzureIoTClient 23:1111ee8bcba4 13822 else
AzureIoTClient 23:1111ee8bcba4 13823 {
AzureIoTClient 23:1111ee8bcba4 13824 do
AzureIoTClient 23:1111ee8bcba4 13825 {
AzureIoTClient 23:1111ee8bcba4 13826 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 13827 /* durable */
AzureIoTClient 23:1111ee8bcba4 13828 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 13829 {
AzureIoTClient 23:1111ee8bcba4 13830 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 13831 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13832 {
AzureIoTClient 23:1111ee8bcba4 13833 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 13834 }
AzureIoTClient 23:1111ee8bcba4 13835 else
AzureIoTClient 23:1111ee8bcba4 13836 {
AzureIoTClient 25:1101516ee67d 13837 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 13838 {
AzureIoTClient 25:1101516ee67d 13839 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 13840 }
AzureIoTClient 25:1101516ee67d 13841 else
AzureIoTClient 25:1101516ee67d 13842 {
AzureIoTClient 25:1101516ee67d 13843 bool durable;
AzureIoTClient 23:1111ee8bcba4 13844 if (amqpvalue_get_boolean(item_value, &durable) != 0)
AzureIoTClient 23:1111ee8bcba4 13845 {
AzureIoTClient 25:1101516ee67d 13846 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13847 header_destroy(*header_handle);
AzureIoTClient 23:1111ee8bcba4 13848 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13849 break;
AzureIoTClient 23:1111ee8bcba4 13850 }
AzureIoTClient 23:1111ee8bcba4 13851 }
AzureIoTClient 23:1111ee8bcba4 13852
AzureIoTClient 23:1111ee8bcba4 13853 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13854 }
AzureIoTClient 23:1111ee8bcba4 13855 }
AzureIoTClient 23:1111ee8bcba4 13856 /* priority */
AzureIoTClient 23:1111ee8bcba4 13857 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 13858 {
AzureIoTClient 23:1111ee8bcba4 13859 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 13860 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13861 {
AzureIoTClient 23:1111ee8bcba4 13862 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 13863 }
AzureIoTClient 23:1111ee8bcba4 13864 else
AzureIoTClient 23:1111ee8bcba4 13865 {
AzureIoTClient 25:1101516ee67d 13866 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 13867 {
AzureIoTClient 25:1101516ee67d 13868 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 13869 }
AzureIoTClient 25:1101516ee67d 13870 else
AzureIoTClient 25:1101516ee67d 13871 {
AzureIoTClient 25:1101516ee67d 13872 uint8_t priority;
AzureIoTClient 23:1111ee8bcba4 13873 if (amqpvalue_get_ubyte(item_value, &priority) != 0)
AzureIoTClient 23:1111ee8bcba4 13874 {
AzureIoTClient 25:1101516ee67d 13875 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13876 header_destroy(*header_handle);
AzureIoTClient 23:1111ee8bcba4 13877 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13878 break;
AzureIoTClient 23:1111ee8bcba4 13879 }
AzureIoTClient 23:1111ee8bcba4 13880 }
AzureIoTClient 23:1111ee8bcba4 13881
AzureIoTClient 23:1111ee8bcba4 13882 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13883 }
AzureIoTClient 23:1111ee8bcba4 13884 }
AzureIoTClient 23:1111ee8bcba4 13885 /* ttl */
AzureIoTClient 23:1111ee8bcba4 13886 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 13887 {
AzureIoTClient 23:1111ee8bcba4 13888 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 13889 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13890 {
AzureIoTClient 23:1111ee8bcba4 13891 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 13892 }
AzureIoTClient 23:1111ee8bcba4 13893 else
AzureIoTClient 23:1111ee8bcba4 13894 {
AzureIoTClient 25:1101516ee67d 13895 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 13896 {
AzureIoTClient 25:1101516ee67d 13897 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 13898 }
AzureIoTClient 25:1101516ee67d 13899 else
AzureIoTClient 25:1101516ee67d 13900 {
AzureIoTClient 25:1101516ee67d 13901 milliseconds ttl;
AzureIoTClient 23:1111ee8bcba4 13902 if (amqpvalue_get_milliseconds(item_value, &ttl) != 0)
AzureIoTClient 23:1111ee8bcba4 13903 {
AzureIoTClient 25:1101516ee67d 13904 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13905 header_destroy(*header_handle);
AzureIoTClient 23:1111ee8bcba4 13906 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13907 break;
AzureIoTClient 23:1111ee8bcba4 13908 }
AzureIoTClient 23:1111ee8bcba4 13909 }
AzureIoTClient 23:1111ee8bcba4 13910
AzureIoTClient 23:1111ee8bcba4 13911 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13912 }
AzureIoTClient 23:1111ee8bcba4 13913 }
AzureIoTClient 23:1111ee8bcba4 13914 /* first-acquirer */
AzureIoTClient 23:1111ee8bcba4 13915 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 13916 {
AzureIoTClient 23:1111ee8bcba4 13917 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 13918 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13919 {
AzureIoTClient 23:1111ee8bcba4 13920 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 13921 }
AzureIoTClient 23:1111ee8bcba4 13922 else
AzureIoTClient 23:1111ee8bcba4 13923 {
AzureIoTClient 25:1101516ee67d 13924 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 13925 {
AzureIoTClient 25:1101516ee67d 13926 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 13927 }
AzureIoTClient 25:1101516ee67d 13928 else
AzureIoTClient 25:1101516ee67d 13929 {
AzureIoTClient 25:1101516ee67d 13930 bool first_acquirer;
AzureIoTClient 23:1111ee8bcba4 13931 if (amqpvalue_get_boolean(item_value, &first_acquirer) != 0)
AzureIoTClient 23:1111ee8bcba4 13932 {
AzureIoTClient 25:1101516ee67d 13933 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13934 header_destroy(*header_handle);
AzureIoTClient 23:1111ee8bcba4 13935 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13936 break;
AzureIoTClient 23:1111ee8bcba4 13937 }
AzureIoTClient 23:1111ee8bcba4 13938 }
AzureIoTClient 23:1111ee8bcba4 13939
AzureIoTClient 23:1111ee8bcba4 13940 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13941 }
AzureIoTClient 23:1111ee8bcba4 13942 }
AzureIoTClient 23:1111ee8bcba4 13943 /* delivery-count */
AzureIoTClient 23:1111ee8bcba4 13944 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 13945 {
AzureIoTClient 23:1111ee8bcba4 13946 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 13947 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13948 {
AzureIoTClient 23:1111ee8bcba4 13949 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 13950 }
AzureIoTClient 23:1111ee8bcba4 13951 else
AzureIoTClient 23:1111ee8bcba4 13952 {
AzureIoTClient 25:1101516ee67d 13953 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 13954 {
AzureIoTClient 25:1101516ee67d 13955 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 13956 }
AzureIoTClient 25:1101516ee67d 13957 else
AzureIoTClient 25:1101516ee67d 13958 {
AzureIoTClient 25:1101516ee67d 13959 uint32_t delivery_count;
AzureIoTClient 23:1111ee8bcba4 13960 if (amqpvalue_get_uint(item_value, &delivery_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13961 {
AzureIoTClient 25:1101516ee67d 13962 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13963 header_destroy(*header_handle);
AzureIoTClient 23:1111ee8bcba4 13964 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13965 break;
AzureIoTClient 23:1111ee8bcba4 13966 }
AzureIoTClient 23:1111ee8bcba4 13967 }
AzureIoTClient 23:1111ee8bcba4 13968
AzureIoTClient 23:1111ee8bcba4 13969 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 13970 }
AzureIoTClient 23:1111ee8bcba4 13971 }
AzureIoTClient 23:1111ee8bcba4 13972
AzureIoTClient 23:1111ee8bcba4 13973 header_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 13974
AzureIoTClient 23:1111ee8bcba4 13975 result = 0;
AzureIoTClient 23:1111ee8bcba4 13976 } while (0);
AzureIoTClient 23:1111ee8bcba4 13977 }
Azure.IoT Build 0:6ae2f7bca550 13978 }
Azure.IoT Build 0:6ae2f7bca550 13979 }
Azure.IoT Build 0:6ae2f7bca550 13980
Azure.IoT Build 0:6ae2f7bca550 13981 return result;
Azure.IoT Build 0:6ae2f7bca550 13982 }
Azure.IoT Build 0:6ae2f7bca550 13983
Azure.IoT Build 0:6ae2f7bca550 13984 int header_get_durable(HEADER_HANDLE header, bool* durable_value)
Azure.IoT Build 0:6ae2f7bca550 13985 {
Azure.IoT Build 0:6ae2f7bca550 13986 int result;
Azure.IoT Build 0:6ae2f7bca550 13987
Azure.IoT Build 0:6ae2f7bca550 13988 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 13989 {
AzureIoTClient 19:000ab4e6a2c1 13990 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 13991 }
Azure.IoT Build 0:6ae2f7bca550 13992 else
Azure.IoT Build 0:6ae2f7bca550 13993 {
AzureIoTClient 23:1111ee8bcba4 13994 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 13995 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 13996 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13997 {
AzureIoTClient 23:1111ee8bcba4 13998 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13999 }
AzureIoTClient 23:1111ee8bcba4 14000 else
AzureIoTClient 23:1111ee8bcba4 14001 {
AzureIoTClient 23:1111ee8bcba4 14002 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 14003 {
AzureIoTClient 23:1111ee8bcba4 14004 *durable_value = false;
AzureIoTClient 23:1111ee8bcba4 14005 result = 0;
AzureIoTClient 23:1111ee8bcba4 14006 }
AzureIoTClient 23:1111ee8bcba4 14007 else
AzureIoTClient 23:1111ee8bcba4 14008 {
AzureIoTClient 23:1111ee8bcba4 14009 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 14010 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 14011 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 14012 {
AzureIoTClient 16:22a72cf8e416 14013 *durable_value = false;
AzureIoTClient 16:22a72cf8e416 14014 result = 0;
AzureIoTClient 23:1111ee8bcba4 14015 }
AzureIoTClient 23:1111ee8bcba4 14016 else
AzureIoTClient 23:1111ee8bcba4 14017 {
AzureIoTClient 23:1111ee8bcba4 14018 if (amqpvalue_get_boolean(item_value, durable_value) != 0)
AzureIoTClient 23:1111ee8bcba4 14019 {
AzureIoTClient 23:1111ee8bcba4 14020 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14021 {
AzureIoTClient 23:1111ee8bcba4 14022 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14023 }
AzureIoTClient 23:1111ee8bcba4 14024 else
AzureIoTClient 23:1111ee8bcba4 14025 {
AzureIoTClient 23:1111ee8bcba4 14026 *durable_value = false;
AzureIoTClient 23:1111ee8bcba4 14027 result = 0;
AzureIoTClient 23:1111ee8bcba4 14028 }
AzureIoTClient 23:1111ee8bcba4 14029 }
AzureIoTClient 23:1111ee8bcba4 14030 else
AzureIoTClient 23:1111ee8bcba4 14031 {
AzureIoTClient 23:1111ee8bcba4 14032 result = 0;
AzureIoTClient 23:1111ee8bcba4 14033 }
AzureIoTClient 23:1111ee8bcba4 14034 }
AzureIoTClient 23:1111ee8bcba4 14035 }
Azure.IoT Build 0:6ae2f7bca550 14036 }
Azure.IoT Build 0:6ae2f7bca550 14037 }
Azure.IoT Build 0:6ae2f7bca550 14038
Azure.IoT Build 0:6ae2f7bca550 14039 return result;
Azure.IoT Build 0:6ae2f7bca550 14040 }
Azure.IoT Build 0:6ae2f7bca550 14041
Azure.IoT Build 0:6ae2f7bca550 14042 int header_set_durable(HEADER_HANDLE header, bool durable_value)
Azure.IoT Build 0:6ae2f7bca550 14043 {
Azure.IoT Build 0:6ae2f7bca550 14044 int result;
Azure.IoT Build 0:6ae2f7bca550 14045
Azure.IoT Build 0:6ae2f7bca550 14046 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14047 {
AzureIoTClient 19:000ab4e6a2c1 14048 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14049 }
Azure.IoT Build 0:6ae2f7bca550 14050 else
Azure.IoT Build 0:6ae2f7bca550 14051 {
Azure.IoT Build 0:6ae2f7bca550 14052 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
Azure.IoT Build 0:6ae2f7bca550 14053 AMQP_VALUE durable_amqp_value = amqpvalue_create_boolean(durable_value);
Azure.IoT Build 0:6ae2f7bca550 14054 if (durable_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14055 {
AzureIoTClient 19:000ab4e6a2c1 14056 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14057 }
Azure.IoT Build 0:6ae2f7bca550 14058 else
Azure.IoT Build 0:6ae2f7bca550 14059 {
Azure.IoT Build 0:6ae2f7bca550 14060 if (amqpvalue_set_composite_item(header_instance->composite_value, 0, durable_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 14061 {
AzureIoTClient 19:000ab4e6a2c1 14062 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14063 }
Azure.IoT Build 0:6ae2f7bca550 14064 else
Azure.IoT Build 0:6ae2f7bca550 14065 {
Azure.IoT Build 0:6ae2f7bca550 14066 result = 0;
Azure.IoT Build 0:6ae2f7bca550 14067 }
Azure.IoT Build 0:6ae2f7bca550 14068
Azure.IoT Build 0:6ae2f7bca550 14069 amqpvalue_destroy(durable_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 14070 }
Azure.IoT Build 0:6ae2f7bca550 14071 }
Azure.IoT Build 0:6ae2f7bca550 14072
Azure.IoT Build 0:6ae2f7bca550 14073 return result;
Azure.IoT Build 0:6ae2f7bca550 14074 }
Azure.IoT Build 0:6ae2f7bca550 14075
Azure.IoT Build 0:6ae2f7bca550 14076 int header_get_priority(HEADER_HANDLE header, uint8_t* priority_value)
Azure.IoT Build 0:6ae2f7bca550 14077 {
Azure.IoT Build 0:6ae2f7bca550 14078 int result;
Azure.IoT Build 0:6ae2f7bca550 14079
Azure.IoT Build 0:6ae2f7bca550 14080 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14081 {
AzureIoTClient 19:000ab4e6a2c1 14082 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14083 }
Azure.IoT Build 0:6ae2f7bca550 14084 else
Azure.IoT Build 0:6ae2f7bca550 14085 {
AzureIoTClient 23:1111ee8bcba4 14086 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 14087 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14088 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14089 {
AzureIoTClient 23:1111ee8bcba4 14090 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14091 }
AzureIoTClient 23:1111ee8bcba4 14092 else
AzureIoTClient 23:1111ee8bcba4 14093 {
AzureIoTClient 23:1111ee8bcba4 14094 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 14095 {
AzureIoTClient 23:1111ee8bcba4 14096 *priority_value = 4;
AzureIoTClient 23:1111ee8bcba4 14097 result = 0;
AzureIoTClient 23:1111ee8bcba4 14098 }
AzureIoTClient 23:1111ee8bcba4 14099 else
AzureIoTClient 23:1111ee8bcba4 14100 {
AzureIoTClient 23:1111ee8bcba4 14101 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 14102 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 14103 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 14104 {
AzureIoTClient 16:22a72cf8e416 14105 *priority_value = 4;
AzureIoTClient 16:22a72cf8e416 14106 result = 0;
AzureIoTClient 23:1111ee8bcba4 14107 }
AzureIoTClient 23:1111ee8bcba4 14108 else
AzureIoTClient 23:1111ee8bcba4 14109 {
AzureIoTClient 23:1111ee8bcba4 14110 if (amqpvalue_get_ubyte(item_value, priority_value) != 0)
AzureIoTClient 23:1111ee8bcba4 14111 {
AzureIoTClient 23:1111ee8bcba4 14112 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14113 {
AzureIoTClient 23:1111ee8bcba4 14114 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14115 }
AzureIoTClient 23:1111ee8bcba4 14116 else
AzureIoTClient 23:1111ee8bcba4 14117 {
AzureIoTClient 23:1111ee8bcba4 14118 *priority_value = 4;
AzureIoTClient 23:1111ee8bcba4 14119 result = 0;
AzureIoTClient 23:1111ee8bcba4 14120 }
AzureIoTClient 23:1111ee8bcba4 14121 }
AzureIoTClient 23:1111ee8bcba4 14122 else
AzureIoTClient 23:1111ee8bcba4 14123 {
AzureIoTClient 23:1111ee8bcba4 14124 result = 0;
AzureIoTClient 23:1111ee8bcba4 14125 }
AzureIoTClient 23:1111ee8bcba4 14126 }
AzureIoTClient 23:1111ee8bcba4 14127 }
Azure.IoT Build 0:6ae2f7bca550 14128 }
Azure.IoT Build 0:6ae2f7bca550 14129 }
Azure.IoT Build 0:6ae2f7bca550 14130
Azure.IoT Build 0:6ae2f7bca550 14131 return result;
Azure.IoT Build 0:6ae2f7bca550 14132 }
Azure.IoT Build 0:6ae2f7bca550 14133
Azure.IoT Build 0:6ae2f7bca550 14134 int header_set_priority(HEADER_HANDLE header, uint8_t priority_value)
Azure.IoT Build 0:6ae2f7bca550 14135 {
Azure.IoT Build 0:6ae2f7bca550 14136 int result;
Azure.IoT Build 0:6ae2f7bca550 14137
Azure.IoT Build 0:6ae2f7bca550 14138 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14139 {
AzureIoTClient 19:000ab4e6a2c1 14140 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14141 }
Azure.IoT Build 0:6ae2f7bca550 14142 else
Azure.IoT Build 0:6ae2f7bca550 14143 {
Azure.IoT Build 0:6ae2f7bca550 14144 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
Azure.IoT Build 0:6ae2f7bca550 14145 AMQP_VALUE priority_amqp_value = amqpvalue_create_ubyte(priority_value);
Azure.IoT Build 0:6ae2f7bca550 14146 if (priority_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14147 {
AzureIoTClient 19:000ab4e6a2c1 14148 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14149 }
Azure.IoT Build 0:6ae2f7bca550 14150 else
Azure.IoT Build 0:6ae2f7bca550 14151 {
Azure.IoT Build 0:6ae2f7bca550 14152 if (amqpvalue_set_composite_item(header_instance->composite_value, 1, priority_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 14153 {
AzureIoTClient 19:000ab4e6a2c1 14154 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14155 }
Azure.IoT Build 0:6ae2f7bca550 14156 else
Azure.IoT Build 0:6ae2f7bca550 14157 {
Azure.IoT Build 0:6ae2f7bca550 14158 result = 0;
Azure.IoT Build 0:6ae2f7bca550 14159 }
Azure.IoT Build 0:6ae2f7bca550 14160
Azure.IoT Build 0:6ae2f7bca550 14161 amqpvalue_destroy(priority_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 14162 }
Azure.IoT Build 0:6ae2f7bca550 14163 }
Azure.IoT Build 0:6ae2f7bca550 14164
Azure.IoT Build 0:6ae2f7bca550 14165 return result;
Azure.IoT Build 0:6ae2f7bca550 14166 }
Azure.IoT Build 0:6ae2f7bca550 14167
Azure.IoT Build 0:6ae2f7bca550 14168 int header_get_ttl(HEADER_HANDLE header, milliseconds* ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14169 {
Azure.IoT Build 0:6ae2f7bca550 14170 int result;
Azure.IoT Build 0:6ae2f7bca550 14171
Azure.IoT Build 0:6ae2f7bca550 14172 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14173 {
AzureIoTClient 19:000ab4e6a2c1 14174 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14175 }
Azure.IoT Build 0:6ae2f7bca550 14176 else
Azure.IoT Build 0:6ae2f7bca550 14177 {
AzureIoTClient 23:1111ee8bcba4 14178 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 14179 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14180 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14181 {
AzureIoTClient 23:1111ee8bcba4 14182 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14183 }
AzureIoTClient 23:1111ee8bcba4 14184 else
AzureIoTClient 23:1111ee8bcba4 14185 {
AzureIoTClient 23:1111ee8bcba4 14186 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 14187 {
AzureIoTClient 23:1111ee8bcba4 14188 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14189 }
AzureIoTClient 23:1111ee8bcba4 14190 else
AzureIoTClient 23:1111ee8bcba4 14191 {
AzureIoTClient 23:1111ee8bcba4 14192 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 14193 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 14194 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 14195 {
AzureIoTClient 23:1111ee8bcba4 14196 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14197 }
AzureIoTClient 23:1111ee8bcba4 14198 else
AzureIoTClient 23:1111ee8bcba4 14199 {
AzureIoTClient 23:1111ee8bcba4 14200 if (amqpvalue_get_milliseconds(item_value, ttl_value) != 0)
AzureIoTClient 23:1111ee8bcba4 14201 {
AzureIoTClient 23:1111ee8bcba4 14202 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14203 }
AzureIoTClient 23:1111ee8bcba4 14204 else
AzureIoTClient 23:1111ee8bcba4 14205 {
AzureIoTClient 23:1111ee8bcba4 14206 result = 0;
AzureIoTClient 23:1111ee8bcba4 14207 }
AzureIoTClient 23:1111ee8bcba4 14208 }
AzureIoTClient 23:1111ee8bcba4 14209 }
Azure.IoT Build 0:6ae2f7bca550 14210 }
Azure.IoT Build 0:6ae2f7bca550 14211 }
Azure.IoT Build 0:6ae2f7bca550 14212
Azure.IoT Build 0:6ae2f7bca550 14213 return result;
Azure.IoT Build 0:6ae2f7bca550 14214 }
Azure.IoT Build 0:6ae2f7bca550 14215
Azure.IoT Build 0:6ae2f7bca550 14216 int header_set_ttl(HEADER_HANDLE header, milliseconds ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14217 {
Azure.IoT Build 0:6ae2f7bca550 14218 int result;
Azure.IoT Build 0:6ae2f7bca550 14219
Azure.IoT Build 0:6ae2f7bca550 14220 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14221 {
AzureIoTClient 19:000ab4e6a2c1 14222 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14223 }
Azure.IoT Build 0:6ae2f7bca550 14224 else
Azure.IoT Build 0:6ae2f7bca550 14225 {
Azure.IoT Build 0:6ae2f7bca550 14226 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
Azure.IoT Build 0:6ae2f7bca550 14227 AMQP_VALUE ttl_amqp_value = amqpvalue_create_milliseconds(ttl_value);
Azure.IoT Build 0:6ae2f7bca550 14228 if (ttl_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14229 {
AzureIoTClient 19:000ab4e6a2c1 14230 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14231 }
Azure.IoT Build 0:6ae2f7bca550 14232 else
Azure.IoT Build 0:6ae2f7bca550 14233 {
Azure.IoT Build 0:6ae2f7bca550 14234 if (amqpvalue_set_composite_item(header_instance->composite_value, 2, ttl_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 14235 {
AzureIoTClient 19:000ab4e6a2c1 14236 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14237 }
Azure.IoT Build 0:6ae2f7bca550 14238 else
Azure.IoT Build 0:6ae2f7bca550 14239 {
Azure.IoT Build 0:6ae2f7bca550 14240 result = 0;
Azure.IoT Build 0:6ae2f7bca550 14241 }
Azure.IoT Build 0:6ae2f7bca550 14242
Azure.IoT Build 0:6ae2f7bca550 14243 amqpvalue_destroy(ttl_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 14244 }
Azure.IoT Build 0:6ae2f7bca550 14245 }
Azure.IoT Build 0:6ae2f7bca550 14246
Azure.IoT Build 0:6ae2f7bca550 14247 return result;
Azure.IoT Build 0:6ae2f7bca550 14248 }
Azure.IoT Build 0:6ae2f7bca550 14249
Azure.IoT Build 0:6ae2f7bca550 14250 int header_get_first_acquirer(HEADER_HANDLE header, bool* first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 14251 {
Azure.IoT Build 0:6ae2f7bca550 14252 int result;
Azure.IoT Build 0:6ae2f7bca550 14253
Azure.IoT Build 0:6ae2f7bca550 14254 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14255 {
AzureIoTClient 19:000ab4e6a2c1 14256 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14257 }
Azure.IoT Build 0:6ae2f7bca550 14258 else
Azure.IoT Build 0:6ae2f7bca550 14259 {
AzureIoTClient 23:1111ee8bcba4 14260 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 14261 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14262 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14263 {
AzureIoTClient 23:1111ee8bcba4 14264 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14265 }
AzureIoTClient 23:1111ee8bcba4 14266 else
AzureIoTClient 23:1111ee8bcba4 14267 {
AzureIoTClient 23:1111ee8bcba4 14268 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 14269 {
AzureIoTClient 23:1111ee8bcba4 14270 *first_acquirer_value = false;
AzureIoTClient 23:1111ee8bcba4 14271 result = 0;
AzureIoTClient 23:1111ee8bcba4 14272 }
AzureIoTClient 23:1111ee8bcba4 14273 else
AzureIoTClient 23:1111ee8bcba4 14274 {
AzureIoTClient 23:1111ee8bcba4 14275 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 14276 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 14277 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 14278 {
AzureIoTClient 16:22a72cf8e416 14279 *first_acquirer_value = false;
AzureIoTClient 16:22a72cf8e416 14280 result = 0;
AzureIoTClient 23:1111ee8bcba4 14281 }
AzureIoTClient 23:1111ee8bcba4 14282 else
AzureIoTClient 23:1111ee8bcba4 14283 {
AzureIoTClient 23:1111ee8bcba4 14284 if (amqpvalue_get_boolean(item_value, first_acquirer_value) != 0)
AzureIoTClient 23:1111ee8bcba4 14285 {
AzureIoTClient 23:1111ee8bcba4 14286 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14287 {
AzureIoTClient 23:1111ee8bcba4 14288 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14289 }
AzureIoTClient 23:1111ee8bcba4 14290 else
AzureIoTClient 23:1111ee8bcba4 14291 {
AzureIoTClient 23:1111ee8bcba4 14292 *first_acquirer_value = false;
AzureIoTClient 23:1111ee8bcba4 14293 result = 0;
AzureIoTClient 23:1111ee8bcba4 14294 }
AzureIoTClient 23:1111ee8bcba4 14295 }
AzureIoTClient 23:1111ee8bcba4 14296 else
AzureIoTClient 23:1111ee8bcba4 14297 {
AzureIoTClient 23:1111ee8bcba4 14298 result = 0;
AzureIoTClient 23:1111ee8bcba4 14299 }
AzureIoTClient 23:1111ee8bcba4 14300 }
AzureIoTClient 23:1111ee8bcba4 14301 }
Azure.IoT Build 0:6ae2f7bca550 14302 }
Azure.IoT Build 0:6ae2f7bca550 14303 }
Azure.IoT Build 0:6ae2f7bca550 14304
Azure.IoT Build 0:6ae2f7bca550 14305 return result;
Azure.IoT Build 0:6ae2f7bca550 14306 }
Azure.IoT Build 0:6ae2f7bca550 14307
Azure.IoT Build 0:6ae2f7bca550 14308 int header_set_first_acquirer(HEADER_HANDLE header, bool first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 14309 {
Azure.IoT Build 0:6ae2f7bca550 14310 int result;
Azure.IoT Build 0:6ae2f7bca550 14311
Azure.IoT Build 0:6ae2f7bca550 14312 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14313 {
AzureIoTClient 19:000ab4e6a2c1 14314 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14315 }
Azure.IoT Build 0:6ae2f7bca550 14316 else
Azure.IoT Build 0:6ae2f7bca550 14317 {
Azure.IoT Build 0:6ae2f7bca550 14318 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
Azure.IoT Build 0:6ae2f7bca550 14319 AMQP_VALUE first_acquirer_amqp_value = amqpvalue_create_boolean(first_acquirer_value);
Azure.IoT Build 0:6ae2f7bca550 14320 if (first_acquirer_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14321 {
AzureIoTClient 19:000ab4e6a2c1 14322 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14323 }
Azure.IoT Build 0:6ae2f7bca550 14324 else
Azure.IoT Build 0:6ae2f7bca550 14325 {
Azure.IoT Build 0:6ae2f7bca550 14326 if (amqpvalue_set_composite_item(header_instance->composite_value, 3, first_acquirer_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 14327 {
AzureIoTClient 19:000ab4e6a2c1 14328 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14329 }
Azure.IoT Build 0:6ae2f7bca550 14330 else
Azure.IoT Build 0:6ae2f7bca550 14331 {
Azure.IoT Build 0:6ae2f7bca550 14332 result = 0;
Azure.IoT Build 0:6ae2f7bca550 14333 }
Azure.IoT Build 0:6ae2f7bca550 14334
Azure.IoT Build 0:6ae2f7bca550 14335 amqpvalue_destroy(first_acquirer_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 14336 }
Azure.IoT Build 0:6ae2f7bca550 14337 }
Azure.IoT Build 0:6ae2f7bca550 14338
Azure.IoT Build 0:6ae2f7bca550 14339 return result;
Azure.IoT Build 0:6ae2f7bca550 14340 }
Azure.IoT Build 0:6ae2f7bca550 14341
Azure.IoT Build 0:6ae2f7bca550 14342 int header_get_delivery_count(HEADER_HANDLE header, uint32_t* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 14343 {
Azure.IoT Build 0:6ae2f7bca550 14344 int result;
Azure.IoT Build 0:6ae2f7bca550 14345
Azure.IoT Build 0:6ae2f7bca550 14346 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14347 {
AzureIoTClient 19:000ab4e6a2c1 14348 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14349 }
Azure.IoT Build 0:6ae2f7bca550 14350 else
Azure.IoT Build 0:6ae2f7bca550 14351 {
AzureIoTClient 23:1111ee8bcba4 14352 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 14353 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14354 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14355 {
AzureIoTClient 23:1111ee8bcba4 14356 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14357 }
AzureIoTClient 23:1111ee8bcba4 14358 else
AzureIoTClient 23:1111ee8bcba4 14359 {
AzureIoTClient 23:1111ee8bcba4 14360 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 14361 {
AzureIoTClient 23:1111ee8bcba4 14362 *delivery_count_value = 0;
AzureIoTClient 23:1111ee8bcba4 14363 result = 0;
AzureIoTClient 23:1111ee8bcba4 14364 }
AzureIoTClient 23:1111ee8bcba4 14365 else
AzureIoTClient 23:1111ee8bcba4 14366 {
AzureIoTClient 23:1111ee8bcba4 14367 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 14368 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 14369 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 14370 {
AzureIoTClient 16:22a72cf8e416 14371 *delivery_count_value = 0;
AzureIoTClient 16:22a72cf8e416 14372 result = 0;
AzureIoTClient 23:1111ee8bcba4 14373 }
AzureIoTClient 23:1111ee8bcba4 14374 else
AzureIoTClient 23:1111ee8bcba4 14375 {
AzureIoTClient 23:1111ee8bcba4 14376 if (amqpvalue_get_uint(item_value, delivery_count_value) != 0)
AzureIoTClient 23:1111ee8bcba4 14377 {
AzureIoTClient 23:1111ee8bcba4 14378 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14379 {
AzureIoTClient 23:1111ee8bcba4 14380 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14381 }
AzureIoTClient 23:1111ee8bcba4 14382 else
AzureIoTClient 23:1111ee8bcba4 14383 {
AzureIoTClient 23:1111ee8bcba4 14384 *delivery_count_value = 0;
AzureIoTClient 23:1111ee8bcba4 14385 result = 0;
AzureIoTClient 23:1111ee8bcba4 14386 }
AzureIoTClient 23:1111ee8bcba4 14387 }
AzureIoTClient 23:1111ee8bcba4 14388 else
AzureIoTClient 23:1111ee8bcba4 14389 {
AzureIoTClient 23:1111ee8bcba4 14390 result = 0;
AzureIoTClient 23:1111ee8bcba4 14391 }
AzureIoTClient 23:1111ee8bcba4 14392 }
AzureIoTClient 23:1111ee8bcba4 14393 }
Azure.IoT Build 0:6ae2f7bca550 14394 }
Azure.IoT Build 0:6ae2f7bca550 14395 }
Azure.IoT Build 0:6ae2f7bca550 14396
Azure.IoT Build 0:6ae2f7bca550 14397 return result;
Azure.IoT Build 0:6ae2f7bca550 14398 }
Azure.IoT Build 0:6ae2f7bca550 14399
Azure.IoT Build 0:6ae2f7bca550 14400 int header_set_delivery_count(HEADER_HANDLE header, uint32_t delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 14401 {
Azure.IoT Build 0:6ae2f7bca550 14402 int result;
Azure.IoT Build 0:6ae2f7bca550 14403
Azure.IoT Build 0:6ae2f7bca550 14404 if (header == NULL)
Azure.IoT Build 0:6ae2f7bca550 14405 {
AzureIoTClient 19:000ab4e6a2c1 14406 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14407 }
Azure.IoT Build 0:6ae2f7bca550 14408 else
Azure.IoT Build 0:6ae2f7bca550 14409 {
Azure.IoT Build 0:6ae2f7bca550 14410 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
Azure.IoT Build 0:6ae2f7bca550 14411 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_uint(delivery_count_value);
Azure.IoT Build 0:6ae2f7bca550 14412 if (delivery_count_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14413 {
AzureIoTClient 19:000ab4e6a2c1 14414 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14415 }
Azure.IoT Build 0:6ae2f7bca550 14416 else
Azure.IoT Build 0:6ae2f7bca550 14417 {
Azure.IoT Build 0:6ae2f7bca550 14418 if (amqpvalue_set_composite_item(header_instance->composite_value, 4, delivery_count_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 14419 {
AzureIoTClient 19:000ab4e6a2c1 14420 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14421 }
Azure.IoT Build 0:6ae2f7bca550 14422 else
Azure.IoT Build 0:6ae2f7bca550 14423 {
Azure.IoT Build 0:6ae2f7bca550 14424 result = 0;
Azure.IoT Build 0:6ae2f7bca550 14425 }
Azure.IoT Build 0:6ae2f7bca550 14426
Azure.IoT Build 0:6ae2f7bca550 14427 amqpvalue_destroy(delivery_count_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 14428 }
Azure.IoT Build 0:6ae2f7bca550 14429 }
Azure.IoT Build 0:6ae2f7bca550 14430
Azure.IoT Build 0:6ae2f7bca550 14431 return result;
Azure.IoT Build 0:6ae2f7bca550 14432 }
Azure.IoT Build 0:6ae2f7bca550 14433
Azure.IoT Build 0:6ae2f7bca550 14434
Azure.IoT Build 0:6ae2f7bca550 14435 /* delivery-annotations */
Azure.IoT Build 0:6ae2f7bca550 14436
Azure.IoT Build 0:6ae2f7bca550 14437 AMQP_VALUE amqpvalue_create_delivery_annotations(delivery_annotations value)
Azure.IoT Build 0:6ae2f7bca550 14438 {
Azure.IoT Build 0:6ae2f7bca550 14439 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 14440 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
Azure.IoT Build 0:6ae2f7bca550 14441 if (described_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14442 {
Azure.IoT Build 0:6ae2f7bca550 14443 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14444 }
Azure.IoT Build 0:6ae2f7bca550 14445 else
Azure.IoT Build 0:6ae2f7bca550 14446 {
Azure.IoT Build 0:6ae2f7bca550 14447 AMQP_VALUE descriptor = amqpvalue_create_ulong(113);
Azure.IoT Build 0:6ae2f7bca550 14448 if (descriptor == NULL)
Azure.IoT Build 0:6ae2f7bca550 14449 {
Azure.IoT Build 0:6ae2f7bca550 14450 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14451 }
Azure.IoT Build 0:6ae2f7bca550 14452 else
Azure.IoT Build 0:6ae2f7bca550 14453 {
Azure.IoT Build 0:6ae2f7bca550 14454 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
Azure.IoT Build 0:6ae2f7bca550 14455
Azure.IoT Build 0:6ae2f7bca550 14456 amqpvalue_destroy(descriptor);
Azure.IoT Build 0:6ae2f7bca550 14457 }
Azure.IoT Build 0:6ae2f7bca550 14458
Azure.IoT Build 0:6ae2f7bca550 14459 amqpvalue_destroy(described_value);
Azure.IoT Build 0:6ae2f7bca550 14460 }
Azure.IoT Build 0:6ae2f7bca550 14461
Azure.IoT Build 0:6ae2f7bca550 14462 return result;
Azure.IoT Build 0:6ae2f7bca550 14463 }
Azure.IoT Build 0:6ae2f7bca550 14464
Azure.IoT Build 0:6ae2f7bca550 14465 bool is_delivery_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14466 {
Azure.IoT Build 0:6ae2f7bca550 14467 bool result;
Azure.IoT Build 0:6ae2f7bca550 14468
Azure.IoT Build 0:6ae2f7bca550 14469 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 14470 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 14471 (descriptor_ulong == 113))
Azure.IoT Build 0:6ae2f7bca550 14472 {
Azure.IoT Build 0:6ae2f7bca550 14473 result = true;
Azure.IoT Build 0:6ae2f7bca550 14474 }
Azure.IoT Build 0:6ae2f7bca550 14475 else
Azure.IoT Build 0:6ae2f7bca550 14476 {
Azure.IoT Build 0:6ae2f7bca550 14477 result = false;
Azure.IoT Build 0:6ae2f7bca550 14478 }
Azure.IoT Build 0:6ae2f7bca550 14479
Azure.IoT Build 0:6ae2f7bca550 14480 return result;
Azure.IoT Build 0:6ae2f7bca550 14481 }
Azure.IoT Build 0:6ae2f7bca550 14482
Azure.IoT Build 0:6ae2f7bca550 14483 /* message-annotations */
Azure.IoT Build 0:6ae2f7bca550 14484
Azure.IoT Build 0:6ae2f7bca550 14485 AMQP_VALUE amqpvalue_create_message_annotations(message_annotations value)
Azure.IoT Build 0:6ae2f7bca550 14486 {
Azure.IoT Build 0:6ae2f7bca550 14487 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 14488 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
Azure.IoT Build 0:6ae2f7bca550 14489 if (described_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14490 {
Azure.IoT Build 0:6ae2f7bca550 14491 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14492 }
Azure.IoT Build 0:6ae2f7bca550 14493 else
Azure.IoT Build 0:6ae2f7bca550 14494 {
Azure.IoT Build 0:6ae2f7bca550 14495 AMQP_VALUE descriptor = amqpvalue_create_ulong(114);
Azure.IoT Build 0:6ae2f7bca550 14496 if (descriptor == NULL)
Azure.IoT Build 0:6ae2f7bca550 14497 {
Azure.IoT Build 0:6ae2f7bca550 14498 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14499 }
Azure.IoT Build 0:6ae2f7bca550 14500 else
Azure.IoT Build 0:6ae2f7bca550 14501 {
Azure.IoT Build 0:6ae2f7bca550 14502 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
Azure.IoT Build 0:6ae2f7bca550 14503
Azure.IoT Build 0:6ae2f7bca550 14504 amqpvalue_destroy(descriptor);
Azure.IoT Build 0:6ae2f7bca550 14505 }
Azure.IoT Build 0:6ae2f7bca550 14506
Azure.IoT Build 0:6ae2f7bca550 14507 amqpvalue_destroy(described_value);
Azure.IoT Build 0:6ae2f7bca550 14508 }
Azure.IoT Build 0:6ae2f7bca550 14509
Azure.IoT Build 0:6ae2f7bca550 14510 return result;
Azure.IoT Build 0:6ae2f7bca550 14511 }
Azure.IoT Build 0:6ae2f7bca550 14512
Azure.IoT Build 0:6ae2f7bca550 14513 bool is_message_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14514 {
Azure.IoT Build 0:6ae2f7bca550 14515 bool result;
Azure.IoT Build 0:6ae2f7bca550 14516
Azure.IoT Build 0:6ae2f7bca550 14517 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 14518 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 14519 (descriptor_ulong == 114))
Azure.IoT Build 0:6ae2f7bca550 14520 {
Azure.IoT Build 0:6ae2f7bca550 14521 result = true;
Azure.IoT Build 0:6ae2f7bca550 14522 }
Azure.IoT Build 0:6ae2f7bca550 14523 else
Azure.IoT Build 0:6ae2f7bca550 14524 {
Azure.IoT Build 0:6ae2f7bca550 14525 result = false;
Azure.IoT Build 0:6ae2f7bca550 14526 }
Azure.IoT Build 0:6ae2f7bca550 14527
Azure.IoT Build 0:6ae2f7bca550 14528 return result;
Azure.IoT Build 0:6ae2f7bca550 14529 }
Azure.IoT Build 0:6ae2f7bca550 14530
Azure.IoT Build 0:6ae2f7bca550 14531 /* application-properties */
Azure.IoT Build 0:6ae2f7bca550 14532
Azure.IoT Build 0:6ae2f7bca550 14533 AMQP_VALUE amqpvalue_create_application_properties(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 14534 {
Azure.IoT Build 0:6ae2f7bca550 14535 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 14536 AMQP_VALUE described_value = amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 14537 if (described_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14538 {
Azure.IoT Build 0:6ae2f7bca550 14539 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14540 }
Azure.IoT Build 0:6ae2f7bca550 14541 else
Azure.IoT Build 0:6ae2f7bca550 14542 {
Azure.IoT Build 0:6ae2f7bca550 14543 AMQP_VALUE descriptor = amqpvalue_create_ulong(116);
Azure.IoT Build 0:6ae2f7bca550 14544 if (descriptor == NULL)
Azure.IoT Build 0:6ae2f7bca550 14545 {
Azure.IoT Build 0:6ae2f7bca550 14546 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14547 }
Azure.IoT Build 0:6ae2f7bca550 14548 else
Azure.IoT Build 0:6ae2f7bca550 14549 {
Azure.IoT Build 0:6ae2f7bca550 14550 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
Azure.IoT Build 0:6ae2f7bca550 14551
Azure.IoT Build 0:6ae2f7bca550 14552 amqpvalue_destroy(descriptor);
Azure.IoT Build 0:6ae2f7bca550 14553 }
Azure.IoT Build 0:6ae2f7bca550 14554
Azure.IoT Build 0:6ae2f7bca550 14555 amqpvalue_destroy(described_value);
Azure.IoT Build 0:6ae2f7bca550 14556 }
Azure.IoT Build 0:6ae2f7bca550 14557
Azure.IoT Build 0:6ae2f7bca550 14558 return result;
Azure.IoT Build 0:6ae2f7bca550 14559 }
Azure.IoT Build 0:6ae2f7bca550 14560
Azure.IoT Build 0:6ae2f7bca550 14561 bool is_application_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14562 {
Azure.IoT Build 0:6ae2f7bca550 14563 bool result;
Azure.IoT Build 0:6ae2f7bca550 14564
Azure.IoT Build 0:6ae2f7bca550 14565 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 14566 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 14567 (descriptor_ulong == 116))
Azure.IoT Build 0:6ae2f7bca550 14568 {
Azure.IoT Build 0:6ae2f7bca550 14569 result = true;
Azure.IoT Build 0:6ae2f7bca550 14570 }
Azure.IoT Build 0:6ae2f7bca550 14571 else
Azure.IoT Build 0:6ae2f7bca550 14572 {
Azure.IoT Build 0:6ae2f7bca550 14573 result = false;
Azure.IoT Build 0:6ae2f7bca550 14574 }
Azure.IoT Build 0:6ae2f7bca550 14575
Azure.IoT Build 0:6ae2f7bca550 14576 return result;
Azure.IoT Build 0:6ae2f7bca550 14577 }
Azure.IoT Build 0:6ae2f7bca550 14578
Azure.IoT Build 0:6ae2f7bca550 14579 /* data */
Azure.IoT Build 0:6ae2f7bca550 14580
Azure.IoT Build 0:6ae2f7bca550 14581 AMQP_VALUE amqpvalue_create_data(data value)
Azure.IoT Build 0:6ae2f7bca550 14582 {
Azure.IoT Build 0:6ae2f7bca550 14583 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 14584 AMQP_VALUE described_value = amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 14585 if (described_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14586 {
Azure.IoT Build 0:6ae2f7bca550 14587 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14588 }
Azure.IoT Build 0:6ae2f7bca550 14589 else
Azure.IoT Build 0:6ae2f7bca550 14590 {
Azure.IoT Build 0:6ae2f7bca550 14591 AMQP_VALUE descriptor = amqpvalue_create_ulong(117);
Azure.IoT Build 0:6ae2f7bca550 14592 if (descriptor == NULL)
Azure.IoT Build 0:6ae2f7bca550 14593 {
Azure.IoT Build 0:6ae2f7bca550 14594 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14595 }
Azure.IoT Build 0:6ae2f7bca550 14596 else
Azure.IoT Build 0:6ae2f7bca550 14597 {
Azure.IoT Build 0:6ae2f7bca550 14598 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
Azure.IoT Build 0:6ae2f7bca550 14599
Azure.IoT Build 0:6ae2f7bca550 14600 amqpvalue_destroy(descriptor);
Azure.IoT Build 0:6ae2f7bca550 14601 }
Azure.IoT Build 0:6ae2f7bca550 14602
Azure.IoT Build 0:6ae2f7bca550 14603 amqpvalue_destroy(described_value);
Azure.IoT Build 0:6ae2f7bca550 14604 }
Azure.IoT Build 0:6ae2f7bca550 14605
Azure.IoT Build 0:6ae2f7bca550 14606 return result;
Azure.IoT Build 0:6ae2f7bca550 14607 }
Azure.IoT Build 0:6ae2f7bca550 14608
Azure.IoT Build 0:6ae2f7bca550 14609 bool is_data_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14610 {
Azure.IoT Build 0:6ae2f7bca550 14611 bool result;
Azure.IoT Build 0:6ae2f7bca550 14612
Azure.IoT Build 0:6ae2f7bca550 14613 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 14614 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 14615 (descriptor_ulong == 117))
Azure.IoT Build 0:6ae2f7bca550 14616 {
Azure.IoT Build 0:6ae2f7bca550 14617 result = true;
Azure.IoT Build 0:6ae2f7bca550 14618 }
Azure.IoT Build 0:6ae2f7bca550 14619 else
Azure.IoT Build 0:6ae2f7bca550 14620 {
Azure.IoT Build 0:6ae2f7bca550 14621 result = false;
Azure.IoT Build 0:6ae2f7bca550 14622 }
Azure.IoT Build 0:6ae2f7bca550 14623
Azure.IoT Build 0:6ae2f7bca550 14624 return result;
Azure.IoT Build 0:6ae2f7bca550 14625 }
Azure.IoT Build 0:6ae2f7bca550 14626
Azure.IoT Build 0:6ae2f7bca550 14627 /* amqp-sequence */
Azure.IoT Build 0:6ae2f7bca550 14628
Azure.IoT Build 0:6ae2f7bca550 14629 AMQP_VALUE amqpvalue_create_amqp_sequence(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 14630 {
Azure.IoT Build 0:6ae2f7bca550 14631 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 14632 AMQP_VALUE described_value = amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 14633 if (described_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14634 {
Azure.IoT Build 0:6ae2f7bca550 14635 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14636 }
Azure.IoT Build 0:6ae2f7bca550 14637 else
Azure.IoT Build 0:6ae2f7bca550 14638 {
Azure.IoT Build 0:6ae2f7bca550 14639 AMQP_VALUE descriptor = amqpvalue_create_ulong(118);
Azure.IoT Build 0:6ae2f7bca550 14640 if (descriptor == NULL)
Azure.IoT Build 0:6ae2f7bca550 14641 {
Azure.IoT Build 0:6ae2f7bca550 14642 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14643 }
Azure.IoT Build 0:6ae2f7bca550 14644 else
Azure.IoT Build 0:6ae2f7bca550 14645 {
Azure.IoT Build 0:6ae2f7bca550 14646 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
Azure.IoT Build 0:6ae2f7bca550 14647
Azure.IoT Build 0:6ae2f7bca550 14648 amqpvalue_destroy(descriptor);
Azure.IoT Build 0:6ae2f7bca550 14649 }
Azure.IoT Build 0:6ae2f7bca550 14650
Azure.IoT Build 0:6ae2f7bca550 14651 amqpvalue_destroy(described_value);
Azure.IoT Build 0:6ae2f7bca550 14652 }
Azure.IoT Build 0:6ae2f7bca550 14653
Azure.IoT Build 0:6ae2f7bca550 14654 return result;
Azure.IoT Build 0:6ae2f7bca550 14655 }
Azure.IoT Build 0:6ae2f7bca550 14656
Azure.IoT Build 0:6ae2f7bca550 14657 bool is_amqp_sequence_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14658 {
Azure.IoT Build 0:6ae2f7bca550 14659 bool result;
Azure.IoT Build 0:6ae2f7bca550 14660
Azure.IoT Build 0:6ae2f7bca550 14661 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 14662 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 14663 (descriptor_ulong == 118))
Azure.IoT Build 0:6ae2f7bca550 14664 {
Azure.IoT Build 0:6ae2f7bca550 14665 result = true;
Azure.IoT Build 0:6ae2f7bca550 14666 }
Azure.IoT Build 0:6ae2f7bca550 14667 else
Azure.IoT Build 0:6ae2f7bca550 14668 {
Azure.IoT Build 0:6ae2f7bca550 14669 result = false;
Azure.IoT Build 0:6ae2f7bca550 14670 }
Azure.IoT Build 0:6ae2f7bca550 14671
Azure.IoT Build 0:6ae2f7bca550 14672 return result;
Azure.IoT Build 0:6ae2f7bca550 14673 }
Azure.IoT Build 0:6ae2f7bca550 14674
Azure.IoT Build 0:6ae2f7bca550 14675 /* amqp-value */
Azure.IoT Build 0:6ae2f7bca550 14676
Azure.IoT Build 0:6ae2f7bca550 14677 AMQP_VALUE amqpvalue_create_amqp_value(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 14678 {
Azure.IoT Build 0:6ae2f7bca550 14679 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 14680 AMQP_VALUE described_value = amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 14681 if (described_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14682 {
Azure.IoT Build 0:6ae2f7bca550 14683 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14684 }
Azure.IoT Build 0:6ae2f7bca550 14685 else
Azure.IoT Build 0:6ae2f7bca550 14686 {
Azure.IoT Build 0:6ae2f7bca550 14687 AMQP_VALUE descriptor = amqpvalue_create_ulong(119);
Azure.IoT Build 0:6ae2f7bca550 14688 if (descriptor == NULL)
Azure.IoT Build 0:6ae2f7bca550 14689 {
Azure.IoT Build 0:6ae2f7bca550 14690 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14691 }
Azure.IoT Build 0:6ae2f7bca550 14692 else
Azure.IoT Build 0:6ae2f7bca550 14693 {
Azure.IoT Build 0:6ae2f7bca550 14694 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
Azure.IoT Build 0:6ae2f7bca550 14695
Azure.IoT Build 0:6ae2f7bca550 14696 amqpvalue_destroy(descriptor);
Azure.IoT Build 0:6ae2f7bca550 14697 }
Azure.IoT Build 0:6ae2f7bca550 14698
Azure.IoT Build 0:6ae2f7bca550 14699 amqpvalue_destroy(described_value);
Azure.IoT Build 0:6ae2f7bca550 14700 }
Azure.IoT Build 0:6ae2f7bca550 14701
Azure.IoT Build 0:6ae2f7bca550 14702 return result;
Azure.IoT Build 0:6ae2f7bca550 14703 }
Azure.IoT Build 0:6ae2f7bca550 14704
Azure.IoT Build 0:6ae2f7bca550 14705 bool is_amqp_value_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14706 {
Azure.IoT Build 0:6ae2f7bca550 14707 bool result;
Azure.IoT Build 0:6ae2f7bca550 14708
Azure.IoT Build 0:6ae2f7bca550 14709 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 14710 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 14711 (descriptor_ulong == 119))
Azure.IoT Build 0:6ae2f7bca550 14712 {
Azure.IoT Build 0:6ae2f7bca550 14713 result = true;
Azure.IoT Build 0:6ae2f7bca550 14714 }
Azure.IoT Build 0:6ae2f7bca550 14715 else
Azure.IoT Build 0:6ae2f7bca550 14716 {
Azure.IoT Build 0:6ae2f7bca550 14717 result = false;
Azure.IoT Build 0:6ae2f7bca550 14718 }
Azure.IoT Build 0:6ae2f7bca550 14719
Azure.IoT Build 0:6ae2f7bca550 14720 return result;
Azure.IoT Build 0:6ae2f7bca550 14721 }
Azure.IoT Build 0:6ae2f7bca550 14722
Azure.IoT Build 0:6ae2f7bca550 14723 /* footer */
Azure.IoT Build 0:6ae2f7bca550 14724
Azure.IoT Build 0:6ae2f7bca550 14725 AMQP_VALUE amqpvalue_create_footer(footer value)
Azure.IoT Build 0:6ae2f7bca550 14726 {
Azure.IoT Build 0:6ae2f7bca550 14727 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 14728 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
Azure.IoT Build 0:6ae2f7bca550 14729 if (described_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14730 {
Azure.IoT Build 0:6ae2f7bca550 14731 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14732 }
Azure.IoT Build 0:6ae2f7bca550 14733 else
Azure.IoT Build 0:6ae2f7bca550 14734 {
Azure.IoT Build 0:6ae2f7bca550 14735 AMQP_VALUE descriptor = amqpvalue_create_ulong(120);
Azure.IoT Build 0:6ae2f7bca550 14736 if (descriptor == NULL)
Azure.IoT Build 0:6ae2f7bca550 14737 {
Azure.IoT Build 0:6ae2f7bca550 14738 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14739 }
Azure.IoT Build 0:6ae2f7bca550 14740 else
Azure.IoT Build 0:6ae2f7bca550 14741 {
Azure.IoT Build 0:6ae2f7bca550 14742 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
Azure.IoT Build 0:6ae2f7bca550 14743
Azure.IoT Build 0:6ae2f7bca550 14744 amqpvalue_destroy(descriptor);
Azure.IoT Build 0:6ae2f7bca550 14745 }
Azure.IoT Build 0:6ae2f7bca550 14746
Azure.IoT Build 0:6ae2f7bca550 14747 amqpvalue_destroy(described_value);
Azure.IoT Build 0:6ae2f7bca550 14748 }
Azure.IoT Build 0:6ae2f7bca550 14749
Azure.IoT Build 0:6ae2f7bca550 14750 return result;
Azure.IoT Build 0:6ae2f7bca550 14751 }
Azure.IoT Build 0:6ae2f7bca550 14752
Azure.IoT Build 0:6ae2f7bca550 14753 bool is_footer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14754 {
Azure.IoT Build 0:6ae2f7bca550 14755 bool result;
Azure.IoT Build 0:6ae2f7bca550 14756
Azure.IoT Build 0:6ae2f7bca550 14757 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 14758 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 14759 (descriptor_ulong == 120))
Azure.IoT Build 0:6ae2f7bca550 14760 {
Azure.IoT Build 0:6ae2f7bca550 14761 result = true;
Azure.IoT Build 0:6ae2f7bca550 14762 }
Azure.IoT Build 0:6ae2f7bca550 14763 else
Azure.IoT Build 0:6ae2f7bca550 14764 {
Azure.IoT Build 0:6ae2f7bca550 14765 result = false;
Azure.IoT Build 0:6ae2f7bca550 14766 }
Azure.IoT Build 0:6ae2f7bca550 14767
Azure.IoT Build 0:6ae2f7bca550 14768 return result;
Azure.IoT Build 0:6ae2f7bca550 14769 }
Azure.IoT Build 0:6ae2f7bca550 14770
Azure.IoT Build 0:6ae2f7bca550 14771 /* properties */
Azure.IoT Build 0:6ae2f7bca550 14772
Azure.IoT Build 0:6ae2f7bca550 14773 typedef struct PROPERTIES_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 14774 {
Azure.IoT Build 0:6ae2f7bca550 14775 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 14776 } PROPERTIES_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 14777
Azure.IoT Build 0:6ae2f7bca550 14778 static PROPERTIES_HANDLE properties_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 14779 {
AzureIoTClient 21:f9c433d8e6ca 14780 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 14781 if (properties_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 14782 {
Azure.IoT Build 0:6ae2f7bca550 14783 properties_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 14784 }
Azure.IoT Build 0:6ae2f7bca550 14785
Azure.IoT Build 0:6ae2f7bca550 14786 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 14787 }
Azure.IoT Build 0:6ae2f7bca550 14788
Azure.IoT Build 0:6ae2f7bca550 14789 PROPERTIES_HANDLE properties_create(void)
Azure.IoT Build 0:6ae2f7bca550 14790 {
AzureIoTClient 21:f9c433d8e6ca 14791 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 14792 if (properties_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 14793 {
Azure.IoT Build 0:6ae2f7bca550 14794 properties_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(115);
Azure.IoT Build 0:6ae2f7bca550 14795 if (properties_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14796 {
AzureIoTClient 21:f9c433d8e6ca 14797 free(properties_instance);
Azure.IoT Build 0:6ae2f7bca550 14798 properties_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 14799 }
Azure.IoT Build 0:6ae2f7bca550 14800 }
Azure.IoT Build 0:6ae2f7bca550 14801
Azure.IoT Build 0:6ae2f7bca550 14802 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 14803 }
Azure.IoT Build 0:6ae2f7bca550 14804
Azure.IoT Build 0:6ae2f7bca550 14805 PROPERTIES_HANDLE properties_clone(PROPERTIES_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 14806 {
AzureIoTClient 21:f9c433d8e6ca 14807 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 14808 if (properties_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 14809 {
Azure.IoT Build 0:6ae2f7bca550 14810 properties_instance->composite_value = amqpvalue_clone(((PROPERTIES_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 14811 if (properties_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14812 {
AzureIoTClient 21:f9c433d8e6ca 14813 free(properties_instance);
Azure.IoT Build 0:6ae2f7bca550 14814 properties_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 14815 }
Azure.IoT Build 0:6ae2f7bca550 14816 }
Azure.IoT Build 0:6ae2f7bca550 14817
Azure.IoT Build 0:6ae2f7bca550 14818 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 14819 }
Azure.IoT Build 0:6ae2f7bca550 14820
Azure.IoT Build 0:6ae2f7bca550 14821 void properties_destroy(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 14822 {
Azure.IoT Build 0:6ae2f7bca550 14823 if (properties != NULL)
Azure.IoT Build 0:6ae2f7bca550 14824 {
Azure.IoT Build 0:6ae2f7bca550 14825 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 14826 amqpvalue_destroy(properties_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 14827 free(properties_instance);
Azure.IoT Build 0:6ae2f7bca550 14828 }
Azure.IoT Build 0:6ae2f7bca550 14829 }
Azure.IoT Build 0:6ae2f7bca550 14830
Azure.IoT Build 0:6ae2f7bca550 14831 AMQP_VALUE amqpvalue_create_properties(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 14832 {
Azure.IoT Build 0:6ae2f7bca550 14833 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 14834
Azure.IoT Build 0:6ae2f7bca550 14835 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 14836 {
Azure.IoT Build 0:6ae2f7bca550 14837 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 14838 }
Azure.IoT Build 0:6ae2f7bca550 14839 else
Azure.IoT Build 0:6ae2f7bca550 14840 {
Azure.IoT Build 0:6ae2f7bca550 14841 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 14842 result = amqpvalue_clone(properties_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 14843 }
Azure.IoT Build 0:6ae2f7bca550 14844
Azure.IoT Build 0:6ae2f7bca550 14845 return result;
Azure.IoT Build 0:6ae2f7bca550 14846 }
Azure.IoT Build 0:6ae2f7bca550 14847
Azure.IoT Build 0:6ae2f7bca550 14848 bool is_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14849 {
Azure.IoT Build 0:6ae2f7bca550 14850 bool result;
Azure.IoT Build 0:6ae2f7bca550 14851
Azure.IoT Build 0:6ae2f7bca550 14852 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 14853 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 14854 (descriptor_ulong == 115))
Azure.IoT Build 0:6ae2f7bca550 14855 {
Azure.IoT Build 0:6ae2f7bca550 14856 result = true;
Azure.IoT Build 0:6ae2f7bca550 14857 }
Azure.IoT Build 0:6ae2f7bca550 14858 else
Azure.IoT Build 0:6ae2f7bca550 14859 {
Azure.IoT Build 0:6ae2f7bca550 14860 result = false;
Azure.IoT Build 0:6ae2f7bca550 14861 }
Azure.IoT Build 0:6ae2f7bca550 14862
Azure.IoT Build 0:6ae2f7bca550 14863 return result;
Azure.IoT Build 0:6ae2f7bca550 14864 }
Azure.IoT Build 0:6ae2f7bca550 14865
Azure.IoT Build 0:6ae2f7bca550 14866
Azure.IoT Build 0:6ae2f7bca550 14867 int amqpvalue_get_properties(AMQP_VALUE value, PROPERTIES_HANDLE* properties_handle)
Azure.IoT Build 0:6ae2f7bca550 14868 {
Azure.IoT Build 0:6ae2f7bca550 14869 int result;
Azure.IoT Build 0:6ae2f7bca550 14870 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties_create_internal();
Azure.IoT Build 0:6ae2f7bca550 14871 *properties_handle = properties_instance;
Azure.IoT Build 0:6ae2f7bca550 14872 if (*properties_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 14873 {
AzureIoTClient 19:000ab4e6a2c1 14874 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14875 }
Azure.IoT Build 0:6ae2f7bca550 14876 else
Azure.IoT Build 0:6ae2f7bca550 14877 {
Azure.IoT Build 0:6ae2f7bca550 14878 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 14879 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 14880 {
Azure.IoT Build 0:6ae2f7bca550 14881 properties_destroy(*properties_handle);
AzureIoTClient 19:000ab4e6a2c1 14882 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 14883 }
Azure.IoT Build 0:6ae2f7bca550 14884 else
Azure.IoT Build 0:6ae2f7bca550 14885 {
AzureIoTClient 23:1111ee8bcba4 14886 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 14887 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14888 {
AzureIoTClient 23:1111ee8bcba4 14889 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14890 }
AzureIoTClient 23:1111ee8bcba4 14891 else
AzureIoTClient 23:1111ee8bcba4 14892 {
AzureIoTClient 23:1111ee8bcba4 14893 do
AzureIoTClient 23:1111ee8bcba4 14894 {
AzureIoTClient 23:1111ee8bcba4 14895 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 14896 /* message-id */
AzureIoTClient 23:1111ee8bcba4 14897 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 14898 {
AzureIoTClient 23:1111ee8bcba4 14899 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 14900 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14901 {
AzureIoTClient 23:1111ee8bcba4 14902 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 14903 }
AzureIoTClient 23:1111ee8bcba4 14904 else
AzureIoTClient 23:1111ee8bcba4 14905 {
AzureIoTClient 23:1111ee8bcba4 14906 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 14907 }
AzureIoTClient 23:1111ee8bcba4 14908 }
AzureIoTClient 23:1111ee8bcba4 14909 /* user-id */
AzureIoTClient 23:1111ee8bcba4 14910 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 14911 {
AzureIoTClient 23:1111ee8bcba4 14912 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 14913 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14914 {
AzureIoTClient 23:1111ee8bcba4 14915 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 14916 }
AzureIoTClient 23:1111ee8bcba4 14917 else
AzureIoTClient 23:1111ee8bcba4 14918 {
AzureIoTClient 25:1101516ee67d 14919 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 14920 {
AzureIoTClient 25:1101516ee67d 14921 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 14922 }
AzureIoTClient 25:1101516ee67d 14923 else
AzureIoTClient 25:1101516ee67d 14924 {
AzureIoTClient 25:1101516ee67d 14925 amqp_binary user_id;
AzureIoTClient 23:1111ee8bcba4 14926 if (amqpvalue_get_binary(item_value, &user_id) != 0)
AzureIoTClient 23:1111ee8bcba4 14927 {
AzureIoTClient 25:1101516ee67d 14928 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 14929 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 14930 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14931 break;
AzureIoTClient 23:1111ee8bcba4 14932 }
AzureIoTClient 23:1111ee8bcba4 14933 }
AzureIoTClient 23:1111ee8bcba4 14934
AzureIoTClient 23:1111ee8bcba4 14935 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 14936 }
AzureIoTClient 23:1111ee8bcba4 14937 }
AzureIoTClient 23:1111ee8bcba4 14938 /* to */
AzureIoTClient 23:1111ee8bcba4 14939 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 14940 {
AzureIoTClient 23:1111ee8bcba4 14941 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 14942 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14943 {
AzureIoTClient 23:1111ee8bcba4 14944 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 14945 }
AzureIoTClient 23:1111ee8bcba4 14946 else
AzureIoTClient 23:1111ee8bcba4 14947 {
AzureIoTClient 23:1111ee8bcba4 14948 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 14949 }
AzureIoTClient 23:1111ee8bcba4 14950 }
AzureIoTClient 23:1111ee8bcba4 14951 /* subject */
AzureIoTClient 23:1111ee8bcba4 14952 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 14953 {
AzureIoTClient 23:1111ee8bcba4 14954 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 23:1111ee8bcba4 14955 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14956 {
AzureIoTClient 23:1111ee8bcba4 14957 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 14958 }
AzureIoTClient 23:1111ee8bcba4 14959 else
AzureIoTClient 23:1111ee8bcba4 14960 {
AzureIoTClient 25:1101516ee67d 14961 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 14962 {
AzureIoTClient 25:1101516ee67d 14963 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 14964 }
AzureIoTClient 25:1101516ee67d 14965 else
AzureIoTClient 25:1101516ee67d 14966 {
AzureIoTClient 25:1101516ee67d 14967 const char* subject;
AzureIoTClient 23:1111ee8bcba4 14968 if (amqpvalue_get_string(item_value, &subject) != 0)
AzureIoTClient 23:1111ee8bcba4 14969 {
AzureIoTClient 25:1101516ee67d 14970 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 14971 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 14972 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14973 break;
AzureIoTClient 23:1111ee8bcba4 14974 }
AzureIoTClient 23:1111ee8bcba4 14975 }
AzureIoTClient 23:1111ee8bcba4 14976
AzureIoTClient 23:1111ee8bcba4 14977 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 14978 }
AzureIoTClient 23:1111ee8bcba4 14979 }
AzureIoTClient 23:1111ee8bcba4 14980 /* reply-to */
AzureIoTClient 23:1111ee8bcba4 14981 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 14982 {
AzureIoTClient 23:1111ee8bcba4 14983 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 23:1111ee8bcba4 14984 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14985 {
AzureIoTClient 23:1111ee8bcba4 14986 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 14987 }
AzureIoTClient 23:1111ee8bcba4 14988 else
AzureIoTClient 23:1111ee8bcba4 14989 {
AzureIoTClient 23:1111ee8bcba4 14990 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 14991 }
AzureIoTClient 23:1111ee8bcba4 14992 }
AzureIoTClient 23:1111ee8bcba4 14993 /* correlation-id */
AzureIoTClient 23:1111ee8bcba4 14994 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 14995 {
AzureIoTClient 23:1111ee8bcba4 14996 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 23:1111ee8bcba4 14997 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14998 {
AzureIoTClient 23:1111ee8bcba4 14999 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 15000 }
AzureIoTClient 23:1111ee8bcba4 15001 else
AzureIoTClient 23:1111ee8bcba4 15002 {
AzureIoTClient 23:1111ee8bcba4 15003 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15004 }
AzureIoTClient 23:1111ee8bcba4 15005 }
AzureIoTClient 23:1111ee8bcba4 15006 /* content-type */
AzureIoTClient 23:1111ee8bcba4 15007 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 15008 {
AzureIoTClient 23:1111ee8bcba4 15009 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 23:1111ee8bcba4 15010 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15011 {
AzureIoTClient 23:1111ee8bcba4 15012 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 15013 }
AzureIoTClient 23:1111ee8bcba4 15014 else
AzureIoTClient 23:1111ee8bcba4 15015 {
AzureIoTClient 25:1101516ee67d 15016 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 15017 {
AzureIoTClient 25:1101516ee67d 15018 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 15019 }
AzureIoTClient 25:1101516ee67d 15020 else
AzureIoTClient 25:1101516ee67d 15021 {
AzureIoTClient 25:1101516ee67d 15022 const char* content_type;
AzureIoTClient 23:1111ee8bcba4 15023 if (amqpvalue_get_symbol(item_value, &content_type) != 0)
AzureIoTClient 23:1111ee8bcba4 15024 {
AzureIoTClient 25:1101516ee67d 15025 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15026 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 15027 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15028 break;
AzureIoTClient 23:1111ee8bcba4 15029 }
AzureIoTClient 23:1111ee8bcba4 15030 }
AzureIoTClient 23:1111ee8bcba4 15031
AzureIoTClient 23:1111ee8bcba4 15032 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15033 }
AzureIoTClient 23:1111ee8bcba4 15034 }
AzureIoTClient 23:1111ee8bcba4 15035 /* content-encoding */
AzureIoTClient 23:1111ee8bcba4 15036 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 15037 {
AzureIoTClient 23:1111ee8bcba4 15038 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 23:1111ee8bcba4 15039 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15040 {
AzureIoTClient 23:1111ee8bcba4 15041 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 15042 }
AzureIoTClient 23:1111ee8bcba4 15043 else
AzureIoTClient 23:1111ee8bcba4 15044 {
AzureIoTClient 25:1101516ee67d 15045 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 15046 {
AzureIoTClient 25:1101516ee67d 15047 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 15048 }
AzureIoTClient 25:1101516ee67d 15049 else
AzureIoTClient 25:1101516ee67d 15050 {
AzureIoTClient 25:1101516ee67d 15051 const char* content_encoding;
AzureIoTClient 23:1111ee8bcba4 15052 if (amqpvalue_get_symbol(item_value, &content_encoding) != 0)
AzureIoTClient 23:1111ee8bcba4 15053 {
AzureIoTClient 25:1101516ee67d 15054 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15055 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 15056 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15057 break;
AzureIoTClient 23:1111ee8bcba4 15058 }
AzureIoTClient 23:1111ee8bcba4 15059 }
AzureIoTClient 23:1111ee8bcba4 15060
AzureIoTClient 23:1111ee8bcba4 15061 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15062 }
AzureIoTClient 23:1111ee8bcba4 15063 }
AzureIoTClient 23:1111ee8bcba4 15064 /* absolute-expiry-time */
AzureIoTClient 23:1111ee8bcba4 15065 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 15066 {
AzureIoTClient 23:1111ee8bcba4 15067 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 23:1111ee8bcba4 15068 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15069 {
AzureIoTClient 23:1111ee8bcba4 15070 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 15071 }
AzureIoTClient 23:1111ee8bcba4 15072 else
AzureIoTClient 23:1111ee8bcba4 15073 {
AzureIoTClient 25:1101516ee67d 15074 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 15075 {
AzureIoTClient 25:1101516ee67d 15076 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 15077 }
AzureIoTClient 25:1101516ee67d 15078 else
AzureIoTClient 25:1101516ee67d 15079 {
AzureIoTClient 25:1101516ee67d 15080 timestamp absolute_expiry_time;
AzureIoTClient 23:1111ee8bcba4 15081 if (amqpvalue_get_timestamp(item_value, &absolute_expiry_time) != 0)
AzureIoTClient 23:1111ee8bcba4 15082 {
AzureIoTClient 25:1101516ee67d 15083 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15084 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 15085 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15086 break;
AzureIoTClient 23:1111ee8bcba4 15087 }
AzureIoTClient 23:1111ee8bcba4 15088 }
AzureIoTClient 23:1111ee8bcba4 15089
AzureIoTClient 23:1111ee8bcba4 15090 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15091 }
AzureIoTClient 23:1111ee8bcba4 15092 }
AzureIoTClient 23:1111ee8bcba4 15093 /* creation-time */
AzureIoTClient 23:1111ee8bcba4 15094 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 15095 {
AzureIoTClient 23:1111ee8bcba4 15096 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 23:1111ee8bcba4 15097 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15098 {
AzureIoTClient 23:1111ee8bcba4 15099 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 15100 }
AzureIoTClient 23:1111ee8bcba4 15101 else
AzureIoTClient 23:1111ee8bcba4 15102 {
AzureIoTClient 25:1101516ee67d 15103 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 15104 {
AzureIoTClient 25:1101516ee67d 15105 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 15106 }
AzureIoTClient 25:1101516ee67d 15107 else
AzureIoTClient 25:1101516ee67d 15108 {
AzureIoTClient 25:1101516ee67d 15109 timestamp creation_time;
AzureIoTClient 23:1111ee8bcba4 15110 if (amqpvalue_get_timestamp(item_value, &creation_time) != 0)
AzureIoTClient 23:1111ee8bcba4 15111 {
AzureIoTClient 25:1101516ee67d 15112 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15113 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 15114 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15115 break;
AzureIoTClient 23:1111ee8bcba4 15116 }
AzureIoTClient 23:1111ee8bcba4 15117 }
AzureIoTClient 23:1111ee8bcba4 15118
AzureIoTClient 23:1111ee8bcba4 15119 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15120 }
AzureIoTClient 23:1111ee8bcba4 15121 }
AzureIoTClient 23:1111ee8bcba4 15122 /* group-id */
AzureIoTClient 23:1111ee8bcba4 15123 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 15124 {
AzureIoTClient 23:1111ee8bcba4 15125 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 23:1111ee8bcba4 15126 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15127 {
AzureIoTClient 23:1111ee8bcba4 15128 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 15129 }
AzureIoTClient 23:1111ee8bcba4 15130 else
AzureIoTClient 23:1111ee8bcba4 15131 {
AzureIoTClient 25:1101516ee67d 15132 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 15133 {
AzureIoTClient 25:1101516ee67d 15134 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 15135 }
AzureIoTClient 25:1101516ee67d 15136 else
AzureIoTClient 25:1101516ee67d 15137 {
AzureIoTClient 25:1101516ee67d 15138 const char* group_id;
AzureIoTClient 23:1111ee8bcba4 15139 if (amqpvalue_get_string(item_value, &group_id) != 0)
AzureIoTClient 23:1111ee8bcba4 15140 {
AzureIoTClient 25:1101516ee67d 15141 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15142 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 15143 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15144 break;
AzureIoTClient 23:1111ee8bcba4 15145 }
AzureIoTClient 23:1111ee8bcba4 15146 }
AzureIoTClient 23:1111ee8bcba4 15147
AzureIoTClient 23:1111ee8bcba4 15148 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15149 }
AzureIoTClient 23:1111ee8bcba4 15150 }
AzureIoTClient 23:1111ee8bcba4 15151 /* group-sequence */
AzureIoTClient 23:1111ee8bcba4 15152 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 15153 {
AzureIoTClient 23:1111ee8bcba4 15154 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 23:1111ee8bcba4 15155 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15156 {
AzureIoTClient 23:1111ee8bcba4 15157 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 15158 }
AzureIoTClient 23:1111ee8bcba4 15159 else
AzureIoTClient 23:1111ee8bcba4 15160 {
AzureIoTClient 25:1101516ee67d 15161 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 15162 {
AzureIoTClient 25:1101516ee67d 15163 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 15164 }
AzureIoTClient 25:1101516ee67d 15165 else
AzureIoTClient 25:1101516ee67d 15166 {
AzureIoTClient 25:1101516ee67d 15167 sequence_no group_sequence;
AzureIoTClient 23:1111ee8bcba4 15168 if (amqpvalue_get_sequence_no(item_value, &group_sequence) != 0)
AzureIoTClient 23:1111ee8bcba4 15169 {
AzureIoTClient 25:1101516ee67d 15170 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15171 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 15172 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15173 break;
AzureIoTClient 23:1111ee8bcba4 15174 }
AzureIoTClient 23:1111ee8bcba4 15175 }
AzureIoTClient 23:1111ee8bcba4 15176
AzureIoTClient 23:1111ee8bcba4 15177 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15178 }
AzureIoTClient 23:1111ee8bcba4 15179 }
AzureIoTClient 23:1111ee8bcba4 15180 /* reply-to-group-id */
AzureIoTClient 23:1111ee8bcba4 15181 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 15182 {
AzureIoTClient 23:1111ee8bcba4 15183 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 23:1111ee8bcba4 15184 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15185 {
AzureIoTClient 23:1111ee8bcba4 15186 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 15187 }
AzureIoTClient 23:1111ee8bcba4 15188 else
AzureIoTClient 23:1111ee8bcba4 15189 {
AzureIoTClient 25:1101516ee67d 15190 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 15191 {
AzureIoTClient 25:1101516ee67d 15192 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 15193 }
AzureIoTClient 25:1101516ee67d 15194 else
AzureIoTClient 25:1101516ee67d 15195 {
AzureIoTClient 25:1101516ee67d 15196 const char* reply_to_group_id;
AzureIoTClient 23:1111ee8bcba4 15197 if (amqpvalue_get_string(item_value, &reply_to_group_id) != 0)
AzureIoTClient 23:1111ee8bcba4 15198 {
AzureIoTClient 25:1101516ee67d 15199 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15200 properties_destroy(*properties_handle);
AzureIoTClient 23:1111ee8bcba4 15201 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15202 break;
AzureIoTClient 23:1111ee8bcba4 15203 }
AzureIoTClient 23:1111ee8bcba4 15204 }
AzureIoTClient 23:1111ee8bcba4 15205
AzureIoTClient 23:1111ee8bcba4 15206 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 15207 }
AzureIoTClient 23:1111ee8bcba4 15208 }
AzureIoTClient 23:1111ee8bcba4 15209
AzureIoTClient 23:1111ee8bcba4 15210 properties_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 15211
AzureIoTClient 23:1111ee8bcba4 15212 result = 0;
AzureIoTClient 23:1111ee8bcba4 15213 } while (0);
AzureIoTClient 23:1111ee8bcba4 15214 }
Azure.IoT Build 0:6ae2f7bca550 15215 }
Azure.IoT Build 0:6ae2f7bca550 15216 }
Azure.IoT Build 0:6ae2f7bca550 15217
Azure.IoT Build 0:6ae2f7bca550 15218 return result;
Azure.IoT Build 0:6ae2f7bca550 15219 }
Azure.IoT Build 0:6ae2f7bca550 15220
Azure.IoT Build 0:6ae2f7bca550 15221 int properties_get_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE* message_id_value)
Azure.IoT Build 0:6ae2f7bca550 15222 {
Azure.IoT Build 0:6ae2f7bca550 15223 int result;
Azure.IoT Build 0:6ae2f7bca550 15224
Azure.IoT Build 0:6ae2f7bca550 15225 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15226 {
AzureIoTClient 19:000ab4e6a2c1 15227 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15228 }
Azure.IoT Build 0:6ae2f7bca550 15229 else
Azure.IoT Build 0:6ae2f7bca550 15230 {
AzureIoTClient 23:1111ee8bcba4 15231 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15232 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15233 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15234 {
AzureIoTClient 23:1111ee8bcba4 15235 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15236 }
AzureIoTClient 23:1111ee8bcba4 15237 else
AzureIoTClient 23:1111ee8bcba4 15238 {
AzureIoTClient 23:1111ee8bcba4 15239 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 15240 {
AzureIoTClient 23:1111ee8bcba4 15241 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15242 }
AzureIoTClient 23:1111ee8bcba4 15243 else
AzureIoTClient 23:1111ee8bcba4 15244 {
AzureIoTClient 23:1111ee8bcba4 15245 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 15246 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15247 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15248 {
AzureIoTClient 23:1111ee8bcba4 15249 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15250 }
AzureIoTClient 23:1111ee8bcba4 15251 else
AzureIoTClient 23:1111ee8bcba4 15252 {
AzureIoTClient 23:1111ee8bcba4 15253 *message_id_value = item_value;
AzureIoTClient 23:1111ee8bcba4 15254 result = 0;
AzureIoTClient 23:1111ee8bcba4 15255 }
AzureIoTClient 23:1111ee8bcba4 15256 }
Azure.IoT Build 0:6ae2f7bca550 15257 }
Azure.IoT Build 0:6ae2f7bca550 15258 }
Azure.IoT Build 0:6ae2f7bca550 15259
Azure.IoT Build 0:6ae2f7bca550 15260 return result;
Azure.IoT Build 0:6ae2f7bca550 15261 }
Azure.IoT Build 0:6ae2f7bca550 15262
Azure.IoT Build 0:6ae2f7bca550 15263 int properties_set_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE message_id_value)
Azure.IoT Build 0:6ae2f7bca550 15264 {
Azure.IoT Build 0:6ae2f7bca550 15265 int result;
Azure.IoT Build 0:6ae2f7bca550 15266
Azure.IoT Build 0:6ae2f7bca550 15267 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15268 {
AzureIoTClient 19:000ab4e6a2c1 15269 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15270 }
Azure.IoT Build 0:6ae2f7bca550 15271 else
Azure.IoT Build 0:6ae2f7bca550 15272 {
Azure.IoT Build 0:6ae2f7bca550 15273 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15274 AMQP_VALUE message_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 15275 if (message_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15276 {
AzureIoTClient 23:1111ee8bcba4 15277 message_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 15278 }
AzureIoTClient 23:1111ee8bcba4 15279 else
AzureIoTClient 23:1111ee8bcba4 15280 {
AzureIoTClient 23:1111ee8bcba4 15281 message_id_amqp_value = amqpvalue_clone(message_id_value);
AzureIoTClient 23:1111ee8bcba4 15282 }
Azure.IoT Build 0:6ae2f7bca550 15283 if (message_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15284 {
AzureIoTClient 19:000ab4e6a2c1 15285 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15286 }
Azure.IoT Build 0:6ae2f7bca550 15287 else
Azure.IoT Build 0:6ae2f7bca550 15288 {
Azure.IoT Build 0:6ae2f7bca550 15289 if (amqpvalue_set_composite_item(properties_instance->composite_value, 0, message_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15290 {
AzureIoTClient 19:000ab4e6a2c1 15291 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15292 }
Azure.IoT Build 0:6ae2f7bca550 15293 else
Azure.IoT Build 0:6ae2f7bca550 15294 {
Azure.IoT Build 0:6ae2f7bca550 15295 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15296 }
Azure.IoT Build 0:6ae2f7bca550 15297
Azure.IoT Build 0:6ae2f7bca550 15298 amqpvalue_destroy(message_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15299 }
Azure.IoT Build 0:6ae2f7bca550 15300 }
Azure.IoT Build 0:6ae2f7bca550 15301
Azure.IoT Build 0:6ae2f7bca550 15302 return result;
Azure.IoT Build 0:6ae2f7bca550 15303 }
Azure.IoT Build 0:6ae2f7bca550 15304
Azure.IoT Build 0:6ae2f7bca550 15305 int properties_get_user_id(PROPERTIES_HANDLE properties, amqp_binary* user_id_value)
Azure.IoT Build 0:6ae2f7bca550 15306 {
Azure.IoT Build 0:6ae2f7bca550 15307 int result;
Azure.IoT Build 0:6ae2f7bca550 15308
Azure.IoT Build 0:6ae2f7bca550 15309 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15310 {
AzureIoTClient 19:000ab4e6a2c1 15311 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15312 }
Azure.IoT Build 0:6ae2f7bca550 15313 else
Azure.IoT Build 0:6ae2f7bca550 15314 {
AzureIoTClient 23:1111ee8bcba4 15315 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15316 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15317 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15318 {
AzureIoTClient 23:1111ee8bcba4 15319 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15320 }
AzureIoTClient 23:1111ee8bcba4 15321 else
AzureIoTClient 23:1111ee8bcba4 15322 {
AzureIoTClient 23:1111ee8bcba4 15323 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 15324 {
AzureIoTClient 23:1111ee8bcba4 15325 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15326 }
AzureIoTClient 23:1111ee8bcba4 15327 else
AzureIoTClient 23:1111ee8bcba4 15328 {
AzureIoTClient 23:1111ee8bcba4 15329 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 15330 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15331 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15332 {
AzureIoTClient 23:1111ee8bcba4 15333 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15334 }
AzureIoTClient 23:1111ee8bcba4 15335 else
AzureIoTClient 23:1111ee8bcba4 15336 {
AzureIoTClient 23:1111ee8bcba4 15337 if (amqpvalue_get_binary(item_value, user_id_value) != 0)
AzureIoTClient 23:1111ee8bcba4 15338 {
AzureIoTClient 23:1111ee8bcba4 15339 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15340 }
AzureIoTClient 23:1111ee8bcba4 15341 else
AzureIoTClient 23:1111ee8bcba4 15342 {
AzureIoTClient 23:1111ee8bcba4 15343 result = 0;
AzureIoTClient 23:1111ee8bcba4 15344 }
AzureIoTClient 23:1111ee8bcba4 15345 }
AzureIoTClient 23:1111ee8bcba4 15346 }
Azure.IoT Build 0:6ae2f7bca550 15347 }
Azure.IoT Build 0:6ae2f7bca550 15348 }
Azure.IoT Build 0:6ae2f7bca550 15349
Azure.IoT Build 0:6ae2f7bca550 15350 return result;
Azure.IoT Build 0:6ae2f7bca550 15351 }
Azure.IoT Build 0:6ae2f7bca550 15352
Azure.IoT Build 0:6ae2f7bca550 15353 int properties_set_user_id(PROPERTIES_HANDLE properties, amqp_binary user_id_value)
Azure.IoT Build 0:6ae2f7bca550 15354 {
Azure.IoT Build 0:6ae2f7bca550 15355 int result;
Azure.IoT Build 0:6ae2f7bca550 15356
Azure.IoT Build 0:6ae2f7bca550 15357 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15358 {
AzureIoTClient 19:000ab4e6a2c1 15359 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15360 }
Azure.IoT Build 0:6ae2f7bca550 15361 else
Azure.IoT Build 0:6ae2f7bca550 15362 {
Azure.IoT Build 0:6ae2f7bca550 15363 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 15364 AMQP_VALUE user_id_amqp_value = amqpvalue_create_binary(user_id_value);
Azure.IoT Build 0:6ae2f7bca550 15365 if (user_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15366 {
AzureIoTClient 19:000ab4e6a2c1 15367 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15368 }
Azure.IoT Build 0:6ae2f7bca550 15369 else
Azure.IoT Build 0:6ae2f7bca550 15370 {
Azure.IoT Build 0:6ae2f7bca550 15371 if (amqpvalue_set_composite_item(properties_instance->composite_value, 1, user_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15372 {
AzureIoTClient 19:000ab4e6a2c1 15373 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15374 }
Azure.IoT Build 0:6ae2f7bca550 15375 else
Azure.IoT Build 0:6ae2f7bca550 15376 {
Azure.IoT Build 0:6ae2f7bca550 15377 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15378 }
Azure.IoT Build 0:6ae2f7bca550 15379
Azure.IoT Build 0:6ae2f7bca550 15380 amqpvalue_destroy(user_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15381 }
Azure.IoT Build 0:6ae2f7bca550 15382 }
Azure.IoT Build 0:6ae2f7bca550 15383
Azure.IoT Build 0:6ae2f7bca550 15384 return result;
Azure.IoT Build 0:6ae2f7bca550 15385 }
Azure.IoT Build 0:6ae2f7bca550 15386
Azure.IoT Build 0:6ae2f7bca550 15387 int properties_get_to(PROPERTIES_HANDLE properties, AMQP_VALUE* to_value)
Azure.IoT Build 0:6ae2f7bca550 15388 {
Azure.IoT Build 0:6ae2f7bca550 15389 int result;
Azure.IoT Build 0:6ae2f7bca550 15390
Azure.IoT Build 0:6ae2f7bca550 15391 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15392 {
AzureIoTClient 19:000ab4e6a2c1 15393 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15394 }
Azure.IoT Build 0:6ae2f7bca550 15395 else
Azure.IoT Build 0:6ae2f7bca550 15396 {
AzureIoTClient 23:1111ee8bcba4 15397 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15398 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15399 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15400 {
AzureIoTClient 23:1111ee8bcba4 15401 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15402 }
AzureIoTClient 23:1111ee8bcba4 15403 else
AzureIoTClient 23:1111ee8bcba4 15404 {
AzureIoTClient 23:1111ee8bcba4 15405 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 15406 {
AzureIoTClient 23:1111ee8bcba4 15407 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15408 }
AzureIoTClient 23:1111ee8bcba4 15409 else
AzureIoTClient 23:1111ee8bcba4 15410 {
AzureIoTClient 23:1111ee8bcba4 15411 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 15412 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15413 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15414 {
AzureIoTClient 23:1111ee8bcba4 15415 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15416 }
AzureIoTClient 23:1111ee8bcba4 15417 else
AzureIoTClient 23:1111ee8bcba4 15418 {
AzureIoTClient 23:1111ee8bcba4 15419 *to_value = item_value;
AzureIoTClient 23:1111ee8bcba4 15420 result = 0;
AzureIoTClient 23:1111ee8bcba4 15421 }
AzureIoTClient 23:1111ee8bcba4 15422 }
Azure.IoT Build 0:6ae2f7bca550 15423 }
Azure.IoT Build 0:6ae2f7bca550 15424 }
Azure.IoT Build 0:6ae2f7bca550 15425
Azure.IoT Build 0:6ae2f7bca550 15426 return result;
Azure.IoT Build 0:6ae2f7bca550 15427 }
Azure.IoT Build 0:6ae2f7bca550 15428
Azure.IoT Build 0:6ae2f7bca550 15429 int properties_set_to(PROPERTIES_HANDLE properties, AMQP_VALUE to_value)
Azure.IoT Build 0:6ae2f7bca550 15430 {
Azure.IoT Build 0:6ae2f7bca550 15431 int result;
Azure.IoT Build 0:6ae2f7bca550 15432
Azure.IoT Build 0:6ae2f7bca550 15433 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15434 {
AzureIoTClient 19:000ab4e6a2c1 15435 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15436 }
Azure.IoT Build 0:6ae2f7bca550 15437 else
Azure.IoT Build 0:6ae2f7bca550 15438 {
Azure.IoT Build 0:6ae2f7bca550 15439 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15440 AMQP_VALUE to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 15441 if (to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15442 {
AzureIoTClient 23:1111ee8bcba4 15443 to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 15444 }
AzureIoTClient 23:1111ee8bcba4 15445 else
AzureIoTClient 23:1111ee8bcba4 15446 {
AzureIoTClient 23:1111ee8bcba4 15447 to_amqp_value = amqpvalue_clone(to_value);
AzureIoTClient 23:1111ee8bcba4 15448 }
Azure.IoT Build 0:6ae2f7bca550 15449 if (to_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15450 {
AzureIoTClient 19:000ab4e6a2c1 15451 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15452 }
Azure.IoT Build 0:6ae2f7bca550 15453 else
Azure.IoT Build 0:6ae2f7bca550 15454 {
Azure.IoT Build 0:6ae2f7bca550 15455 if (amqpvalue_set_composite_item(properties_instance->composite_value, 2, to_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15456 {
AzureIoTClient 19:000ab4e6a2c1 15457 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15458 }
Azure.IoT Build 0:6ae2f7bca550 15459 else
Azure.IoT Build 0:6ae2f7bca550 15460 {
Azure.IoT Build 0:6ae2f7bca550 15461 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15462 }
Azure.IoT Build 0:6ae2f7bca550 15463
Azure.IoT Build 0:6ae2f7bca550 15464 amqpvalue_destroy(to_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15465 }
Azure.IoT Build 0:6ae2f7bca550 15466 }
Azure.IoT Build 0:6ae2f7bca550 15467
Azure.IoT Build 0:6ae2f7bca550 15468 return result;
Azure.IoT Build 0:6ae2f7bca550 15469 }
Azure.IoT Build 0:6ae2f7bca550 15470
Azure.IoT Build 0:6ae2f7bca550 15471 int properties_get_subject(PROPERTIES_HANDLE properties, const char** subject_value)
Azure.IoT Build 0:6ae2f7bca550 15472 {
Azure.IoT Build 0:6ae2f7bca550 15473 int result;
Azure.IoT Build 0:6ae2f7bca550 15474
Azure.IoT Build 0:6ae2f7bca550 15475 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15476 {
AzureIoTClient 19:000ab4e6a2c1 15477 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15478 }
Azure.IoT Build 0:6ae2f7bca550 15479 else
Azure.IoT Build 0:6ae2f7bca550 15480 {
AzureIoTClient 23:1111ee8bcba4 15481 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15482 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15483 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15484 {
AzureIoTClient 23:1111ee8bcba4 15485 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15486 }
AzureIoTClient 23:1111ee8bcba4 15487 else
AzureIoTClient 23:1111ee8bcba4 15488 {
AzureIoTClient 23:1111ee8bcba4 15489 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 15490 {
AzureIoTClient 23:1111ee8bcba4 15491 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15492 }
AzureIoTClient 23:1111ee8bcba4 15493 else
AzureIoTClient 23:1111ee8bcba4 15494 {
AzureIoTClient 23:1111ee8bcba4 15495 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 3);
AzureIoTClient 23:1111ee8bcba4 15496 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15497 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15498 {
AzureIoTClient 23:1111ee8bcba4 15499 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15500 }
AzureIoTClient 23:1111ee8bcba4 15501 else
AzureIoTClient 23:1111ee8bcba4 15502 {
AzureIoTClient 23:1111ee8bcba4 15503 if (amqpvalue_get_string(item_value, subject_value) != 0)
AzureIoTClient 23:1111ee8bcba4 15504 {
AzureIoTClient 23:1111ee8bcba4 15505 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15506 }
AzureIoTClient 23:1111ee8bcba4 15507 else
AzureIoTClient 23:1111ee8bcba4 15508 {
AzureIoTClient 23:1111ee8bcba4 15509 result = 0;
AzureIoTClient 23:1111ee8bcba4 15510 }
AzureIoTClient 23:1111ee8bcba4 15511 }
AzureIoTClient 23:1111ee8bcba4 15512 }
Azure.IoT Build 0:6ae2f7bca550 15513 }
Azure.IoT Build 0:6ae2f7bca550 15514 }
Azure.IoT Build 0:6ae2f7bca550 15515
Azure.IoT Build 0:6ae2f7bca550 15516 return result;
Azure.IoT Build 0:6ae2f7bca550 15517 }
Azure.IoT Build 0:6ae2f7bca550 15518
Azure.IoT Build 0:6ae2f7bca550 15519 int properties_set_subject(PROPERTIES_HANDLE properties, const char* subject_value)
Azure.IoT Build 0:6ae2f7bca550 15520 {
Azure.IoT Build 0:6ae2f7bca550 15521 int result;
Azure.IoT Build 0:6ae2f7bca550 15522
Azure.IoT Build 0:6ae2f7bca550 15523 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15524 {
AzureIoTClient 19:000ab4e6a2c1 15525 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15526 }
Azure.IoT Build 0:6ae2f7bca550 15527 else
Azure.IoT Build 0:6ae2f7bca550 15528 {
Azure.IoT Build 0:6ae2f7bca550 15529 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 15530 AMQP_VALUE subject_amqp_value = amqpvalue_create_string(subject_value);
Azure.IoT Build 0:6ae2f7bca550 15531 if (subject_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15532 {
AzureIoTClient 19:000ab4e6a2c1 15533 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15534 }
Azure.IoT Build 0:6ae2f7bca550 15535 else
Azure.IoT Build 0:6ae2f7bca550 15536 {
Azure.IoT Build 0:6ae2f7bca550 15537 if (amqpvalue_set_composite_item(properties_instance->composite_value, 3, subject_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15538 {
AzureIoTClient 19:000ab4e6a2c1 15539 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15540 }
Azure.IoT Build 0:6ae2f7bca550 15541 else
Azure.IoT Build 0:6ae2f7bca550 15542 {
Azure.IoT Build 0:6ae2f7bca550 15543 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15544 }
Azure.IoT Build 0:6ae2f7bca550 15545
Azure.IoT Build 0:6ae2f7bca550 15546 amqpvalue_destroy(subject_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15547 }
Azure.IoT Build 0:6ae2f7bca550 15548 }
Azure.IoT Build 0:6ae2f7bca550 15549
Azure.IoT Build 0:6ae2f7bca550 15550 return result;
Azure.IoT Build 0:6ae2f7bca550 15551 }
Azure.IoT Build 0:6ae2f7bca550 15552
Azure.IoT Build 0:6ae2f7bca550 15553 int properties_get_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE* reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 15554 {
Azure.IoT Build 0:6ae2f7bca550 15555 int result;
Azure.IoT Build 0:6ae2f7bca550 15556
Azure.IoT Build 0:6ae2f7bca550 15557 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15558 {
AzureIoTClient 19:000ab4e6a2c1 15559 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15560 }
Azure.IoT Build 0:6ae2f7bca550 15561 else
Azure.IoT Build 0:6ae2f7bca550 15562 {
AzureIoTClient 23:1111ee8bcba4 15563 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15564 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15565 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15566 {
AzureIoTClient 23:1111ee8bcba4 15567 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15568 }
AzureIoTClient 23:1111ee8bcba4 15569 else
AzureIoTClient 23:1111ee8bcba4 15570 {
AzureIoTClient 23:1111ee8bcba4 15571 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 15572 {
AzureIoTClient 23:1111ee8bcba4 15573 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15574 }
AzureIoTClient 23:1111ee8bcba4 15575 else
AzureIoTClient 23:1111ee8bcba4 15576 {
AzureIoTClient 23:1111ee8bcba4 15577 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 4);
AzureIoTClient 23:1111ee8bcba4 15578 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15579 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15580 {
AzureIoTClient 23:1111ee8bcba4 15581 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15582 }
AzureIoTClient 23:1111ee8bcba4 15583 else
AzureIoTClient 23:1111ee8bcba4 15584 {
AzureIoTClient 23:1111ee8bcba4 15585 *reply_to_value = item_value;
AzureIoTClient 23:1111ee8bcba4 15586 result = 0;
AzureIoTClient 23:1111ee8bcba4 15587 }
AzureIoTClient 23:1111ee8bcba4 15588 }
Azure.IoT Build 0:6ae2f7bca550 15589 }
Azure.IoT Build 0:6ae2f7bca550 15590 }
Azure.IoT Build 0:6ae2f7bca550 15591
Azure.IoT Build 0:6ae2f7bca550 15592 return result;
Azure.IoT Build 0:6ae2f7bca550 15593 }
Azure.IoT Build 0:6ae2f7bca550 15594
Azure.IoT Build 0:6ae2f7bca550 15595 int properties_set_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 15596 {
Azure.IoT Build 0:6ae2f7bca550 15597 int result;
Azure.IoT Build 0:6ae2f7bca550 15598
Azure.IoT Build 0:6ae2f7bca550 15599 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15600 {
AzureIoTClient 19:000ab4e6a2c1 15601 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15602 }
Azure.IoT Build 0:6ae2f7bca550 15603 else
Azure.IoT Build 0:6ae2f7bca550 15604 {
Azure.IoT Build 0:6ae2f7bca550 15605 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15606 AMQP_VALUE reply_to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 15607 if (reply_to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15608 {
AzureIoTClient 23:1111ee8bcba4 15609 reply_to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 15610 }
AzureIoTClient 23:1111ee8bcba4 15611 else
AzureIoTClient 23:1111ee8bcba4 15612 {
AzureIoTClient 23:1111ee8bcba4 15613 reply_to_amqp_value = amqpvalue_clone(reply_to_value);
AzureIoTClient 23:1111ee8bcba4 15614 }
Azure.IoT Build 0:6ae2f7bca550 15615 if (reply_to_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15616 {
AzureIoTClient 19:000ab4e6a2c1 15617 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15618 }
Azure.IoT Build 0:6ae2f7bca550 15619 else
Azure.IoT Build 0:6ae2f7bca550 15620 {
Azure.IoT Build 0:6ae2f7bca550 15621 if (amqpvalue_set_composite_item(properties_instance->composite_value, 4, reply_to_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15622 {
AzureIoTClient 19:000ab4e6a2c1 15623 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15624 }
Azure.IoT Build 0:6ae2f7bca550 15625 else
Azure.IoT Build 0:6ae2f7bca550 15626 {
Azure.IoT Build 0:6ae2f7bca550 15627 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15628 }
Azure.IoT Build 0:6ae2f7bca550 15629
Azure.IoT Build 0:6ae2f7bca550 15630 amqpvalue_destroy(reply_to_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15631 }
Azure.IoT Build 0:6ae2f7bca550 15632 }
Azure.IoT Build 0:6ae2f7bca550 15633
Azure.IoT Build 0:6ae2f7bca550 15634 return result;
Azure.IoT Build 0:6ae2f7bca550 15635 }
Azure.IoT Build 0:6ae2f7bca550 15636
Azure.IoT Build 0:6ae2f7bca550 15637 int properties_get_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE* correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 15638 {
Azure.IoT Build 0:6ae2f7bca550 15639 int result;
Azure.IoT Build 0:6ae2f7bca550 15640
Azure.IoT Build 0:6ae2f7bca550 15641 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15642 {
AzureIoTClient 19:000ab4e6a2c1 15643 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15644 }
Azure.IoT Build 0:6ae2f7bca550 15645 else
Azure.IoT Build 0:6ae2f7bca550 15646 {
AzureIoTClient 23:1111ee8bcba4 15647 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15648 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15649 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15650 {
AzureIoTClient 23:1111ee8bcba4 15651 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15652 }
AzureIoTClient 23:1111ee8bcba4 15653 else
AzureIoTClient 23:1111ee8bcba4 15654 {
AzureIoTClient 23:1111ee8bcba4 15655 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 15656 {
AzureIoTClient 23:1111ee8bcba4 15657 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15658 }
AzureIoTClient 23:1111ee8bcba4 15659 else
AzureIoTClient 23:1111ee8bcba4 15660 {
AzureIoTClient 23:1111ee8bcba4 15661 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 5);
AzureIoTClient 23:1111ee8bcba4 15662 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15663 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15664 {
AzureIoTClient 23:1111ee8bcba4 15665 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15666 }
AzureIoTClient 23:1111ee8bcba4 15667 else
AzureIoTClient 23:1111ee8bcba4 15668 {
AzureIoTClient 23:1111ee8bcba4 15669 *correlation_id_value = item_value;
AzureIoTClient 23:1111ee8bcba4 15670 result = 0;
AzureIoTClient 23:1111ee8bcba4 15671 }
AzureIoTClient 23:1111ee8bcba4 15672 }
Azure.IoT Build 0:6ae2f7bca550 15673 }
Azure.IoT Build 0:6ae2f7bca550 15674 }
Azure.IoT Build 0:6ae2f7bca550 15675
Azure.IoT Build 0:6ae2f7bca550 15676 return result;
Azure.IoT Build 0:6ae2f7bca550 15677 }
Azure.IoT Build 0:6ae2f7bca550 15678
Azure.IoT Build 0:6ae2f7bca550 15679 int properties_set_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 15680 {
Azure.IoT Build 0:6ae2f7bca550 15681 int result;
Azure.IoT Build 0:6ae2f7bca550 15682
Azure.IoT Build 0:6ae2f7bca550 15683 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15684 {
AzureIoTClient 19:000ab4e6a2c1 15685 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15686 }
Azure.IoT Build 0:6ae2f7bca550 15687 else
Azure.IoT Build 0:6ae2f7bca550 15688 {
Azure.IoT Build 0:6ae2f7bca550 15689 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15690 AMQP_VALUE correlation_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 15691 if (correlation_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15692 {
AzureIoTClient 23:1111ee8bcba4 15693 correlation_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 15694 }
AzureIoTClient 23:1111ee8bcba4 15695 else
AzureIoTClient 23:1111ee8bcba4 15696 {
AzureIoTClient 23:1111ee8bcba4 15697 correlation_id_amqp_value = amqpvalue_clone(correlation_id_value);
AzureIoTClient 23:1111ee8bcba4 15698 }
Azure.IoT Build 0:6ae2f7bca550 15699 if (correlation_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15700 {
AzureIoTClient 19:000ab4e6a2c1 15701 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15702 }
Azure.IoT Build 0:6ae2f7bca550 15703 else
Azure.IoT Build 0:6ae2f7bca550 15704 {
Azure.IoT Build 0:6ae2f7bca550 15705 if (amqpvalue_set_composite_item(properties_instance->composite_value, 5, correlation_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15706 {
AzureIoTClient 19:000ab4e6a2c1 15707 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15708 }
Azure.IoT Build 0:6ae2f7bca550 15709 else
Azure.IoT Build 0:6ae2f7bca550 15710 {
Azure.IoT Build 0:6ae2f7bca550 15711 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15712 }
Azure.IoT Build 0:6ae2f7bca550 15713
Azure.IoT Build 0:6ae2f7bca550 15714 amqpvalue_destroy(correlation_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15715 }
Azure.IoT Build 0:6ae2f7bca550 15716 }
Azure.IoT Build 0:6ae2f7bca550 15717
Azure.IoT Build 0:6ae2f7bca550 15718 return result;
Azure.IoT Build 0:6ae2f7bca550 15719 }
Azure.IoT Build 0:6ae2f7bca550 15720
Azure.IoT Build 0:6ae2f7bca550 15721 int properties_get_content_type(PROPERTIES_HANDLE properties, const char** content_type_value)
Azure.IoT Build 0:6ae2f7bca550 15722 {
Azure.IoT Build 0:6ae2f7bca550 15723 int result;
Azure.IoT Build 0:6ae2f7bca550 15724
Azure.IoT Build 0:6ae2f7bca550 15725 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15726 {
AzureIoTClient 19:000ab4e6a2c1 15727 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15728 }
Azure.IoT Build 0:6ae2f7bca550 15729 else
Azure.IoT Build 0:6ae2f7bca550 15730 {
AzureIoTClient 23:1111ee8bcba4 15731 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15732 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15733 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15734 {
AzureIoTClient 23:1111ee8bcba4 15735 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15736 }
AzureIoTClient 23:1111ee8bcba4 15737 else
AzureIoTClient 23:1111ee8bcba4 15738 {
AzureIoTClient 23:1111ee8bcba4 15739 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 15740 {
AzureIoTClient 23:1111ee8bcba4 15741 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15742 }
AzureIoTClient 23:1111ee8bcba4 15743 else
AzureIoTClient 23:1111ee8bcba4 15744 {
AzureIoTClient 23:1111ee8bcba4 15745 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 6);
AzureIoTClient 23:1111ee8bcba4 15746 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15747 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15748 {
AzureIoTClient 23:1111ee8bcba4 15749 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15750 }
AzureIoTClient 23:1111ee8bcba4 15751 else
AzureIoTClient 23:1111ee8bcba4 15752 {
AzureIoTClient 23:1111ee8bcba4 15753 if (amqpvalue_get_symbol(item_value, content_type_value) != 0)
AzureIoTClient 23:1111ee8bcba4 15754 {
AzureIoTClient 23:1111ee8bcba4 15755 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15756 }
AzureIoTClient 23:1111ee8bcba4 15757 else
AzureIoTClient 23:1111ee8bcba4 15758 {
AzureIoTClient 23:1111ee8bcba4 15759 result = 0;
AzureIoTClient 23:1111ee8bcba4 15760 }
AzureIoTClient 23:1111ee8bcba4 15761 }
AzureIoTClient 23:1111ee8bcba4 15762 }
Azure.IoT Build 0:6ae2f7bca550 15763 }
Azure.IoT Build 0:6ae2f7bca550 15764 }
Azure.IoT Build 0:6ae2f7bca550 15765
Azure.IoT Build 0:6ae2f7bca550 15766 return result;
Azure.IoT Build 0:6ae2f7bca550 15767 }
Azure.IoT Build 0:6ae2f7bca550 15768
Azure.IoT Build 0:6ae2f7bca550 15769 int properties_set_content_type(PROPERTIES_HANDLE properties, const char* content_type_value)
Azure.IoT Build 0:6ae2f7bca550 15770 {
Azure.IoT Build 0:6ae2f7bca550 15771 int result;
Azure.IoT Build 0:6ae2f7bca550 15772
Azure.IoT Build 0:6ae2f7bca550 15773 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15774 {
AzureIoTClient 19:000ab4e6a2c1 15775 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15776 }
Azure.IoT Build 0:6ae2f7bca550 15777 else
Azure.IoT Build 0:6ae2f7bca550 15778 {
Azure.IoT Build 0:6ae2f7bca550 15779 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 15780 AMQP_VALUE content_type_amqp_value = amqpvalue_create_symbol(content_type_value);
Azure.IoT Build 0:6ae2f7bca550 15781 if (content_type_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15782 {
AzureIoTClient 19:000ab4e6a2c1 15783 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15784 }
Azure.IoT Build 0:6ae2f7bca550 15785 else
Azure.IoT Build 0:6ae2f7bca550 15786 {
Azure.IoT Build 0:6ae2f7bca550 15787 if (amqpvalue_set_composite_item(properties_instance->composite_value, 6, content_type_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15788 {
AzureIoTClient 19:000ab4e6a2c1 15789 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15790 }
Azure.IoT Build 0:6ae2f7bca550 15791 else
Azure.IoT Build 0:6ae2f7bca550 15792 {
Azure.IoT Build 0:6ae2f7bca550 15793 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15794 }
Azure.IoT Build 0:6ae2f7bca550 15795
Azure.IoT Build 0:6ae2f7bca550 15796 amqpvalue_destroy(content_type_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15797 }
Azure.IoT Build 0:6ae2f7bca550 15798 }
Azure.IoT Build 0:6ae2f7bca550 15799
Azure.IoT Build 0:6ae2f7bca550 15800 return result;
Azure.IoT Build 0:6ae2f7bca550 15801 }
Azure.IoT Build 0:6ae2f7bca550 15802
Azure.IoT Build 0:6ae2f7bca550 15803 int properties_get_content_encoding(PROPERTIES_HANDLE properties, const char** content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 15804 {
Azure.IoT Build 0:6ae2f7bca550 15805 int result;
Azure.IoT Build 0:6ae2f7bca550 15806
Azure.IoT Build 0:6ae2f7bca550 15807 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15808 {
AzureIoTClient 19:000ab4e6a2c1 15809 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15810 }
Azure.IoT Build 0:6ae2f7bca550 15811 else
Azure.IoT Build 0:6ae2f7bca550 15812 {
AzureIoTClient 23:1111ee8bcba4 15813 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15814 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15815 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15816 {
AzureIoTClient 23:1111ee8bcba4 15817 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15818 }
AzureIoTClient 23:1111ee8bcba4 15819 else
AzureIoTClient 23:1111ee8bcba4 15820 {
AzureIoTClient 23:1111ee8bcba4 15821 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 15822 {
AzureIoTClient 23:1111ee8bcba4 15823 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15824 }
AzureIoTClient 23:1111ee8bcba4 15825 else
AzureIoTClient 23:1111ee8bcba4 15826 {
AzureIoTClient 23:1111ee8bcba4 15827 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 7);
AzureIoTClient 23:1111ee8bcba4 15828 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15829 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15830 {
AzureIoTClient 23:1111ee8bcba4 15831 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15832 }
AzureIoTClient 23:1111ee8bcba4 15833 else
AzureIoTClient 23:1111ee8bcba4 15834 {
AzureIoTClient 23:1111ee8bcba4 15835 if (amqpvalue_get_symbol(item_value, content_encoding_value) != 0)
AzureIoTClient 23:1111ee8bcba4 15836 {
AzureIoTClient 23:1111ee8bcba4 15837 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15838 }
AzureIoTClient 23:1111ee8bcba4 15839 else
AzureIoTClient 23:1111ee8bcba4 15840 {
AzureIoTClient 23:1111ee8bcba4 15841 result = 0;
AzureIoTClient 23:1111ee8bcba4 15842 }
AzureIoTClient 23:1111ee8bcba4 15843 }
AzureIoTClient 23:1111ee8bcba4 15844 }
Azure.IoT Build 0:6ae2f7bca550 15845 }
Azure.IoT Build 0:6ae2f7bca550 15846 }
Azure.IoT Build 0:6ae2f7bca550 15847
Azure.IoT Build 0:6ae2f7bca550 15848 return result;
Azure.IoT Build 0:6ae2f7bca550 15849 }
Azure.IoT Build 0:6ae2f7bca550 15850
Azure.IoT Build 0:6ae2f7bca550 15851 int properties_set_content_encoding(PROPERTIES_HANDLE properties, const char* content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 15852 {
Azure.IoT Build 0:6ae2f7bca550 15853 int result;
Azure.IoT Build 0:6ae2f7bca550 15854
Azure.IoT Build 0:6ae2f7bca550 15855 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15856 {
AzureIoTClient 19:000ab4e6a2c1 15857 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15858 }
Azure.IoT Build 0:6ae2f7bca550 15859 else
Azure.IoT Build 0:6ae2f7bca550 15860 {
Azure.IoT Build 0:6ae2f7bca550 15861 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 15862 AMQP_VALUE content_encoding_amqp_value = amqpvalue_create_symbol(content_encoding_value);
Azure.IoT Build 0:6ae2f7bca550 15863 if (content_encoding_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15864 {
AzureIoTClient 19:000ab4e6a2c1 15865 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15866 }
Azure.IoT Build 0:6ae2f7bca550 15867 else
Azure.IoT Build 0:6ae2f7bca550 15868 {
Azure.IoT Build 0:6ae2f7bca550 15869 if (amqpvalue_set_composite_item(properties_instance->composite_value, 7, content_encoding_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15870 {
AzureIoTClient 19:000ab4e6a2c1 15871 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15872 }
Azure.IoT Build 0:6ae2f7bca550 15873 else
Azure.IoT Build 0:6ae2f7bca550 15874 {
Azure.IoT Build 0:6ae2f7bca550 15875 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15876 }
Azure.IoT Build 0:6ae2f7bca550 15877
Azure.IoT Build 0:6ae2f7bca550 15878 amqpvalue_destroy(content_encoding_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15879 }
Azure.IoT Build 0:6ae2f7bca550 15880 }
Azure.IoT Build 0:6ae2f7bca550 15881
Azure.IoT Build 0:6ae2f7bca550 15882 return result;
Azure.IoT Build 0:6ae2f7bca550 15883 }
Azure.IoT Build 0:6ae2f7bca550 15884
Azure.IoT Build 0:6ae2f7bca550 15885 int properties_get_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp* absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 15886 {
Azure.IoT Build 0:6ae2f7bca550 15887 int result;
Azure.IoT Build 0:6ae2f7bca550 15888
Azure.IoT Build 0:6ae2f7bca550 15889 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15890 {
AzureIoTClient 19:000ab4e6a2c1 15891 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15892 }
Azure.IoT Build 0:6ae2f7bca550 15893 else
Azure.IoT Build 0:6ae2f7bca550 15894 {
AzureIoTClient 23:1111ee8bcba4 15895 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15896 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15897 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15898 {
AzureIoTClient 23:1111ee8bcba4 15899 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15900 }
AzureIoTClient 23:1111ee8bcba4 15901 else
AzureIoTClient 23:1111ee8bcba4 15902 {
AzureIoTClient 23:1111ee8bcba4 15903 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 15904 {
AzureIoTClient 23:1111ee8bcba4 15905 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15906 }
AzureIoTClient 23:1111ee8bcba4 15907 else
AzureIoTClient 23:1111ee8bcba4 15908 {
AzureIoTClient 23:1111ee8bcba4 15909 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 8);
AzureIoTClient 23:1111ee8bcba4 15910 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15911 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15912 {
AzureIoTClient 23:1111ee8bcba4 15913 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15914 }
AzureIoTClient 23:1111ee8bcba4 15915 else
AzureIoTClient 23:1111ee8bcba4 15916 {
AzureIoTClient 23:1111ee8bcba4 15917 if (amqpvalue_get_timestamp(item_value, absolute_expiry_time_value) != 0)
AzureIoTClient 23:1111ee8bcba4 15918 {
AzureIoTClient 23:1111ee8bcba4 15919 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15920 }
AzureIoTClient 23:1111ee8bcba4 15921 else
AzureIoTClient 23:1111ee8bcba4 15922 {
AzureIoTClient 23:1111ee8bcba4 15923 result = 0;
AzureIoTClient 23:1111ee8bcba4 15924 }
AzureIoTClient 23:1111ee8bcba4 15925 }
AzureIoTClient 23:1111ee8bcba4 15926 }
Azure.IoT Build 0:6ae2f7bca550 15927 }
Azure.IoT Build 0:6ae2f7bca550 15928 }
Azure.IoT Build 0:6ae2f7bca550 15929
Azure.IoT Build 0:6ae2f7bca550 15930 return result;
Azure.IoT Build 0:6ae2f7bca550 15931 }
Azure.IoT Build 0:6ae2f7bca550 15932
Azure.IoT Build 0:6ae2f7bca550 15933 int properties_set_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 15934 {
Azure.IoT Build 0:6ae2f7bca550 15935 int result;
Azure.IoT Build 0:6ae2f7bca550 15936
Azure.IoT Build 0:6ae2f7bca550 15937 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15938 {
AzureIoTClient 19:000ab4e6a2c1 15939 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15940 }
Azure.IoT Build 0:6ae2f7bca550 15941 else
Azure.IoT Build 0:6ae2f7bca550 15942 {
Azure.IoT Build 0:6ae2f7bca550 15943 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 15944 AMQP_VALUE absolute_expiry_time_amqp_value = amqpvalue_create_timestamp(absolute_expiry_time_value);
Azure.IoT Build 0:6ae2f7bca550 15945 if (absolute_expiry_time_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 15946 {
AzureIoTClient 19:000ab4e6a2c1 15947 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15948 }
Azure.IoT Build 0:6ae2f7bca550 15949 else
Azure.IoT Build 0:6ae2f7bca550 15950 {
Azure.IoT Build 0:6ae2f7bca550 15951 if (amqpvalue_set_composite_item(properties_instance->composite_value, 8, absolute_expiry_time_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 15952 {
AzureIoTClient 19:000ab4e6a2c1 15953 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15954 }
Azure.IoT Build 0:6ae2f7bca550 15955 else
Azure.IoT Build 0:6ae2f7bca550 15956 {
Azure.IoT Build 0:6ae2f7bca550 15957 result = 0;
Azure.IoT Build 0:6ae2f7bca550 15958 }
Azure.IoT Build 0:6ae2f7bca550 15959
Azure.IoT Build 0:6ae2f7bca550 15960 amqpvalue_destroy(absolute_expiry_time_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 15961 }
Azure.IoT Build 0:6ae2f7bca550 15962 }
Azure.IoT Build 0:6ae2f7bca550 15963
Azure.IoT Build 0:6ae2f7bca550 15964 return result;
Azure.IoT Build 0:6ae2f7bca550 15965 }
Azure.IoT Build 0:6ae2f7bca550 15966
Azure.IoT Build 0:6ae2f7bca550 15967 int properties_get_creation_time(PROPERTIES_HANDLE properties, timestamp* creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 15968 {
Azure.IoT Build 0:6ae2f7bca550 15969 int result;
Azure.IoT Build 0:6ae2f7bca550 15970
Azure.IoT Build 0:6ae2f7bca550 15971 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 15972 {
AzureIoTClient 19:000ab4e6a2c1 15973 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 15974 }
Azure.IoT Build 0:6ae2f7bca550 15975 else
Azure.IoT Build 0:6ae2f7bca550 15976 {
AzureIoTClient 23:1111ee8bcba4 15977 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 15978 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15979 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15980 {
AzureIoTClient 23:1111ee8bcba4 15981 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15982 }
AzureIoTClient 23:1111ee8bcba4 15983 else
AzureIoTClient 23:1111ee8bcba4 15984 {
AzureIoTClient 23:1111ee8bcba4 15985 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 15986 {
AzureIoTClient 23:1111ee8bcba4 15987 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15988 }
AzureIoTClient 23:1111ee8bcba4 15989 else
AzureIoTClient 23:1111ee8bcba4 15990 {
AzureIoTClient 23:1111ee8bcba4 15991 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 9);
AzureIoTClient 23:1111ee8bcba4 15992 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 15993 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 15994 {
AzureIoTClient 23:1111ee8bcba4 15995 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15996 }
AzureIoTClient 23:1111ee8bcba4 15997 else
AzureIoTClient 23:1111ee8bcba4 15998 {
AzureIoTClient 23:1111ee8bcba4 15999 if (amqpvalue_get_timestamp(item_value, creation_time_value) != 0)
AzureIoTClient 23:1111ee8bcba4 16000 {
AzureIoTClient 23:1111ee8bcba4 16001 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16002 }
AzureIoTClient 23:1111ee8bcba4 16003 else
AzureIoTClient 23:1111ee8bcba4 16004 {
AzureIoTClient 23:1111ee8bcba4 16005 result = 0;
AzureIoTClient 23:1111ee8bcba4 16006 }
AzureIoTClient 23:1111ee8bcba4 16007 }
AzureIoTClient 23:1111ee8bcba4 16008 }
Azure.IoT Build 0:6ae2f7bca550 16009 }
Azure.IoT Build 0:6ae2f7bca550 16010 }
Azure.IoT Build 0:6ae2f7bca550 16011
Azure.IoT Build 0:6ae2f7bca550 16012 return result;
Azure.IoT Build 0:6ae2f7bca550 16013 }
Azure.IoT Build 0:6ae2f7bca550 16014
Azure.IoT Build 0:6ae2f7bca550 16015 int properties_set_creation_time(PROPERTIES_HANDLE properties, timestamp creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16016 {
Azure.IoT Build 0:6ae2f7bca550 16017 int result;
Azure.IoT Build 0:6ae2f7bca550 16018
Azure.IoT Build 0:6ae2f7bca550 16019 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 16020 {
AzureIoTClient 19:000ab4e6a2c1 16021 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16022 }
Azure.IoT Build 0:6ae2f7bca550 16023 else
Azure.IoT Build 0:6ae2f7bca550 16024 {
Azure.IoT Build 0:6ae2f7bca550 16025 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 16026 AMQP_VALUE creation_time_amqp_value = amqpvalue_create_timestamp(creation_time_value);
Azure.IoT Build 0:6ae2f7bca550 16027 if (creation_time_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16028 {
AzureIoTClient 19:000ab4e6a2c1 16029 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16030 }
Azure.IoT Build 0:6ae2f7bca550 16031 else
Azure.IoT Build 0:6ae2f7bca550 16032 {
Azure.IoT Build 0:6ae2f7bca550 16033 if (amqpvalue_set_composite_item(properties_instance->composite_value, 9, creation_time_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 16034 {
AzureIoTClient 19:000ab4e6a2c1 16035 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16036 }
Azure.IoT Build 0:6ae2f7bca550 16037 else
Azure.IoT Build 0:6ae2f7bca550 16038 {
Azure.IoT Build 0:6ae2f7bca550 16039 result = 0;
Azure.IoT Build 0:6ae2f7bca550 16040 }
Azure.IoT Build 0:6ae2f7bca550 16041
Azure.IoT Build 0:6ae2f7bca550 16042 amqpvalue_destroy(creation_time_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 16043 }
Azure.IoT Build 0:6ae2f7bca550 16044 }
Azure.IoT Build 0:6ae2f7bca550 16045
Azure.IoT Build 0:6ae2f7bca550 16046 return result;
Azure.IoT Build 0:6ae2f7bca550 16047 }
Azure.IoT Build 0:6ae2f7bca550 16048
Azure.IoT Build 0:6ae2f7bca550 16049 int properties_get_group_id(PROPERTIES_HANDLE properties, const char** group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16050 {
Azure.IoT Build 0:6ae2f7bca550 16051 int result;
Azure.IoT Build 0:6ae2f7bca550 16052
Azure.IoT Build 0:6ae2f7bca550 16053 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 16054 {
AzureIoTClient 19:000ab4e6a2c1 16055 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16056 }
Azure.IoT Build 0:6ae2f7bca550 16057 else
Azure.IoT Build 0:6ae2f7bca550 16058 {
AzureIoTClient 23:1111ee8bcba4 16059 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 16060 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16061 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16062 {
AzureIoTClient 23:1111ee8bcba4 16063 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16064 }
AzureIoTClient 23:1111ee8bcba4 16065 else
AzureIoTClient 23:1111ee8bcba4 16066 {
AzureIoTClient 23:1111ee8bcba4 16067 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 16068 {
AzureIoTClient 23:1111ee8bcba4 16069 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16070 }
AzureIoTClient 23:1111ee8bcba4 16071 else
AzureIoTClient 23:1111ee8bcba4 16072 {
AzureIoTClient 23:1111ee8bcba4 16073 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 10);
AzureIoTClient 23:1111ee8bcba4 16074 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 16075 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 16076 {
AzureIoTClient 23:1111ee8bcba4 16077 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16078 }
AzureIoTClient 23:1111ee8bcba4 16079 else
AzureIoTClient 23:1111ee8bcba4 16080 {
AzureIoTClient 23:1111ee8bcba4 16081 if (amqpvalue_get_string(item_value, group_id_value) != 0)
AzureIoTClient 23:1111ee8bcba4 16082 {
AzureIoTClient 23:1111ee8bcba4 16083 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16084 }
AzureIoTClient 23:1111ee8bcba4 16085 else
AzureIoTClient 23:1111ee8bcba4 16086 {
AzureIoTClient 23:1111ee8bcba4 16087 result = 0;
AzureIoTClient 23:1111ee8bcba4 16088 }
AzureIoTClient 23:1111ee8bcba4 16089 }
AzureIoTClient 23:1111ee8bcba4 16090 }
Azure.IoT Build 0:6ae2f7bca550 16091 }
Azure.IoT Build 0:6ae2f7bca550 16092 }
Azure.IoT Build 0:6ae2f7bca550 16093
Azure.IoT Build 0:6ae2f7bca550 16094 return result;
Azure.IoT Build 0:6ae2f7bca550 16095 }
Azure.IoT Build 0:6ae2f7bca550 16096
Azure.IoT Build 0:6ae2f7bca550 16097 int properties_set_group_id(PROPERTIES_HANDLE properties, const char* group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16098 {
Azure.IoT Build 0:6ae2f7bca550 16099 int result;
Azure.IoT Build 0:6ae2f7bca550 16100
Azure.IoT Build 0:6ae2f7bca550 16101 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 16102 {
AzureIoTClient 19:000ab4e6a2c1 16103 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16104 }
Azure.IoT Build 0:6ae2f7bca550 16105 else
Azure.IoT Build 0:6ae2f7bca550 16106 {
Azure.IoT Build 0:6ae2f7bca550 16107 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 16108 AMQP_VALUE group_id_amqp_value = amqpvalue_create_string(group_id_value);
Azure.IoT Build 0:6ae2f7bca550 16109 if (group_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16110 {
AzureIoTClient 19:000ab4e6a2c1 16111 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16112 }
Azure.IoT Build 0:6ae2f7bca550 16113 else
Azure.IoT Build 0:6ae2f7bca550 16114 {
Azure.IoT Build 0:6ae2f7bca550 16115 if (amqpvalue_set_composite_item(properties_instance->composite_value, 10, group_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 16116 {
AzureIoTClient 19:000ab4e6a2c1 16117 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16118 }
Azure.IoT Build 0:6ae2f7bca550 16119 else
Azure.IoT Build 0:6ae2f7bca550 16120 {
Azure.IoT Build 0:6ae2f7bca550 16121 result = 0;
Azure.IoT Build 0:6ae2f7bca550 16122 }
Azure.IoT Build 0:6ae2f7bca550 16123
Azure.IoT Build 0:6ae2f7bca550 16124 amqpvalue_destroy(group_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 16125 }
Azure.IoT Build 0:6ae2f7bca550 16126 }
Azure.IoT Build 0:6ae2f7bca550 16127
Azure.IoT Build 0:6ae2f7bca550 16128 return result;
Azure.IoT Build 0:6ae2f7bca550 16129 }
Azure.IoT Build 0:6ae2f7bca550 16130
Azure.IoT Build 0:6ae2f7bca550 16131 int properties_get_group_sequence(PROPERTIES_HANDLE properties, sequence_no* group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16132 {
Azure.IoT Build 0:6ae2f7bca550 16133 int result;
Azure.IoT Build 0:6ae2f7bca550 16134
Azure.IoT Build 0:6ae2f7bca550 16135 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 16136 {
AzureIoTClient 19:000ab4e6a2c1 16137 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16138 }
Azure.IoT Build 0:6ae2f7bca550 16139 else
Azure.IoT Build 0:6ae2f7bca550 16140 {
AzureIoTClient 23:1111ee8bcba4 16141 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 16142 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16143 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16144 {
AzureIoTClient 23:1111ee8bcba4 16145 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16146 }
AzureIoTClient 23:1111ee8bcba4 16147 else
AzureIoTClient 23:1111ee8bcba4 16148 {
AzureIoTClient 23:1111ee8bcba4 16149 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 16150 {
AzureIoTClient 23:1111ee8bcba4 16151 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16152 }
AzureIoTClient 23:1111ee8bcba4 16153 else
AzureIoTClient 23:1111ee8bcba4 16154 {
AzureIoTClient 23:1111ee8bcba4 16155 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 11);
AzureIoTClient 23:1111ee8bcba4 16156 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 16157 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 16158 {
AzureIoTClient 23:1111ee8bcba4 16159 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16160 }
AzureIoTClient 23:1111ee8bcba4 16161 else
AzureIoTClient 23:1111ee8bcba4 16162 {
AzureIoTClient 23:1111ee8bcba4 16163 if (amqpvalue_get_sequence_no(item_value, group_sequence_value) != 0)
AzureIoTClient 23:1111ee8bcba4 16164 {
AzureIoTClient 23:1111ee8bcba4 16165 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16166 }
AzureIoTClient 23:1111ee8bcba4 16167 else
AzureIoTClient 23:1111ee8bcba4 16168 {
AzureIoTClient 23:1111ee8bcba4 16169 result = 0;
AzureIoTClient 23:1111ee8bcba4 16170 }
AzureIoTClient 23:1111ee8bcba4 16171 }
AzureIoTClient 23:1111ee8bcba4 16172 }
Azure.IoT Build 0:6ae2f7bca550 16173 }
Azure.IoT Build 0:6ae2f7bca550 16174 }
Azure.IoT Build 0:6ae2f7bca550 16175
Azure.IoT Build 0:6ae2f7bca550 16176 return result;
Azure.IoT Build 0:6ae2f7bca550 16177 }
Azure.IoT Build 0:6ae2f7bca550 16178
Azure.IoT Build 0:6ae2f7bca550 16179 int properties_set_group_sequence(PROPERTIES_HANDLE properties, sequence_no group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16180 {
Azure.IoT Build 0:6ae2f7bca550 16181 int result;
Azure.IoT Build 0:6ae2f7bca550 16182
Azure.IoT Build 0:6ae2f7bca550 16183 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 16184 {
AzureIoTClient 19:000ab4e6a2c1 16185 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16186 }
Azure.IoT Build 0:6ae2f7bca550 16187 else
Azure.IoT Build 0:6ae2f7bca550 16188 {
Azure.IoT Build 0:6ae2f7bca550 16189 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 16190 AMQP_VALUE group_sequence_amqp_value = amqpvalue_create_sequence_no(group_sequence_value);
Azure.IoT Build 0:6ae2f7bca550 16191 if (group_sequence_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16192 {
AzureIoTClient 19:000ab4e6a2c1 16193 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16194 }
Azure.IoT Build 0:6ae2f7bca550 16195 else
Azure.IoT Build 0:6ae2f7bca550 16196 {
Azure.IoT Build 0:6ae2f7bca550 16197 if (amqpvalue_set_composite_item(properties_instance->composite_value, 11, group_sequence_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 16198 {
AzureIoTClient 19:000ab4e6a2c1 16199 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16200 }
Azure.IoT Build 0:6ae2f7bca550 16201 else
Azure.IoT Build 0:6ae2f7bca550 16202 {
Azure.IoT Build 0:6ae2f7bca550 16203 result = 0;
Azure.IoT Build 0:6ae2f7bca550 16204 }
Azure.IoT Build 0:6ae2f7bca550 16205
Azure.IoT Build 0:6ae2f7bca550 16206 amqpvalue_destroy(group_sequence_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 16207 }
Azure.IoT Build 0:6ae2f7bca550 16208 }
Azure.IoT Build 0:6ae2f7bca550 16209
Azure.IoT Build 0:6ae2f7bca550 16210 return result;
Azure.IoT Build 0:6ae2f7bca550 16211 }
Azure.IoT Build 0:6ae2f7bca550 16212
Azure.IoT Build 0:6ae2f7bca550 16213 int properties_get_reply_to_group_id(PROPERTIES_HANDLE properties, const char** reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16214 {
Azure.IoT Build 0:6ae2f7bca550 16215 int result;
Azure.IoT Build 0:6ae2f7bca550 16216
Azure.IoT Build 0:6ae2f7bca550 16217 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 16218 {
AzureIoTClient 19:000ab4e6a2c1 16219 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16220 }
Azure.IoT Build 0:6ae2f7bca550 16221 else
Azure.IoT Build 0:6ae2f7bca550 16222 {
AzureIoTClient 23:1111ee8bcba4 16223 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 16224 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16225 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16226 {
AzureIoTClient 23:1111ee8bcba4 16227 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16228 }
AzureIoTClient 23:1111ee8bcba4 16229 else
AzureIoTClient 23:1111ee8bcba4 16230 {
AzureIoTClient 23:1111ee8bcba4 16231 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 16232 {
AzureIoTClient 23:1111ee8bcba4 16233 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16234 }
AzureIoTClient 23:1111ee8bcba4 16235 else
AzureIoTClient 23:1111ee8bcba4 16236 {
AzureIoTClient 23:1111ee8bcba4 16237 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 12);
AzureIoTClient 23:1111ee8bcba4 16238 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 16239 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 16240 {
AzureIoTClient 23:1111ee8bcba4 16241 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16242 }
AzureIoTClient 23:1111ee8bcba4 16243 else
AzureIoTClient 23:1111ee8bcba4 16244 {
AzureIoTClient 23:1111ee8bcba4 16245 if (amqpvalue_get_string(item_value, reply_to_group_id_value) != 0)
AzureIoTClient 23:1111ee8bcba4 16246 {
AzureIoTClient 23:1111ee8bcba4 16247 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16248 }
AzureIoTClient 23:1111ee8bcba4 16249 else
AzureIoTClient 23:1111ee8bcba4 16250 {
AzureIoTClient 23:1111ee8bcba4 16251 result = 0;
AzureIoTClient 23:1111ee8bcba4 16252 }
AzureIoTClient 23:1111ee8bcba4 16253 }
AzureIoTClient 23:1111ee8bcba4 16254 }
Azure.IoT Build 0:6ae2f7bca550 16255 }
Azure.IoT Build 0:6ae2f7bca550 16256 }
Azure.IoT Build 0:6ae2f7bca550 16257
Azure.IoT Build 0:6ae2f7bca550 16258 return result;
Azure.IoT Build 0:6ae2f7bca550 16259 }
Azure.IoT Build 0:6ae2f7bca550 16260
Azure.IoT Build 0:6ae2f7bca550 16261 int properties_set_reply_to_group_id(PROPERTIES_HANDLE properties, const char* reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16262 {
Azure.IoT Build 0:6ae2f7bca550 16263 int result;
Azure.IoT Build 0:6ae2f7bca550 16264
Azure.IoT Build 0:6ae2f7bca550 16265 if (properties == NULL)
Azure.IoT Build 0:6ae2f7bca550 16266 {
AzureIoTClient 19:000ab4e6a2c1 16267 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16268 }
Azure.IoT Build 0:6ae2f7bca550 16269 else
Azure.IoT Build 0:6ae2f7bca550 16270 {
Azure.IoT Build 0:6ae2f7bca550 16271 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
Azure.IoT Build 0:6ae2f7bca550 16272 AMQP_VALUE reply_to_group_id_amqp_value = amqpvalue_create_string(reply_to_group_id_value);
Azure.IoT Build 0:6ae2f7bca550 16273 if (reply_to_group_id_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16274 {
AzureIoTClient 19:000ab4e6a2c1 16275 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16276 }
Azure.IoT Build 0:6ae2f7bca550 16277 else
Azure.IoT Build 0:6ae2f7bca550 16278 {
Azure.IoT Build 0:6ae2f7bca550 16279 if (amqpvalue_set_composite_item(properties_instance->composite_value, 12, reply_to_group_id_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 16280 {
AzureIoTClient 19:000ab4e6a2c1 16281 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16282 }
Azure.IoT Build 0:6ae2f7bca550 16283 else
Azure.IoT Build 0:6ae2f7bca550 16284 {
Azure.IoT Build 0:6ae2f7bca550 16285 result = 0;
Azure.IoT Build 0:6ae2f7bca550 16286 }
Azure.IoT Build 0:6ae2f7bca550 16287
Azure.IoT Build 0:6ae2f7bca550 16288 amqpvalue_destroy(reply_to_group_id_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 16289 }
Azure.IoT Build 0:6ae2f7bca550 16290 }
Azure.IoT Build 0:6ae2f7bca550 16291
Azure.IoT Build 0:6ae2f7bca550 16292 return result;
Azure.IoT Build 0:6ae2f7bca550 16293 }
Azure.IoT Build 0:6ae2f7bca550 16294
Azure.IoT Build 0:6ae2f7bca550 16295
Azure.IoT Build 0:6ae2f7bca550 16296 /* received */
Azure.IoT Build 0:6ae2f7bca550 16297
Azure.IoT Build 0:6ae2f7bca550 16298 typedef struct RECEIVED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 16299 {
Azure.IoT Build 0:6ae2f7bca550 16300 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 16301 } RECEIVED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 16302
Azure.IoT Build 0:6ae2f7bca550 16303 static RECEIVED_HANDLE received_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 16304 {
AzureIoTClient 21:f9c433d8e6ca 16305 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16306 if (received_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16307 {
Azure.IoT Build 0:6ae2f7bca550 16308 received_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 16309 }
Azure.IoT Build 0:6ae2f7bca550 16310
Azure.IoT Build 0:6ae2f7bca550 16311 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 16312 }
Azure.IoT Build 0:6ae2f7bca550 16313
Azure.IoT Build 0:6ae2f7bca550 16314 RECEIVED_HANDLE received_create(uint32_t section_number_value, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 16315 {
AzureIoTClient 21:f9c433d8e6ca 16316 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16317 if (received_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16318 {
Azure.IoT Build 0:6ae2f7bca550 16319 received_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(35);
Azure.IoT Build 0:6ae2f7bca550 16320 if (received_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16321 {
AzureIoTClient 21:f9c433d8e6ca 16322 free(received_instance);
Azure.IoT Build 0:6ae2f7bca550 16323 received_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 16324 }
Azure.IoT Build 0:6ae2f7bca550 16325 else
Azure.IoT Build 0:6ae2f7bca550 16326 {
Azure.IoT Build 0:6ae2f7bca550 16327 AMQP_VALUE section_number_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 16328 AMQP_VALUE section_offset_amqp_value;
Azure.IoT Build 0:6ae2f7bca550 16329 int result = 0;
Azure.IoT Build 0:6ae2f7bca550 16330
Azure.IoT Build 0:6ae2f7bca550 16331 section_number_amqp_value = amqpvalue_create_uint(section_number_value);
Azure.IoT Build 0:6ae2f7bca550 16332 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 16333 {
AzureIoTClient 19:000ab4e6a2c1 16334 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16335 }
Azure.IoT Build 0:6ae2f7bca550 16336 section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
Azure.IoT Build 0:6ae2f7bca550 16337 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0))
Azure.IoT Build 0:6ae2f7bca550 16338 {
AzureIoTClient 19:000ab4e6a2c1 16339 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16340 }
Azure.IoT Build 0:6ae2f7bca550 16341
Azure.IoT Build 0:6ae2f7bca550 16342 amqpvalue_destroy(section_number_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 16343 amqpvalue_destroy(section_offset_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 16344 }
Azure.IoT Build 0:6ae2f7bca550 16345 }
Azure.IoT Build 0:6ae2f7bca550 16346
Azure.IoT Build 0:6ae2f7bca550 16347 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 16348 }
Azure.IoT Build 0:6ae2f7bca550 16349
Azure.IoT Build 0:6ae2f7bca550 16350 RECEIVED_HANDLE received_clone(RECEIVED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 16351 {
AzureIoTClient 21:f9c433d8e6ca 16352 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16353 if (received_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16354 {
Azure.IoT Build 0:6ae2f7bca550 16355 received_instance->composite_value = amqpvalue_clone(((RECEIVED_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 16356 if (received_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16357 {
AzureIoTClient 21:f9c433d8e6ca 16358 free(received_instance);
Azure.IoT Build 0:6ae2f7bca550 16359 received_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 16360 }
Azure.IoT Build 0:6ae2f7bca550 16361 }
Azure.IoT Build 0:6ae2f7bca550 16362
Azure.IoT Build 0:6ae2f7bca550 16363 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 16364 }
Azure.IoT Build 0:6ae2f7bca550 16365
Azure.IoT Build 0:6ae2f7bca550 16366 void received_destroy(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 16367 {
Azure.IoT Build 0:6ae2f7bca550 16368 if (received != NULL)
Azure.IoT Build 0:6ae2f7bca550 16369 {
Azure.IoT Build 0:6ae2f7bca550 16370 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
Azure.IoT Build 0:6ae2f7bca550 16371 amqpvalue_destroy(received_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 16372 free(received_instance);
Azure.IoT Build 0:6ae2f7bca550 16373 }
Azure.IoT Build 0:6ae2f7bca550 16374 }
Azure.IoT Build 0:6ae2f7bca550 16375
Azure.IoT Build 0:6ae2f7bca550 16376 AMQP_VALUE amqpvalue_create_received(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 16377 {
Azure.IoT Build 0:6ae2f7bca550 16378 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 16379
Azure.IoT Build 0:6ae2f7bca550 16380 if (received == NULL)
Azure.IoT Build 0:6ae2f7bca550 16381 {
Azure.IoT Build 0:6ae2f7bca550 16382 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 16383 }
Azure.IoT Build 0:6ae2f7bca550 16384 else
Azure.IoT Build 0:6ae2f7bca550 16385 {
Azure.IoT Build 0:6ae2f7bca550 16386 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
Azure.IoT Build 0:6ae2f7bca550 16387 result = amqpvalue_clone(received_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 16388 }
Azure.IoT Build 0:6ae2f7bca550 16389
Azure.IoT Build 0:6ae2f7bca550 16390 return result;
Azure.IoT Build 0:6ae2f7bca550 16391 }
Azure.IoT Build 0:6ae2f7bca550 16392
Azure.IoT Build 0:6ae2f7bca550 16393 bool is_received_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 16394 {
Azure.IoT Build 0:6ae2f7bca550 16395 bool result;
Azure.IoT Build 0:6ae2f7bca550 16396
Azure.IoT Build 0:6ae2f7bca550 16397 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 16398 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 16399 (descriptor_ulong == 35))
Azure.IoT Build 0:6ae2f7bca550 16400 {
Azure.IoT Build 0:6ae2f7bca550 16401 result = true;
Azure.IoT Build 0:6ae2f7bca550 16402 }
Azure.IoT Build 0:6ae2f7bca550 16403 else
Azure.IoT Build 0:6ae2f7bca550 16404 {
Azure.IoT Build 0:6ae2f7bca550 16405 result = false;
Azure.IoT Build 0:6ae2f7bca550 16406 }
Azure.IoT Build 0:6ae2f7bca550 16407
Azure.IoT Build 0:6ae2f7bca550 16408 return result;
Azure.IoT Build 0:6ae2f7bca550 16409 }
Azure.IoT Build 0:6ae2f7bca550 16410
Azure.IoT Build 0:6ae2f7bca550 16411
Azure.IoT Build 0:6ae2f7bca550 16412 int amqpvalue_get_received(AMQP_VALUE value, RECEIVED_HANDLE* received_handle)
Azure.IoT Build 0:6ae2f7bca550 16413 {
Azure.IoT Build 0:6ae2f7bca550 16414 int result;
Azure.IoT Build 0:6ae2f7bca550 16415 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received_create_internal();
Azure.IoT Build 0:6ae2f7bca550 16416 *received_handle = received_instance;
Azure.IoT Build 0:6ae2f7bca550 16417 if (*received_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 16418 {
AzureIoTClient 19:000ab4e6a2c1 16419 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16420 }
Azure.IoT Build 0:6ae2f7bca550 16421 else
Azure.IoT Build 0:6ae2f7bca550 16422 {
Azure.IoT Build 0:6ae2f7bca550 16423 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 16424 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16425 {
Azure.IoT Build 0:6ae2f7bca550 16426 received_destroy(*received_handle);
AzureIoTClient 19:000ab4e6a2c1 16427 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16428 }
Azure.IoT Build 0:6ae2f7bca550 16429 else
Azure.IoT Build 0:6ae2f7bca550 16430 {
AzureIoTClient 23:1111ee8bcba4 16431 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 16432 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16433 {
AzureIoTClient 23:1111ee8bcba4 16434 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16435 }
AzureIoTClient 23:1111ee8bcba4 16436 else
AzureIoTClient 23:1111ee8bcba4 16437 {
AzureIoTClient 23:1111ee8bcba4 16438 do
AzureIoTClient 23:1111ee8bcba4 16439 {
AzureIoTClient 23:1111ee8bcba4 16440 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 16441 /* section-number */
AzureIoTClient 23:1111ee8bcba4 16442 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 16443 {
AzureIoTClient 23:1111ee8bcba4 16444 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 16445 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16446 {
AzureIoTClient 23:1111ee8bcba4 16447 {
AzureIoTClient 23:1111ee8bcba4 16448 received_destroy(*received_handle);
AzureIoTClient 23:1111ee8bcba4 16449 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16450 break;
AzureIoTClient 23:1111ee8bcba4 16451 }
AzureIoTClient 23:1111ee8bcba4 16452 }
AzureIoTClient 23:1111ee8bcba4 16453 else
AzureIoTClient 23:1111ee8bcba4 16454 {
AzureIoTClient 25:1101516ee67d 16455 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 16456 {
AzureIoTClient 25:1101516ee67d 16457 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 16458 received_destroy(*received_handle);
AzureIoTClient 23:1111ee8bcba4 16459 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16460 break;
AzureIoTClient 23:1111ee8bcba4 16461 }
AzureIoTClient 23:1111ee8bcba4 16462 else
AzureIoTClient 23:1111ee8bcba4 16463 {
AzureIoTClient 25:1101516ee67d 16464 uint32_t section_number;
AzureIoTClient 23:1111ee8bcba4 16465 if (amqpvalue_get_uint(item_value, &section_number) != 0)
AzureIoTClient 23:1111ee8bcba4 16466 {
AzureIoTClient 25:1101516ee67d 16467 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 16468 received_destroy(*received_handle);
AzureIoTClient 23:1111ee8bcba4 16469 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16470 break;
AzureIoTClient 23:1111ee8bcba4 16471 }
AzureIoTClient 23:1111ee8bcba4 16472 }
AzureIoTClient 23:1111ee8bcba4 16473
AzureIoTClient 23:1111ee8bcba4 16474 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 16475 }
AzureIoTClient 23:1111ee8bcba4 16476 }
AzureIoTClient 23:1111ee8bcba4 16477 else
AzureIoTClient 23:1111ee8bcba4 16478 {
AzureIoTClient 23:1111ee8bcba4 16479 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16480 }
AzureIoTClient 23:1111ee8bcba4 16481 /* section-offset */
AzureIoTClient 23:1111ee8bcba4 16482 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 16483 {
AzureIoTClient 23:1111ee8bcba4 16484 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 16485 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16486 {
AzureIoTClient 23:1111ee8bcba4 16487 {
AzureIoTClient 23:1111ee8bcba4 16488 received_destroy(*received_handle);
AzureIoTClient 23:1111ee8bcba4 16489 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16490 break;
AzureIoTClient 23:1111ee8bcba4 16491 }
AzureIoTClient 23:1111ee8bcba4 16492 }
AzureIoTClient 23:1111ee8bcba4 16493 else
AzureIoTClient 23:1111ee8bcba4 16494 {
AzureIoTClient 25:1101516ee67d 16495 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 16496 {
AzureIoTClient 25:1101516ee67d 16497 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 16498 received_destroy(*received_handle);
AzureIoTClient 23:1111ee8bcba4 16499 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16500 break;
AzureIoTClient 23:1111ee8bcba4 16501 }
AzureIoTClient 23:1111ee8bcba4 16502 else
AzureIoTClient 23:1111ee8bcba4 16503 {
AzureIoTClient 25:1101516ee67d 16504 uint64_t section_offset;
AzureIoTClient 23:1111ee8bcba4 16505 if (amqpvalue_get_ulong(item_value, &section_offset) != 0)
AzureIoTClient 23:1111ee8bcba4 16506 {
AzureIoTClient 25:1101516ee67d 16507 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 16508 received_destroy(*received_handle);
AzureIoTClient 23:1111ee8bcba4 16509 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16510 break;
AzureIoTClient 23:1111ee8bcba4 16511 }
AzureIoTClient 23:1111ee8bcba4 16512 }
AzureIoTClient 23:1111ee8bcba4 16513
AzureIoTClient 23:1111ee8bcba4 16514 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 16515 }
AzureIoTClient 23:1111ee8bcba4 16516 }
AzureIoTClient 23:1111ee8bcba4 16517 else
AzureIoTClient 23:1111ee8bcba4 16518 {
AzureIoTClient 23:1111ee8bcba4 16519 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16520 }
AzureIoTClient 23:1111ee8bcba4 16521
AzureIoTClient 23:1111ee8bcba4 16522 received_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 16523
AzureIoTClient 23:1111ee8bcba4 16524 result = 0;
AzureIoTClient 23:1111ee8bcba4 16525 } while (0);
AzureIoTClient 23:1111ee8bcba4 16526 }
Azure.IoT Build 0:6ae2f7bca550 16527 }
Azure.IoT Build 0:6ae2f7bca550 16528 }
Azure.IoT Build 0:6ae2f7bca550 16529
Azure.IoT Build 0:6ae2f7bca550 16530 return result;
Azure.IoT Build 0:6ae2f7bca550 16531 }
Azure.IoT Build 0:6ae2f7bca550 16532
Azure.IoT Build 0:6ae2f7bca550 16533 int received_get_section_number(RECEIVED_HANDLE received, uint32_t* section_number_value)
Azure.IoT Build 0:6ae2f7bca550 16534 {
Azure.IoT Build 0:6ae2f7bca550 16535 int result;
Azure.IoT Build 0:6ae2f7bca550 16536
Azure.IoT Build 0:6ae2f7bca550 16537 if (received == NULL)
Azure.IoT Build 0:6ae2f7bca550 16538 {
AzureIoTClient 19:000ab4e6a2c1 16539 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16540 }
Azure.IoT Build 0:6ae2f7bca550 16541 else
Azure.IoT Build 0:6ae2f7bca550 16542 {
AzureIoTClient 23:1111ee8bcba4 16543 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 16544 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 16545 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16546 {
AzureIoTClient 23:1111ee8bcba4 16547 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16548 }
AzureIoTClient 23:1111ee8bcba4 16549 else
AzureIoTClient 23:1111ee8bcba4 16550 {
AzureIoTClient 23:1111ee8bcba4 16551 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 16552 {
AzureIoTClient 23:1111ee8bcba4 16553 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16554 }
AzureIoTClient 23:1111ee8bcba4 16555 else
AzureIoTClient 23:1111ee8bcba4 16556 {
AzureIoTClient 23:1111ee8bcba4 16557 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 16558 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 16559 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 16560 {
AzureIoTClient 23:1111ee8bcba4 16561 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16562 }
AzureIoTClient 23:1111ee8bcba4 16563 else
AzureIoTClient 23:1111ee8bcba4 16564 {
AzureIoTClient 23:1111ee8bcba4 16565 if (amqpvalue_get_uint(item_value, section_number_value) != 0)
AzureIoTClient 23:1111ee8bcba4 16566 {
AzureIoTClient 23:1111ee8bcba4 16567 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16568 }
AzureIoTClient 23:1111ee8bcba4 16569 else
AzureIoTClient 23:1111ee8bcba4 16570 {
AzureIoTClient 23:1111ee8bcba4 16571 result = 0;
AzureIoTClient 23:1111ee8bcba4 16572 }
AzureIoTClient 23:1111ee8bcba4 16573 }
AzureIoTClient 23:1111ee8bcba4 16574 }
Azure.IoT Build 0:6ae2f7bca550 16575 }
Azure.IoT Build 0:6ae2f7bca550 16576 }
Azure.IoT Build 0:6ae2f7bca550 16577
Azure.IoT Build 0:6ae2f7bca550 16578 return result;
Azure.IoT Build 0:6ae2f7bca550 16579 }
Azure.IoT Build 0:6ae2f7bca550 16580
Azure.IoT Build 0:6ae2f7bca550 16581 int received_set_section_number(RECEIVED_HANDLE received, uint32_t section_number_value)
Azure.IoT Build 0:6ae2f7bca550 16582 {
Azure.IoT Build 0:6ae2f7bca550 16583 int result;
Azure.IoT Build 0:6ae2f7bca550 16584
Azure.IoT Build 0:6ae2f7bca550 16585 if (received == NULL)
Azure.IoT Build 0:6ae2f7bca550 16586 {
AzureIoTClient 19:000ab4e6a2c1 16587 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16588 }
Azure.IoT Build 0:6ae2f7bca550 16589 else
Azure.IoT Build 0:6ae2f7bca550 16590 {
Azure.IoT Build 0:6ae2f7bca550 16591 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
Azure.IoT Build 0:6ae2f7bca550 16592 AMQP_VALUE section_number_amqp_value = amqpvalue_create_uint(section_number_value);
Azure.IoT Build 0:6ae2f7bca550 16593 if (section_number_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16594 {
AzureIoTClient 19:000ab4e6a2c1 16595 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16596 }
Azure.IoT Build 0:6ae2f7bca550 16597 else
Azure.IoT Build 0:6ae2f7bca550 16598 {
Azure.IoT Build 0:6ae2f7bca550 16599 if (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 16600 {
AzureIoTClient 19:000ab4e6a2c1 16601 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16602 }
Azure.IoT Build 0:6ae2f7bca550 16603 else
Azure.IoT Build 0:6ae2f7bca550 16604 {
Azure.IoT Build 0:6ae2f7bca550 16605 result = 0;
Azure.IoT Build 0:6ae2f7bca550 16606 }
Azure.IoT Build 0:6ae2f7bca550 16607
Azure.IoT Build 0:6ae2f7bca550 16608 amqpvalue_destroy(section_number_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 16609 }
Azure.IoT Build 0:6ae2f7bca550 16610 }
Azure.IoT Build 0:6ae2f7bca550 16611
Azure.IoT Build 0:6ae2f7bca550 16612 return result;
Azure.IoT Build 0:6ae2f7bca550 16613 }
Azure.IoT Build 0:6ae2f7bca550 16614
Azure.IoT Build 0:6ae2f7bca550 16615 int received_get_section_offset(RECEIVED_HANDLE received, uint64_t* section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 16616 {
Azure.IoT Build 0:6ae2f7bca550 16617 int result;
Azure.IoT Build 0:6ae2f7bca550 16618
Azure.IoT Build 0:6ae2f7bca550 16619 if (received == NULL)
Azure.IoT Build 0:6ae2f7bca550 16620 {
AzureIoTClient 19:000ab4e6a2c1 16621 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16622 }
Azure.IoT Build 0:6ae2f7bca550 16623 else
Azure.IoT Build 0:6ae2f7bca550 16624 {
AzureIoTClient 23:1111ee8bcba4 16625 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 16626 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 16627 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16628 {
AzureIoTClient 23:1111ee8bcba4 16629 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16630 }
AzureIoTClient 23:1111ee8bcba4 16631 else
AzureIoTClient 23:1111ee8bcba4 16632 {
AzureIoTClient 23:1111ee8bcba4 16633 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 16634 {
AzureIoTClient 23:1111ee8bcba4 16635 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16636 }
AzureIoTClient 23:1111ee8bcba4 16637 else
AzureIoTClient 23:1111ee8bcba4 16638 {
AzureIoTClient 23:1111ee8bcba4 16639 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 16640 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 16641 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 16642 {
AzureIoTClient 23:1111ee8bcba4 16643 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16644 }
AzureIoTClient 23:1111ee8bcba4 16645 else
AzureIoTClient 23:1111ee8bcba4 16646 {
AzureIoTClient 23:1111ee8bcba4 16647 if (amqpvalue_get_ulong(item_value, section_offset_value) != 0)
AzureIoTClient 23:1111ee8bcba4 16648 {
AzureIoTClient 23:1111ee8bcba4 16649 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16650 }
AzureIoTClient 23:1111ee8bcba4 16651 else
AzureIoTClient 23:1111ee8bcba4 16652 {
AzureIoTClient 23:1111ee8bcba4 16653 result = 0;
AzureIoTClient 23:1111ee8bcba4 16654 }
AzureIoTClient 23:1111ee8bcba4 16655 }
AzureIoTClient 23:1111ee8bcba4 16656 }
Azure.IoT Build 0:6ae2f7bca550 16657 }
Azure.IoT Build 0:6ae2f7bca550 16658 }
Azure.IoT Build 0:6ae2f7bca550 16659
Azure.IoT Build 0:6ae2f7bca550 16660 return result;
Azure.IoT Build 0:6ae2f7bca550 16661 }
Azure.IoT Build 0:6ae2f7bca550 16662
Azure.IoT Build 0:6ae2f7bca550 16663 int received_set_section_offset(RECEIVED_HANDLE received, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 16664 {
Azure.IoT Build 0:6ae2f7bca550 16665 int result;
Azure.IoT Build 0:6ae2f7bca550 16666
Azure.IoT Build 0:6ae2f7bca550 16667 if (received == NULL)
Azure.IoT Build 0:6ae2f7bca550 16668 {
AzureIoTClient 19:000ab4e6a2c1 16669 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16670 }
Azure.IoT Build 0:6ae2f7bca550 16671 else
Azure.IoT Build 0:6ae2f7bca550 16672 {
Azure.IoT Build 0:6ae2f7bca550 16673 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
Azure.IoT Build 0:6ae2f7bca550 16674 AMQP_VALUE section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
Azure.IoT Build 0:6ae2f7bca550 16675 if (section_offset_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16676 {
AzureIoTClient 19:000ab4e6a2c1 16677 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16678 }
Azure.IoT Build 0:6ae2f7bca550 16679 else
Azure.IoT Build 0:6ae2f7bca550 16680 {
Azure.IoT Build 0:6ae2f7bca550 16681 if (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 16682 {
AzureIoTClient 19:000ab4e6a2c1 16683 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16684 }
Azure.IoT Build 0:6ae2f7bca550 16685 else
Azure.IoT Build 0:6ae2f7bca550 16686 {
Azure.IoT Build 0:6ae2f7bca550 16687 result = 0;
Azure.IoT Build 0:6ae2f7bca550 16688 }
Azure.IoT Build 0:6ae2f7bca550 16689
Azure.IoT Build 0:6ae2f7bca550 16690 amqpvalue_destroy(section_offset_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 16691 }
Azure.IoT Build 0:6ae2f7bca550 16692 }
Azure.IoT Build 0:6ae2f7bca550 16693
Azure.IoT Build 0:6ae2f7bca550 16694 return result;
Azure.IoT Build 0:6ae2f7bca550 16695 }
Azure.IoT Build 0:6ae2f7bca550 16696
Azure.IoT Build 0:6ae2f7bca550 16697
Azure.IoT Build 0:6ae2f7bca550 16698 /* accepted */
Azure.IoT Build 0:6ae2f7bca550 16699
Azure.IoT Build 0:6ae2f7bca550 16700 typedef struct ACCEPTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 16701 {
Azure.IoT Build 0:6ae2f7bca550 16702 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 16703 } ACCEPTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 16704
Azure.IoT Build 0:6ae2f7bca550 16705 static ACCEPTED_HANDLE accepted_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 16706 {
AzureIoTClient 21:f9c433d8e6ca 16707 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16708 if (accepted_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16709 {
Azure.IoT Build 0:6ae2f7bca550 16710 accepted_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 16711 }
Azure.IoT Build 0:6ae2f7bca550 16712
Azure.IoT Build 0:6ae2f7bca550 16713 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 16714 }
Azure.IoT Build 0:6ae2f7bca550 16715
Azure.IoT Build 0:6ae2f7bca550 16716 ACCEPTED_HANDLE accepted_create(void)
Azure.IoT Build 0:6ae2f7bca550 16717 {
AzureIoTClient 21:f9c433d8e6ca 16718 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16719 if (accepted_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16720 {
Azure.IoT Build 0:6ae2f7bca550 16721 accepted_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(36);
Azure.IoT Build 0:6ae2f7bca550 16722 if (accepted_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16723 {
AzureIoTClient 21:f9c433d8e6ca 16724 free(accepted_instance);
Azure.IoT Build 0:6ae2f7bca550 16725 accepted_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 16726 }
Azure.IoT Build 0:6ae2f7bca550 16727 }
Azure.IoT Build 0:6ae2f7bca550 16728
Azure.IoT Build 0:6ae2f7bca550 16729 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 16730 }
Azure.IoT Build 0:6ae2f7bca550 16731
Azure.IoT Build 0:6ae2f7bca550 16732 ACCEPTED_HANDLE accepted_clone(ACCEPTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 16733 {
AzureIoTClient 21:f9c433d8e6ca 16734 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16735 if (accepted_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16736 {
Azure.IoT Build 0:6ae2f7bca550 16737 accepted_instance->composite_value = amqpvalue_clone(((ACCEPTED_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 16738 if (accepted_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16739 {
AzureIoTClient 21:f9c433d8e6ca 16740 free(accepted_instance);
Azure.IoT Build 0:6ae2f7bca550 16741 accepted_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 16742 }
Azure.IoT Build 0:6ae2f7bca550 16743 }
Azure.IoT Build 0:6ae2f7bca550 16744
Azure.IoT Build 0:6ae2f7bca550 16745 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 16746 }
Azure.IoT Build 0:6ae2f7bca550 16747
Azure.IoT Build 0:6ae2f7bca550 16748 void accepted_destroy(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 16749 {
Azure.IoT Build 0:6ae2f7bca550 16750 if (accepted != NULL)
Azure.IoT Build 0:6ae2f7bca550 16751 {
Azure.IoT Build 0:6ae2f7bca550 16752 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
Azure.IoT Build 0:6ae2f7bca550 16753 amqpvalue_destroy(accepted_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 16754 free(accepted_instance);
Azure.IoT Build 0:6ae2f7bca550 16755 }
Azure.IoT Build 0:6ae2f7bca550 16756 }
Azure.IoT Build 0:6ae2f7bca550 16757
Azure.IoT Build 0:6ae2f7bca550 16758 AMQP_VALUE amqpvalue_create_accepted(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 16759 {
Azure.IoT Build 0:6ae2f7bca550 16760 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 16761
Azure.IoT Build 0:6ae2f7bca550 16762 if (accepted == NULL)
Azure.IoT Build 0:6ae2f7bca550 16763 {
Azure.IoT Build 0:6ae2f7bca550 16764 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 16765 }
Azure.IoT Build 0:6ae2f7bca550 16766 else
Azure.IoT Build 0:6ae2f7bca550 16767 {
Azure.IoT Build 0:6ae2f7bca550 16768 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
Azure.IoT Build 0:6ae2f7bca550 16769 result = amqpvalue_clone(accepted_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 16770 }
Azure.IoT Build 0:6ae2f7bca550 16771
Azure.IoT Build 0:6ae2f7bca550 16772 return result;
Azure.IoT Build 0:6ae2f7bca550 16773 }
Azure.IoT Build 0:6ae2f7bca550 16774
Azure.IoT Build 0:6ae2f7bca550 16775 bool is_accepted_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 16776 {
Azure.IoT Build 0:6ae2f7bca550 16777 bool result;
Azure.IoT Build 0:6ae2f7bca550 16778
Azure.IoT Build 0:6ae2f7bca550 16779 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 16780 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 16781 (descriptor_ulong == 36))
Azure.IoT Build 0:6ae2f7bca550 16782 {
Azure.IoT Build 0:6ae2f7bca550 16783 result = true;
Azure.IoT Build 0:6ae2f7bca550 16784 }
Azure.IoT Build 0:6ae2f7bca550 16785 else
Azure.IoT Build 0:6ae2f7bca550 16786 {
Azure.IoT Build 0:6ae2f7bca550 16787 result = false;
Azure.IoT Build 0:6ae2f7bca550 16788 }
Azure.IoT Build 0:6ae2f7bca550 16789
Azure.IoT Build 0:6ae2f7bca550 16790 return result;
Azure.IoT Build 0:6ae2f7bca550 16791 }
Azure.IoT Build 0:6ae2f7bca550 16792
Azure.IoT Build 0:6ae2f7bca550 16793
Azure.IoT Build 0:6ae2f7bca550 16794 int amqpvalue_get_accepted(AMQP_VALUE value, ACCEPTED_HANDLE* accepted_handle)
Azure.IoT Build 0:6ae2f7bca550 16795 {
Azure.IoT Build 0:6ae2f7bca550 16796 int result;
Azure.IoT Build 0:6ae2f7bca550 16797 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted_create_internal();
Azure.IoT Build 0:6ae2f7bca550 16798 *accepted_handle = accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 16799 if (*accepted_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 16800 {
AzureIoTClient 19:000ab4e6a2c1 16801 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16802 }
Azure.IoT Build 0:6ae2f7bca550 16803 else
Azure.IoT Build 0:6ae2f7bca550 16804 {
Azure.IoT Build 0:6ae2f7bca550 16805 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 16806 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16807 {
Azure.IoT Build 0:6ae2f7bca550 16808 accepted_destroy(*accepted_handle);
AzureIoTClient 19:000ab4e6a2c1 16809 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16810 }
Azure.IoT Build 0:6ae2f7bca550 16811 else
Azure.IoT Build 0:6ae2f7bca550 16812 {
AzureIoTClient 23:1111ee8bcba4 16813 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 16814 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16815 {
AzureIoTClient 23:1111ee8bcba4 16816 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16817 }
AzureIoTClient 23:1111ee8bcba4 16818 else
AzureIoTClient 23:1111ee8bcba4 16819 {
AzureIoTClient 23:1111ee8bcba4 16820 do
AzureIoTClient 23:1111ee8bcba4 16821 {
AzureIoTClient 23:1111ee8bcba4 16822
AzureIoTClient 23:1111ee8bcba4 16823 accepted_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 16824
AzureIoTClient 23:1111ee8bcba4 16825 result = 0;
AzureIoTClient 23:1111ee8bcba4 16826 } while (0);
AzureIoTClient 23:1111ee8bcba4 16827 }
Azure.IoT Build 0:6ae2f7bca550 16828 }
Azure.IoT Build 0:6ae2f7bca550 16829 }
Azure.IoT Build 0:6ae2f7bca550 16830
Azure.IoT Build 0:6ae2f7bca550 16831 return result;
Azure.IoT Build 0:6ae2f7bca550 16832 }
Azure.IoT Build 0:6ae2f7bca550 16833
Azure.IoT Build 0:6ae2f7bca550 16834
Azure.IoT Build 0:6ae2f7bca550 16835 /* rejected */
Azure.IoT Build 0:6ae2f7bca550 16836
Azure.IoT Build 0:6ae2f7bca550 16837 typedef struct REJECTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 16838 {
Azure.IoT Build 0:6ae2f7bca550 16839 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 16840 } REJECTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 16841
Azure.IoT Build 0:6ae2f7bca550 16842 static REJECTED_HANDLE rejected_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 16843 {
AzureIoTClient 21:f9c433d8e6ca 16844 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16845 if (rejected_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16846 {
Azure.IoT Build 0:6ae2f7bca550 16847 rejected_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 16848 }
Azure.IoT Build 0:6ae2f7bca550 16849
Azure.IoT Build 0:6ae2f7bca550 16850 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 16851 }
Azure.IoT Build 0:6ae2f7bca550 16852
Azure.IoT Build 0:6ae2f7bca550 16853 REJECTED_HANDLE rejected_create(void)
Azure.IoT Build 0:6ae2f7bca550 16854 {
AzureIoTClient 21:f9c433d8e6ca 16855 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16856 if (rejected_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16857 {
Azure.IoT Build 0:6ae2f7bca550 16858 rejected_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(37);
Azure.IoT Build 0:6ae2f7bca550 16859 if (rejected_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16860 {
AzureIoTClient 21:f9c433d8e6ca 16861 free(rejected_instance);
Azure.IoT Build 0:6ae2f7bca550 16862 rejected_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 16863 }
Azure.IoT Build 0:6ae2f7bca550 16864 }
Azure.IoT Build 0:6ae2f7bca550 16865
Azure.IoT Build 0:6ae2f7bca550 16866 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 16867 }
Azure.IoT Build 0:6ae2f7bca550 16868
Azure.IoT Build 0:6ae2f7bca550 16869 REJECTED_HANDLE rejected_clone(REJECTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 16870 {
AzureIoTClient 21:f9c433d8e6ca 16871 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 16872 if (rejected_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 16873 {
Azure.IoT Build 0:6ae2f7bca550 16874 rejected_instance->composite_value = amqpvalue_clone(((REJECTED_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 16875 if (rejected_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16876 {
AzureIoTClient 21:f9c433d8e6ca 16877 free(rejected_instance);
Azure.IoT Build 0:6ae2f7bca550 16878 rejected_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 16879 }
Azure.IoT Build 0:6ae2f7bca550 16880 }
Azure.IoT Build 0:6ae2f7bca550 16881
Azure.IoT Build 0:6ae2f7bca550 16882 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 16883 }
Azure.IoT Build 0:6ae2f7bca550 16884
Azure.IoT Build 0:6ae2f7bca550 16885 void rejected_destroy(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 16886 {
Azure.IoT Build 0:6ae2f7bca550 16887 if (rejected != NULL)
Azure.IoT Build 0:6ae2f7bca550 16888 {
Azure.IoT Build 0:6ae2f7bca550 16889 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
Azure.IoT Build 0:6ae2f7bca550 16890 amqpvalue_destroy(rejected_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 16891 free(rejected_instance);
Azure.IoT Build 0:6ae2f7bca550 16892 }
Azure.IoT Build 0:6ae2f7bca550 16893 }
Azure.IoT Build 0:6ae2f7bca550 16894
Azure.IoT Build 0:6ae2f7bca550 16895 AMQP_VALUE amqpvalue_create_rejected(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 16896 {
Azure.IoT Build 0:6ae2f7bca550 16897 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 16898
Azure.IoT Build 0:6ae2f7bca550 16899 if (rejected == NULL)
Azure.IoT Build 0:6ae2f7bca550 16900 {
Azure.IoT Build 0:6ae2f7bca550 16901 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 16902 }
Azure.IoT Build 0:6ae2f7bca550 16903 else
Azure.IoT Build 0:6ae2f7bca550 16904 {
Azure.IoT Build 0:6ae2f7bca550 16905 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
Azure.IoT Build 0:6ae2f7bca550 16906 result = amqpvalue_clone(rejected_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 16907 }
Azure.IoT Build 0:6ae2f7bca550 16908
Azure.IoT Build 0:6ae2f7bca550 16909 return result;
Azure.IoT Build 0:6ae2f7bca550 16910 }
Azure.IoT Build 0:6ae2f7bca550 16911
Azure.IoT Build 0:6ae2f7bca550 16912 bool is_rejected_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 16913 {
Azure.IoT Build 0:6ae2f7bca550 16914 bool result;
Azure.IoT Build 0:6ae2f7bca550 16915
Azure.IoT Build 0:6ae2f7bca550 16916 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 16917 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 16918 (descriptor_ulong == 37))
Azure.IoT Build 0:6ae2f7bca550 16919 {
Azure.IoT Build 0:6ae2f7bca550 16920 result = true;
Azure.IoT Build 0:6ae2f7bca550 16921 }
Azure.IoT Build 0:6ae2f7bca550 16922 else
Azure.IoT Build 0:6ae2f7bca550 16923 {
Azure.IoT Build 0:6ae2f7bca550 16924 result = false;
Azure.IoT Build 0:6ae2f7bca550 16925 }
Azure.IoT Build 0:6ae2f7bca550 16926
Azure.IoT Build 0:6ae2f7bca550 16927 return result;
Azure.IoT Build 0:6ae2f7bca550 16928 }
Azure.IoT Build 0:6ae2f7bca550 16929
Azure.IoT Build 0:6ae2f7bca550 16930
Azure.IoT Build 0:6ae2f7bca550 16931 int amqpvalue_get_rejected(AMQP_VALUE value, REJECTED_HANDLE* rejected_handle)
Azure.IoT Build 0:6ae2f7bca550 16932 {
Azure.IoT Build 0:6ae2f7bca550 16933 int result;
Azure.IoT Build 0:6ae2f7bca550 16934 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected_create_internal();
Azure.IoT Build 0:6ae2f7bca550 16935 *rejected_handle = rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 16936 if (*rejected_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 16937 {
AzureIoTClient 19:000ab4e6a2c1 16938 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16939 }
Azure.IoT Build 0:6ae2f7bca550 16940 else
Azure.IoT Build 0:6ae2f7bca550 16941 {
Azure.IoT Build 0:6ae2f7bca550 16942 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 16943 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 16944 {
Azure.IoT Build 0:6ae2f7bca550 16945 rejected_destroy(*rejected_handle);
AzureIoTClient 19:000ab4e6a2c1 16946 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 16947 }
Azure.IoT Build 0:6ae2f7bca550 16948 else
Azure.IoT Build 0:6ae2f7bca550 16949 {
AzureIoTClient 23:1111ee8bcba4 16950 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 16951 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16952 {
AzureIoTClient 23:1111ee8bcba4 16953 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16954 }
AzureIoTClient 23:1111ee8bcba4 16955 else
AzureIoTClient 23:1111ee8bcba4 16956 {
AzureIoTClient 23:1111ee8bcba4 16957 do
AzureIoTClient 23:1111ee8bcba4 16958 {
AzureIoTClient 23:1111ee8bcba4 16959 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 16960 /* error */
AzureIoTClient 23:1111ee8bcba4 16961 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 16962 {
AzureIoTClient 23:1111ee8bcba4 16963 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 16964 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16965 {
AzureIoTClient 23:1111ee8bcba4 16966 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 16967 }
AzureIoTClient 23:1111ee8bcba4 16968 else
AzureIoTClient 23:1111ee8bcba4 16969 {
AzureIoTClient 25:1101516ee67d 16970 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 16971 {
AzureIoTClient 25:1101516ee67d 16972 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 16973 }
AzureIoTClient 25:1101516ee67d 16974 else
AzureIoTClient 25:1101516ee67d 16975 {
AzureIoTClient 25:1101516ee67d 16976 ERROR_HANDLE error;
AzureIoTClient 23:1111ee8bcba4 16977 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 23:1111ee8bcba4 16978 {
AzureIoTClient 25:1101516ee67d 16979 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 16980 rejected_destroy(*rejected_handle);
AzureIoTClient 23:1111ee8bcba4 16981 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16982 break;
AzureIoTClient 23:1111ee8bcba4 16983 }
AzureIoTClient 25:1101516ee67d 16984 else
AzureIoTClient 25:1101516ee67d 16985 {
AzureIoTClient 25:1101516ee67d 16986 error_destroy(error);
AzureIoTClient 25:1101516ee67d 16987 }
AzureIoTClient 23:1111ee8bcba4 16988 }
AzureIoTClient 23:1111ee8bcba4 16989
AzureIoTClient 23:1111ee8bcba4 16990 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 16991 }
AzureIoTClient 23:1111ee8bcba4 16992 }
AzureIoTClient 23:1111ee8bcba4 16993
AzureIoTClient 23:1111ee8bcba4 16994 rejected_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 16995
AzureIoTClient 23:1111ee8bcba4 16996 result = 0;
AzureIoTClient 23:1111ee8bcba4 16997 } while (0);
AzureIoTClient 23:1111ee8bcba4 16998 }
Azure.IoT Build 0:6ae2f7bca550 16999 }
Azure.IoT Build 0:6ae2f7bca550 17000 }
Azure.IoT Build 0:6ae2f7bca550 17001
Azure.IoT Build 0:6ae2f7bca550 17002 return result;
Azure.IoT Build 0:6ae2f7bca550 17003 }
Azure.IoT Build 0:6ae2f7bca550 17004
Azure.IoT Build 0:6ae2f7bca550 17005 int rejected_get_error(REJECTED_HANDLE rejected, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 17006 {
Azure.IoT Build 0:6ae2f7bca550 17007 int result;
Azure.IoT Build 0:6ae2f7bca550 17008
Azure.IoT Build 0:6ae2f7bca550 17009 if (rejected == NULL)
Azure.IoT Build 0:6ae2f7bca550 17010 {
AzureIoTClient 19:000ab4e6a2c1 17011 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17012 }
Azure.IoT Build 0:6ae2f7bca550 17013 else
Azure.IoT Build 0:6ae2f7bca550 17014 {
AzureIoTClient 23:1111ee8bcba4 17015 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 17016 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 23:1111ee8bcba4 17017 if (amqpvalue_get_composite_item_count(rejected_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17018 {
AzureIoTClient 23:1111ee8bcba4 17019 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17020 }
AzureIoTClient 23:1111ee8bcba4 17021 else
AzureIoTClient 23:1111ee8bcba4 17022 {
AzureIoTClient 23:1111ee8bcba4 17023 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17024 {
AzureIoTClient 23:1111ee8bcba4 17025 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17026 }
AzureIoTClient 23:1111ee8bcba4 17027 else
AzureIoTClient 23:1111ee8bcba4 17028 {
AzureIoTClient 23:1111ee8bcba4 17029 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(rejected_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 17030 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 17031 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 17032 {
AzureIoTClient 23:1111ee8bcba4 17033 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17034 }
AzureIoTClient 23:1111ee8bcba4 17035 else
AzureIoTClient 23:1111ee8bcba4 17036 {
AzureIoTClient 23:1111ee8bcba4 17037 if (amqpvalue_get_error(item_value, error_value) != 0)
AzureIoTClient 23:1111ee8bcba4 17038 {
AzureIoTClient 23:1111ee8bcba4 17039 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17040 }
AzureIoTClient 23:1111ee8bcba4 17041 else
AzureIoTClient 23:1111ee8bcba4 17042 {
AzureIoTClient 23:1111ee8bcba4 17043 result = 0;
AzureIoTClient 23:1111ee8bcba4 17044 }
AzureIoTClient 23:1111ee8bcba4 17045 }
AzureIoTClient 23:1111ee8bcba4 17046 }
Azure.IoT Build 0:6ae2f7bca550 17047 }
Azure.IoT Build 0:6ae2f7bca550 17048 }
Azure.IoT Build 0:6ae2f7bca550 17049
Azure.IoT Build 0:6ae2f7bca550 17050 return result;
Azure.IoT Build 0:6ae2f7bca550 17051 }
Azure.IoT Build 0:6ae2f7bca550 17052
Azure.IoT Build 0:6ae2f7bca550 17053 int rejected_set_error(REJECTED_HANDLE rejected, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 17054 {
Azure.IoT Build 0:6ae2f7bca550 17055 int result;
Azure.IoT Build 0:6ae2f7bca550 17056
Azure.IoT Build 0:6ae2f7bca550 17057 if (rejected == NULL)
Azure.IoT Build 0:6ae2f7bca550 17058 {
AzureIoTClient 19:000ab4e6a2c1 17059 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17060 }
Azure.IoT Build 0:6ae2f7bca550 17061 else
Azure.IoT Build 0:6ae2f7bca550 17062 {
Azure.IoT Build 0:6ae2f7bca550 17063 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
Azure.IoT Build 0:6ae2f7bca550 17064 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
Azure.IoT Build 0:6ae2f7bca550 17065 if (error_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17066 {
AzureIoTClient 19:000ab4e6a2c1 17067 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17068 }
Azure.IoT Build 0:6ae2f7bca550 17069 else
Azure.IoT Build 0:6ae2f7bca550 17070 {
Azure.IoT Build 0:6ae2f7bca550 17071 if (amqpvalue_set_composite_item(rejected_instance->composite_value, 0, error_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 17072 {
AzureIoTClient 19:000ab4e6a2c1 17073 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17074 }
Azure.IoT Build 0:6ae2f7bca550 17075 else
Azure.IoT Build 0:6ae2f7bca550 17076 {
Azure.IoT Build 0:6ae2f7bca550 17077 result = 0;
Azure.IoT Build 0:6ae2f7bca550 17078 }
Azure.IoT Build 0:6ae2f7bca550 17079
Azure.IoT Build 0:6ae2f7bca550 17080 amqpvalue_destroy(error_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 17081 }
Azure.IoT Build 0:6ae2f7bca550 17082 }
Azure.IoT Build 0:6ae2f7bca550 17083
Azure.IoT Build 0:6ae2f7bca550 17084 return result;
Azure.IoT Build 0:6ae2f7bca550 17085 }
Azure.IoT Build 0:6ae2f7bca550 17086
Azure.IoT Build 0:6ae2f7bca550 17087
Azure.IoT Build 0:6ae2f7bca550 17088 /* released */
Azure.IoT Build 0:6ae2f7bca550 17089
Azure.IoT Build 0:6ae2f7bca550 17090 typedef struct RELEASED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17091 {
Azure.IoT Build 0:6ae2f7bca550 17092 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17093 } RELEASED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17094
Azure.IoT Build 0:6ae2f7bca550 17095 static RELEASED_HANDLE released_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17096 {
AzureIoTClient 21:f9c433d8e6ca 17097 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 17098 if (released_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 17099 {
Azure.IoT Build 0:6ae2f7bca550 17100 released_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 17101 }
Azure.IoT Build 0:6ae2f7bca550 17102
Azure.IoT Build 0:6ae2f7bca550 17103 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17104 }
Azure.IoT Build 0:6ae2f7bca550 17105
Azure.IoT Build 0:6ae2f7bca550 17106 RELEASED_HANDLE released_create(void)
Azure.IoT Build 0:6ae2f7bca550 17107 {
AzureIoTClient 21:f9c433d8e6ca 17108 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 17109 if (released_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 17110 {
Azure.IoT Build 0:6ae2f7bca550 17111 released_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(38);
Azure.IoT Build 0:6ae2f7bca550 17112 if (released_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17113 {
AzureIoTClient 21:f9c433d8e6ca 17114 free(released_instance);
Azure.IoT Build 0:6ae2f7bca550 17115 released_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 17116 }
Azure.IoT Build 0:6ae2f7bca550 17117 }
Azure.IoT Build 0:6ae2f7bca550 17118
Azure.IoT Build 0:6ae2f7bca550 17119 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17120 }
Azure.IoT Build 0:6ae2f7bca550 17121
Azure.IoT Build 0:6ae2f7bca550 17122 RELEASED_HANDLE released_clone(RELEASED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17123 {
AzureIoTClient 21:f9c433d8e6ca 17124 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 17125 if (released_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 17126 {
Azure.IoT Build 0:6ae2f7bca550 17127 released_instance->composite_value = amqpvalue_clone(((RELEASED_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 17128 if (released_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17129 {
AzureIoTClient 21:f9c433d8e6ca 17130 free(released_instance);
Azure.IoT Build 0:6ae2f7bca550 17131 released_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 17132 }
Azure.IoT Build 0:6ae2f7bca550 17133 }
Azure.IoT Build 0:6ae2f7bca550 17134
Azure.IoT Build 0:6ae2f7bca550 17135 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17136 }
Azure.IoT Build 0:6ae2f7bca550 17137
Azure.IoT Build 0:6ae2f7bca550 17138 void released_destroy(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17139 {
Azure.IoT Build 0:6ae2f7bca550 17140 if (released != NULL)
Azure.IoT Build 0:6ae2f7bca550 17141 {
Azure.IoT Build 0:6ae2f7bca550 17142 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
Azure.IoT Build 0:6ae2f7bca550 17143 amqpvalue_destroy(released_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 17144 free(released_instance);
Azure.IoT Build 0:6ae2f7bca550 17145 }
Azure.IoT Build 0:6ae2f7bca550 17146 }
Azure.IoT Build 0:6ae2f7bca550 17147
Azure.IoT Build 0:6ae2f7bca550 17148 AMQP_VALUE amqpvalue_create_released(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17149 {
Azure.IoT Build 0:6ae2f7bca550 17150 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 17151
Azure.IoT Build 0:6ae2f7bca550 17152 if (released == NULL)
Azure.IoT Build 0:6ae2f7bca550 17153 {
Azure.IoT Build 0:6ae2f7bca550 17154 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 17155 }
Azure.IoT Build 0:6ae2f7bca550 17156 else
Azure.IoT Build 0:6ae2f7bca550 17157 {
Azure.IoT Build 0:6ae2f7bca550 17158 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
Azure.IoT Build 0:6ae2f7bca550 17159 result = amqpvalue_clone(released_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 17160 }
Azure.IoT Build 0:6ae2f7bca550 17161
Azure.IoT Build 0:6ae2f7bca550 17162 return result;
Azure.IoT Build 0:6ae2f7bca550 17163 }
Azure.IoT Build 0:6ae2f7bca550 17164
Azure.IoT Build 0:6ae2f7bca550 17165 bool is_released_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17166 {
Azure.IoT Build 0:6ae2f7bca550 17167 bool result;
Azure.IoT Build 0:6ae2f7bca550 17168
Azure.IoT Build 0:6ae2f7bca550 17169 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 17170 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 17171 (descriptor_ulong == 38))
Azure.IoT Build 0:6ae2f7bca550 17172 {
Azure.IoT Build 0:6ae2f7bca550 17173 result = true;
Azure.IoT Build 0:6ae2f7bca550 17174 }
Azure.IoT Build 0:6ae2f7bca550 17175 else
Azure.IoT Build 0:6ae2f7bca550 17176 {
Azure.IoT Build 0:6ae2f7bca550 17177 result = false;
Azure.IoT Build 0:6ae2f7bca550 17178 }
Azure.IoT Build 0:6ae2f7bca550 17179
Azure.IoT Build 0:6ae2f7bca550 17180 return result;
Azure.IoT Build 0:6ae2f7bca550 17181 }
Azure.IoT Build 0:6ae2f7bca550 17182
Azure.IoT Build 0:6ae2f7bca550 17183
Azure.IoT Build 0:6ae2f7bca550 17184 int amqpvalue_get_released(AMQP_VALUE value, RELEASED_HANDLE* released_handle)
Azure.IoT Build 0:6ae2f7bca550 17185 {
Azure.IoT Build 0:6ae2f7bca550 17186 int result;
Azure.IoT Build 0:6ae2f7bca550 17187 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released_create_internal();
Azure.IoT Build 0:6ae2f7bca550 17188 *released_handle = released_instance;
Azure.IoT Build 0:6ae2f7bca550 17189 if (*released_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 17190 {
AzureIoTClient 19:000ab4e6a2c1 17191 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17192 }
Azure.IoT Build 0:6ae2f7bca550 17193 else
Azure.IoT Build 0:6ae2f7bca550 17194 {
Azure.IoT Build 0:6ae2f7bca550 17195 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 17196 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17197 {
Azure.IoT Build 0:6ae2f7bca550 17198 released_destroy(*released_handle);
AzureIoTClient 19:000ab4e6a2c1 17199 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17200 }
Azure.IoT Build 0:6ae2f7bca550 17201 else
Azure.IoT Build 0:6ae2f7bca550 17202 {
AzureIoTClient 23:1111ee8bcba4 17203 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17204 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17205 {
AzureIoTClient 23:1111ee8bcba4 17206 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17207 }
AzureIoTClient 23:1111ee8bcba4 17208 else
AzureIoTClient 23:1111ee8bcba4 17209 {
AzureIoTClient 23:1111ee8bcba4 17210 do
AzureIoTClient 23:1111ee8bcba4 17211 {
AzureIoTClient 23:1111ee8bcba4 17212
AzureIoTClient 23:1111ee8bcba4 17213 released_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 17214
AzureIoTClient 23:1111ee8bcba4 17215 result = 0;
AzureIoTClient 23:1111ee8bcba4 17216 } while (0);
AzureIoTClient 23:1111ee8bcba4 17217 }
Azure.IoT Build 0:6ae2f7bca550 17218 }
Azure.IoT Build 0:6ae2f7bca550 17219 }
Azure.IoT Build 0:6ae2f7bca550 17220
Azure.IoT Build 0:6ae2f7bca550 17221 return result;
Azure.IoT Build 0:6ae2f7bca550 17222 }
Azure.IoT Build 0:6ae2f7bca550 17223
Azure.IoT Build 0:6ae2f7bca550 17224
Azure.IoT Build 0:6ae2f7bca550 17225 /* modified */
Azure.IoT Build 0:6ae2f7bca550 17226
Azure.IoT Build 0:6ae2f7bca550 17227 typedef struct MODIFIED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17228 {
Azure.IoT Build 0:6ae2f7bca550 17229 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17230 } MODIFIED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17231
Azure.IoT Build 0:6ae2f7bca550 17232 static MODIFIED_HANDLE modified_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17233 {
AzureIoTClient 21:f9c433d8e6ca 17234 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 17235 if (modified_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 17236 {
Azure.IoT Build 0:6ae2f7bca550 17237 modified_instance->composite_value = NULL;
Azure.IoT Build 0:6ae2f7bca550 17238 }
Azure.IoT Build 0:6ae2f7bca550 17239
Azure.IoT Build 0:6ae2f7bca550 17240 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 17241 }
Azure.IoT Build 0:6ae2f7bca550 17242
Azure.IoT Build 0:6ae2f7bca550 17243 MODIFIED_HANDLE modified_create(void)
Azure.IoT Build 0:6ae2f7bca550 17244 {
AzureIoTClient 21:f9c433d8e6ca 17245 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 17246 if (modified_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 17247 {
Azure.IoT Build 0:6ae2f7bca550 17248 modified_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(39);
Azure.IoT Build 0:6ae2f7bca550 17249 if (modified_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17250 {
AzureIoTClient 21:f9c433d8e6ca 17251 free(modified_instance);
Azure.IoT Build 0:6ae2f7bca550 17252 modified_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 17253 }
Azure.IoT Build 0:6ae2f7bca550 17254 }
Azure.IoT Build 0:6ae2f7bca550 17255
Azure.IoT Build 0:6ae2f7bca550 17256 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 17257 }
Azure.IoT Build 0:6ae2f7bca550 17258
Azure.IoT Build 0:6ae2f7bca550 17259 MODIFIED_HANDLE modified_clone(MODIFIED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17260 {
AzureIoTClient 21:f9c433d8e6ca 17261 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
Azure.IoT Build 0:6ae2f7bca550 17262 if (modified_instance != NULL)
Azure.IoT Build 0:6ae2f7bca550 17263 {
Azure.IoT Build 0:6ae2f7bca550 17264 modified_instance->composite_value = amqpvalue_clone(((MODIFIED_INSTANCE*)value)->composite_value);
Azure.IoT Build 0:6ae2f7bca550 17265 if (modified_instance->composite_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17266 {
AzureIoTClient 21:f9c433d8e6ca 17267 free(modified_instance);
Azure.IoT Build 0:6ae2f7bca550 17268 modified_instance = NULL;
Azure.IoT Build 0:6ae2f7bca550 17269 }
Azure.IoT Build 0:6ae2f7bca550 17270 }
Azure.IoT Build 0:6ae2f7bca550 17271
Azure.IoT Build 0:6ae2f7bca550 17272 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 17273 }
Azure.IoT Build 0:6ae2f7bca550 17274
Azure.IoT Build 0:6ae2f7bca550 17275 void modified_destroy(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 17276 {
Azure.IoT Build 0:6ae2f7bca550 17277 if (modified != NULL)
Azure.IoT Build 0:6ae2f7bca550 17278 {
Azure.IoT Build 0:6ae2f7bca550 17279 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
Azure.IoT Build 0:6ae2f7bca550 17280 amqpvalue_destroy(modified_instance->composite_value);
AzureIoTClient 21:f9c433d8e6ca 17281 free(modified_instance);
Azure.IoT Build 0:6ae2f7bca550 17282 }
Azure.IoT Build 0:6ae2f7bca550 17283 }
Azure.IoT Build 0:6ae2f7bca550 17284
Azure.IoT Build 0:6ae2f7bca550 17285 AMQP_VALUE amqpvalue_create_modified(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 17286 {
Azure.IoT Build 0:6ae2f7bca550 17287 AMQP_VALUE result;
Azure.IoT Build 0:6ae2f7bca550 17288
Azure.IoT Build 0:6ae2f7bca550 17289 if (modified == NULL)
Azure.IoT Build 0:6ae2f7bca550 17290 {
Azure.IoT Build 0:6ae2f7bca550 17291 result = NULL;
Azure.IoT Build 0:6ae2f7bca550 17292 }
Azure.IoT Build 0:6ae2f7bca550 17293 else
Azure.IoT Build 0:6ae2f7bca550 17294 {
Azure.IoT Build 0:6ae2f7bca550 17295 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
Azure.IoT Build 0:6ae2f7bca550 17296 result = amqpvalue_clone(modified_instance->composite_value);
Azure.IoT Build 0:6ae2f7bca550 17297 }
Azure.IoT Build 0:6ae2f7bca550 17298
Azure.IoT Build 0:6ae2f7bca550 17299 return result;
Azure.IoT Build 0:6ae2f7bca550 17300 }
Azure.IoT Build 0:6ae2f7bca550 17301
Azure.IoT Build 0:6ae2f7bca550 17302 bool is_modified_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17303 {
Azure.IoT Build 0:6ae2f7bca550 17304 bool result;
Azure.IoT Build 0:6ae2f7bca550 17305
Azure.IoT Build 0:6ae2f7bca550 17306 uint64_t descriptor_ulong;
Azure.IoT Build 0:6ae2f7bca550 17307 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
Azure.IoT Build 0:6ae2f7bca550 17308 (descriptor_ulong == 39))
Azure.IoT Build 0:6ae2f7bca550 17309 {
Azure.IoT Build 0:6ae2f7bca550 17310 result = true;
Azure.IoT Build 0:6ae2f7bca550 17311 }
Azure.IoT Build 0:6ae2f7bca550 17312 else
Azure.IoT Build 0:6ae2f7bca550 17313 {
Azure.IoT Build 0:6ae2f7bca550 17314 result = false;
Azure.IoT Build 0:6ae2f7bca550 17315 }
Azure.IoT Build 0:6ae2f7bca550 17316
Azure.IoT Build 0:6ae2f7bca550 17317 return result;
Azure.IoT Build 0:6ae2f7bca550 17318 }
Azure.IoT Build 0:6ae2f7bca550 17319
Azure.IoT Build 0:6ae2f7bca550 17320
Azure.IoT Build 0:6ae2f7bca550 17321 int amqpvalue_get_modified(AMQP_VALUE value, MODIFIED_HANDLE* modified_handle)
Azure.IoT Build 0:6ae2f7bca550 17322 {
Azure.IoT Build 0:6ae2f7bca550 17323 int result;
Azure.IoT Build 0:6ae2f7bca550 17324 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified_create_internal();
Azure.IoT Build 0:6ae2f7bca550 17325 *modified_handle = modified_instance;
Azure.IoT Build 0:6ae2f7bca550 17326 if (*modified_handle == NULL)
Azure.IoT Build 0:6ae2f7bca550 17327 {
AzureIoTClient 19:000ab4e6a2c1 17328 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17329 }
Azure.IoT Build 0:6ae2f7bca550 17330 else
Azure.IoT Build 0:6ae2f7bca550 17331 {
Azure.IoT Build 0:6ae2f7bca550 17332 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
Azure.IoT Build 0:6ae2f7bca550 17333 if (list_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17334 {
Azure.IoT Build 0:6ae2f7bca550 17335 modified_destroy(*modified_handle);
AzureIoTClient 19:000ab4e6a2c1 17336 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17337 }
Azure.IoT Build 0:6ae2f7bca550 17338 else
Azure.IoT Build 0:6ae2f7bca550 17339 {
AzureIoTClient 23:1111ee8bcba4 17340 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17341 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17342 {
AzureIoTClient 23:1111ee8bcba4 17343 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17344 }
AzureIoTClient 23:1111ee8bcba4 17345 else
AzureIoTClient 23:1111ee8bcba4 17346 {
AzureIoTClient 23:1111ee8bcba4 17347 do
AzureIoTClient 23:1111ee8bcba4 17348 {
AzureIoTClient 23:1111ee8bcba4 17349 AMQP_VALUE item_value;
AzureIoTClient 23:1111ee8bcba4 17350 /* delivery-failed */
AzureIoTClient 23:1111ee8bcba4 17351 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17352 {
AzureIoTClient 23:1111ee8bcba4 17353 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 23:1111ee8bcba4 17354 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 17355 {
AzureIoTClient 23:1111ee8bcba4 17356 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 17357 }
AzureIoTClient 23:1111ee8bcba4 17358 else
AzureIoTClient 23:1111ee8bcba4 17359 {
AzureIoTClient 25:1101516ee67d 17360 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 17361 {
AzureIoTClient 25:1101516ee67d 17362 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 17363 }
AzureIoTClient 25:1101516ee67d 17364 else
AzureIoTClient 25:1101516ee67d 17365 {
AzureIoTClient 25:1101516ee67d 17366 bool delivery_failed;
AzureIoTClient 23:1111ee8bcba4 17367 if (amqpvalue_get_boolean(item_value, &delivery_failed) != 0)
AzureIoTClient 23:1111ee8bcba4 17368 {
AzureIoTClient 25:1101516ee67d 17369 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 17370 modified_destroy(*modified_handle);
AzureIoTClient 23:1111ee8bcba4 17371 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17372 break;
AzureIoTClient 23:1111ee8bcba4 17373 }
AzureIoTClient 23:1111ee8bcba4 17374 }
AzureIoTClient 23:1111ee8bcba4 17375
AzureIoTClient 23:1111ee8bcba4 17376 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 17377 }
AzureIoTClient 23:1111ee8bcba4 17378 }
AzureIoTClient 23:1111ee8bcba4 17379 /* undeliverable-here */
AzureIoTClient 23:1111ee8bcba4 17380 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 17381 {
AzureIoTClient 23:1111ee8bcba4 17382 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 23:1111ee8bcba4 17383 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 17384 {
AzureIoTClient 23:1111ee8bcba4 17385 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 17386 }
AzureIoTClient 23:1111ee8bcba4 17387 else
AzureIoTClient 23:1111ee8bcba4 17388 {
AzureIoTClient 25:1101516ee67d 17389 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 17390 {
AzureIoTClient 25:1101516ee67d 17391 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 17392 }
AzureIoTClient 25:1101516ee67d 17393 else
AzureIoTClient 25:1101516ee67d 17394 {
AzureIoTClient 25:1101516ee67d 17395 bool undeliverable_here;
AzureIoTClient 23:1111ee8bcba4 17396 if (amqpvalue_get_boolean(item_value, &undeliverable_here) != 0)
AzureIoTClient 23:1111ee8bcba4 17397 {
AzureIoTClient 25:1101516ee67d 17398 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 17399 modified_destroy(*modified_handle);
AzureIoTClient 23:1111ee8bcba4 17400 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17401 break;
AzureIoTClient 23:1111ee8bcba4 17402 }
AzureIoTClient 23:1111ee8bcba4 17403 }
AzureIoTClient 23:1111ee8bcba4 17404
AzureIoTClient 23:1111ee8bcba4 17405 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 17406 }
AzureIoTClient 23:1111ee8bcba4 17407 }
AzureIoTClient 23:1111ee8bcba4 17408 /* message-annotations */
AzureIoTClient 23:1111ee8bcba4 17409 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 17410 {
AzureIoTClient 23:1111ee8bcba4 17411 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 23:1111ee8bcba4 17412 if (item_value == NULL)
AzureIoTClient 23:1111ee8bcba4 17413 {
AzureIoTClient 23:1111ee8bcba4 17414 /* do nothing */
AzureIoTClient 23:1111ee8bcba4 17415 }
AzureIoTClient 23:1111ee8bcba4 17416 else
AzureIoTClient 23:1111ee8bcba4 17417 {
AzureIoTClient 25:1101516ee67d 17418 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 25:1101516ee67d 17419 {
AzureIoTClient 25:1101516ee67d 17420 /* no error, field is not mandatory */
AzureIoTClient 25:1101516ee67d 17421 }
AzureIoTClient 25:1101516ee67d 17422 else
AzureIoTClient 25:1101516ee67d 17423 {
AzureIoTClient 25:1101516ee67d 17424 fields message_annotations;
AzureIoTClient 23:1111ee8bcba4 17425 if (amqpvalue_get_fields(item_value, &message_annotations) != 0)
AzureIoTClient 23:1111ee8bcba4 17426 {
AzureIoTClient 25:1101516ee67d 17427 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 17428 modified_destroy(*modified_handle);
AzureIoTClient 23:1111ee8bcba4 17429 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17430 break;
AzureIoTClient 23:1111ee8bcba4 17431 }
AzureIoTClient 23:1111ee8bcba4 17432 }
AzureIoTClient 23:1111ee8bcba4 17433
AzureIoTClient 23:1111ee8bcba4 17434 amqpvalue_destroy(item_value);
AzureIoTClient 23:1111ee8bcba4 17435 }
AzureIoTClient 23:1111ee8bcba4 17436 }
AzureIoTClient 23:1111ee8bcba4 17437
AzureIoTClient 23:1111ee8bcba4 17438 modified_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 23:1111ee8bcba4 17439
AzureIoTClient 23:1111ee8bcba4 17440 result = 0;
AzureIoTClient 23:1111ee8bcba4 17441 } while (0);
AzureIoTClient 23:1111ee8bcba4 17442 }
Azure.IoT Build 0:6ae2f7bca550 17443 }
Azure.IoT Build 0:6ae2f7bca550 17444 }
Azure.IoT Build 0:6ae2f7bca550 17445
Azure.IoT Build 0:6ae2f7bca550 17446 return result;
Azure.IoT Build 0:6ae2f7bca550 17447 }
Azure.IoT Build 0:6ae2f7bca550 17448
Azure.IoT Build 0:6ae2f7bca550 17449 int modified_get_delivery_failed(MODIFIED_HANDLE modified, bool* delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 17450 {
Azure.IoT Build 0:6ae2f7bca550 17451 int result;
Azure.IoT Build 0:6ae2f7bca550 17452
Azure.IoT Build 0:6ae2f7bca550 17453 if (modified == NULL)
Azure.IoT Build 0:6ae2f7bca550 17454 {
AzureIoTClient 19:000ab4e6a2c1 17455 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17456 }
Azure.IoT Build 0:6ae2f7bca550 17457 else
Azure.IoT Build 0:6ae2f7bca550 17458 {
AzureIoTClient 23:1111ee8bcba4 17459 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 17460 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 17461 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17462 {
AzureIoTClient 23:1111ee8bcba4 17463 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17464 }
AzureIoTClient 23:1111ee8bcba4 17465 else
AzureIoTClient 23:1111ee8bcba4 17466 {
AzureIoTClient 23:1111ee8bcba4 17467 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17468 {
AzureIoTClient 23:1111ee8bcba4 17469 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17470 }
AzureIoTClient 23:1111ee8bcba4 17471 else
AzureIoTClient 23:1111ee8bcba4 17472 {
AzureIoTClient 23:1111ee8bcba4 17473 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 0);
AzureIoTClient 23:1111ee8bcba4 17474 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 17475 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 17476 {
AzureIoTClient 23:1111ee8bcba4 17477 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17478 }
AzureIoTClient 23:1111ee8bcba4 17479 else
AzureIoTClient 23:1111ee8bcba4 17480 {
AzureIoTClient 23:1111ee8bcba4 17481 if (amqpvalue_get_boolean(item_value, delivery_failed_value) != 0)
AzureIoTClient 23:1111ee8bcba4 17482 {
AzureIoTClient 23:1111ee8bcba4 17483 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17484 }
AzureIoTClient 23:1111ee8bcba4 17485 else
AzureIoTClient 23:1111ee8bcba4 17486 {
AzureIoTClient 23:1111ee8bcba4 17487 result = 0;
AzureIoTClient 23:1111ee8bcba4 17488 }
AzureIoTClient 23:1111ee8bcba4 17489 }
AzureIoTClient 23:1111ee8bcba4 17490 }
Azure.IoT Build 0:6ae2f7bca550 17491 }
Azure.IoT Build 0:6ae2f7bca550 17492 }
Azure.IoT Build 0:6ae2f7bca550 17493
Azure.IoT Build 0:6ae2f7bca550 17494 return result;
Azure.IoT Build 0:6ae2f7bca550 17495 }
Azure.IoT Build 0:6ae2f7bca550 17496
Azure.IoT Build 0:6ae2f7bca550 17497 int modified_set_delivery_failed(MODIFIED_HANDLE modified, bool delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 17498 {
Azure.IoT Build 0:6ae2f7bca550 17499 int result;
Azure.IoT Build 0:6ae2f7bca550 17500
Azure.IoT Build 0:6ae2f7bca550 17501 if (modified == NULL)
Azure.IoT Build 0:6ae2f7bca550 17502 {
AzureIoTClient 19:000ab4e6a2c1 17503 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17504 }
Azure.IoT Build 0:6ae2f7bca550 17505 else
Azure.IoT Build 0:6ae2f7bca550 17506 {
Azure.IoT Build 0:6ae2f7bca550 17507 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
Azure.IoT Build 0:6ae2f7bca550 17508 AMQP_VALUE delivery_failed_amqp_value = amqpvalue_create_boolean(delivery_failed_value);
Azure.IoT Build 0:6ae2f7bca550 17509 if (delivery_failed_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17510 {
AzureIoTClient 19:000ab4e6a2c1 17511 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17512 }
Azure.IoT Build 0:6ae2f7bca550 17513 else
Azure.IoT Build 0:6ae2f7bca550 17514 {
Azure.IoT Build 0:6ae2f7bca550 17515 if (amqpvalue_set_composite_item(modified_instance->composite_value, 0, delivery_failed_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 17516 {
AzureIoTClient 19:000ab4e6a2c1 17517 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17518 }
Azure.IoT Build 0:6ae2f7bca550 17519 else
Azure.IoT Build 0:6ae2f7bca550 17520 {
Azure.IoT Build 0:6ae2f7bca550 17521 result = 0;
Azure.IoT Build 0:6ae2f7bca550 17522 }
Azure.IoT Build 0:6ae2f7bca550 17523
Azure.IoT Build 0:6ae2f7bca550 17524 amqpvalue_destroy(delivery_failed_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 17525 }
Azure.IoT Build 0:6ae2f7bca550 17526 }
Azure.IoT Build 0:6ae2f7bca550 17527
Azure.IoT Build 0:6ae2f7bca550 17528 return result;
Azure.IoT Build 0:6ae2f7bca550 17529 }
Azure.IoT Build 0:6ae2f7bca550 17530
Azure.IoT Build 0:6ae2f7bca550 17531 int modified_get_undeliverable_here(MODIFIED_HANDLE modified, bool* undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 17532 {
Azure.IoT Build 0:6ae2f7bca550 17533 int result;
Azure.IoT Build 0:6ae2f7bca550 17534
Azure.IoT Build 0:6ae2f7bca550 17535 if (modified == NULL)
Azure.IoT Build 0:6ae2f7bca550 17536 {
AzureIoTClient 19:000ab4e6a2c1 17537 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17538 }
Azure.IoT Build 0:6ae2f7bca550 17539 else
Azure.IoT Build 0:6ae2f7bca550 17540 {
AzureIoTClient 23:1111ee8bcba4 17541 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 17542 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 17543 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17544 {
AzureIoTClient 23:1111ee8bcba4 17545 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17546 }
AzureIoTClient 23:1111ee8bcba4 17547 else
AzureIoTClient 23:1111ee8bcba4 17548 {
AzureIoTClient 23:1111ee8bcba4 17549 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 17550 {
AzureIoTClient 23:1111ee8bcba4 17551 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17552 }
AzureIoTClient 23:1111ee8bcba4 17553 else
AzureIoTClient 23:1111ee8bcba4 17554 {
AzureIoTClient 23:1111ee8bcba4 17555 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 1);
AzureIoTClient 23:1111ee8bcba4 17556 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 17557 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 17558 {
AzureIoTClient 23:1111ee8bcba4 17559 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17560 }
AzureIoTClient 23:1111ee8bcba4 17561 else
AzureIoTClient 23:1111ee8bcba4 17562 {
AzureIoTClient 23:1111ee8bcba4 17563 if (amqpvalue_get_boolean(item_value, undeliverable_here_value) != 0)
AzureIoTClient 23:1111ee8bcba4 17564 {
AzureIoTClient 23:1111ee8bcba4 17565 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17566 }
AzureIoTClient 23:1111ee8bcba4 17567 else
AzureIoTClient 23:1111ee8bcba4 17568 {
AzureIoTClient 23:1111ee8bcba4 17569 result = 0;
AzureIoTClient 23:1111ee8bcba4 17570 }
AzureIoTClient 23:1111ee8bcba4 17571 }
AzureIoTClient 23:1111ee8bcba4 17572 }
Azure.IoT Build 0:6ae2f7bca550 17573 }
Azure.IoT Build 0:6ae2f7bca550 17574 }
Azure.IoT Build 0:6ae2f7bca550 17575
Azure.IoT Build 0:6ae2f7bca550 17576 return result;
Azure.IoT Build 0:6ae2f7bca550 17577 }
Azure.IoT Build 0:6ae2f7bca550 17578
Azure.IoT Build 0:6ae2f7bca550 17579 int modified_set_undeliverable_here(MODIFIED_HANDLE modified, bool undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 17580 {
Azure.IoT Build 0:6ae2f7bca550 17581 int result;
Azure.IoT Build 0:6ae2f7bca550 17582
Azure.IoT Build 0:6ae2f7bca550 17583 if (modified == NULL)
Azure.IoT Build 0:6ae2f7bca550 17584 {
AzureIoTClient 19:000ab4e6a2c1 17585 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17586 }
Azure.IoT Build 0:6ae2f7bca550 17587 else
Azure.IoT Build 0:6ae2f7bca550 17588 {
Azure.IoT Build 0:6ae2f7bca550 17589 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
Azure.IoT Build 0:6ae2f7bca550 17590 AMQP_VALUE undeliverable_here_amqp_value = amqpvalue_create_boolean(undeliverable_here_value);
Azure.IoT Build 0:6ae2f7bca550 17591 if (undeliverable_here_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17592 {
AzureIoTClient 19:000ab4e6a2c1 17593 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17594 }
Azure.IoT Build 0:6ae2f7bca550 17595 else
Azure.IoT Build 0:6ae2f7bca550 17596 {
Azure.IoT Build 0:6ae2f7bca550 17597 if (amqpvalue_set_composite_item(modified_instance->composite_value, 1, undeliverable_here_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 17598 {
AzureIoTClient 19:000ab4e6a2c1 17599 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17600 }
Azure.IoT Build 0:6ae2f7bca550 17601 else
Azure.IoT Build 0:6ae2f7bca550 17602 {
Azure.IoT Build 0:6ae2f7bca550 17603 result = 0;
Azure.IoT Build 0:6ae2f7bca550 17604 }
Azure.IoT Build 0:6ae2f7bca550 17605
Azure.IoT Build 0:6ae2f7bca550 17606 amqpvalue_destroy(undeliverable_here_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 17607 }
Azure.IoT Build 0:6ae2f7bca550 17608 }
Azure.IoT Build 0:6ae2f7bca550 17609
Azure.IoT Build 0:6ae2f7bca550 17610 return result;
Azure.IoT Build 0:6ae2f7bca550 17611 }
Azure.IoT Build 0:6ae2f7bca550 17612
Azure.IoT Build 0:6ae2f7bca550 17613 int modified_get_message_annotations(MODIFIED_HANDLE modified, fields* message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 17614 {
Azure.IoT Build 0:6ae2f7bca550 17615 int result;
Azure.IoT Build 0:6ae2f7bca550 17616
Azure.IoT Build 0:6ae2f7bca550 17617 if (modified == NULL)
Azure.IoT Build 0:6ae2f7bca550 17618 {
AzureIoTClient 19:000ab4e6a2c1 17619 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17620 }
Azure.IoT Build 0:6ae2f7bca550 17621 else
Azure.IoT Build 0:6ae2f7bca550 17622 {
AzureIoTClient 23:1111ee8bcba4 17623 uint32_t item_count;
Azure.IoT Build 0:6ae2f7bca550 17624 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 17625 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17626 {
AzureIoTClient 23:1111ee8bcba4 17627 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17628 }
AzureIoTClient 23:1111ee8bcba4 17629 else
AzureIoTClient 23:1111ee8bcba4 17630 {
AzureIoTClient 23:1111ee8bcba4 17631 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 17632 {
AzureIoTClient 23:1111ee8bcba4 17633 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17634 }
AzureIoTClient 23:1111ee8bcba4 17635 else
AzureIoTClient 23:1111ee8bcba4 17636 {
AzureIoTClient 23:1111ee8bcba4 17637 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 2);
AzureIoTClient 23:1111ee8bcba4 17638 if ((item_value == NULL) ||
AzureIoTClient 23:1111ee8bcba4 17639 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 23:1111ee8bcba4 17640 {
AzureIoTClient 23:1111ee8bcba4 17641 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17642 }
AzureIoTClient 23:1111ee8bcba4 17643 else
AzureIoTClient 23:1111ee8bcba4 17644 {
AzureIoTClient 23:1111ee8bcba4 17645 if (amqpvalue_get_fields(item_value, message_annotations_value) != 0)
AzureIoTClient 23:1111ee8bcba4 17646 {
AzureIoTClient 23:1111ee8bcba4 17647 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17648 }
AzureIoTClient 23:1111ee8bcba4 17649 else
AzureIoTClient 23:1111ee8bcba4 17650 {
AzureIoTClient 23:1111ee8bcba4 17651 result = 0;
AzureIoTClient 23:1111ee8bcba4 17652 }
AzureIoTClient 23:1111ee8bcba4 17653 }
AzureIoTClient 23:1111ee8bcba4 17654 }
Azure.IoT Build 0:6ae2f7bca550 17655 }
Azure.IoT Build 0:6ae2f7bca550 17656 }
Azure.IoT Build 0:6ae2f7bca550 17657
Azure.IoT Build 0:6ae2f7bca550 17658 return result;
Azure.IoT Build 0:6ae2f7bca550 17659 }
Azure.IoT Build 0:6ae2f7bca550 17660
Azure.IoT Build 0:6ae2f7bca550 17661 int modified_set_message_annotations(MODIFIED_HANDLE modified, fields message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 17662 {
Azure.IoT Build 0:6ae2f7bca550 17663 int result;
Azure.IoT Build 0:6ae2f7bca550 17664
Azure.IoT Build 0:6ae2f7bca550 17665 if (modified == NULL)
Azure.IoT Build 0:6ae2f7bca550 17666 {
AzureIoTClient 19:000ab4e6a2c1 17667 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17668 }
Azure.IoT Build 0:6ae2f7bca550 17669 else
Azure.IoT Build 0:6ae2f7bca550 17670 {
Azure.IoT Build 0:6ae2f7bca550 17671 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
Azure.IoT Build 0:6ae2f7bca550 17672 AMQP_VALUE message_annotations_amqp_value = amqpvalue_create_fields(message_annotations_value);
Azure.IoT Build 0:6ae2f7bca550 17673 if (message_annotations_amqp_value == NULL)
Azure.IoT Build 0:6ae2f7bca550 17674 {
AzureIoTClient 19:000ab4e6a2c1 17675 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17676 }
Azure.IoT Build 0:6ae2f7bca550 17677 else
Azure.IoT Build 0:6ae2f7bca550 17678 {
Azure.IoT Build 0:6ae2f7bca550 17679 if (amqpvalue_set_composite_item(modified_instance->composite_value, 2, message_annotations_amqp_value) != 0)
Azure.IoT Build 0:6ae2f7bca550 17680 {
AzureIoTClient 19:000ab4e6a2c1 17681 result = __FAILURE__;
Azure.IoT Build 0:6ae2f7bca550 17682 }
Azure.IoT Build 0:6ae2f7bca550 17683 else
Azure.IoT Build 0:6ae2f7bca550 17684 {
Azure.IoT Build 0:6ae2f7bca550 17685 result = 0;
Azure.IoT Build 0:6ae2f7bca550 17686 }
Azure.IoT Build 0:6ae2f7bca550 17687
Azure.IoT Build 0:6ae2f7bca550 17688 amqpvalue_destroy(message_annotations_amqp_value);
Azure.IoT Build 0:6ae2f7bca550 17689 }
Azure.IoT Build 0:6ae2f7bca550 17690 }
Azure.IoT Build 0:6ae2f7bca550 17691
Azure.IoT Build 0:6ae2f7bca550 17692 return result;
Azure.IoT Build 0:6ae2f7bca550 17693 }
Azure.IoT Build 0:6ae2f7bca550 17694
Azure.IoT Build 0:6ae2f7bca550 17695