A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Committer:
AzureIoTClient
Date:
Thu Oct 04 09:16:13 2018 -0700
Revision:
47:365a93fdb5bb
Parent:
43:4c1e4e94cdd3
1.2.10

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
AzureIoTClient 43:4c1e4e94cdd3 6 // This file is generated. DO NOT EDIT it manually.
AzureIoTClient 43:4c1e4e94cdd3 7 // The generator that produces it is located at /uamqp_generator/uamqp_generator.sln
AzureIoTClient 43:4c1e4e94cdd3 8
Azure.IoT Build 0:6ae2f7bca550 9 #include <stdlib.h>
AzureIoTClient 19:000ab4e6a2c1 10 #include "azure_c_shared_utility/optimize_size.h"
AzureIoTClient 21:f9c433d8e6ca 11 #include "azure_c_shared_utility/gballoc.h"
Azure.IoT Build 0:6ae2f7bca550 12 #include "azure_uamqp_c/amqpvalue.h"
Azure.IoT Build 0:6ae2f7bca550 13 #include "azure_uamqp_c/amqp_definitions.h"
Azure.IoT Build 0:6ae2f7bca550 14 #include <stdlib.h>
Azure.IoT Build 0:6ae2f7bca550 15 #include <stdbool.h>
Azure.IoT Build 0:6ae2f7bca550 16
Azure.IoT Build 0:6ae2f7bca550 17 /* role */
Azure.IoT Build 0:6ae2f7bca550 18
Azure.IoT Build 0:6ae2f7bca550 19 AMQP_VALUE amqpvalue_create_role(role value)
Azure.IoT Build 0:6ae2f7bca550 20 {
AzureIoTClient 28:add19eb7defa 21 return amqpvalue_create_boolean(value);
Azure.IoT Build 0:6ae2f7bca550 22 }
Azure.IoT Build 0:6ae2f7bca550 23
Azure.IoT Build 0:6ae2f7bca550 24 /* sender-settle-mode */
Azure.IoT Build 0:6ae2f7bca550 25
Azure.IoT Build 0:6ae2f7bca550 26 AMQP_VALUE amqpvalue_create_sender_settle_mode(sender_settle_mode value)
Azure.IoT Build 0:6ae2f7bca550 27 {
AzureIoTClient 28:add19eb7defa 28 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 29 }
Azure.IoT Build 0:6ae2f7bca550 30
Azure.IoT Build 0:6ae2f7bca550 31 /* receiver-settle-mode */
Azure.IoT Build 0:6ae2f7bca550 32
Azure.IoT Build 0:6ae2f7bca550 33 AMQP_VALUE amqpvalue_create_receiver_settle_mode(receiver_settle_mode value)
Azure.IoT Build 0:6ae2f7bca550 34 {
AzureIoTClient 28:add19eb7defa 35 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 36 }
Azure.IoT Build 0:6ae2f7bca550 37
Azure.IoT Build 0:6ae2f7bca550 38 /* handle */
Azure.IoT Build 0:6ae2f7bca550 39
Azure.IoT Build 0:6ae2f7bca550 40 AMQP_VALUE amqpvalue_create_handle(handle value)
Azure.IoT Build 0:6ae2f7bca550 41 {
AzureIoTClient 28:add19eb7defa 42 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 43 }
Azure.IoT Build 0:6ae2f7bca550 44
Azure.IoT Build 0:6ae2f7bca550 45 /* seconds */
Azure.IoT Build 0:6ae2f7bca550 46
Azure.IoT Build 0:6ae2f7bca550 47 AMQP_VALUE amqpvalue_create_seconds(seconds value)
Azure.IoT Build 0:6ae2f7bca550 48 {
AzureIoTClient 28:add19eb7defa 49 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 50 }
Azure.IoT Build 0:6ae2f7bca550 51
Azure.IoT Build 0:6ae2f7bca550 52 /* milliseconds */
Azure.IoT Build 0:6ae2f7bca550 53
Azure.IoT Build 0:6ae2f7bca550 54 AMQP_VALUE amqpvalue_create_milliseconds(milliseconds value)
Azure.IoT Build 0:6ae2f7bca550 55 {
AzureIoTClient 28:add19eb7defa 56 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 57 }
Azure.IoT Build 0:6ae2f7bca550 58
Azure.IoT Build 0:6ae2f7bca550 59 /* delivery-tag */
Azure.IoT Build 0:6ae2f7bca550 60
Azure.IoT Build 0:6ae2f7bca550 61 AMQP_VALUE amqpvalue_create_delivery_tag(delivery_tag value)
Azure.IoT Build 0:6ae2f7bca550 62 {
AzureIoTClient 28:add19eb7defa 63 return amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 64 }
Azure.IoT Build 0:6ae2f7bca550 65
Azure.IoT Build 0:6ae2f7bca550 66 /* sequence-no */
Azure.IoT Build 0:6ae2f7bca550 67
Azure.IoT Build 0:6ae2f7bca550 68 AMQP_VALUE amqpvalue_create_sequence_no(sequence_no value)
Azure.IoT Build 0:6ae2f7bca550 69 {
AzureIoTClient 28:add19eb7defa 70 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 71 }
Azure.IoT Build 0:6ae2f7bca550 72
Azure.IoT Build 0:6ae2f7bca550 73 /* delivery-number */
Azure.IoT Build 0:6ae2f7bca550 74
Azure.IoT Build 0:6ae2f7bca550 75 AMQP_VALUE amqpvalue_create_delivery_number(delivery_number value)
Azure.IoT Build 0:6ae2f7bca550 76 {
AzureIoTClient 28:add19eb7defa 77 return amqpvalue_create_sequence_no(value);
Azure.IoT Build 0:6ae2f7bca550 78 }
Azure.IoT Build 0:6ae2f7bca550 79
Azure.IoT Build 0:6ae2f7bca550 80 /* transfer-number */
Azure.IoT Build 0:6ae2f7bca550 81
Azure.IoT Build 0:6ae2f7bca550 82 AMQP_VALUE amqpvalue_create_transfer_number(transfer_number value)
Azure.IoT Build 0:6ae2f7bca550 83 {
AzureIoTClient 28:add19eb7defa 84 return amqpvalue_create_sequence_no(value);
Azure.IoT Build 0:6ae2f7bca550 85 }
Azure.IoT Build 0:6ae2f7bca550 86
Azure.IoT Build 0:6ae2f7bca550 87 /* message-format */
Azure.IoT Build 0:6ae2f7bca550 88
Azure.IoT Build 0:6ae2f7bca550 89 AMQP_VALUE amqpvalue_create_message_format(message_format value)
Azure.IoT Build 0:6ae2f7bca550 90 {
AzureIoTClient 28:add19eb7defa 91 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 92 }
Azure.IoT Build 0:6ae2f7bca550 93
Azure.IoT Build 0:6ae2f7bca550 94 /* ietf-language-tag */
Azure.IoT Build 0:6ae2f7bca550 95
Azure.IoT Build 0:6ae2f7bca550 96 AMQP_VALUE amqpvalue_create_ietf_language_tag(ietf_language_tag value)
Azure.IoT Build 0:6ae2f7bca550 97 {
AzureIoTClient 28:add19eb7defa 98 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 99 }
Azure.IoT Build 0:6ae2f7bca550 100
Azure.IoT Build 0:6ae2f7bca550 101 /* fields */
Azure.IoT Build 0:6ae2f7bca550 102
Azure.IoT Build 0:6ae2f7bca550 103 AMQP_VALUE amqpvalue_create_fields(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 104 {
AzureIoTClient 28:add19eb7defa 105 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 106 }
Azure.IoT Build 0:6ae2f7bca550 107
Azure.IoT Build 0:6ae2f7bca550 108 /* error */
Azure.IoT Build 0:6ae2f7bca550 109
Azure.IoT Build 0:6ae2f7bca550 110 typedef struct ERROR_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 111 {
AzureIoTClient 28:add19eb7defa 112 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 113 } ERROR_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 114
Azure.IoT Build 0:6ae2f7bca550 115 static ERROR_HANDLE error_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 116 {
AzureIoTClient 28:add19eb7defa 117 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
AzureIoTClient 28:add19eb7defa 118 if (error_instance != NULL)
AzureIoTClient 28:add19eb7defa 119 {
AzureIoTClient 28:add19eb7defa 120 error_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 121 }
AzureIoTClient 28:add19eb7defa 122
AzureIoTClient 28:add19eb7defa 123 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 124 }
Azure.IoT Build 0:6ae2f7bca550 125
Azure.IoT Build 0:6ae2f7bca550 126 ERROR_HANDLE error_create(const char* condition_value)
Azure.IoT Build 0:6ae2f7bca550 127 {
AzureIoTClient 28:add19eb7defa 128 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
AzureIoTClient 28:add19eb7defa 129 if (error_instance != NULL)
AzureIoTClient 28:add19eb7defa 130 {
AzureIoTClient 28:add19eb7defa 131 error_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(29);
AzureIoTClient 28:add19eb7defa 132 if (error_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 133 {
AzureIoTClient 28:add19eb7defa 134 free(error_instance);
AzureIoTClient 28:add19eb7defa 135 error_instance = NULL;
AzureIoTClient 28:add19eb7defa 136 }
AzureIoTClient 28:add19eb7defa 137 else
AzureIoTClient 28:add19eb7defa 138 {
AzureIoTClient 28:add19eb7defa 139 AMQP_VALUE condition_amqp_value;
AzureIoTClient 28:add19eb7defa 140 int result = 0;
AzureIoTClient 28:add19eb7defa 141
AzureIoTClient 28:add19eb7defa 142 condition_amqp_value = amqpvalue_create_symbol(condition_value);
AzureIoTClient 28:add19eb7defa 143 if ((result == 0) && (amqpvalue_set_composite_item(error_instance->composite_value, 0, condition_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 144 {
AzureIoTClient 28:add19eb7defa 145 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 146 }
AzureIoTClient 28:add19eb7defa 147
AzureIoTClient 28:add19eb7defa 148 amqpvalue_destroy(condition_amqp_value);
AzureIoTClient 28:add19eb7defa 149 }
AzureIoTClient 28:add19eb7defa 150 }
AzureIoTClient 28:add19eb7defa 151
AzureIoTClient 28:add19eb7defa 152 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 153 }
Azure.IoT Build 0:6ae2f7bca550 154
Azure.IoT Build 0:6ae2f7bca550 155 ERROR_HANDLE error_clone(ERROR_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 156 {
AzureIoTClient 28:add19eb7defa 157 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
AzureIoTClient 28:add19eb7defa 158 if (error_instance != NULL)
AzureIoTClient 28:add19eb7defa 159 {
AzureIoTClient 28:add19eb7defa 160 error_instance->composite_value = amqpvalue_clone(((ERROR_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 161 if (error_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 162 {
AzureIoTClient 28:add19eb7defa 163 free(error_instance);
AzureIoTClient 28:add19eb7defa 164 error_instance = NULL;
AzureIoTClient 28:add19eb7defa 165 }
AzureIoTClient 28:add19eb7defa 166 }
AzureIoTClient 28:add19eb7defa 167
AzureIoTClient 28:add19eb7defa 168 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 169 }
Azure.IoT Build 0:6ae2f7bca550 170
Azure.IoT Build 0:6ae2f7bca550 171 void error_destroy(ERROR_HANDLE error)
Azure.IoT Build 0:6ae2f7bca550 172 {
AzureIoTClient 28:add19eb7defa 173 if (error != NULL)
AzureIoTClient 28:add19eb7defa 174 {
AzureIoTClient 28:add19eb7defa 175 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 176 amqpvalue_destroy(error_instance->composite_value);
AzureIoTClient 28:add19eb7defa 177 free(error_instance);
AzureIoTClient 28:add19eb7defa 178 }
Azure.IoT Build 0:6ae2f7bca550 179 }
Azure.IoT Build 0:6ae2f7bca550 180
Azure.IoT Build 0:6ae2f7bca550 181 AMQP_VALUE amqpvalue_create_error(ERROR_HANDLE error)
Azure.IoT Build 0:6ae2f7bca550 182 {
AzureIoTClient 28:add19eb7defa 183 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 184
AzureIoTClient 28:add19eb7defa 185 if (error == NULL)
AzureIoTClient 28:add19eb7defa 186 {
AzureIoTClient 28:add19eb7defa 187 result = NULL;
AzureIoTClient 28:add19eb7defa 188 }
AzureIoTClient 28:add19eb7defa 189 else
AzureIoTClient 28:add19eb7defa 190 {
AzureIoTClient 28:add19eb7defa 191 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 192 result = amqpvalue_clone(error_instance->composite_value);
AzureIoTClient 28:add19eb7defa 193 }
AzureIoTClient 28:add19eb7defa 194
AzureIoTClient 28:add19eb7defa 195 return result;
Azure.IoT Build 0:6ae2f7bca550 196 }
Azure.IoT Build 0:6ae2f7bca550 197
Azure.IoT Build 0:6ae2f7bca550 198 bool is_error_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 199 {
AzureIoTClient 28:add19eb7defa 200 bool result;
AzureIoTClient 28:add19eb7defa 201
AzureIoTClient 28:add19eb7defa 202 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 203 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 204 (descriptor_ulong == 29))
AzureIoTClient 28:add19eb7defa 205 {
AzureIoTClient 28:add19eb7defa 206 result = true;
AzureIoTClient 28:add19eb7defa 207 }
AzureIoTClient 28:add19eb7defa 208 else
AzureIoTClient 28:add19eb7defa 209 {
AzureIoTClient 28:add19eb7defa 210 result = false;
AzureIoTClient 28:add19eb7defa 211 }
AzureIoTClient 28:add19eb7defa 212
AzureIoTClient 28:add19eb7defa 213 return result;
Azure.IoT Build 0:6ae2f7bca550 214 }
Azure.IoT Build 0:6ae2f7bca550 215
Azure.IoT Build 0:6ae2f7bca550 216
Azure.IoT Build 0:6ae2f7bca550 217 int amqpvalue_get_error(AMQP_VALUE value, ERROR_HANDLE* error_handle)
Azure.IoT Build 0:6ae2f7bca550 218 {
AzureIoTClient 28:add19eb7defa 219 int result;
AzureIoTClient 28:add19eb7defa 220 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error_create_internal();
AzureIoTClient 28:add19eb7defa 221 *error_handle = error_instance;
AzureIoTClient 28:add19eb7defa 222 if (*error_handle == NULL)
AzureIoTClient 28:add19eb7defa 223 {
AzureIoTClient 28:add19eb7defa 224 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 225 }
AzureIoTClient 28:add19eb7defa 226 else
AzureIoTClient 28:add19eb7defa 227 {
AzureIoTClient 28:add19eb7defa 228 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 229 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 230 {
AzureIoTClient 28:add19eb7defa 231 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 232 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 233 }
AzureIoTClient 28:add19eb7defa 234 else
AzureIoTClient 28:add19eb7defa 235 {
AzureIoTClient 23:1111ee8bcba4 236 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 237 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 238 {
AzureIoTClient 23:1111ee8bcba4 239 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 240 }
AzureIoTClient 23:1111ee8bcba4 241 else
AzureIoTClient 23:1111ee8bcba4 242 {
AzureIoTClient 28:add19eb7defa 243 do
AzureIoTClient 28:add19eb7defa 244 {
AzureIoTClient 28:add19eb7defa 245 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 246 /* condition */
AzureIoTClient 28:add19eb7defa 247 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 248 {
AzureIoTClient 23:1111ee8bcba4 249 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 250 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 251 {
AzureIoTClient 28:add19eb7defa 252 {
AzureIoTClient 28:add19eb7defa 253 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 254 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 255 break;
AzureIoTClient 28:add19eb7defa 256 }
AzureIoTClient 28:add19eb7defa 257 }
AzureIoTClient 28:add19eb7defa 258 else
AzureIoTClient 28:add19eb7defa 259 {
AzureIoTClient 28:add19eb7defa 260 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 261 {
AzureIoTClient 28:add19eb7defa 262 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 263 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 264 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 265 break;
AzureIoTClient 28:add19eb7defa 266 }
AzureIoTClient 28:add19eb7defa 267 else
AzureIoTClient 28:add19eb7defa 268 {
AzureIoTClient 28:add19eb7defa 269 const char* condition;
AzureIoTClient 28:add19eb7defa 270 if (amqpvalue_get_symbol(item_value, &condition) != 0)
AzureIoTClient 28:add19eb7defa 271 {
AzureIoTClient 28:add19eb7defa 272 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 273 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 274 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 275 break;
AzureIoTClient 28:add19eb7defa 276 }
AzureIoTClient 28:add19eb7defa 277 }
AzureIoTClient 28:add19eb7defa 278
AzureIoTClient 28:add19eb7defa 279 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 280 }
AzureIoTClient 28:add19eb7defa 281 }
AzureIoTClient 28:add19eb7defa 282 else
AzureIoTClient 28:add19eb7defa 283 {
AzureIoTClient 28:add19eb7defa 284 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 285 }
AzureIoTClient 28:add19eb7defa 286 /* description */
AzureIoTClient 28:add19eb7defa 287 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 288 {
AzureIoTClient 23:1111ee8bcba4 289 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 290 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 291 {
AzureIoTClient 28:add19eb7defa 292 /* do nothing */
AzureIoTClient 28:add19eb7defa 293 }
AzureIoTClient 28:add19eb7defa 294 else
AzureIoTClient 28:add19eb7defa 295 {
AzureIoTClient 28:add19eb7defa 296 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 297 {
AzureIoTClient 28:add19eb7defa 298 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 299 }
AzureIoTClient 28:add19eb7defa 300 else
AzureIoTClient 28:add19eb7defa 301 {
AzureIoTClient 28:add19eb7defa 302 const char* description;
AzureIoTClient 28:add19eb7defa 303 if (amqpvalue_get_string(item_value, &description) != 0)
AzureIoTClient 28:add19eb7defa 304 {
AzureIoTClient 28:add19eb7defa 305 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 306 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 307 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 308 break;
AzureIoTClient 28:add19eb7defa 309 }
AzureIoTClient 28:add19eb7defa 310 }
AzureIoTClient 28:add19eb7defa 311
AzureIoTClient 28:add19eb7defa 312 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 313 }
AzureIoTClient 28:add19eb7defa 314 }
AzureIoTClient 28:add19eb7defa 315 /* info */
AzureIoTClient 28:add19eb7defa 316 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 317 {
AzureIoTClient 23:1111ee8bcba4 318 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 319 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 320 {
AzureIoTClient 28:add19eb7defa 321 /* do nothing */
AzureIoTClient 28:add19eb7defa 322 }
AzureIoTClient 28:add19eb7defa 323 else
AzureIoTClient 28:add19eb7defa 324 {
AzureIoTClient 28:add19eb7defa 325 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 326 {
AzureIoTClient 28:add19eb7defa 327 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 328 }
AzureIoTClient 28:add19eb7defa 329 else
AzureIoTClient 28:add19eb7defa 330 {
AzureIoTClient 28:add19eb7defa 331 fields info;
AzureIoTClient 28:add19eb7defa 332 if (amqpvalue_get_fields(item_value, &info) != 0)
AzureIoTClient 28:add19eb7defa 333 {
AzureIoTClient 28:add19eb7defa 334 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 335 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 336 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 337 break;
AzureIoTClient 28:add19eb7defa 338 }
AzureIoTClient 28:add19eb7defa 339 }
AzureIoTClient 28:add19eb7defa 340
AzureIoTClient 28:add19eb7defa 341 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 342 }
AzureIoTClient 28:add19eb7defa 343 }
AzureIoTClient 28:add19eb7defa 344
AzureIoTClient 28:add19eb7defa 345 error_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 346
AzureIoTClient 28:add19eb7defa 347 result = 0;
AzureIoTClient 28:add19eb7defa 348 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 349 }
AzureIoTClient 28:add19eb7defa 350 }
AzureIoTClient 28:add19eb7defa 351 }
AzureIoTClient 28:add19eb7defa 352
AzureIoTClient 28:add19eb7defa 353 return result;
Azure.IoT Build 0:6ae2f7bca550 354 }
Azure.IoT Build 0:6ae2f7bca550 355
Azure.IoT Build 0:6ae2f7bca550 356 int error_get_condition(ERROR_HANDLE error, const char** condition_value)
Azure.IoT Build 0:6ae2f7bca550 357 {
AzureIoTClient 28:add19eb7defa 358 int result;
AzureIoTClient 28:add19eb7defa 359
AzureIoTClient 28:add19eb7defa 360 if (error == NULL)
AzureIoTClient 28:add19eb7defa 361 {
AzureIoTClient 28:add19eb7defa 362 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 363 }
AzureIoTClient 28:add19eb7defa 364 else
AzureIoTClient 28:add19eb7defa 365 {
AzureIoTClient 28:add19eb7defa 366 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 367 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 368 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 369 {
AzureIoTClient 23:1111ee8bcba4 370 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 371 }
AzureIoTClient 23:1111ee8bcba4 372 else
AzureIoTClient 23:1111ee8bcba4 373 {
AzureIoTClient 23:1111ee8bcba4 374 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 375 {
AzureIoTClient 28:add19eb7defa 376 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 377 }
AzureIoTClient 28:add19eb7defa 378 else
AzureIoTClient 28:add19eb7defa 379 {
AzureIoTClient 28:add19eb7defa 380 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 381 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 382 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 383 {
AzureIoTClient 28:add19eb7defa 384 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 385 }
AzureIoTClient 28:add19eb7defa 386 else
AzureIoTClient 28:add19eb7defa 387 {
AzureIoTClient 43:4c1e4e94cdd3 388 int get_single_value_result = amqpvalue_get_symbol(item_value, condition_value);
AzureIoTClient 43:4c1e4e94cdd3 389 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 390 {
AzureIoTClient 28:add19eb7defa 391 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 392 }
AzureIoTClient 28:add19eb7defa 393 else
AzureIoTClient 28:add19eb7defa 394 {
AzureIoTClient 28:add19eb7defa 395 result = 0;
AzureIoTClient 28:add19eb7defa 396 }
AzureIoTClient 28:add19eb7defa 397 }
AzureIoTClient 28:add19eb7defa 398 }
AzureIoTClient 28:add19eb7defa 399 }
AzureIoTClient 28:add19eb7defa 400 }
AzureIoTClient 28:add19eb7defa 401
AzureIoTClient 28:add19eb7defa 402 return result;
Azure.IoT Build 0:6ae2f7bca550 403 }
Azure.IoT Build 0:6ae2f7bca550 404
Azure.IoT Build 0:6ae2f7bca550 405 int error_set_condition(ERROR_HANDLE error, const char* condition_value)
Azure.IoT Build 0:6ae2f7bca550 406 {
AzureIoTClient 28:add19eb7defa 407 int result;
AzureIoTClient 28:add19eb7defa 408
AzureIoTClient 28:add19eb7defa 409 if (error == NULL)
AzureIoTClient 28:add19eb7defa 410 {
AzureIoTClient 28:add19eb7defa 411 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 412 }
AzureIoTClient 28:add19eb7defa 413 else
AzureIoTClient 28:add19eb7defa 414 {
AzureIoTClient 28:add19eb7defa 415 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 416 AMQP_VALUE condition_amqp_value = amqpvalue_create_symbol(condition_value);
AzureIoTClient 28:add19eb7defa 417 if (condition_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 418 {
AzureIoTClient 28:add19eb7defa 419 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 420 }
AzureIoTClient 28:add19eb7defa 421 else
AzureIoTClient 28:add19eb7defa 422 {
AzureIoTClient 28:add19eb7defa 423 if (amqpvalue_set_composite_item(error_instance->composite_value, 0, condition_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 424 {
AzureIoTClient 28:add19eb7defa 425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 426 }
AzureIoTClient 28:add19eb7defa 427 else
AzureIoTClient 28:add19eb7defa 428 {
AzureIoTClient 28:add19eb7defa 429 result = 0;
AzureIoTClient 28:add19eb7defa 430 }
AzureIoTClient 28:add19eb7defa 431
AzureIoTClient 28:add19eb7defa 432 amqpvalue_destroy(condition_amqp_value);
AzureIoTClient 28:add19eb7defa 433 }
AzureIoTClient 28:add19eb7defa 434 }
AzureIoTClient 28:add19eb7defa 435
AzureIoTClient 28:add19eb7defa 436 return result;
Azure.IoT Build 0:6ae2f7bca550 437 }
Azure.IoT Build 0:6ae2f7bca550 438
Azure.IoT Build 0:6ae2f7bca550 439 int error_get_description(ERROR_HANDLE error, const char** description_value)
Azure.IoT Build 0:6ae2f7bca550 440 {
AzureIoTClient 28:add19eb7defa 441 int result;
AzureIoTClient 28:add19eb7defa 442
AzureIoTClient 28:add19eb7defa 443 if (error == NULL)
AzureIoTClient 28:add19eb7defa 444 {
AzureIoTClient 28:add19eb7defa 445 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 446 }
AzureIoTClient 28:add19eb7defa 447 else
AzureIoTClient 28:add19eb7defa 448 {
AzureIoTClient 28:add19eb7defa 449 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 450 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 451 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 452 {
AzureIoTClient 23:1111ee8bcba4 453 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 454 }
AzureIoTClient 23:1111ee8bcba4 455 else
AzureIoTClient 23:1111ee8bcba4 456 {
AzureIoTClient 23:1111ee8bcba4 457 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 458 {
AzureIoTClient 28:add19eb7defa 459 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 460 }
AzureIoTClient 28:add19eb7defa 461 else
AzureIoTClient 28:add19eb7defa 462 {
AzureIoTClient 28:add19eb7defa 463 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 464 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 465 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 466 {
AzureIoTClient 28:add19eb7defa 467 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 468 }
AzureIoTClient 28:add19eb7defa 469 else
AzureIoTClient 28:add19eb7defa 470 {
AzureIoTClient 43:4c1e4e94cdd3 471 int get_single_value_result = amqpvalue_get_string(item_value, description_value);
AzureIoTClient 43:4c1e4e94cdd3 472 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 473 {
AzureIoTClient 28:add19eb7defa 474 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 475 }
AzureIoTClient 28:add19eb7defa 476 else
AzureIoTClient 28:add19eb7defa 477 {
AzureIoTClient 28:add19eb7defa 478 result = 0;
AzureIoTClient 28:add19eb7defa 479 }
AzureIoTClient 28:add19eb7defa 480 }
AzureIoTClient 28:add19eb7defa 481 }
AzureIoTClient 28:add19eb7defa 482 }
AzureIoTClient 28:add19eb7defa 483 }
AzureIoTClient 28:add19eb7defa 484
AzureIoTClient 28:add19eb7defa 485 return result;
Azure.IoT Build 0:6ae2f7bca550 486 }
Azure.IoT Build 0:6ae2f7bca550 487
Azure.IoT Build 0:6ae2f7bca550 488 int error_set_description(ERROR_HANDLE error, const char* description_value)
Azure.IoT Build 0:6ae2f7bca550 489 {
AzureIoTClient 28:add19eb7defa 490 int result;
AzureIoTClient 28:add19eb7defa 491
AzureIoTClient 28:add19eb7defa 492 if (error == NULL)
AzureIoTClient 28:add19eb7defa 493 {
AzureIoTClient 28:add19eb7defa 494 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 495 }
AzureIoTClient 28:add19eb7defa 496 else
AzureIoTClient 28:add19eb7defa 497 {
AzureIoTClient 28:add19eb7defa 498 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 499 AMQP_VALUE description_amqp_value = amqpvalue_create_string(description_value);
AzureIoTClient 28:add19eb7defa 500 if (description_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 501 {
AzureIoTClient 28:add19eb7defa 502 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 503 }
AzureIoTClient 28:add19eb7defa 504 else
AzureIoTClient 28:add19eb7defa 505 {
AzureIoTClient 28:add19eb7defa 506 if (amqpvalue_set_composite_item(error_instance->composite_value, 1, description_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 507 {
AzureIoTClient 28:add19eb7defa 508 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 509 }
AzureIoTClient 28:add19eb7defa 510 else
AzureIoTClient 28:add19eb7defa 511 {
AzureIoTClient 28:add19eb7defa 512 result = 0;
AzureIoTClient 28:add19eb7defa 513 }
AzureIoTClient 28:add19eb7defa 514
AzureIoTClient 28:add19eb7defa 515 amqpvalue_destroy(description_amqp_value);
AzureIoTClient 28:add19eb7defa 516 }
AzureIoTClient 28:add19eb7defa 517 }
AzureIoTClient 28:add19eb7defa 518
AzureIoTClient 28:add19eb7defa 519 return result;
Azure.IoT Build 0:6ae2f7bca550 520 }
Azure.IoT Build 0:6ae2f7bca550 521
Azure.IoT Build 0:6ae2f7bca550 522 int error_get_info(ERROR_HANDLE error, fields* info_value)
Azure.IoT Build 0:6ae2f7bca550 523 {
AzureIoTClient 28:add19eb7defa 524 int result;
AzureIoTClient 28:add19eb7defa 525
AzureIoTClient 28:add19eb7defa 526 if (error == NULL)
AzureIoTClient 28:add19eb7defa 527 {
AzureIoTClient 28:add19eb7defa 528 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 529 }
AzureIoTClient 28:add19eb7defa 530 else
AzureIoTClient 28:add19eb7defa 531 {
AzureIoTClient 28:add19eb7defa 532 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 533 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 534 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 535 {
AzureIoTClient 23:1111ee8bcba4 536 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 537 }
AzureIoTClient 23:1111ee8bcba4 538 else
AzureIoTClient 23:1111ee8bcba4 539 {
AzureIoTClient 23:1111ee8bcba4 540 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 541 {
AzureIoTClient 28:add19eb7defa 542 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 543 }
AzureIoTClient 28:add19eb7defa 544 else
AzureIoTClient 28:add19eb7defa 545 {
AzureIoTClient 28:add19eb7defa 546 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 547 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 548 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 549 {
AzureIoTClient 28:add19eb7defa 550 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 551 }
AzureIoTClient 28:add19eb7defa 552 else
AzureIoTClient 28:add19eb7defa 553 {
AzureIoTClient 43:4c1e4e94cdd3 554 int get_single_value_result = amqpvalue_get_fields(item_value, info_value);
AzureIoTClient 43:4c1e4e94cdd3 555 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 556 {
AzureIoTClient 28:add19eb7defa 557 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 558 }
AzureIoTClient 28:add19eb7defa 559 else
AzureIoTClient 28:add19eb7defa 560 {
AzureIoTClient 28:add19eb7defa 561 result = 0;
AzureIoTClient 28:add19eb7defa 562 }
AzureIoTClient 28:add19eb7defa 563 }
AzureIoTClient 28:add19eb7defa 564 }
AzureIoTClient 28:add19eb7defa 565 }
AzureIoTClient 28:add19eb7defa 566 }
AzureIoTClient 28:add19eb7defa 567
AzureIoTClient 28:add19eb7defa 568 return result;
Azure.IoT Build 0:6ae2f7bca550 569 }
Azure.IoT Build 0:6ae2f7bca550 570
Azure.IoT Build 0:6ae2f7bca550 571 int error_set_info(ERROR_HANDLE error, fields info_value)
Azure.IoT Build 0:6ae2f7bca550 572 {
AzureIoTClient 28:add19eb7defa 573 int result;
AzureIoTClient 28:add19eb7defa 574
AzureIoTClient 28:add19eb7defa 575 if (error == NULL)
AzureIoTClient 28:add19eb7defa 576 {
AzureIoTClient 28:add19eb7defa 577 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 578 }
AzureIoTClient 28:add19eb7defa 579 else
AzureIoTClient 28:add19eb7defa 580 {
AzureIoTClient 28:add19eb7defa 581 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 582 AMQP_VALUE info_amqp_value = amqpvalue_create_fields(info_value);
AzureIoTClient 28:add19eb7defa 583 if (info_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 584 {
AzureIoTClient 28:add19eb7defa 585 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 586 }
AzureIoTClient 28:add19eb7defa 587 else
AzureIoTClient 28:add19eb7defa 588 {
AzureIoTClient 28:add19eb7defa 589 if (amqpvalue_set_composite_item(error_instance->composite_value, 2, info_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 590 {
AzureIoTClient 28:add19eb7defa 591 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 592 }
AzureIoTClient 28:add19eb7defa 593 else
AzureIoTClient 28:add19eb7defa 594 {
AzureIoTClient 28:add19eb7defa 595 result = 0;
AzureIoTClient 28:add19eb7defa 596 }
AzureIoTClient 28:add19eb7defa 597
AzureIoTClient 28:add19eb7defa 598 amqpvalue_destroy(info_amqp_value);
AzureIoTClient 28:add19eb7defa 599 }
AzureIoTClient 28:add19eb7defa 600 }
AzureIoTClient 28:add19eb7defa 601
AzureIoTClient 28:add19eb7defa 602 return result;
Azure.IoT Build 0:6ae2f7bca550 603 }
Azure.IoT Build 0:6ae2f7bca550 604
Azure.IoT Build 0:6ae2f7bca550 605
Azure.IoT Build 0:6ae2f7bca550 606 /* amqp-error */
Azure.IoT Build 0:6ae2f7bca550 607
Azure.IoT Build 0:6ae2f7bca550 608 AMQP_VALUE amqpvalue_create_amqp_error(amqp_error value)
Azure.IoT Build 0:6ae2f7bca550 609 {
AzureIoTClient 28:add19eb7defa 610 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 611 }
Azure.IoT Build 0:6ae2f7bca550 612
Azure.IoT Build 0:6ae2f7bca550 613 /* connection-error */
Azure.IoT Build 0:6ae2f7bca550 614
Azure.IoT Build 0:6ae2f7bca550 615 AMQP_VALUE amqpvalue_create_connection_error(connection_error value)
Azure.IoT Build 0:6ae2f7bca550 616 {
AzureIoTClient 28:add19eb7defa 617 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 618 }
Azure.IoT Build 0:6ae2f7bca550 619
Azure.IoT Build 0:6ae2f7bca550 620 /* session-error */
Azure.IoT Build 0:6ae2f7bca550 621
Azure.IoT Build 0:6ae2f7bca550 622 AMQP_VALUE amqpvalue_create_session_error(session_error value)
Azure.IoT Build 0:6ae2f7bca550 623 {
AzureIoTClient 28:add19eb7defa 624 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 625 }
Azure.IoT Build 0:6ae2f7bca550 626
Azure.IoT Build 0:6ae2f7bca550 627 /* link-error */
Azure.IoT Build 0:6ae2f7bca550 628
Azure.IoT Build 0:6ae2f7bca550 629 AMQP_VALUE amqpvalue_create_link_error(link_error value)
Azure.IoT Build 0:6ae2f7bca550 630 {
AzureIoTClient 28:add19eb7defa 631 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 632 }
Azure.IoT Build 0:6ae2f7bca550 633
Azure.IoT Build 0:6ae2f7bca550 634 /* open */
Azure.IoT Build 0:6ae2f7bca550 635
Azure.IoT Build 0:6ae2f7bca550 636 typedef struct OPEN_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 637 {
AzureIoTClient 28:add19eb7defa 638 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 639 } OPEN_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 640
Azure.IoT Build 0:6ae2f7bca550 641 static OPEN_HANDLE open_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 642 {
AzureIoTClient 28:add19eb7defa 643 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
AzureIoTClient 28:add19eb7defa 644 if (open_instance != NULL)
AzureIoTClient 28:add19eb7defa 645 {
AzureIoTClient 28:add19eb7defa 646 open_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 647 }
AzureIoTClient 28:add19eb7defa 648
AzureIoTClient 28:add19eb7defa 649 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 650 }
Azure.IoT Build 0:6ae2f7bca550 651
Azure.IoT Build 0:6ae2f7bca550 652 OPEN_HANDLE open_create(const char* container_id_value)
Azure.IoT Build 0:6ae2f7bca550 653 {
AzureIoTClient 28:add19eb7defa 654 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
AzureIoTClient 28:add19eb7defa 655 if (open_instance != NULL)
AzureIoTClient 28:add19eb7defa 656 {
AzureIoTClient 28:add19eb7defa 657 open_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(16);
AzureIoTClient 28:add19eb7defa 658 if (open_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 659 {
AzureIoTClient 28:add19eb7defa 660 free(open_instance);
AzureIoTClient 28:add19eb7defa 661 open_instance = NULL;
AzureIoTClient 28:add19eb7defa 662 }
AzureIoTClient 28:add19eb7defa 663 else
AzureIoTClient 28:add19eb7defa 664 {
AzureIoTClient 28:add19eb7defa 665 AMQP_VALUE container_id_amqp_value;
AzureIoTClient 28:add19eb7defa 666 int result = 0;
AzureIoTClient 28:add19eb7defa 667
AzureIoTClient 28:add19eb7defa 668 container_id_amqp_value = amqpvalue_create_string(container_id_value);
AzureIoTClient 28:add19eb7defa 669 if ((result == 0) && (amqpvalue_set_composite_item(open_instance->composite_value, 0, container_id_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 670 {
AzureIoTClient 28:add19eb7defa 671 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 672 }
AzureIoTClient 28:add19eb7defa 673
AzureIoTClient 28:add19eb7defa 674 amqpvalue_destroy(container_id_amqp_value);
AzureIoTClient 28:add19eb7defa 675 }
AzureIoTClient 28:add19eb7defa 676 }
AzureIoTClient 28:add19eb7defa 677
AzureIoTClient 28:add19eb7defa 678 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 679 }
Azure.IoT Build 0:6ae2f7bca550 680
Azure.IoT Build 0:6ae2f7bca550 681 OPEN_HANDLE open_clone(OPEN_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 682 {
AzureIoTClient 28:add19eb7defa 683 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
AzureIoTClient 28:add19eb7defa 684 if (open_instance != NULL)
AzureIoTClient 28:add19eb7defa 685 {
AzureIoTClient 28:add19eb7defa 686 open_instance->composite_value = amqpvalue_clone(((OPEN_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 687 if (open_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 688 {
AzureIoTClient 28:add19eb7defa 689 free(open_instance);
AzureIoTClient 28:add19eb7defa 690 open_instance = NULL;
AzureIoTClient 28:add19eb7defa 691 }
AzureIoTClient 28:add19eb7defa 692 }
AzureIoTClient 28:add19eb7defa 693
AzureIoTClient 28:add19eb7defa 694 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 695 }
Azure.IoT Build 0:6ae2f7bca550 696
Azure.IoT Build 0:6ae2f7bca550 697 void open_destroy(OPEN_HANDLE open)
Azure.IoT Build 0:6ae2f7bca550 698 {
AzureIoTClient 28:add19eb7defa 699 if (open != NULL)
AzureIoTClient 28:add19eb7defa 700 {
AzureIoTClient 28:add19eb7defa 701 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 702 amqpvalue_destroy(open_instance->composite_value);
AzureIoTClient 28:add19eb7defa 703 free(open_instance);
AzureIoTClient 28:add19eb7defa 704 }
Azure.IoT Build 0:6ae2f7bca550 705 }
Azure.IoT Build 0:6ae2f7bca550 706
Azure.IoT Build 0:6ae2f7bca550 707 AMQP_VALUE amqpvalue_create_open(OPEN_HANDLE open)
Azure.IoT Build 0:6ae2f7bca550 708 {
AzureIoTClient 28:add19eb7defa 709 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 710
AzureIoTClient 28:add19eb7defa 711 if (open == NULL)
AzureIoTClient 28:add19eb7defa 712 {
AzureIoTClient 28:add19eb7defa 713 result = NULL;
AzureIoTClient 28:add19eb7defa 714 }
AzureIoTClient 28:add19eb7defa 715 else
AzureIoTClient 28:add19eb7defa 716 {
AzureIoTClient 28:add19eb7defa 717 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 718 result = amqpvalue_clone(open_instance->composite_value);
AzureIoTClient 28:add19eb7defa 719 }
AzureIoTClient 28:add19eb7defa 720
AzureIoTClient 28:add19eb7defa 721 return result;
Azure.IoT Build 0:6ae2f7bca550 722 }
Azure.IoT Build 0:6ae2f7bca550 723
Azure.IoT Build 0:6ae2f7bca550 724 bool is_open_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 725 {
AzureIoTClient 28:add19eb7defa 726 bool result;
AzureIoTClient 28:add19eb7defa 727
AzureIoTClient 28:add19eb7defa 728 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 729 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 730 (descriptor_ulong == 16))
AzureIoTClient 28:add19eb7defa 731 {
AzureIoTClient 28:add19eb7defa 732 result = true;
AzureIoTClient 28:add19eb7defa 733 }
AzureIoTClient 28:add19eb7defa 734 else
AzureIoTClient 28:add19eb7defa 735 {
AzureIoTClient 28:add19eb7defa 736 result = false;
AzureIoTClient 28:add19eb7defa 737 }
AzureIoTClient 28:add19eb7defa 738
AzureIoTClient 28:add19eb7defa 739 return result;
Azure.IoT Build 0:6ae2f7bca550 740 }
Azure.IoT Build 0:6ae2f7bca550 741
Azure.IoT Build 0:6ae2f7bca550 742
Azure.IoT Build 0:6ae2f7bca550 743 int amqpvalue_get_open(AMQP_VALUE value, OPEN_HANDLE* open_handle)
Azure.IoT Build 0:6ae2f7bca550 744 {
AzureIoTClient 28:add19eb7defa 745 int result;
AzureIoTClient 28:add19eb7defa 746 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open_create_internal();
AzureIoTClient 28:add19eb7defa 747 *open_handle = open_instance;
AzureIoTClient 28:add19eb7defa 748 if (*open_handle == NULL)
AzureIoTClient 28:add19eb7defa 749 {
AzureIoTClient 28:add19eb7defa 750 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 751 }
AzureIoTClient 28:add19eb7defa 752 else
AzureIoTClient 28:add19eb7defa 753 {
AzureIoTClient 28:add19eb7defa 754 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 755 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 756 {
AzureIoTClient 28:add19eb7defa 757 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 758 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 759 }
AzureIoTClient 28:add19eb7defa 760 else
AzureIoTClient 28:add19eb7defa 761 {
AzureIoTClient 23:1111ee8bcba4 762 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 763 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 764 {
AzureIoTClient 23:1111ee8bcba4 765 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 766 }
AzureIoTClient 23:1111ee8bcba4 767 else
AzureIoTClient 23:1111ee8bcba4 768 {
AzureIoTClient 28:add19eb7defa 769 do
AzureIoTClient 28:add19eb7defa 770 {
AzureIoTClient 28:add19eb7defa 771 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 772 /* container-id */
AzureIoTClient 28:add19eb7defa 773 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 774 {
AzureIoTClient 23:1111ee8bcba4 775 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 776 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 777 {
AzureIoTClient 28:add19eb7defa 778 {
AzureIoTClient 28:add19eb7defa 779 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 780 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 781 break;
AzureIoTClient 28:add19eb7defa 782 }
AzureIoTClient 28:add19eb7defa 783 }
AzureIoTClient 28:add19eb7defa 784 else
AzureIoTClient 28:add19eb7defa 785 {
AzureIoTClient 28:add19eb7defa 786 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 787 {
AzureIoTClient 28:add19eb7defa 788 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 789 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 790 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 791 break;
AzureIoTClient 28:add19eb7defa 792 }
AzureIoTClient 28:add19eb7defa 793 else
AzureIoTClient 28:add19eb7defa 794 {
AzureIoTClient 28:add19eb7defa 795 const char* container_id;
AzureIoTClient 28:add19eb7defa 796 if (amqpvalue_get_string(item_value, &container_id) != 0)
AzureIoTClient 28:add19eb7defa 797 {
AzureIoTClient 28:add19eb7defa 798 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 799 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 800 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 801 break;
AzureIoTClient 28:add19eb7defa 802 }
AzureIoTClient 28:add19eb7defa 803 }
AzureIoTClient 28:add19eb7defa 804
AzureIoTClient 28:add19eb7defa 805 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 806 }
AzureIoTClient 28:add19eb7defa 807 }
AzureIoTClient 28:add19eb7defa 808 else
AzureIoTClient 28:add19eb7defa 809 {
AzureIoTClient 28:add19eb7defa 810 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 811 }
AzureIoTClient 28:add19eb7defa 812 /* hostname */
AzureIoTClient 28:add19eb7defa 813 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 814 {
AzureIoTClient 23:1111ee8bcba4 815 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 816 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 817 {
AzureIoTClient 28:add19eb7defa 818 /* do nothing */
AzureIoTClient 28:add19eb7defa 819 }
AzureIoTClient 28:add19eb7defa 820 else
AzureIoTClient 28:add19eb7defa 821 {
AzureIoTClient 28:add19eb7defa 822 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 823 {
AzureIoTClient 28:add19eb7defa 824 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 825 }
AzureIoTClient 28:add19eb7defa 826 else
AzureIoTClient 28:add19eb7defa 827 {
AzureIoTClient 28:add19eb7defa 828 const char* hostname;
AzureIoTClient 28:add19eb7defa 829 if (amqpvalue_get_string(item_value, &hostname) != 0)
AzureIoTClient 28:add19eb7defa 830 {
AzureIoTClient 28:add19eb7defa 831 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 832 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 833 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 834 break;
AzureIoTClient 28:add19eb7defa 835 }
AzureIoTClient 28:add19eb7defa 836 }
AzureIoTClient 28:add19eb7defa 837
AzureIoTClient 28:add19eb7defa 838 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 839 }
AzureIoTClient 28:add19eb7defa 840 }
AzureIoTClient 28:add19eb7defa 841 /* max-frame-size */
AzureIoTClient 28:add19eb7defa 842 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 843 {
AzureIoTClient 23:1111ee8bcba4 844 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 845 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 846 {
AzureIoTClient 28:add19eb7defa 847 /* do nothing */
AzureIoTClient 28:add19eb7defa 848 }
AzureIoTClient 28:add19eb7defa 849 else
AzureIoTClient 28:add19eb7defa 850 {
AzureIoTClient 28:add19eb7defa 851 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 852 {
AzureIoTClient 28:add19eb7defa 853 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 854 }
AzureIoTClient 28:add19eb7defa 855 else
AzureIoTClient 28:add19eb7defa 856 {
AzureIoTClient 28:add19eb7defa 857 uint32_t max_frame_size;
AzureIoTClient 28:add19eb7defa 858 if (amqpvalue_get_uint(item_value, &max_frame_size) != 0)
AzureIoTClient 28:add19eb7defa 859 {
AzureIoTClient 28:add19eb7defa 860 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 861 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 862 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 863 break;
AzureIoTClient 28:add19eb7defa 864 }
AzureIoTClient 28:add19eb7defa 865 }
AzureIoTClient 28:add19eb7defa 866
AzureIoTClient 28:add19eb7defa 867 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 868 }
AzureIoTClient 28:add19eb7defa 869 }
AzureIoTClient 28:add19eb7defa 870 /* channel-max */
AzureIoTClient 28:add19eb7defa 871 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 872 {
AzureIoTClient 23:1111ee8bcba4 873 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 874 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 875 {
AzureIoTClient 28:add19eb7defa 876 /* do nothing */
AzureIoTClient 28:add19eb7defa 877 }
AzureIoTClient 28:add19eb7defa 878 else
AzureIoTClient 28:add19eb7defa 879 {
AzureIoTClient 28:add19eb7defa 880 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 881 {
AzureIoTClient 28:add19eb7defa 882 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 883 }
AzureIoTClient 28:add19eb7defa 884 else
AzureIoTClient 28:add19eb7defa 885 {
AzureIoTClient 28:add19eb7defa 886 uint16_t channel_max;
AzureIoTClient 28:add19eb7defa 887 if (amqpvalue_get_ushort(item_value, &channel_max) != 0)
AzureIoTClient 28:add19eb7defa 888 {
AzureIoTClient 28:add19eb7defa 889 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 890 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 891 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 892 break;
AzureIoTClient 28:add19eb7defa 893 }
AzureIoTClient 28:add19eb7defa 894 }
AzureIoTClient 28:add19eb7defa 895
AzureIoTClient 28:add19eb7defa 896 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 897 }
AzureIoTClient 28:add19eb7defa 898 }
AzureIoTClient 28:add19eb7defa 899 /* idle-time-out */
AzureIoTClient 28:add19eb7defa 900 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 901 {
AzureIoTClient 23:1111ee8bcba4 902 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 903 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 904 {
AzureIoTClient 28:add19eb7defa 905 /* do nothing */
AzureIoTClient 28:add19eb7defa 906 }
AzureIoTClient 28:add19eb7defa 907 else
AzureIoTClient 28:add19eb7defa 908 {
AzureIoTClient 28:add19eb7defa 909 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 910 {
AzureIoTClient 28:add19eb7defa 911 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 912 }
AzureIoTClient 28:add19eb7defa 913 else
AzureIoTClient 28:add19eb7defa 914 {
AzureIoTClient 28:add19eb7defa 915 milliseconds idle_time_out;
AzureIoTClient 28:add19eb7defa 916 if (amqpvalue_get_milliseconds(item_value, &idle_time_out) != 0)
AzureIoTClient 28:add19eb7defa 917 {
AzureIoTClient 28:add19eb7defa 918 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 919 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 920 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 921 break;
AzureIoTClient 28:add19eb7defa 922 }
AzureIoTClient 28:add19eb7defa 923 }
AzureIoTClient 28:add19eb7defa 924
AzureIoTClient 28:add19eb7defa 925 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 926 }
AzureIoTClient 28:add19eb7defa 927 }
AzureIoTClient 28:add19eb7defa 928 /* outgoing-locales */
AzureIoTClient 28:add19eb7defa 929 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 930 {
AzureIoTClient 23:1111ee8bcba4 931 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 932 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 933 {
AzureIoTClient 28:add19eb7defa 934 /* do nothing */
AzureIoTClient 28:add19eb7defa 935 }
AzureIoTClient 28:add19eb7defa 936 else
AzureIoTClient 28:add19eb7defa 937 {
AzureIoTClient 28:add19eb7defa 938 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 939 {
AzureIoTClient 28:add19eb7defa 940 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 941 }
AzureIoTClient 28:add19eb7defa 942 else
AzureIoTClient 28:add19eb7defa 943 {
AzureIoTClient 28:add19eb7defa 944 ietf_language_tag outgoing_locales = NULL;
AzureIoTClient 28:add19eb7defa 945 AMQP_VALUE outgoing_locales_array;
AzureIoTClient 28:add19eb7defa 946 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &outgoing_locales_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 947 (amqpvalue_get_ietf_language_tag(item_value, &outgoing_locales) != 0))
AzureIoTClient 28:add19eb7defa 948 {
AzureIoTClient 28:add19eb7defa 949 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 950 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 951 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 952 break;
AzureIoTClient 28:add19eb7defa 953 }
AzureIoTClient 28:add19eb7defa 954 }
AzureIoTClient 28:add19eb7defa 955
AzureIoTClient 28:add19eb7defa 956 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 957 }
AzureIoTClient 28:add19eb7defa 958 }
AzureIoTClient 28:add19eb7defa 959 /* incoming-locales */
AzureIoTClient 28:add19eb7defa 960 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 961 {
AzureIoTClient 23:1111ee8bcba4 962 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 963 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 964 {
AzureIoTClient 28:add19eb7defa 965 /* do nothing */
AzureIoTClient 28:add19eb7defa 966 }
AzureIoTClient 28:add19eb7defa 967 else
AzureIoTClient 28:add19eb7defa 968 {
AzureIoTClient 28:add19eb7defa 969 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 970 {
AzureIoTClient 28:add19eb7defa 971 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 972 }
AzureIoTClient 28:add19eb7defa 973 else
AzureIoTClient 28:add19eb7defa 974 {
AzureIoTClient 28:add19eb7defa 975 ietf_language_tag incoming_locales = NULL;
AzureIoTClient 28:add19eb7defa 976 AMQP_VALUE incoming_locales_array;
AzureIoTClient 28:add19eb7defa 977 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &incoming_locales_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 978 (amqpvalue_get_ietf_language_tag(item_value, &incoming_locales) != 0))
AzureIoTClient 28:add19eb7defa 979 {
AzureIoTClient 28:add19eb7defa 980 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 981 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 982 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 983 break;
AzureIoTClient 28:add19eb7defa 984 }
AzureIoTClient 28:add19eb7defa 985 }
AzureIoTClient 28:add19eb7defa 986
AzureIoTClient 28:add19eb7defa 987 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 988 }
AzureIoTClient 28:add19eb7defa 989 }
AzureIoTClient 28:add19eb7defa 990 /* offered-capabilities */
AzureIoTClient 28:add19eb7defa 991 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 992 {
AzureIoTClient 23:1111ee8bcba4 993 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 994 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 995 {
AzureIoTClient 28:add19eb7defa 996 /* do nothing */
AzureIoTClient 28:add19eb7defa 997 }
AzureIoTClient 28:add19eb7defa 998 else
AzureIoTClient 28:add19eb7defa 999 {
AzureIoTClient 28:add19eb7defa 1000 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 1001 {
AzureIoTClient 28:add19eb7defa 1002 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 1003 }
AzureIoTClient 28:add19eb7defa 1004 else
AzureIoTClient 28:add19eb7defa 1005 {
AzureIoTClient 28:add19eb7defa 1006 const char* offered_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 1007 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 28:add19eb7defa 1008 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &offered_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 1009 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 1010 {
AzureIoTClient 28:add19eb7defa 1011 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1012 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 1013 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1014 break;
AzureIoTClient 28:add19eb7defa 1015 }
AzureIoTClient 28:add19eb7defa 1016 }
AzureIoTClient 28:add19eb7defa 1017
AzureIoTClient 28:add19eb7defa 1018 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1019 }
AzureIoTClient 28:add19eb7defa 1020 }
AzureIoTClient 28:add19eb7defa 1021 /* desired-capabilities */
AzureIoTClient 28:add19eb7defa 1022 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 1023 {
AzureIoTClient 23:1111ee8bcba4 1024 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 1025 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 1026 {
AzureIoTClient 28:add19eb7defa 1027 /* do nothing */
AzureIoTClient 28:add19eb7defa 1028 }
AzureIoTClient 28:add19eb7defa 1029 else
AzureIoTClient 28:add19eb7defa 1030 {
AzureIoTClient 28:add19eb7defa 1031 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 1032 {
AzureIoTClient 28:add19eb7defa 1033 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 1034 }
AzureIoTClient 28:add19eb7defa 1035 else
AzureIoTClient 28:add19eb7defa 1036 {
AzureIoTClient 28:add19eb7defa 1037 const char* desired_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 1038 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 28:add19eb7defa 1039 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &desired_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 1040 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 1041 {
AzureIoTClient 28:add19eb7defa 1042 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1043 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 1044 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1045 break;
AzureIoTClient 28:add19eb7defa 1046 }
AzureIoTClient 28:add19eb7defa 1047 }
AzureIoTClient 28:add19eb7defa 1048
AzureIoTClient 28:add19eb7defa 1049 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1050 }
AzureIoTClient 28:add19eb7defa 1051 }
AzureIoTClient 28:add19eb7defa 1052 /* properties */
AzureIoTClient 28:add19eb7defa 1053 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 1054 {
AzureIoTClient 23:1111ee8bcba4 1055 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 1056 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 1057 {
AzureIoTClient 28:add19eb7defa 1058 /* do nothing */
AzureIoTClient 28:add19eb7defa 1059 }
AzureIoTClient 28:add19eb7defa 1060 else
AzureIoTClient 28:add19eb7defa 1061 {
AzureIoTClient 28:add19eb7defa 1062 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 1063 {
AzureIoTClient 28:add19eb7defa 1064 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 1065 }
AzureIoTClient 28:add19eb7defa 1066 else
AzureIoTClient 28:add19eb7defa 1067 {
AzureIoTClient 28:add19eb7defa 1068 fields properties;
AzureIoTClient 28:add19eb7defa 1069 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 1070 {
AzureIoTClient 28:add19eb7defa 1071 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1072 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 1073 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1074 break;
AzureIoTClient 28:add19eb7defa 1075 }
AzureIoTClient 28:add19eb7defa 1076 }
AzureIoTClient 28:add19eb7defa 1077
AzureIoTClient 28:add19eb7defa 1078 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1079 }
AzureIoTClient 28:add19eb7defa 1080 }
AzureIoTClient 28:add19eb7defa 1081
AzureIoTClient 28:add19eb7defa 1082 open_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 1083
AzureIoTClient 28:add19eb7defa 1084 result = 0;
AzureIoTClient 28:add19eb7defa 1085 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 1086 }
AzureIoTClient 28:add19eb7defa 1087 }
AzureIoTClient 28:add19eb7defa 1088 }
AzureIoTClient 28:add19eb7defa 1089
AzureIoTClient 28:add19eb7defa 1090 return result;
Azure.IoT Build 0:6ae2f7bca550 1091 }
Azure.IoT Build 0:6ae2f7bca550 1092
Azure.IoT Build 0:6ae2f7bca550 1093 int open_get_container_id(OPEN_HANDLE open, const char** container_id_value)
Azure.IoT Build 0:6ae2f7bca550 1094 {
AzureIoTClient 28:add19eb7defa 1095 int result;
AzureIoTClient 28:add19eb7defa 1096
AzureIoTClient 28:add19eb7defa 1097 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1098 {
AzureIoTClient 28:add19eb7defa 1099 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1100 }
AzureIoTClient 28:add19eb7defa 1101 else
AzureIoTClient 28:add19eb7defa 1102 {
AzureIoTClient 28:add19eb7defa 1103 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1104 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1105 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1106 {
AzureIoTClient 23:1111ee8bcba4 1107 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1108 }
AzureIoTClient 23:1111ee8bcba4 1109 else
AzureIoTClient 23:1111ee8bcba4 1110 {
AzureIoTClient 23:1111ee8bcba4 1111 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 1112 {
AzureIoTClient 28:add19eb7defa 1113 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1114 }
AzureIoTClient 28:add19eb7defa 1115 else
AzureIoTClient 28:add19eb7defa 1116 {
AzureIoTClient 28:add19eb7defa 1117 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 1118 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1119 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1120 {
AzureIoTClient 28:add19eb7defa 1121 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1122 }
AzureIoTClient 28:add19eb7defa 1123 else
AzureIoTClient 28:add19eb7defa 1124 {
AzureIoTClient 43:4c1e4e94cdd3 1125 int get_single_value_result = amqpvalue_get_string(item_value, container_id_value);
AzureIoTClient 43:4c1e4e94cdd3 1126 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 1127 {
AzureIoTClient 28:add19eb7defa 1128 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1129 }
AzureIoTClient 28:add19eb7defa 1130 else
AzureIoTClient 28:add19eb7defa 1131 {
AzureIoTClient 28:add19eb7defa 1132 result = 0;
AzureIoTClient 28:add19eb7defa 1133 }
AzureIoTClient 28:add19eb7defa 1134 }
AzureIoTClient 28:add19eb7defa 1135 }
AzureIoTClient 28:add19eb7defa 1136 }
AzureIoTClient 28:add19eb7defa 1137 }
AzureIoTClient 28:add19eb7defa 1138
AzureIoTClient 28:add19eb7defa 1139 return result;
Azure.IoT Build 0:6ae2f7bca550 1140 }
Azure.IoT Build 0:6ae2f7bca550 1141
Azure.IoT Build 0:6ae2f7bca550 1142 int open_set_container_id(OPEN_HANDLE open, const char* container_id_value)
Azure.IoT Build 0:6ae2f7bca550 1143 {
AzureIoTClient 28:add19eb7defa 1144 int result;
AzureIoTClient 28:add19eb7defa 1145
AzureIoTClient 28:add19eb7defa 1146 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1147 {
AzureIoTClient 28:add19eb7defa 1148 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1149 }
AzureIoTClient 28:add19eb7defa 1150 else
AzureIoTClient 28:add19eb7defa 1151 {
AzureIoTClient 28:add19eb7defa 1152 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1153 AMQP_VALUE container_id_amqp_value = amqpvalue_create_string(container_id_value);
AzureIoTClient 28:add19eb7defa 1154 if (container_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1155 {
AzureIoTClient 28:add19eb7defa 1156 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1157 }
AzureIoTClient 28:add19eb7defa 1158 else
AzureIoTClient 28:add19eb7defa 1159 {
AzureIoTClient 28:add19eb7defa 1160 if (amqpvalue_set_composite_item(open_instance->composite_value, 0, container_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1161 {
AzureIoTClient 28:add19eb7defa 1162 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1163 }
AzureIoTClient 28:add19eb7defa 1164 else
AzureIoTClient 28:add19eb7defa 1165 {
AzureIoTClient 28:add19eb7defa 1166 result = 0;
AzureIoTClient 28:add19eb7defa 1167 }
AzureIoTClient 28:add19eb7defa 1168
AzureIoTClient 28:add19eb7defa 1169 amqpvalue_destroy(container_id_amqp_value);
AzureIoTClient 28:add19eb7defa 1170 }
AzureIoTClient 28:add19eb7defa 1171 }
AzureIoTClient 28:add19eb7defa 1172
AzureIoTClient 28:add19eb7defa 1173 return result;
Azure.IoT Build 0:6ae2f7bca550 1174 }
Azure.IoT Build 0:6ae2f7bca550 1175
Azure.IoT Build 0:6ae2f7bca550 1176 int open_get_hostname(OPEN_HANDLE open, const char** hostname_value)
Azure.IoT Build 0:6ae2f7bca550 1177 {
AzureIoTClient 28:add19eb7defa 1178 int result;
AzureIoTClient 28:add19eb7defa 1179
AzureIoTClient 28:add19eb7defa 1180 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1181 {
AzureIoTClient 28:add19eb7defa 1182 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1183 }
AzureIoTClient 28:add19eb7defa 1184 else
AzureIoTClient 28:add19eb7defa 1185 {
AzureIoTClient 28:add19eb7defa 1186 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1187 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1188 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1189 {
AzureIoTClient 23:1111ee8bcba4 1190 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1191 }
AzureIoTClient 23:1111ee8bcba4 1192 else
AzureIoTClient 23:1111ee8bcba4 1193 {
AzureIoTClient 23:1111ee8bcba4 1194 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 1195 {
AzureIoTClient 28:add19eb7defa 1196 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1197 }
AzureIoTClient 28:add19eb7defa 1198 else
AzureIoTClient 28:add19eb7defa 1199 {
AzureIoTClient 28:add19eb7defa 1200 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 1201 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1202 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1203 {
AzureIoTClient 28:add19eb7defa 1204 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1205 }
AzureIoTClient 28:add19eb7defa 1206 else
AzureIoTClient 28:add19eb7defa 1207 {
AzureIoTClient 43:4c1e4e94cdd3 1208 int get_single_value_result = amqpvalue_get_string(item_value, hostname_value);
AzureIoTClient 43:4c1e4e94cdd3 1209 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 1210 {
AzureIoTClient 28:add19eb7defa 1211 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1212 }
AzureIoTClient 28:add19eb7defa 1213 else
AzureIoTClient 28:add19eb7defa 1214 {
AzureIoTClient 28:add19eb7defa 1215 result = 0;
AzureIoTClient 28:add19eb7defa 1216 }
AzureIoTClient 28:add19eb7defa 1217 }
AzureIoTClient 28:add19eb7defa 1218 }
AzureIoTClient 28:add19eb7defa 1219 }
AzureIoTClient 28:add19eb7defa 1220 }
AzureIoTClient 28:add19eb7defa 1221
AzureIoTClient 28:add19eb7defa 1222 return result;
Azure.IoT Build 0:6ae2f7bca550 1223 }
Azure.IoT Build 0:6ae2f7bca550 1224
Azure.IoT Build 0:6ae2f7bca550 1225 int open_set_hostname(OPEN_HANDLE open, const char* hostname_value)
Azure.IoT Build 0:6ae2f7bca550 1226 {
AzureIoTClient 28:add19eb7defa 1227 int result;
AzureIoTClient 28:add19eb7defa 1228
AzureIoTClient 28:add19eb7defa 1229 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1230 {
AzureIoTClient 28:add19eb7defa 1231 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1232 }
AzureIoTClient 28:add19eb7defa 1233 else
AzureIoTClient 28:add19eb7defa 1234 {
AzureIoTClient 28:add19eb7defa 1235 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1236 AMQP_VALUE hostname_amqp_value = amqpvalue_create_string(hostname_value);
AzureIoTClient 28:add19eb7defa 1237 if (hostname_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1238 {
AzureIoTClient 28:add19eb7defa 1239 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1240 }
AzureIoTClient 28:add19eb7defa 1241 else
AzureIoTClient 28:add19eb7defa 1242 {
AzureIoTClient 28:add19eb7defa 1243 if (amqpvalue_set_composite_item(open_instance->composite_value, 1, hostname_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1244 {
AzureIoTClient 28:add19eb7defa 1245 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1246 }
AzureIoTClient 28:add19eb7defa 1247 else
AzureIoTClient 28:add19eb7defa 1248 {
AzureIoTClient 28:add19eb7defa 1249 result = 0;
AzureIoTClient 28:add19eb7defa 1250 }
AzureIoTClient 28:add19eb7defa 1251
AzureIoTClient 28:add19eb7defa 1252 amqpvalue_destroy(hostname_amqp_value);
AzureIoTClient 28:add19eb7defa 1253 }
AzureIoTClient 28:add19eb7defa 1254 }
AzureIoTClient 28:add19eb7defa 1255
AzureIoTClient 28:add19eb7defa 1256 return result;
Azure.IoT Build 0:6ae2f7bca550 1257 }
Azure.IoT Build 0:6ae2f7bca550 1258
Azure.IoT Build 0:6ae2f7bca550 1259 int open_get_max_frame_size(OPEN_HANDLE open, uint32_t* max_frame_size_value)
Azure.IoT Build 0:6ae2f7bca550 1260 {
AzureIoTClient 28:add19eb7defa 1261 int result;
AzureIoTClient 28:add19eb7defa 1262
AzureIoTClient 28:add19eb7defa 1263 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1264 {
AzureIoTClient 28:add19eb7defa 1265 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1266 }
AzureIoTClient 28:add19eb7defa 1267 else
AzureIoTClient 28:add19eb7defa 1268 {
AzureIoTClient 28:add19eb7defa 1269 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1270 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1271 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1272 {
AzureIoTClient 23:1111ee8bcba4 1273 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1274 }
AzureIoTClient 23:1111ee8bcba4 1275 else
AzureIoTClient 23:1111ee8bcba4 1276 {
AzureIoTClient 23:1111ee8bcba4 1277 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 1278 {
AzureIoTClient 28:add19eb7defa 1279 *max_frame_size_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 1280 result = 0;
AzureIoTClient 28:add19eb7defa 1281 }
AzureIoTClient 28:add19eb7defa 1282 else
AzureIoTClient 28:add19eb7defa 1283 {
AzureIoTClient 28:add19eb7defa 1284 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 1285 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1286 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1287 {
AzureIoTClient 28:add19eb7defa 1288 *max_frame_size_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 1289 result = 0;
AzureIoTClient 28:add19eb7defa 1290 }
AzureIoTClient 28:add19eb7defa 1291 else
AzureIoTClient 28:add19eb7defa 1292 {
AzureIoTClient 43:4c1e4e94cdd3 1293 int get_single_value_result = amqpvalue_get_uint(item_value, max_frame_size_value);
AzureIoTClient 43:4c1e4e94cdd3 1294 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 1295 {
AzureIoTClient 23:1111ee8bcba4 1296 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 1297 {
AzureIoTClient 28:add19eb7defa 1298 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1299 }
AzureIoTClient 28:add19eb7defa 1300 else
AzureIoTClient 28:add19eb7defa 1301 {
AzureIoTClient 28:add19eb7defa 1302 *max_frame_size_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 1303 result = 0;
AzureIoTClient 23:1111ee8bcba4 1304 }
AzureIoTClient 28:add19eb7defa 1305 }
AzureIoTClient 28:add19eb7defa 1306 else
AzureIoTClient 28:add19eb7defa 1307 {
AzureIoTClient 28:add19eb7defa 1308 result = 0;
AzureIoTClient 28:add19eb7defa 1309 }
AzureIoTClient 28:add19eb7defa 1310 }
AzureIoTClient 28:add19eb7defa 1311 }
AzureIoTClient 28:add19eb7defa 1312 }
AzureIoTClient 28:add19eb7defa 1313 }
AzureIoTClient 28:add19eb7defa 1314
AzureIoTClient 28:add19eb7defa 1315 return result;
Azure.IoT Build 0:6ae2f7bca550 1316 }
Azure.IoT Build 0:6ae2f7bca550 1317
Azure.IoT Build 0:6ae2f7bca550 1318 int open_set_max_frame_size(OPEN_HANDLE open, uint32_t max_frame_size_value)
Azure.IoT Build 0:6ae2f7bca550 1319 {
AzureIoTClient 28:add19eb7defa 1320 int result;
AzureIoTClient 28:add19eb7defa 1321
AzureIoTClient 28:add19eb7defa 1322 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1323 {
AzureIoTClient 28:add19eb7defa 1324 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1325 }
AzureIoTClient 28:add19eb7defa 1326 else
AzureIoTClient 28:add19eb7defa 1327 {
AzureIoTClient 28:add19eb7defa 1328 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1329 AMQP_VALUE max_frame_size_amqp_value = amqpvalue_create_uint(max_frame_size_value);
AzureIoTClient 28:add19eb7defa 1330 if (max_frame_size_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1331 {
AzureIoTClient 28:add19eb7defa 1332 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1333 }
AzureIoTClient 28:add19eb7defa 1334 else
AzureIoTClient 28:add19eb7defa 1335 {
AzureIoTClient 28:add19eb7defa 1336 if (amqpvalue_set_composite_item(open_instance->composite_value, 2, max_frame_size_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1337 {
AzureIoTClient 28:add19eb7defa 1338 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1339 }
AzureIoTClient 28:add19eb7defa 1340 else
AzureIoTClient 28:add19eb7defa 1341 {
AzureIoTClient 28:add19eb7defa 1342 result = 0;
AzureIoTClient 28:add19eb7defa 1343 }
AzureIoTClient 28:add19eb7defa 1344
AzureIoTClient 28:add19eb7defa 1345 amqpvalue_destroy(max_frame_size_amqp_value);
AzureIoTClient 28:add19eb7defa 1346 }
AzureIoTClient 28:add19eb7defa 1347 }
AzureIoTClient 28:add19eb7defa 1348
AzureIoTClient 28:add19eb7defa 1349 return result;
Azure.IoT Build 0:6ae2f7bca550 1350 }
Azure.IoT Build 0:6ae2f7bca550 1351
Azure.IoT Build 0:6ae2f7bca550 1352 int open_get_channel_max(OPEN_HANDLE open, uint16_t* channel_max_value)
Azure.IoT Build 0:6ae2f7bca550 1353 {
AzureIoTClient 28:add19eb7defa 1354 int result;
AzureIoTClient 28:add19eb7defa 1355
AzureIoTClient 28:add19eb7defa 1356 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1357 {
AzureIoTClient 28:add19eb7defa 1358 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1359 }
AzureIoTClient 28:add19eb7defa 1360 else
AzureIoTClient 28:add19eb7defa 1361 {
AzureIoTClient 28:add19eb7defa 1362 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1363 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1364 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1365 {
AzureIoTClient 23:1111ee8bcba4 1366 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1367 }
AzureIoTClient 23:1111ee8bcba4 1368 else
AzureIoTClient 23:1111ee8bcba4 1369 {
AzureIoTClient 23:1111ee8bcba4 1370 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 1371 {
AzureIoTClient 28:add19eb7defa 1372 *channel_max_value = 65535;
AzureIoTClient 28:add19eb7defa 1373 result = 0;
AzureIoTClient 28:add19eb7defa 1374 }
AzureIoTClient 28:add19eb7defa 1375 else
AzureIoTClient 28:add19eb7defa 1376 {
AzureIoTClient 28:add19eb7defa 1377 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 1378 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1379 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1380 {
AzureIoTClient 28:add19eb7defa 1381 *channel_max_value = 65535;
AzureIoTClient 28:add19eb7defa 1382 result = 0;
AzureIoTClient 28:add19eb7defa 1383 }
AzureIoTClient 28:add19eb7defa 1384 else
AzureIoTClient 28:add19eb7defa 1385 {
AzureIoTClient 43:4c1e4e94cdd3 1386 int get_single_value_result = amqpvalue_get_ushort(item_value, channel_max_value);
AzureIoTClient 43:4c1e4e94cdd3 1387 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 1388 {
AzureIoTClient 23:1111ee8bcba4 1389 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 1390 {
AzureIoTClient 28:add19eb7defa 1391 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1392 }
AzureIoTClient 28:add19eb7defa 1393 else
AzureIoTClient 28:add19eb7defa 1394 {
AzureIoTClient 28:add19eb7defa 1395 *channel_max_value = 65535;
AzureIoTClient 23:1111ee8bcba4 1396 result = 0;
AzureIoTClient 23:1111ee8bcba4 1397 }
AzureIoTClient 28:add19eb7defa 1398 }
AzureIoTClient 28:add19eb7defa 1399 else
AzureIoTClient 28:add19eb7defa 1400 {
AzureIoTClient 28:add19eb7defa 1401 result = 0;
AzureIoTClient 28:add19eb7defa 1402 }
AzureIoTClient 28:add19eb7defa 1403 }
AzureIoTClient 28:add19eb7defa 1404 }
AzureIoTClient 28:add19eb7defa 1405 }
AzureIoTClient 28:add19eb7defa 1406 }
AzureIoTClient 28:add19eb7defa 1407
AzureIoTClient 28:add19eb7defa 1408 return result;
Azure.IoT Build 0:6ae2f7bca550 1409 }
Azure.IoT Build 0:6ae2f7bca550 1410
Azure.IoT Build 0:6ae2f7bca550 1411 int open_set_channel_max(OPEN_HANDLE open, uint16_t channel_max_value)
Azure.IoT Build 0:6ae2f7bca550 1412 {
AzureIoTClient 28:add19eb7defa 1413 int result;
AzureIoTClient 28:add19eb7defa 1414
AzureIoTClient 28:add19eb7defa 1415 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1416 {
AzureIoTClient 28:add19eb7defa 1417 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1418 }
AzureIoTClient 28:add19eb7defa 1419 else
AzureIoTClient 28:add19eb7defa 1420 {
AzureIoTClient 28:add19eb7defa 1421 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1422 AMQP_VALUE channel_max_amqp_value = amqpvalue_create_ushort(channel_max_value);
AzureIoTClient 28:add19eb7defa 1423 if (channel_max_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1424 {
AzureIoTClient 28:add19eb7defa 1425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1426 }
AzureIoTClient 28:add19eb7defa 1427 else
AzureIoTClient 28:add19eb7defa 1428 {
AzureIoTClient 28:add19eb7defa 1429 if (amqpvalue_set_composite_item(open_instance->composite_value, 3, channel_max_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1430 {
AzureIoTClient 28:add19eb7defa 1431 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1432 }
AzureIoTClient 28:add19eb7defa 1433 else
AzureIoTClient 28:add19eb7defa 1434 {
AzureIoTClient 28:add19eb7defa 1435 result = 0;
AzureIoTClient 28:add19eb7defa 1436 }
AzureIoTClient 28:add19eb7defa 1437
AzureIoTClient 28:add19eb7defa 1438 amqpvalue_destroy(channel_max_amqp_value);
AzureIoTClient 28:add19eb7defa 1439 }
AzureIoTClient 28:add19eb7defa 1440 }
AzureIoTClient 28:add19eb7defa 1441
AzureIoTClient 28:add19eb7defa 1442 return result;
Azure.IoT Build 0:6ae2f7bca550 1443 }
Azure.IoT Build 0:6ae2f7bca550 1444
Azure.IoT Build 0:6ae2f7bca550 1445 int open_get_idle_time_out(OPEN_HANDLE open, milliseconds* idle_time_out_value)
Azure.IoT Build 0:6ae2f7bca550 1446 {
AzureIoTClient 28:add19eb7defa 1447 int result;
AzureIoTClient 28:add19eb7defa 1448
AzureIoTClient 28:add19eb7defa 1449 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1450 {
AzureIoTClient 28:add19eb7defa 1451 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1452 }
AzureIoTClient 28:add19eb7defa 1453 else
AzureIoTClient 28:add19eb7defa 1454 {
AzureIoTClient 28:add19eb7defa 1455 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1456 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1457 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1458 {
AzureIoTClient 23:1111ee8bcba4 1459 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1460 }
AzureIoTClient 23:1111ee8bcba4 1461 else
AzureIoTClient 23:1111ee8bcba4 1462 {
AzureIoTClient 23:1111ee8bcba4 1463 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 1464 {
AzureIoTClient 28:add19eb7defa 1465 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1466 }
AzureIoTClient 28:add19eb7defa 1467 else
AzureIoTClient 28:add19eb7defa 1468 {
AzureIoTClient 28:add19eb7defa 1469 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 1470 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1471 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1472 {
AzureIoTClient 28:add19eb7defa 1473 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1474 }
AzureIoTClient 28:add19eb7defa 1475 else
AzureIoTClient 28:add19eb7defa 1476 {
AzureIoTClient 43:4c1e4e94cdd3 1477 int get_single_value_result = amqpvalue_get_milliseconds(item_value, idle_time_out_value);
AzureIoTClient 43:4c1e4e94cdd3 1478 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 1479 {
AzureIoTClient 28:add19eb7defa 1480 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1481 }
AzureIoTClient 28:add19eb7defa 1482 else
AzureIoTClient 28:add19eb7defa 1483 {
AzureIoTClient 28:add19eb7defa 1484 result = 0;
AzureIoTClient 28:add19eb7defa 1485 }
AzureIoTClient 28:add19eb7defa 1486 }
AzureIoTClient 28:add19eb7defa 1487 }
AzureIoTClient 28:add19eb7defa 1488 }
AzureIoTClient 28:add19eb7defa 1489 }
AzureIoTClient 28:add19eb7defa 1490
AzureIoTClient 28:add19eb7defa 1491 return result;
Azure.IoT Build 0:6ae2f7bca550 1492 }
Azure.IoT Build 0:6ae2f7bca550 1493
Azure.IoT Build 0:6ae2f7bca550 1494 int open_set_idle_time_out(OPEN_HANDLE open, milliseconds idle_time_out_value)
Azure.IoT Build 0:6ae2f7bca550 1495 {
AzureIoTClient 28:add19eb7defa 1496 int result;
AzureIoTClient 28:add19eb7defa 1497
AzureIoTClient 28:add19eb7defa 1498 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1499 {
AzureIoTClient 28:add19eb7defa 1500 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1501 }
AzureIoTClient 28:add19eb7defa 1502 else
AzureIoTClient 28:add19eb7defa 1503 {
AzureIoTClient 28:add19eb7defa 1504 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1505 AMQP_VALUE idle_time_out_amqp_value = amqpvalue_create_milliseconds(idle_time_out_value);
AzureIoTClient 28:add19eb7defa 1506 if (idle_time_out_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1507 {
AzureIoTClient 28:add19eb7defa 1508 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1509 }
AzureIoTClient 28:add19eb7defa 1510 else
AzureIoTClient 28:add19eb7defa 1511 {
AzureIoTClient 28:add19eb7defa 1512 if (amqpvalue_set_composite_item(open_instance->composite_value, 4, idle_time_out_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1513 {
AzureIoTClient 28:add19eb7defa 1514 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1515 }
AzureIoTClient 28:add19eb7defa 1516 else
AzureIoTClient 28:add19eb7defa 1517 {
AzureIoTClient 28:add19eb7defa 1518 result = 0;
AzureIoTClient 28:add19eb7defa 1519 }
AzureIoTClient 28:add19eb7defa 1520
AzureIoTClient 28:add19eb7defa 1521 amqpvalue_destroy(idle_time_out_amqp_value);
AzureIoTClient 28:add19eb7defa 1522 }
AzureIoTClient 28:add19eb7defa 1523 }
AzureIoTClient 28:add19eb7defa 1524
AzureIoTClient 28:add19eb7defa 1525 return result;
Azure.IoT Build 0:6ae2f7bca550 1526 }
Azure.IoT Build 0:6ae2f7bca550 1527
Azure.IoT Build 0:6ae2f7bca550 1528 int open_get_outgoing_locales(OPEN_HANDLE open, AMQP_VALUE* outgoing_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1529 {
AzureIoTClient 28:add19eb7defa 1530 int result;
AzureIoTClient 28:add19eb7defa 1531
AzureIoTClient 28:add19eb7defa 1532 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1533 {
AzureIoTClient 28:add19eb7defa 1534 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1535 }
AzureIoTClient 28:add19eb7defa 1536 else
AzureIoTClient 28:add19eb7defa 1537 {
AzureIoTClient 28:add19eb7defa 1538 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1539 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1540 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1541 {
AzureIoTClient 23:1111ee8bcba4 1542 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1543 }
AzureIoTClient 23:1111ee8bcba4 1544 else
AzureIoTClient 23:1111ee8bcba4 1545 {
AzureIoTClient 23:1111ee8bcba4 1546 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 1547 {
AzureIoTClient 28:add19eb7defa 1548 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1549 }
AzureIoTClient 28:add19eb7defa 1550 else
AzureIoTClient 28:add19eb7defa 1551 {
AzureIoTClient 28:add19eb7defa 1552 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 1553 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1554 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1555 {
AzureIoTClient 28:add19eb7defa 1556 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1557 }
AzureIoTClient 28:add19eb7defa 1558 else
AzureIoTClient 28:add19eb7defa 1559 {
AzureIoTClient 28:add19eb7defa 1560 ietf_language_tag outgoing_locales_single_value;
AzureIoTClient 28:add19eb7defa 1561 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1562 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1563 {
AzureIoTClient 28:add19eb7defa 1564 get_single_value_result = amqpvalue_get_ietf_language_tag(item_value, &outgoing_locales_single_value);
AzureIoTClient 28:add19eb7defa 1565 }
AzureIoTClient 28:add19eb7defa 1566 else
AzureIoTClient 28:add19eb7defa 1567 {
AzureIoTClient 28:add19eb7defa 1568 (void)memset((void*)&outgoing_locales_single_value, 0, sizeof(outgoing_locales_single_value));
AzureIoTClient 28:add19eb7defa 1569 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1570 }
AzureIoTClient 28:add19eb7defa 1571
AzureIoTClient 28:add19eb7defa 1572 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, outgoing_locales_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1573 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1574 {
AzureIoTClient 28:add19eb7defa 1575 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1576 }
AzureIoTClient 28:add19eb7defa 1577 else
AzureIoTClient 28:add19eb7defa 1578 {
AzureIoTClient 28:add19eb7defa 1579 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1580 {
AzureIoTClient 28:add19eb7defa 1581 *outgoing_locales_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1582 if (*outgoing_locales_value == NULL)
AzureIoTClient 28:add19eb7defa 1583 {
AzureIoTClient 28:add19eb7defa 1584 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1585 }
AzureIoTClient 28:add19eb7defa 1586 else
AzureIoTClient 28:add19eb7defa 1587 {
AzureIoTClient 28:add19eb7defa 1588 AMQP_VALUE single_amqp_value = amqpvalue_create_ietf_language_tag(outgoing_locales_single_value);
AzureIoTClient 28:add19eb7defa 1589 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1590 {
AzureIoTClient 28:add19eb7defa 1591 amqpvalue_destroy(*outgoing_locales_value);
AzureIoTClient 28:add19eb7defa 1592 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1593 }
AzureIoTClient 28:add19eb7defa 1594 else
AzureIoTClient 28:add19eb7defa 1595 {
AzureIoTClient 28:add19eb7defa 1596 if (amqpvalue_add_array_item(*outgoing_locales_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1597 {
AzureIoTClient 28:add19eb7defa 1598 amqpvalue_destroy(*outgoing_locales_value);
AzureIoTClient 28:add19eb7defa 1599 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 1600 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1601 }
AzureIoTClient 28:add19eb7defa 1602 else
AzureIoTClient 28:add19eb7defa 1603 {
AzureIoTClient 29:4a11413cf217 1604 if (amqpvalue_set_composite_item(open_instance->composite_value, 5, *outgoing_locales_value) != 0)
AzureIoTClient 29:4a11413cf217 1605 {
AzureIoTClient 29:4a11413cf217 1606 amqpvalue_destroy(*outgoing_locales_value);
AzureIoTClient 29:4a11413cf217 1607 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 1608 }
AzureIoTClient 29:4a11413cf217 1609 else
AzureIoTClient 29:4a11413cf217 1610 {
AzureIoTClient 29:4a11413cf217 1611 result = 0;
AzureIoTClient 29:4a11413cf217 1612 }
AzureIoTClient 28:add19eb7defa 1613 }
AzureIoTClient 29:4a11413cf217 1614
AzureIoTClient 29:4a11413cf217 1615 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 1616 }
AzureIoTClient 29:4a11413cf217 1617 amqpvalue_destroy(*outgoing_locales_value);
AzureIoTClient 28:add19eb7defa 1618 }
AzureIoTClient 28:add19eb7defa 1619 }
AzureIoTClient 28:add19eb7defa 1620 else
AzureIoTClient 28:add19eb7defa 1621 {
AzureIoTClient 28:add19eb7defa 1622 result = 0;
AzureIoTClient 28:add19eb7defa 1623 }
AzureIoTClient 28:add19eb7defa 1624 }
AzureIoTClient 28:add19eb7defa 1625 }
AzureIoTClient 28:add19eb7defa 1626 }
AzureIoTClient 28:add19eb7defa 1627 }
AzureIoTClient 28:add19eb7defa 1628 }
AzureIoTClient 28:add19eb7defa 1629
AzureIoTClient 28:add19eb7defa 1630 return result;
Azure.IoT Build 0:6ae2f7bca550 1631 }
Azure.IoT Build 0:6ae2f7bca550 1632
Azure.IoT Build 0:6ae2f7bca550 1633 int open_set_outgoing_locales(OPEN_HANDLE open, AMQP_VALUE outgoing_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1634 {
AzureIoTClient 28:add19eb7defa 1635 int result;
AzureIoTClient 28:add19eb7defa 1636
AzureIoTClient 28:add19eb7defa 1637 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1638 {
AzureIoTClient 28:add19eb7defa 1639 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1640 }
AzureIoTClient 28:add19eb7defa 1641 else
AzureIoTClient 28:add19eb7defa 1642 {
AzureIoTClient 28:add19eb7defa 1643 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1644 AMQP_VALUE outgoing_locales_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1645 if (outgoing_locales_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1646 {
AzureIoTClient 23:1111ee8bcba4 1647 outgoing_locales_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1648 }
AzureIoTClient 23:1111ee8bcba4 1649 else
AzureIoTClient 23:1111ee8bcba4 1650 {
AzureIoTClient 23:1111ee8bcba4 1651 outgoing_locales_amqp_value = amqpvalue_clone(outgoing_locales_value);
AzureIoTClient 23:1111ee8bcba4 1652 }
AzureIoTClient 28:add19eb7defa 1653 if (outgoing_locales_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1654 {
AzureIoTClient 28:add19eb7defa 1655 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1656 }
AzureIoTClient 28:add19eb7defa 1657 else
AzureIoTClient 28:add19eb7defa 1658 {
AzureIoTClient 28:add19eb7defa 1659 if (amqpvalue_set_composite_item(open_instance->composite_value, 5, outgoing_locales_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1660 {
AzureIoTClient 28:add19eb7defa 1661 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1662 }
AzureIoTClient 28:add19eb7defa 1663 else
AzureIoTClient 28:add19eb7defa 1664 {
AzureIoTClient 28:add19eb7defa 1665 result = 0;
AzureIoTClient 28:add19eb7defa 1666 }
AzureIoTClient 28:add19eb7defa 1667
AzureIoTClient 28:add19eb7defa 1668 amqpvalue_destroy(outgoing_locales_amqp_value);
AzureIoTClient 28:add19eb7defa 1669 }
AzureIoTClient 28:add19eb7defa 1670 }
AzureIoTClient 28:add19eb7defa 1671
AzureIoTClient 28:add19eb7defa 1672 return result;
Azure.IoT Build 0:6ae2f7bca550 1673 }
Azure.IoT Build 0:6ae2f7bca550 1674
Azure.IoT Build 0:6ae2f7bca550 1675 int open_get_incoming_locales(OPEN_HANDLE open, AMQP_VALUE* incoming_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1676 {
AzureIoTClient 28:add19eb7defa 1677 int result;
AzureIoTClient 28:add19eb7defa 1678
AzureIoTClient 28:add19eb7defa 1679 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1680 {
AzureIoTClient 28:add19eb7defa 1681 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1682 }
AzureIoTClient 28:add19eb7defa 1683 else
AzureIoTClient 28:add19eb7defa 1684 {
AzureIoTClient 28:add19eb7defa 1685 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1686 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1687 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1688 {
AzureIoTClient 23:1111ee8bcba4 1689 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1690 }
AzureIoTClient 23:1111ee8bcba4 1691 else
AzureIoTClient 23:1111ee8bcba4 1692 {
AzureIoTClient 23:1111ee8bcba4 1693 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 1694 {
AzureIoTClient 28:add19eb7defa 1695 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1696 }
AzureIoTClient 28:add19eb7defa 1697 else
AzureIoTClient 28:add19eb7defa 1698 {
AzureIoTClient 28:add19eb7defa 1699 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 1700 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1701 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1702 {
AzureIoTClient 28:add19eb7defa 1703 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1704 }
AzureIoTClient 28:add19eb7defa 1705 else
AzureIoTClient 28:add19eb7defa 1706 {
AzureIoTClient 28:add19eb7defa 1707 ietf_language_tag incoming_locales_single_value;
AzureIoTClient 28:add19eb7defa 1708 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1709 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1710 {
AzureIoTClient 28:add19eb7defa 1711 get_single_value_result = amqpvalue_get_ietf_language_tag(item_value, &incoming_locales_single_value);
AzureIoTClient 28:add19eb7defa 1712 }
AzureIoTClient 28:add19eb7defa 1713 else
AzureIoTClient 28:add19eb7defa 1714 {
AzureIoTClient 28:add19eb7defa 1715 (void)memset((void*)&incoming_locales_single_value, 0, sizeof(incoming_locales_single_value));
AzureIoTClient 28:add19eb7defa 1716 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1717 }
AzureIoTClient 28:add19eb7defa 1718
AzureIoTClient 28:add19eb7defa 1719 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, incoming_locales_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1720 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1721 {
AzureIoTClient 28:add19eb7defa 1722 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1723 }
AzureIoTClient 28:add19eb7defa 1724 else
AzureIoTClient 28:add19eb7defa 1725 {
AzureIoTClient 28:add19eb7defa 1726 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1727 {
AzureIoTClient 28:add19eb7defa 1728 *incoming_locales_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1729 if (*incoming_locales_value == NULL)
AzureIoTClient 28:add19eb7defa 1730 {
AzureIoTClient 28:add19eb7defa 1731 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1732 }
AzureIoTClient 28:add19eb7defa 1733 else
AzureIoTClient 28:add19eb7defa 1734 {
AzureIoTClient 28:add19eb7defa 1735 AMQP_VALUE single_amqp_value = amqpvalue_create_ietf_language_tag(incoming_locales_single_value);
AzureIoTClient 28:add19eb7defa 1736 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1737 {
AzureIoTClient 28:add19eb7defa 1738 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 28:add19eb7defa 1739 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1740 }
AzureIoTClient 28:add19eb7defa 1741 else
AzureIoTClient 28:add19eb7defa 1742 {
AzureIoTClient 28:add19eb7defa 1743 if (amqpvalue_add_array_item(*incoming_locales_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1744 {
AzureIoTClient 28:add19eb7defa 1745 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 28:add19eb7defa 1746 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 1747 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1748 }
AzureIoTClient 28:add19eb7defa 1749 else
AzureIoTClient 28:add19eb7defa 1750 {
AzureIoTClient 29:4a11413cf217 1751 if (amqpvalue_set_composite_item(open_instance->composite_value, 6, *incoming_locales_value) != 0)
AzureIoTClient 29:4a11413cf217 1752 {
AzureIoTClient 29:4a11413cf217 1753 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 29:4a11413cf217 1754 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 1755 }
AzureIoTClient 29:4a11413cf217 1756 else
AzureIoTClient 29:4a11413cf217 1757 {
AzureIoTClient 29:4a11413cf217 1758 result = 0;
AzureIoTClient 29:4a11413cf217 1759 }
AzureIoTClient 28:add19eb7defa 1760 }
AzureIoTClient 29:4a11413cf217 1761
AzureIoTClient 29:4a11413cf217 1762 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 1763 }
AzureIoTClient 29:4a11413cf217 1764 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 28:add19eb7defa 1765 }
AzureIoTClient 28:add19eb7defa 1766 }
AzureIoTClient 28:add19eb7defa 1767 else
AzureIoTClient 28:add19eb7defa 1768 {
AzureIoTClient 28:add19eb7defa 1769 result = 0;
AzureIoTClient 28:add19eb7defa 1770 }
AzureIoTClient 28:add19eb7defa 1771 }
AzureIoTClient 28:add19eb7defa 1772 }
AzureIoTClient 28:add19eb7defa 1773 }
AzureIoTClient 28:add19eb7defa 1774 }
AzureIoTClient 28:add19eb7defa 1775 }
AzureIoTClient 28:add19eb7defa 1776
AzureIoTClient 28:add19eb7defa 1777 return result;
Azure.IoT Build 0:6ae2f7bca550 1778 }
Azure.IoT Build 0:6ae2f7bca550 1779
Azure.IoT Build 0:6ae2f7bca550 1780 int open_set_incoming_locales(OPEN_HANDLE open, AMQP_VALUE incoming_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1781 {
AzureIoTClient 28:add19eb7defa 1782 int result;
AzureIoTClient 28:add19eb7defa 1783
AzureIoTClient 28:add19eb7defa 1784 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1785 {
AzureIoTClient 28:add19eb7defa 1786 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1787 }
AzureIoTClient 28:add19eb7defa 1788 else
AzureIoTClient 28:add19eb7defa 1789 {
AzureIoTClient 28:add19eb7defa 1790 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1791 AMQP_VALUE incoming_locales_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1792 if (incoming_locales_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1793 {
AzureIoTClient 23:1111ee8bcba4 1794 incoming_locales_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1795 }
AzureIoTClient 23:1111ee8bcba4 1796 else
AzureIoTClient 23:1111ee8bcba4 1797 {
AzureIoTClient 23:1111ee8bcba4 1798 incoming_locales_amqp_value = amqpvalue_clone(incoming_locales_value);
AzureIoTClient 23:1111ee8bcba4 1799 }
AzureIoTClient 28:add19eb7defa 1800 if (incoming_locales_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1801 {
AzureIoTClient 28:add19eb7defa 1802 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1803 }
AzureIoTClient 28:add19eb7defa 1804 else
AzureIoTClient 28:add19eb7defa 1805 {
AzureIoTClient 28:add19eb7defa 1806 if (amqpvalue_set_composite_item(open_instance->composite_value, 6, incoming_locales_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1807 {
AzureIoTClient 28:add19eb7defa 1808 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1809 }
AzureIoTClient 28:add19eb7defa 1810 else
AzureIoTClient 28:add19eb7defa 1811 {
AzureIoTClient 28:add19eb7defa 1812 result = 0;
AzureIoTClient 28:add19eb7defa 1813 }
AzureIoTClient 28:add19eb7defa 1814
AzureIoTClient 28:add19eb7defa 1815 amqpvalue_destroy(incoming_locales_amqp_value);
AzureIoTClient 28:add19eb7defa 1816 }
AzureIoTClient 28:add19eb7defa 1817 }
AzureIoTClient 28:add19eb7defa 1818
AzureIoTClient 28:add19eb7defa 1819 return result;
Azure.IoT Build 0:6ae2f7bca550 1820 }
Azure.IoT Build 0:6ae2f7bca550 1821
Azure.IoT Build 0:6ae2f7bca550 1822 int open_get_offered_capabilities(OPEN_HANDLE open, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1823 {
AzureIoTClient 28:add19eb7defa 1824 int result;
AzureIoTClient 28:add19eb7defa 1825
AzureIoTClient 28:add19eb7defa 1826 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1827 {
AzureIoTClient 28:add19eb7defa 1828 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1829 }
AzureIoTClient 28:add19eb7defa 1830 else
AzureIoTClient 28:add19eb7defa 1831 {
AzureIoTClient 28:add19eb7defa 1832 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1833 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1834 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1835 {
AzureIoTClient 23:1111ee8bcba4 1836 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1837 }
AzureIoTClient 23:1111ee8bcba4 1838 else
AzureIoTClient 23:1111ee8bcba4 1839 {
AzureIoTClient 23:1111ee8bcba4 1840 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 1841 {
AzureIoTClient 28:add19eb7defa 1842 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1843 }
AzureIoTClient 28:add19eb7defa 1844 else
AzureIoTClient 28:add19eb7defa 1845 {
AzureIoTClient 28:add19eb7defa 1846 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 1847 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1848 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1849 {
AzureIoTClient 28:add19eb7defa 1850 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1851 }
AzureIoTClient 28:add19eb7defa 1852 else
AzureIoTClient 28:add19eb7defa 1853 {
AzureIoTClient 28:add19eb7defa 1854 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 1855 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1856 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1857 {
AzureIoTClient 28:add19eb7defa 1858 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 1859 }
AzureIoTClient 28:add19eb7defa 1860 else
AzureIoTClient 28:add19eb7defa 1861 {
AzureIoTClient 28:add19eb7defa 1862 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 1863 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1864 }
AzureIoTClient 28:add19eb7defa 1865
AzureIoTClient 28:add19eb7defa 1866 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1867 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1868 {
AzureIoTClient 28:add19eb7defa 1869 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1870 }
AzureIoTClient 28:add19eb7defa 1871 else
AzureIoTClient 28:add19eb7defa 1872 {
AzureIoTClient 28:add19eb7defa 1873 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1874 {
AzureIoTClient 28:add19eb7defa 1875 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1876 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 1877 {
AzureIoTClient 28:add19eb7defa 1878 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1879 }
AzureIoTClient 28:add19eb7defa 1880 else
AzureIoTClient 28:add19eb7defa 1881 {
AzureIoTClient 28:add19eb7defa 1882 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 1883 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1884 {
AzureIoTClient 28:add19eb7defa 1885 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 1886 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1887 }
AzureIoTClient 28:add19eb7defa 1888 else
AzureIoTClient 28:add19eb7defa 1889 {
AzureIoTClient 28:add19eb7defa 1890 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1891 {
AzureIoTClient 28:add19eb7defa 1892 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 1893 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 1894 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1895 }
AzureIoTClient 28:add19eb7defa 1896 else
AzureIoTClient 28:add19eb7defa 1897 {
AzureIoTClient 29:4a11413cf217 1898 if (amqpvalue_set_composite_item(open_instance->composite_value, 7, *offered_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 1899 {
AzureIoTClient 29:4a11413cf217 1900 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 29:4a11413cf217 1901 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 1902 }
AzureIoTClient 29:4a11413cf217 1903 else
AzureIoTClient 29:4a11413cf217 1904 {
AzureIoTClient 29:4a11413cf217 1905 result = 0;
AzureIoTClient 29:4a11413cf217 1906 }
AzureIoTClient 28:add19eb7defa 1907 }
AzureIoTClient 29:4a11413cf217 1908
AzureIoTClient 29:4a11413cf217 1909 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 1910 }
AzureIoTClient 29:4a11413cf217 1911 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 1912 }
AzureIoTClient 28:add19eb7defa 1913 }
AzureIoTClient 28:add19eb7defa 1914 else
AzureIoTClient 28:add19eb7defa 1915 {
AzureIoTClient 28:add19eb7defa 1916 result = 0;
AzureIoTClient 28:add19eb7defa 1917 }
AzureIoTClient 28:add19eb7defa 1918 }
AzureIoTClient 28:add19eb7defa 1919 }
AzureIoTClient 28:add19eb7defa 1920 }
AzureIoTClient 28:add19eb7defa 1921 }
AzureIoTClient 28:add19eb7defa 1922 }
AzureIoTClient 28:add19eb7defa 1923
AzureIoTClient 28:add19eb7defa 1924 return result;
Azure.IoT Build 0:6ae2f7bca550 1925 }
Azure.IoT Build 0:6ae2f7bca550 1926
Azure.IoT Build 0:6ae2f7bca550 1927 int open_set_offered_capabilities(OPEN_HANDLE open, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1928 {
AzureIoTClient 28:add19eb7defa 1929 int result;
AzureIoTClient 28:add19eb7defa 1930
AzureIoTClient 28:add19eb7defa 1931 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1932 {
AzureIoTClient 28:add19eb7defa 1933 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1934 }
AzureIoTClient 28:add19eb7defa 1935 else
AzureIoTClient 28:add19eb7defa 1936 {
AzureIoTClient 28:add19eb7defa 1937 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1938 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1939 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1940 {
AzureIoTClient 23:1111ee8bcba4 1941 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1942 }
AzureIoTClient 23:1111ee8bcba4 1943 else
AzureIoTClient 23:1111ee8bcba4 1944 {
AzureIoTClient 23:1111ee8bcba4 1945 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 1946 }
AzureIoTClient 28:add19eb7defa 1947 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1948 {
AzureIoTClient 28:add19eb7defa 1949 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1950 }
AzureIoTClient 28:add19eb7defa 1951 else
AzureIoTClient 28:add19eb7defa 1952 {
AzureIoTClient 28:add19eb7defa 1953 if (amqpvalue_set_composite_item(open_instance->composite_value, 7, offered_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1954 {
AzureIoTClient 28:add19eb7defa 1955 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1956 }
AzureIoTClient 28:add19eb7defa 1957 else
AzureIoTClient 28:add19eb7defa 1958 {
AzureIoTClient 28:add19eb7defa 1959 result = 0;
AzureIoTClient 28:add19eb7defa 1960 }
AzureIoTClient 28:add19eb7defa 1961
AzureIoTClient 28:add19eb7defa 1962 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 1963 }
AzureIoTClient 28:add19eb7defa 1964 }
AzureIoTClient 28:add19eb7defa 1965
AzureIoTClient 28:add19eb7defa 1966 return result;
Azure.IoT Build 0:6ae2f7bca550 1967 }
Azure.IoT Build 0:6ae2f7bca550 1968
Azure.IoT Build 0:6ae2f7bca550 1969 int open_get_desired_capabilities(OPEN_HANDLE open, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1970 {
AzureIoTClient 28:add19eb7defa 1971 int result;
AzureIoTClient 28:add19eb7defa 1972
AzureIoTClient 28:add19eb7defa 1973 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1974 {
AzureIoTClient 28:add19eb7defa 1975 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1976 }
AzureIoTClient 28:add19eb7defa 1977 else
AzureIoTClient 28:add19eb7defa 1978 {
AzureIoTClient 28:add19eb7defa 1979 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1980 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1981 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1982 {
AzureIoTClient 23:1111ee8bcba4 1983 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1984 }
AzureIoTClient 23:1111ee8bcba4 1985 else
AzureIoTClient 23:1111ee8bcba4 1986 {
AzureIoTClient 23:1111ee8bcba4 1987 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 1988 {
AzureIoTClient 28:add19eb7defa 1989 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1990 }
AzureIoTClient 28:add19eb7defa 1991 else
AzureIoTClient 28:add19eb7defa 1992 {
AzureIoTClient 28:add19eb7defa 1993 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 1994 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1995 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1996 {
AzureIoTClient 28:add19eb7defa 1997 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1998 }
AzureIoTClient 28:add19eb7defa 1999 else
AzureIoTClient 28:add19eb7defa 2000 {
AzureIoTClient 28:add19eb7defa 2001 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 2002 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2003 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 2004 {
AzureIoTClient 28:add19eb7defa 2005 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 2006 }
AzureIoTClient 28:add19eb7defa 2007 else
AzureIoTClient 28:add19eb7defa 2008 {
AzureIoTClient 28:add19eb7defa 2009 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 2010 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 2011 }
AzureIoTClient 28:add19eb7defa 2012
AzureIoTClient 28:add19eb7defa 2013 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 2014 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 2015 {
AzureIoTClient 28:add19eb7defa 2016 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2017 }
AzureIoTClient 28:add19eb7defa 2018 else
AzureIoTClient 28:add19eb7defa 2019 {
AzureIoTClient 28:add19eb7defa 2020 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 2021 {
AzureIoTClient 28:add19eb7defa 2022 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 2023 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 2024 {
AzureIoTClient 28:add19eb7defa 2025 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2026 }
AzureIoTClient 28:add19eb7defa 2027 else
AzureIoTClient 28:add19eb7defa 2028 {
AzureIoTClient 28:add19eb7defa 2029 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 2030 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2031 {
AzureIoTClient 28:add19eb7defa 2032 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 2033 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2034 }
AzureIoTClient 28:add19eb7defa 2035 else
AzureIoTClient 28:add19eb7defa 2036 {
AzureIoTClient 28:add19eb7defa 2037 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2038 {
AzureIoTClient 28:add19eb7defa 2039 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 2040 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 2041 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2042 }
AzureIoTClient 28:add19eb7defa 2043 else
AzureIoTClient 28:add19eb7defa 2044 {
AzureIoTClient 29:4a11413cf217 2045 if (amqpvalue_set_composite_item(open_instance->composite_value, 8, *desired_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 2046 {
AzureIoTClient 29:4a11413cf217 2047 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 29:4a11413cf217 2048 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 2049 }
AzureIoTClient 29:4a11413cf217 2050 else
AzureIoTClient 29:4a11413cf217 2051 {
AzureIoTClient 29:4a11413cf217 2052 result = 0;
AzureIoTClient 29:4a11413cf217 2053 }
AzureIoTClient 28:add19eb7defa 2054 }
AzureIoTClient 29:4a11413cf217 2055
AzureIoTClient 29:4a11413cf217 2056 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 2057 }
AzureIoTClient 29:4a11413cf217 2058 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 2059 }
AzureIoTClient 28:add19eb7defa 2060 }
AzureIoTClient 28:add19eb7defa 2061 else
AzureIoTClient 28:add19eb7defa 2062 {
AzureIoTClient 28:add19eb7defa 2063 result = 0;
AzureIoTClient 28:add19eb7defa 2064 }
AzureIoTClient 28:add19eb7defa 2065 }
AzureIoTClient 28:add19eb7defa 2066 }
AzureIoTClient 28:add19eb7defa 2067 }
AzureIoTClient 28:add19eb7defa 2068 }
AzureIoTClient 28:add19eb7defa 2069 }
AzureIoTClient 28:add19eb7defa 2070
AzureIoTClient 28:add19eb7defa 2071 return result;
Azure.IoT Build 0:6ae2f7bca550 2072 }
Azure.IoT Build 0:6ae2f7bca550 2073
Azure.IoT Build 0:6ae2f7bca550 2074 int open_set_desired_capabilities(OPEN_HANDLE open, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 2075 {
AzureIoTClient 28:add19eb7defa 2076 int result;
AzureIoTClient 28:add19eb7defa 2077
AzureIoTClient 28:add19eb7defa 2078 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2079 {
AzureIoTClient 28:add19eb7defa 2080 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2081 }
AzureIoTClient 28:add19eb7defa 2082 else
AzureIoTClient 28:add19eb7defa 2083 {
AzureIoTClient 28:add19eb7defa 2084 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 2085 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 2086 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2087 {
AzureIoTClient 23:1111ee8bcba4 2088 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 2089 }
AzureIoTClient 23:1111ee8bcba4 2090 else
AzureIoTClient 23:1111ee8bcba4 2091 {
AzureIoTClient 23:1111ee8bcba4 2092 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 2093 }
AzureIoTClient 28:add19eb7defa 2094 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2095 {
AzureIoTClient 28:add19eb7defa 2096 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2097 }
AzureIoTClient 28:add19eb7defa 2098 else
AzureIoTClient 28:add19eb7defa 2099 {
AzureIoTClient 28:add19eb7defa 2100 if (amqpvalue_set_composite_item(open_instance->composite_value, 8, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2101 {
AzureIoTClient 28:add19eb7defa 2102 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2103 }
AzureIoTClient 28:add19eb7defa 2104 else
AzureIoTClient 28:add19eb7defa 2105 {
AzureIoTClient 28:add19eb7defa 2106 result = 0;
AzureIoTClient 28:add19eb7defa 2107 }
AzureIoTClient 28:add19eb7defa 2108
AzureIoTClient 28:add19eb7defa 2109 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 2110 }
AzureIoTClient 28:add19eb7defa 2111 }
AzureIoTClient 28:add19eb7defa 2112
AzureIoTClient 28:add19eb7defa 2113 return result;
Azure.IoT Build 0:6ae2f7bca550 2114 }
Azure.IoT Build 0:6ae2f7bca550 2115
Azure.IoT Build 0:6ae2f7bca550 2116 int open_get_properties(OPEN_HANDLE open, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 2117 {
AzureIoTClient 28:add19eb7defa 2118 int result;
AzureIoTClient 28:add19eb7defa 2119
AzureIoTClient 28:add19eb7defa 2120 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2121 {
AzureIoTClient 28:add19eb7defa 2122 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2123 }
AzureIoTClient 28:add19eb7defa 2124 else
AzureIoTClient 28:add19eb7defa 2125 {
AzureIoTClient 28:add19eb7defa 2126 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2127 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 2128 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2129 {
AzureIoTClient 23:1111ee8bcba4 2130 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2131 }
AzureIoTClient 23:1111ee8bcba4 2132 else
AzureIoTClient 23:1111ee8bcba4 2133 {
AzureIoTClient 23:1111ee8bcba4 2134 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 2135 {
AzureIoTClient 28:add19eb7defa 2136 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2137 }
AzureIoTClient 28:add19eb7defa 2138 else
AzureIoTClient 28:add19eb7defa 2139 {
AzureIoTClient 28:add19eb7defa 2140 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 2141 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2142 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2143 {
AzureIoTClient 28:add19eb7defa 2144 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2145 }
AzureIoTClient 28:add19eb7defa 2146 else
AzureIoTClient 28:add19eb7defa 2147 {
AzureIoTClient 43:4c1e4e94cdd3 2148 int get_single_value_result = amqpvalue_get_fields(item_value, properties_value);
AzureIoTClient 43:4c1e4e94cdd3 2149 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 2150 {
AzureIoTClient 28:add19eb7defa 2151 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2152 }
AzureIoTClient 28:add19eb7defa 2153 else
AzureIoTClient 28:add19eb7defa 2154 {
AzureIoTClient 28:add19eb7defa 2155 result = 0;
AzureIoTClient 28:add19eb7defa 2156 }
AzureIoTClient 28:add19eb7defa 2157 }
AzureIoTClient 28:add19eb7defa 2158 }
AzureIoTClient 28:add19eb7defa 2159 }
AzureIoTClient 28:add19eb7defa 2160 }
AzureIoTClient 28:add19eb7defa 2161
AzureIoTClient 28:add19eb7defa 2162 return result;
Azure.IoT Build 0:6ae2f7bca550 2163 }
Azure.IoT Build 0:6ae2f7bca550 2164
Azure.IoT Build 0:6ae2f7bca550 2165 int open_set_properties(OPEN_HANDLE open, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 2166 {
AzureIoTClient 28:add19eb7defa 2167 int result;
AzureIoTClient 28:add19eb7defa 2168
AzureIoTClient 28:add19eb7defa 2169 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2170 {
AzureIoTClient 28:add19eb7defa 2171 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2172 }
AzureIoTClient 28:add19eb7defa 2173 else
AzureIoTClient 28:add19eb7defa 2174 {
AzureIoTClient 28:add19eb7defa 2175 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 2176 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 2177 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2178 {
AzureIoTClient 28:add19eb7defa 2179 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2180 }
AzureIoTClient 28:add19eb7defa 2181 else
AzureIoTClient 28:add19eb7defa 2182 {
AzureIoTClient 28:add19eb7defa 2183 if (amqpvalue_set_composite_item(open_instance->composite_value, 9, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2184 {
AzureIoTClient 28:add19eb7defa 2185 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2186 }
AzureIoTClient 28:add19eb7defa 2187 else
AzureIoTClient 28:add19eb7defa 2188 {
AzureIoTClient 28:add19eb7defa 2189 result = 0;
AzureIoTClient 28:add19eb7defa 2190 }
AzureIoTClient 28:add19eb7defa 2191
AzureIoTClient 28:add19eb7defa 2192 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 2193 }
AzureIoTClient 28:add19eb7defa 2194 }
AzureIoTClient 28:add19eb7defa 2195
AzureIoTClient 28:add19eb7defa 2196 return result;
Azure.IoT Build 0:6ae2f7bca550 2197 }
Azure.IoT Build 0:6ae2f7bca550 2198
Azure.IoT Build 0:6ae2f7bca550 2199
Azure.IoT Build 0:6ae2f7bca550 2200 /* begin */
Azure.IoT Build 0:6ae2f7bca550 2201
Azure.IoT Build 0:6ae2f7bca550 2202 typedef struct BEGIN_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 2203 {
AzureIoTClient 28:add19eb7defa 2204 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 2205 } BEGIN_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 2206
Azure.IoT Build 0:6ae2f7bca550 2207 static BEGIN_HANDLE begin_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 2208 {
AzureIoTClient 28:add19eb7defa 2209 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2210 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2211 {
AzureIoTClient 28:add19eb7defa 2212 begin_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 2213 }
AzureIoTClient 28:add19eb7defa 2214
AzureIoTClient 28:add19eb7defa 2215 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2216 }
Azure.IoT Build 0:6ae2f7bca550 2217
Azure.IoT Build 0:6ae2f7bca550 2218 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 2219 {
AzureIoTClient 28:add19eb7defa 2220 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2221 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2222 {
AzureIoTClient 28:add19eb7defa 2223 begin_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(17);
AzureIoTClient 28:add19eb7defa 2224 if (begin_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 2225 {
AzureIoTClient 28:add19eb7defa 2226 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2227 begin_instance = NULL;
AzureIoTClient 28:add19eb7defa 2228 }
AzureIoTClient 28:add19eb7defa 2229 else
AzureIoTClient 28:add19eb7defa 2230 {
AzureIoTClient 28:add19eb7defa 2231 AMQP_VALUE next_outgoing_id_amqp_value;
AzureIoTClient 28:add19eb7defa 2232 AMQP_VALUE incoming_window_amqp_value;
AzureIoTClient 28:add19eb7defa 2233 AMQP_VALUE outgoing_window_amqp_value;
AzureIoTClient 28:add19eb7defa 2234 int result = 0;
AzureIoTClient 28:add19eb7defa 2235
AzureIoTClient 28:add19eb7defa 2236 next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 2237 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 1, next_outgoing_id_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2238 {
AzureIoTClient 28:add19eb7defa 2239 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2240 }
AzureIoTClient 28:add19eb7defa 2241 incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 2242 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 2, incoming_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2243 {
AzureIoTClient 28:add19eb7defa 2244 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2245 }
AzureIoTClient 28:add19eb7defa 2246 outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 2247 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 3, outgoing_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2248 {
AzureIoTClient 28:add19eb7defa 2249 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2250 }
AzureIoTClient 28:add19eb7defa 2251
AzureIoTClient 28:add19eb7defa 2252 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 2253 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2254 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2255 }
AzureIoTClient 28:add19eb7defa 2256 }
AzureIoTClient 28:add19eb7defa 2257
AzureIoTClient 28:add19eb7defa 2258 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2259 }
Azure.IoT Build 0:6ae2f7bca550 2260
Azure.IoT Build 0:6ae2f7bca550 2261 BEGIN_HANDLE begin_clone(BEGIN_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 2262 {
AzureIoTClient 28:add19eb7defa 2263 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2264 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2265 {
AzureIoTClient 28:add19eb7defa 2266 begin_instance->composite_value = amqpvalue_clone(((BEGIN_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 2267 if (begin_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 2268 {
AzureIoTClient 28:add19eb7defa 2269 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2270 begin_instance = NULL;
AzureIoTClient 28:add19eb7defa 2271 }
AzureIoTClient 28:add19eb7defa 2272 }
AzureIoTClient 28:add19eb7defa 2273
AzureIoTClient 28:add19eb7defa 2274 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2275 }
Azure.IoT Build 0:6ae2f7bca550 2276
Azure.IoT Build 0:6ae2f7bca550 2277 void begin_destroy(BEGIN_HANDLE begin)
Azure.IoT Build 0:6ae2f7bca550 2278 {
AzureIoTClient 28:add19eb7defa 2279 if (begin != NULL)
AzureIoTClient 28:add19eb7defa 2280 {
AzureIoTClient 28:add19eb7defa 2281 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2282 amqpvalue_destroy(begin_instance->composite_value);
AzureIoTClient 28:add19eb7defa 2283 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2284 }
Azure.IoT Build 0:6ae2f7bca550 2285 }
Azure.IoT Build 0:6ae2f7bca550 2286
Azure.IoT Build 0:6ae2f7bca550 2287 AMQP_VALUE amqpvalue_create_begin(BEGIN_HANDLE begin)
Azure.IoT Build 0:6ae2f7bca550 2288 {
AzureIoTClient 28:add19eb7defa 2289 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 2290
AzureIoTClient 28:add19eb7defa 2291 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2292 {
AzureIoTClient 28:add19eb7defa 2293 result = NULL;
AzureIoTClient 28:add19eb7defa 2294 }
AzureIoTClient 28:add19eb7defa 2295 else
AzureIoTClient 28:add19eb7defa 2296 {
AzureIoTClient 28:add19eb7defa 2297 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2298 result = amqpvalue_clone(begin_instance->composite_value);
AzureIoTClient 28:add19eb7defa 2299 }
AzureIoTClient 28:add19eb7defa 2300
AzureIoTClient 28:add19eb7defa 2301 return result;
Azure.IoT Build 0:6ae2f7bca550 2302 }
Azure.IoT Build 0:6ae2f7bca550 2303
Azure.IoT Build 0:6ae2f7bca550 2304 bool is_begin_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 2305 {
AzureIoTClient 28:add19eb7defa 2306 bool result;
AzureIoTClient 28:add19eb7defa 2307
AzureIoTClient 28:add19eb7defa 2308 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 2309 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 2310 (descriptor_ulong == 17))
AzureIoTClient 28:add19eb7defa 2311 {
AzureIoTClient 28:add19eb7defa 2312 result = true;
AzureIoTClient 28:add19eb7defa 2313 }
AzureIoTClient 28:add19eb7defa 2314 else
AzureIoTClient 28:add19eb7defa 2315 {
AzureIoTClient 28:add19eb7defa 2316 result = false;
AzureIoTClient 28:add19eb7defa 2317 }
AzureIoTClient 28:add19eb7defa 2318
AzureIoTClient 28:add19eb7defa 2319 return result;
Azure.IoT Build 0:6ae2f7bca550 2320 }
Azure.IoT Build 0:6ae2f7bca550 2321
Azure.IoT Build 0:6ae2f7bca550 2322
Azure.IoT Build 0:6ae2f7bca550 2323 int amqpvalue_get_begin(AMQP_VALUE value, BEGIN_HANDLE* begin_handle)
Azure.IoT Build 0:6ae2f7bca550 2324 {
AzureIoTClient 28:add19eb7defa 2325 int result;
AzureIoTClient 28:add19eb7defa 2326 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin_create_internal();
AzureIoTClient 28:add19eb7defa 2327 *begin_handle = begin_instance;
AzureIoTClient 28:add19eb7defa 2328 if (*begin_handle == NULL)
AzureIoTClient 28:add19eb7defa 2329 {
AzureIoTClient 28:add19eb7defa 2330 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2331 }
AzureIoTClient 28:add19eb7defa 2332 else
AzureIoTClient 28:add19eb7defa 2333 {
AzureIoTClient 28:add19eb7defa 2334 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 2335 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 2336 {
AzureIoTClient 28:add19eb7defa 2337 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2338 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2339 }
AzureIoTClient 28:add19eb7defa 2340 else
AzureIoTClient 28:add19eb7defa 2341 {
AzureIoTClient 23:1111ee8bcba4 2342 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 2343 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2344 {
AzureIoTClient 23:1111ee8bcba4 2345 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2346 }
AzureIoTClient 23:1111ee8bcba4 2347 else
AzureIoTClient 23:1111ee8bcba4 2348 {
AzureIoTClient 28:add19eb7defa 2349 do
AzureIoTClient 28:add19eb7defa 2350 {
AzureIoTClient 28:add19eb7defa 2351 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 2352 /* remote-channel */
AzureIoTClient 28:add19eb7defa 2353 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 2354 {
AzureIoTClient 23:1111ee8bcba4 2355 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 2356 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2357 {
AzureIoTClient 28:add19eb7defa 2358 /* do nothing */
AzureIoTClient 28:add19eb7defa 2359 }
AzureIoTClient 28:add19eb7defa 2360 else
AzureIoTClient 28:add19eb7defa 2361 {
AzureIoTClient 28:add19eb7defa 2362 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2363 {
AzureIoTClient 28:add19eb7defa 2364 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2365 }
AzureIoTClient 28:add19eb7defa 2366 else
AzureIoTClient 28:add19eb7defa 2367 {
AzureIoTClient 28:add19eb7defa 2368 uint16_t remote_channel;
AzureIoTClient 28:add19eb7defa 2369 if (amqpvalue_get_ushort(item_value, &remote_channel) != 0)
AzureIoTClient 28:add19eb7defa 2370 {
AzureIoTClient 28:add19eb7defa 2371 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2372 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2373 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2374 break;
AzureIoTClient 28:add19eb7defa 2375 }
AzureIoTClient 28:add19eb7defa 2376 }
AzureIoTClient 28:add19eb7defa 2377
AzureIoTClient 28:add19eb7defa 2378 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2379 }
AzureIoTClient 28:add19eb7defa 2380 }
AzureIoTClient 28:add19eb7defa 2381 /* next-outgoing-id */
AzureIoTClient 28:add19eb7defa 2382 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 2383 {
AzureIoTClient 23:1111ee8bcba4 2384 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 2385 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2386 {
AzureIoTClient 28:add19eb7defa 2387 {
AzureIoTClient 28:add19eb7defa 2388 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2389 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2390 break;
AzureIoTClient 28:add19eb7defa 2391 }
AzureIoTClient 28:add19eb7defa 2392 }
AzureIoTClient 28:add19eb7defa 2393 else
AzureIoTClient 28:add19eb7defa 2394 {
AzureIoTClient 28:add19eb7defa 2395 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2396 {
AzureIoTClient 28:add19eb7defa 2397 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2398 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2399 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2400 break;
AzureIoTClient 28:add19eb7defa 2401 }
AzureIoTClient 28:add19eb7defa 2402 else
AzureIoTClient 28:add19eb7defa 2403 {
AzureIoTClient 28:add19eb7defa 2404 transfer_number next_outgoing_id;
AzureIoTClient 28:add19eb7defa 2405 if (amqpvalue_get_transfer_number(item_value, &next_outgoing_id) != 0)
AzureIoTClient 28:add19eb7defa 2406 {
AzureIoTClient 28:add19eb7defa 2407 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2408 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2409 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2410 break;
AzureIoTClient 28:add19eb7defa 2411 }
AzureIoTClient 28:add19eb7defa 2412 }
AzureIoTClient 28:add19eb7defa 2413
AzureIoTClient 28:add19eb7defa 2414 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2415 }
AzureIoTClient 28:add19eb7defa 2416 }
AzureIoTClient 28:add19eb7defa 2417 else
AzureIoTClient 28:add19eb7defa 2418 {
AzureIoTClient 28:add19eb7defa 2419 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2420 }
AzureIoTClient 28:add19eb7defa 2421 /* incoming-window */
AzureIoTClient 28:add19eb7defa 2422 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 2423 {
AzureIoTClient 23:1111ee8bcba4 2424 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 2425 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2426 {
AzureIoTClient 28:add19eb7defa 2427 {
AzureIoTClient 28:add19eb7defa 2428 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2429 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2430 break;
AzureIoTClient 28:add19eb7defa 2431 }
AzureIoTClient 28:add19eb7defa 2432 }
AzureIoTClient 28:add19eb7defa 2433 else
AzureIoTClient 28:add19eb7defa 2434 {
AzureIoTClient 28:add19eb7defa 2435 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2436 {
AzureIoTClient 28:add19eb7defa 2437 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2438 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2439 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2440 break;
AzureIoTClient 28:add19eb7defa 2441 }
AzureIoTClient 28:add19eb7defa 2442 else
AzureIoTClient 28:add19eb7defa 2443 {
AzureIoTClient 28:add19eb7defa 2444 uint32_t incoming_window;
AzureIoTClient 28:add19eb7defa 2445 if (amqpvalue_get_uint(item_value, &incoming_window) != 0)
AzureIoTClient 28:add19eb7defa 2446 {
AzureIoTClient 28:add19eb7defa 2447 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2448 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2449 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2450 break;
AzureIoTClient 28:add19eb7defa 2451 }
AzureIoTClient 28:add19eb7defa 2452 }
AzureIoTClient 28:add19eb7defa 2453
AzureIoTClient 28:add19eb7defa 2454 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2455 }
AzureIoTClient 28:add19eb7defa 2456 }
AzureIoTClient 28:add19eb7defa 2457 else
AzureIoTClient 28:add19eb7defa 2458 {
AzureIoTClient 28:add19eb7defa 2459 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2460 }
AzureIoTClient 28:add19eb7defa 2461 /* outgoing-window */
AzureIoTClient 28:add19eb7defa 2462 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 2463 {
AzureIoTClient 23:1111ee8bcba4 2464 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 2465 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2466 {
AzureIoTClient 28:add19eb7defa 2467 {
AzureIoTClient 28:add19eb7defa 2468 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2469 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2470 break;
AzureIoTClient 28:add19eb7defa 2471 }
AzureIoTClient 28:add19eb7defa 2472 }
AzureIoTClient 28:add19eb7defa 2473 else
AzureIoTClient 28:add19eb7defa 2474 {
AzureIoTClient 28:add19eb7defa 2475 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2476 {
AzureIoTClient 28:add19eb7defa 2477 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2478 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2479 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2480 break;
AzureIoTClient 28:add19eb7defa 2481 }
AzureIoTClient 28:add19eb7defa 2482 else
AzureIoTClient 28:add19eb7defa 2483 {
AzureIoTClient 28:add19eb7defa 2484 uint32_t outgoing_window;
AzureIoTClient 28:add19eb7defa 2485 if (amqpvalue_get_uint(item_value, &outgoing_window) != 0)
AzureIoTClient 28:add19eb7defa 2486 {
AzureIoTClient 28:add19eb7defa 2487 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2488 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2489 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2490 break;
AzureIoTClient 28:add19eb7defa 2491 }
AzureIoTClient 28:add19eb7defa 2492 }
AzureIoTClient 28:add19eb7defa 2493
AzureIoTClient 28:add19eb7defa 2494 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2495 }
AzureIoTClient 28:add19eb7defa 2496 }
AzureIoTClient 28:add19eb7defa 2497 else
AzureIoTClient 28:add19eb7defa 2498 {
AzureIoTClient 28:add19eb7defa 2499 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2500 }
AzureIoTClient 28:add19eb7defa 2501 /* handle-max */
AzureIoTClient 28:add19eb7defa 2502 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 2503 {
AzureIoTClient 23:1111ee8bcba4 2504 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 2505 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2506 {
AzureIoTClient 28:add19eb7defa 2507 /* do nothing */
AzureIoTClient 28:add19eb7defa 2508 }
AzureIoTClient 28:add19eb7defa 2509 else
AzureIoTClient 28:add19eb7defa 2510 {
AzureIoTClient 28:add19eb7defa 2511 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2512 {
AzureIoTClient 28:add19eb7defa 2513 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2514 }
AzureIoTClient 28:add19eb7defa 2515 else
AzureIoTClient 28:add19eb7defa 2516 {
AzureIoTClient 28:add19eb7defa 2517 handle handle_max;
AzureIoTClient 28:add19eb7defa 2518 if (amqpvalue_get_handle(item_value, &handle_max) != 0)
AzureIoTClient 28:add19eb7defa 2519 {
AzureIoTClient 28:add19eb7defa 2520 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2521 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2522 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2523 break;
AzureIoTClient 28:add19eb7defa 2524 }
AzureIoTClient 28:add19eb7defa 2525 }
AzureIoTClient 28:add19eb7defa 2526
AzureIoTClient 28:add19eb7defa 2527 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2528 }
AzureIoTClient 28:add19eb7defa 2529 }
AzureIoTClient 28:add19eb7defa 2530 /* offered-capabilities */
AzureIoTClient 28:add19eb7defa 2531 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 2532 {
AzureIoTClient 23:1111ee8bcba4 2533 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 2534 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2535 {
AzureIoTClient 28:add19eb7defa 2536 /* do nothing */
AzureIoTClient 28:add19eb7defa 2537 }
AzureIoTClient 28:add19eb7defa 2538 else
AzureIoTClient 28:add19eb7defa 2539 {
AzureIoTClient 28:add19eb7defa 2540 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2541 {
AzureIoTClient 28:add19eb7defa 2542 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2543 }
AzureIoTClient 28:add19eb7defa 2544 else
AzureIoTClient 28:add19eb7defa 2545 {
AzureIoTClient 28:add19eb7defa 2546 const char* offered_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 2547 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 28:add19eb7defa 2548 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &offered_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 2549 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 2550 {
AzureIoTClient 28:add19eb7defa 2551 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2552 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2553 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2554 break;
AzureIoTClient 28:add19eb7defa 2555 }
AzureIoTClient 28:add19eb7defa 2556 }
AzureIoTClient 28:add19eb7defa 2557
AzureIoTClient 28:add19eb7defa 2558 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2559 }
AzureIoTClient 28:add19eb7defa 2560 }
AzureIoTClient 28:add19eb7defa 2561 /* desired-capabilities */
AzureIoTClient 28:add19eb7defa 2562 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 2563 {
AzureIoTClient 23:1111ee8bcba4 2564 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 2565 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2566 {
AzureIoTClient 28:add19eb7defa 2567 /* do nothing */
AzureIoTClient 28:add19eb7defa 2568 }
AzureIoTClient 28:add19eb7defa 2569 else
AzureIoTClient 28:add19eb7defa 2570 {
AzureIoTClient 28:add19eb7defa 2571 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2572 {
AzureIoTClient 28:add19eb7defa 2573 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2574 }
AzureIoTClient 28:add19eb7defa 2575 else
AzureIoTClient 28:add19eb7defa 2576 {
AzureIoTClient 28:add19eb7defa 2577 const char* desired_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 2578 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 28:add19eb7defa 2579 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &desired_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 2580 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 2581 {
AzureIoTClient 28:add19eb7defa 2582 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2583 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2584 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2585 break;
AzureIoTClient 28:add19eb7defa 2586 }
AzureIoTClient 28:add19eb7defa 2587 }
AzureIoTClient 28:add19eb7defa 2588
AzureIoTClient 28:add19eb7defa 2589 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2590 }
AzureIoTClient 28:add19eb7defa 2591 }
AzureIoTClient 28:add19eb7defa 2592 /* properties */
AzureIoTClient 28:add19eb7defa 2593 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 2594 {
AzureIoTClient 23:1111ee8bcba4 2595 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 2596 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2597 {
AzureIoTClient 28:add19eb7defa 2598 /* do nothing */
AzureIoTClient 28:add19eb7defa 2599 }
AzureIoTClient 28:add19eb7defa 2600 else
AzureIoTClient 28:add19eb7defa 2601 {
AzureIoTClient 28:add19eb7defa 2602 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2603 {
AzureIoTClient 28:add19eb7defa 2604 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2605 }
AzureIoTClient 28:add19eb7defa 2606 else
AzureIoTClient 28:add19eb7defa 2607 {
AzureIoTClient 28:add19eb7defa 2608 fields properties;
AzureIoTClient 28:add19eb7defa 2609 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 2610 {
AzureIoTClient 28:add19eb7defa 2611 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2612 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2613 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2614 break;
AzureIoTClient 28:add19eb7defa 2615 }
AzureIoTClient 28:add19eb7defa 2616 }
AzureIoTClient 28:add19eb7defa 2617
AzureIoTClient 28:add19eb7defa 2618 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2619 }
AzureIoTClient 28:add19eb7defa 2620 }
AzureIoTClient 28:add19eb7defa 2621
AzureIoTClient 28:add19eb7defa 2622 begin_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 2623
AzureIoTClient 28:add19eb7defa 2624 result = 0;
AzureIoTClient 28:add19eb7defa 2625 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 2626 }
AzureIoTClient 28:add19eb7defa 2627 }
AzureIoTClient 28:add19eb7defa 2628 }
AzureIoTClient 28:add19eb7defa 2629
AzureIoTClient 28:add19eb7defa 2630 return result;
Azure.IoT Build 0:6ae2f7bca550 2631 }
Azure.IoT Build 0:6ae2f7bca550 2632
Azure.IoT Build 0:6ae2f7bca550 2633 int begin_get_remote_channel(BEGIN_HANDLE begin, uint16_t* remote_channel_value)
Azure.IoT Build 0:6ae2f7bca550 2634 {
AzureIoTClient 28:add19eb7defa 2635 int result;
AzureIoTClient 28:add19eb7defa 2636
AzureIoTClient 28:add19eb7defa 2637 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2638 {
AzureIoTClient 28:add19eb7defa 2639 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2640 }
AzureIoTClient 28:add19eb7defa 2641 else
AzureIoTClient 28:add19eb7defa 2642 {
AzureIoTClient 28:add19eb7defa 2643 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2644 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2645 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2646 {
AzureIoTClient 23:1111ee8bcba4 2647 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2648 }
AzureIoTClient 23:1111ee8bcba4 2649 else
AzureIoTClient 23:1111ee8bcba4 2650 {
AzureIoTClient 23:1111ee8bcba4 2651 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 2652 {
AzureIoTClient 28:add19eb7defa 2653 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2654 }
AzureIoTClient 28:add19eb7defa 2655 else
AzureIoTClient 28:add19eb7defa 2656 {
AzureIoTClient 28:add19eb7defa 2657 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 2658 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2659 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2660 {
AzureIoTClient 28:add19eb7defa 2661 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2662 }
AzureIoTClient 28:add19eb7defa 2663 else
AzureIoTClient 28:add19eb7defa 2664 {
AzureIoTClient 43:4c1e4e94cdd3 2665 int get_single_value_result = amqpvalue_get_ushort(item_value, remote_channel_value);
AzureIoTClient 43:4c1e4e94cdd3 2666 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 2667 {
AzureIoTClient 28:add19eb7defa 2668 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2669 }
AzureIoTClient 28:add19eb7defa 2670 else
AzureIoTClient 28:add19eb7defa 2671 {
AzureIoTClient 28:add19eb7defa 2672 result = 0;
AzureIoTClient 28:add19eb7defa 2673 }
AzureIoTClient 28:add19eb7defa 2674 }
AzureIoTClient 28:add19eb7defa 2675 }
AzureIoTClient 28:add19eb7defa 2676 }
AzureIoTClient 28:add19eb7defa 2677 }
AzureIoTClient 28:add19eb7defa 2678
AzureIoTClient 28:add19eb7defa 2679 return result;
Azure.IoT Build 0:6ae2f7bca550 2680 }
Azure.IoT Build 0:6ae2f7bca550 2681
Azure.IoT Build 0:6ae2f7bca550 2682 int begin_set_remote_channel(BEGIN_HANDLE begin, uint16_t remote_channel_value)
Azure.IoT Build 0:6ae2f7bca550 2683 {
AzureIoTClient 28:add19eb7defa 2684 int result;
AzureIoTClient 28:add19eb7defa 2685
AzureIoTClient 28:add19eb7defa 2686 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2687 {
AzureIoTClient 28:add19eb7defa 2688 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2689 }
AzureIoTClient 28:add19eb7defa 2690 else
AzureIoTClient 28:add19eb7defa 2691 {
AzureIoTClient 28:add19eb7defa 2692 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2693 AMQP_VALUE remote_channel_amqp_value = amqpvalue_create_ushort(remote_channel_value);
AzureIoTClient 28:add19eb7defa 2694 if (remote_channel_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2695 {
AzureIoTClient 28:add19eb7defa 2696 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2697 }
AzureIoTClient 28:add19eb7defa 2698 else
AzureIoTClient 28:add19eb7defa 2699 {
AzureIoTClient 28:add19eb7defa 2700 if (amqpvalue_set_composite_item(begin_instance->composite_value, 0, remote_channel_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2701 {
AzureIoTClient 28:add19eb7defa 2702 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2703 }
AzureIoTClient 28:add19eb7defa 2704 else
AzureIoTClient 28:add19eb7defa 2705 {
AzureIoTClient 28:add19eb7defa 2706 result = 0;
AzureIoTClient 28:add19eb7defa 2707 }
AzureIoTClient 28:add19eb7defa 2708
AzureIoTClient 28:add19eb7defa 2709 amqpvalue_destroy(remote_channel_amqp_value);
AzureIoTClient 28:add19eb7defa 2710 }
AzureIoTClient 28:add19eb7defa 2711 }
AzureIoTClient 28:add19eb7defa 2712
AzureIoTClient 28:add19eb7defa 2713 return result;
Azure.IoT Build 0:6ae2f7bca550 2714 }
Azure.IoT Build 0:6ae2f7bca550 2715
Azure.IoT Build 0:6ae2f7bca550 2716 int begin_get_next_outgoing_id(BEGIN_HANDLE begin, transfer_number* next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 2717 {
AzureIoTClient 28:add19eb7defa 2718 int result;
AzureIoTClient 28:add19eb7defa 2719
AzureIoTClient 28:add19eb7defa 2720 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2721 {
AzureIoTClient 28:add19eb7defa 2722 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2723 }
AzureIoTClient 28:add19eb7defa 2724 else
AzureIoTClient 28:add19eb7defa 2725 {
AzureIoTClient 28:add19eb7defa 2726 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2727 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2728 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2729 {
AzureIoTClient 23:1111ee8bcba4 2730 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2731 }
AzureIoTClient 23:1111ee8bcba4 2732 else
AzureIoTClient 23:1111ee8bcba4 2733 {
AzureIoTClient 23:1111ee8bcba4 2734 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 2735 {
AzureIoTClient 28:add19eb7defa 2736 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2737 }
AzureIoTClient 28:add19eb7defa 2738 else
AzureIoTClient 28:add19eb7defa 2739 {
AzureIoTClient 28:add19eb7defa 2740 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 2741 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2742 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2743 {
AzureIoTClient 28:add19eb7defa 2744 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2745 }
AzureIoTClient 28:add19eb7defa 2746 else
AzureIoTClient 28:add19eb7defa 2747 {
AzureIoTClient 43:4c1e4e94cdd3 2748 int get_single_value_result = amqpvalue_get_transfer_number(item_value, next_outgoing_id_value);
AzureIoTClient 43:4c1e4e94cdd3 2749 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 2750 {
AzureIoTClient 28:add19eb7defa 2751 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2752 }
AzureIoTClient 28:add19eb7defa 2753 else
AzureIoTClient 28:add19eb7defa 2754 {
AzureIoTClient 28:add19eb7defa 2755 result = 0;
AzureIoTClient 28:add19eb7defa 2756 }
AzureIoTClient 28:add19eb7defa 2757 }
AzureIoTClient 28:add19eb7defa 2758 }
AzureIoTClient 28:add19eb7defa 2759 }
AzureIoTClient 28:add19eb7defa 2760 }
AzureIoTClient 28:add19eb7defa 2761
AzureIoTClient 28:add19eb7defa 2762 return result;
Azure.IoT Build 0:6ae2f7bca550 2763 }
Azure.IoT Build 0:6ae2f7bca550 2764
Azure.IoT Build 0:6ae2f7bca550 2765 int begin_set_next_outgoing_id(BEGIN_HANDLE begin, transfer_number next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 2766 {
AzureIoTClient 28:add19eb7defa 2767 int result;
AzureIoTClient 28:add19eb7defa 2768
AzureIoTClient 28:add19eb7defa 2769 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2770 {
AzureIoTClient 28:add19eb7defa 2771 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2772 }
AzureIoTClient 28:add19eb7defa 2773 else
AzureIoTClient 28:add19eb7defa 2774 {
AzureIoTClient 28:add19eb7defa 2775 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2776 AMQP_VALUE next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 2777 if (next_outgoing_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2778 {
AzureIoTClient 28:add19eb7defa 2779 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2780 }
AzureIoTClient 28:add19eb7defa 2781 else
AzureIoTClient 28:add19eb7defa 2782 {
AzureIoTClient 28:add19eb7defa 2783 if (amqpvalue_set_composite_item(begin_instance->composite_value, 1, next_outgoing_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2784 {
AzureIoTClient 28:add19eb7defa 2785 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2786 }
AzureIoTClient 28:add19eb7defa 2787 else
AzureIoTClient 28:add19eb7defa 2788 {
AzureIoTClient 28:add19eb7defa 2789 result = 0;
AzureIoTClient 28:add19eb7defa 2790 }
AzureIoTClient 28:add19eb7defa 2791
AzureIoTClient 28:add19eb7defa 2792 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 2793 }
AzureIoTClient 28:add19eb7defa 2794 }
AzureIoTClient 28:add19eb7defa 2795
AzureIoTClient 28:add19eb7defa 2796 return result;
Azure.IoT Build 0:6ae2f7bca550 2797 }
Azure.IoT Build 0:6ae2f7bca550 2798
Azure.IoT Build 0:6ae2f7bca550 2799 int begin_get_incoming_window(BEGIN_HANDLE begin, uint32_t* incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 2800 {
AzureIoTClient 28:add19eb7defa 2801 int result;
AzureIoTClient 28:add19eb7defa 2802
AzureIoTClient 28:add19eb7defa 2803 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2804 {
AzureIoTClient 28:add19eb7defa 2805 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2806 }
AzureIoTClient 28:add19eb7defa 2807 else
AzureIoTClient 28:add19eb7defa 2808 {
AzureIoTClient 28:add19eb7defa 2809 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2810 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2811 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2812 {
AzureIoTClient 23:1111ee8bcba4 2813 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2814 }
AzureIoTClient 23:1111ee8bcba4 2815 else
AzureIoTClient 23:1111ee8bcba4 2816 {
AzureIoTClient 23:1111ee8bcba4 2817 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 2818 {
AzureIoTClient 28:add19eb7defa 2819 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2820 }
AzureIoTClient 28:add19eb7defa 2821 else
AzureIoTClient 28:add19eb7defa 2822 {
AzureIoTClient 28:add19eb7defa 2823 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 2824 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2825 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2826 {
AzureIoTClient 28:add19eb7defa 2827 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2828 }
AzureIoTClient 28:add19eb7defa 2829 else
AzureIoTClient 28:add19eb7defa 2830 {
AzureIoTClient 43:4c1e4e94cdd3 2831 int get_single_value_result = amqpvalue_get_uint(item_value, incoming_window_value);
AzureIoTClient 43:4c1e4e94cdd3 2832 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 2833 {
AzureIoTClient 28:add19eb7defa 2834 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2835 }
AzureIoTClient 28:add19eb7defa 2836 else
AzureIoTClient 28:add19eb7defa 2837 {
AzureIoTClient 28:add19eb7defa 2838 result = 0;
AzureIoTClient 28:add19eb7defa 2839 }
AzureIoTClient 28:add19eb7defa 2840 }
AzureIoTClient 28:add19eb7defa 2841 }
AzureIoTClient 28:add19eb7defa 2842 }
AzureIoTClient 28:add19eb7defa 2843 }
AzureIoTClient 28:add19eb7defa 2844
AzureIoTClient 28:add19eb7defa 2845 return result;
Azure.IoT Build 0:6ae2f7bca550 2846 }
Azure.IoT Build 0:6ae2f7bca550 2847
Azure.IoT Build 0:6ae2f7bca550 2848 int begin_set_incoming_window(BEGIN_HANDLE begin, uint32_t incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 2849 {
AzureIoTClient 28:add19eb7defa 2850 int result;
AzureIoTClient 28:add19eb7defa 2851
AzureIoTClient 28:add19eb7defa 2852 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2853 {
AzureIoTClient 28:add19eb7defa 2854 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2855 }
AzureIoTClient 28:add19eb7defa 2856 else
AzureIoTClient 28:add19eb7defa 2857 {
AzureIoTClient 28:add19eb7defa 2858 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2859 AMQP_VALUE incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 2860 if (incoming_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2861 {
AzureIoTClient 28:add19eb7defa 2862 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2863 }
AzureIoTClient 28:add19eb7defa 2864 else
AzureIoTClient 28:add19eb7defa 2865 {
AzureIoTClient 28:add19eb7defa 2866 if (amqpvalue_set_composite_item(begin_instance->composite_value, 2, incoming_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2867 {
AzureIoTClient 28:add19eb7defa 2868 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2869 }
AzureIoTClient 28:add19eb7defa 2870 else
AzureIoTClient 28:add19eb7defa 2871 {
AzureIoTClient 28:add19eb7defa 2872 result = 0;
AzureIoTClient 28:add19eb7defa 2873 }
AzureIoTClient 28:add19eb7defa 2874
AzureIoTClient 28:add19eb7defa 2875 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2876 }
AzureIoTClient 28:add19eb7defa 2877 }
AzureIoTClient 28:add19eb7defa 2878
AzureIoTClient 28:add19eb7defa 2879 return result;
Azure.IoT Build 0:6ae2f7bca550 2880 }
Azure.IoT Build 0:6ae2f7bca550 2881
Azure.IoT Build 0:6ae2f7bca550 2882 int begin_get_outgoing_window(BEGIN_HANDLE begin, uint32_t* outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 2883 {
AzureIoTClient 28:add19eb7defa 2884 int result;
AzureIoTClient 28:add19eb7defa 2885
AzureIoTClient 28:add19eb7defa 2886 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2887 {
AzureIoTClient 28:add19eb7defa 2888 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2889 }
AzureIoTClient 28:add19eb7defa 2890 else
AzureIoTClient 28:add19eb7defa 2891 {
AzureIoTClient 28:add19eb7defa 2892 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2893 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2894 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2895 {
AzureIoTClient 23:1111ee8bcba4 2896 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2897 }
AzureIoTClient 23:1111ee8bcba4 2898 else
AzureIoTClient 23:1111ee8bcba4 2899 {
AzureIoTClient 23:1111ee8bcba4 2900 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 2901 {
AzureIoTClient 28:add19eb7defa 2902 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2903 }
AzureIoTClient 28:add19eb7defa 2904 else
AzureIoTClient 28:add19eb7defa 2905 {
AzureIoTClient 28:add19eb7defa 2906 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 2907 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2908 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2909 {
AzureIoTClient 28:add19eb7defa 2910 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2911 }
AzureIoTClient 28:add19eb7defa 2912 else
AzureIoTClient 28:add19eb7defa 2913 {
AzureIoTClient 43:4c1e4e94cdd3 2914 int get_single_value_result = amqpvalue_get_uint(item_value, outgoing_window_value);
AzureIoTClient 43:4c1e4e94cdd3 2915 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 2916 {
AzureIoTClient 28:add19eb7defa 2917 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2918 }
AzureIoTClient 28:add19eb7defa 2919 else
AzureIoTClient 28:add19eb7defa 2920 {
AzureIoTClient 28:add19eb7defa 2921 result = 0;
AzureIoTClient 28:add19eb7defa 2922 }
AzureIoTClient 28:add19eb7defa 2923 }
AzureIoTClient 28:add19eb7defa 2924 }
AzureIoTClient 28:add19eb7defa 2925 }
AzureIoTClient 28:add19eb7defa 2926 }
AzureIoTClient 28:add19eb7defa 2927
AzureIoTClient 28:add19eb7defa 2928 return result;
Azure.IoT Build 0:6ae2f7bca550 2929 }
Azure.IoT Build 0:6ae2f7bca550 2930
Azure.IoT Build 0:6ae2f7bca550 2931 int begin_set_outgoing_window(BEGIN_HANDLE begin, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 2932 {
AzureIoTClient 28:add19eb7defa 2933 int result;
AzureIoTClient 28:add19eb7defa 2934
AzureIoTClient 28:add19eb7defa 2935 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2936 {
AzureIoTClient 28:add19eb7defa 2937 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2938 }
AzureIoTClient 28:add19eb7defa 2939 else
AzureIoTClient 28:add19eb7defa 2940 {
AzureIoTClient 28:add19eb7defa 2941 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2942 AMQP_VALUE outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 2943 if (outgoing_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2944 {
AzureIoTClient 28:add19eb7defa 2945 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2946 }
AzureIoTClient 28:add19eb7defa 2947 else
AzureIoTClient 28:add19eb7defa 2948 {
AzureIoTClient 28:add19eb7defa 2949 if (amqpvalue_set_composite_item(begin_instance->composite_value, 3, outgoing_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2950 {
AzureIoTClient 28:add19eb7defa 2951 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2952 }
AzureIoTClient 28:add19eb7defa 2953 else
AzureIoTClient 28:add19eb7defa 2954 {
AzureIoTClient 28:add19eb7defa 2955 result = 0;
AzureIoTClient 28:add19eb7defa 2956 }
AzureIoTClient 28:add19eb7defa 2957
AzureIoTClient 28:add19eb7defa 2958 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2959 }
AzureIoTClient 28:add19eb7defa 2960 }
AzureIoTClient 28:add19eb7defa 2961
AzureIoTClient 28:add19eb7defa 2962 return result;
Azure.IoT Build 0:6ae2f7bca550 2963 }
Azure.IoT Build 0:6ae2f7bca550 2964
Azure.IoT Build 0:6ae2f7bca550 2965 int begin_get_handle_max(BEGIN_HANDLE begin, handle* handle_max_value)
Azure.IoT Build 0:6ae2f7bca550 2966 {
AzureIoTClient 28:add19eb7defa 2967 int result;
AzureIoTClient 28:add19eb7defa 2968
AzureIoTClient 28:add19eb7defa 2969 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2970 {
AzureIoTClient 28:add19eb7defa 2971 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2972 }
AzureIoTClient 28:add19eb7defa 2973 else
AzureIoTClient 28:add19eb7defa 2974 {
AzureIoTClient 28:add19eb7defa 2975 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2976 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2977 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2978 {
AzureIoTClient 23:1111ee8bcba4 2979 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2980 }
AzureIoTClient 23:1111ee8bcba4 2981 else
AzureIoTClient 23:1111ee8bcba4 2982 {
AzureIoTClient 23:1111ee8bcba4 2983 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 2984 {
AzureIoTClient 28:add19eb7defa 2985 *handle_max_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 2986 result = 0;
AzureIoTClient 28:add19eb7defa 2987 }
AzureIoTClient 28:add19eb7defa 2988 else
AzureIoTClient 28:add19eb7defa 2989 {
AzureIoTClient 28:add19eb7defa 2990 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 2991 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2992 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2993 {
AzureIoTClient 28:add19eb7defa 2994 *handle_max_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 2995 result = 0;
AzureIoTClient 28:add19eb7defa 2996 }
AzureIoTClient 28:add19eb7defa 2997 else
AzureIoTClient 28:add19eb7defa 2998 {
AzureIoTClient 43:4c1e4e94cdd3 2999 int get_single_value_result = amqpvalue_get_handle(item_value, handle_max_value);
AzureIoTClient 43:4c1e4e94cdd3 3000 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 3001 {
AzureIoTClient 23:1111ee8bcba4 3002 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 3003 {
AzureIoTClient 28:add19eb7defa 3004 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3005 }
AzureIoTClient 28:add19eb7defa 3006 else
AzureIoTClient 28:add19eb7defa 3007 {
AzureIoTClient 28:add19eb7defa 3008 *handle_max_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 3009 result = 0;
AzureIoTClient 23:1111ee8bcba4 3010 }
AzureIoTClient 28:add19eb7defa 3011 }
AzureIoTClient 28:add19eb7defa 3012 else
AzureIoTClient 28:add19eb7defa 3013 {
AzureIoTClient 28:add19eb7defa 3014 result = 0;
AzureIoTClient 28:add19eb7defa 3015 }
AzureIoTClient 28:add19eb7defa 3016 }
AzureIoTClient 28:add19eb7defa 3017 }
AzureIoTClient 28:add19eb7defa 3018 }
AzureIoTClient 28:add19eb7defa 3019 }
AzureIoTClient 28:add19eb7defa 3020
AzureIoTClient 28:add19eb7defa 3021 return result;
Azure.IoT Build 0:6ae2f7bca550 3022 }
Azure.IoT Build 0:6ae2f7bca550 3023
Azure.IoT Build 0:6ae2f7bca550 3024 int begin_set_handle_max(BEGIN_HANDLE begin, handle handle_max_value)
Azure.IoT Build 0:6ae2f7bca550 3025 {
AzureIoTClient 28:add19eb7defa 3026 int result;
AzureIoTClient 28:add19eb7defa 3027
AzureIoTClient 28:add19eb7defa 3028 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3029 {
AzureIoTClient 28:add19eb7defa 3030 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3031 }
AzureIoTClient 28:add19eb7defa 3032 else
AzureIoTClient 28:add19eb7defa 3033 {
AzureIoTClient 28:add19eb7defa 3034 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3035 AMQP_VALUE handle_max_amqp_value = amqpvalue_create_handle(handle_max_value);
AzureIoTClient 28:add19eb7defa 3036 if (handle_max_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3037 {
AzureIoTClient 28:add19eb7defa 3038 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3039 }
AzureIoTClient 28:add19eb7defa 3040 else
AzureIoTClient 28:add19eb7defa 3041 {
AzureIoTClient 28:add19eb7defa 3042 if (amqpvalue_set_composite_item(begin_instance->composite_value, 4, handle_max_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3043 {
AzureIoTClient 28:add19eb7defa 3044 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3045 }
AzureIoTClient 28:add19eb7defa 3046 else
AzureIoTClient 28:add19eb7defa 3047 {
AzureIoTClient 28:add19eb7defa 3048 result = 0;
AzureIoTClient 28:add19eb7defa 3049 }
AzureIoTClient 28:add19eb7defa 3050
AzureIoTClient 28:add19eb7defa 3051 amqpvalue_destroy(handle_max_amqp_value);
AzureIoTClient 28:add19eb7defa 3052 }
AzureIoTClient 28:add19eb7defa 3053 }
AzureIoTClient 28:add19eb7defa 3054
AzureIoTClient 28:add19eb7defa 3055 return result;
Azure.IoT Build 0:6ae2f7bca550 3056 }
Azure.IoT Build 0:6ae2f7bca550 3057
Azure.IoT Build 0:6ae2f7bca550 3058 int begin_get_offered_capabilities(BEGIN_HANDLE begin, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3059 {
AzureIoTClient 28:add19eb7defa 3060 int result;
AzureIoTClient 28:add19eb7defa 3061
AzureIoTClient 28:add19eb7defa 3062 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3063 {
AzureIoTClient 28:add19eb7defa 3064 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3065 }
AzureIoTClient 28:add19eb7defa 3066 else
AzureIoTClient 28:add19eb7defa 3067 {
AzureIoTClient 28:add19eb7defa 3068 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3069 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3070 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3071 {
AzureIoTClient 23:1111ee8bcba4 3072 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3073 }
AzureIoTClient 23:1111ee8bcba4 3074 else
AzureIoTClient 23:1111ee8bcba4 3075 {
AzureIoTClient 23:1111ee8bcba4 3076 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 3077 {
AzureIoTClient 28:add19eb7defa 3078 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3079 }
AzureIoTClient 28:add19eb7defa 3080 else
AzureIoTClient 28:add19eb7defa 3081 {
AzureIoTClient 28:add19eb7defa 3082 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 3083 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3084 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3085 {
AzureIoTClient 28:add19eb7defa 3086 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3087 }
AzureIoTClient 28:add19eb7defa 3088 else
AzureIoTClient 28:add19eb7defa 3089 {
AzureIoTClient 28:add19eb7defa 3090 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 3091 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3092 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3093 {
AzureIoTClient 28:add19eb7defa 3094 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3095 }
AzureIoTClient 28:add19eb7defa 3096 else
AzureIoTClient 28:add19eb7defa 3097 {
AzureIoTClient 28:add19eb7defa 3098 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 3099 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 3100 }
AzureIoTClient 28:add19eb7defa 3101
AzureIoTClient 28:add19eb7defa 3102 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 3103 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 3104 {
AzureIoTClient 28:add19eb7defa 3105 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3106 }
AzureIoTClient 28:add19eb7defa 3107 else
AzureIoTClient 28:add19eb7defa 3108 {
AzureIoTClient 28:add19eb7defa 3109 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3110 {
AzureIoTClient 28:add19eb7defa 3111 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 3112 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 3113 {
AzureIoTClient 28:add19eb7defa 3114 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3115 }
AzureIoTClient 28:add19eb7defa 3116 else
AzureIoTClient 28:add19eb7defa 3117 {
AzureIoTClient 28:add19eb7defa 3118 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3119 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3120 {
AzureIoTClient 28:add19eb7defa 3121 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 3122 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3123 }
AzureIoTClient 28:add19eb7defa 3124 else
AzureIoTClient 28:add19eb7defa 3125 {
AzureIoTClient 28:add19eb7defa 3126 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3127 {
AzureIoTClient 28:add19eb7defa 3128 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 3129 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 3130 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3131 }
AzureIoTClient 28:add19eb7defa 3132 else
AzureIoTClient 28:add19eb7defa 3133 {
AzureIoTClient 29:4a11413cf217 3134 if (amqpvalue_set_composite_item(begin_instance->composite_value, 5, *offered_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 3135 {
AzureIoTClient 29:4a11413cf217 3136 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 29:4a11413cf217 3137 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 3138 }
AzureIoTClient 29:4a11413cf217 3139 else
AzureIoTClient 29:4a11413cf217 3140 {
AzureIoTClient 29:4a11413cf217 3141 result = 0;
AzureIoTClient 29:4a11413cf217 3142 }
AzureIoTClient 28:add19eb7defa 3143 }
AzureIoTClient 29:4a11413cf217 3144
AzureIoTClient 29:4a11413cf217 3145 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 3146 }
AzureIoTClient 29:4a11413cf217 3147 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 3148 }
AzureIoTClient 28:add19eb7defa 3149 }
AzureIoTClient 28:add19eb7defa 3150 else
AzureIoTClient 28:add19eb7defa 3151 {
AzureIoTClient 28:add19eb7defa 3152 result = 0;
AzureIoTClient 28:add19eb7defa 3153 }
AzureIoTClient 28:add19eb7defa 3154 }
AzureIoTClient 28:add19eb7defa 3155 }
AzureIoTClient 28:add19eb7defa 3156 }
AzureIoTClient 28:add19eb7defa 3157 }
AzureIoTClient 28:add19eb7defa 3158 }
AzureIoTClient 28:add19eb7defa 3159
AzureIoTClient 28:add19eb7defa 3160 return result;
Azure.IoT Build 0:6ae2f7bca550 3161 }
Azure.IoT Build 0:6ae2f7bca550 3162
Azure.IoT Build 0:6ae2f7bca550 3163 int begin_set_offered_capabilities(BEGIN_HANDLE begin, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3164 {
AzureIoTClient 28:add19eb7defa 3165 int result;
AzureIoTClient 28:add19eb7defa 3166
AzureIoTClient 28:add19eb7defa 3167 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3168 {
AzureIoTClient 28:add19eb7defa 3169 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3170 }
AzureIoTClient 28:add19eb7defa 3171 else
AzureIoTClient 28:add19eb7defa 3172 {
AzureIoTClient 28:add19eb7defa 3173 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3174 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 3175 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3176 {
AzureIoTClient 23:1111ee8bcba4 3177 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 3178 }
AzureIoTClient 23:1111ee8bcba4 3179 else
AzureIoTClient 23:1111ee8bcba4 3180 {
AzureIoTClient 23:1111ee8bcba4 3181 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 3182 }
AzureIoTClient 28:add19eb7defa 3183 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3184 {
AzureIoTClient 28:add19eb7defa 3185 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3186 }
AzureIoTClient 28:add19eb7defa 3187 else
AzureIoTClient 28:add19eb7defa 3188 {
AzureIoTClient 28:add19eb7defa 3189 if (amqpvalue_set_composite_item(begin_instance->composite_value, 5, offered_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3190 {
AzureIoTClient 28:add19eb7defa 3191 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3192 }
AzureIoTClient 28:add19eb7defa 3193 else
AzureIoTClient 28:add19eb7defa 3194 {
AzureIoTClient 28:add19eb7defa 3195 result = 0;
AzureIoTClient 28:add19eb7defa 3196 }
AzureIoTClient 28:add19eb7defa 3197
AzureIoTClient 28:add19eb7defa 3198 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 3199 }
AzureIoTClient 28:add19eb7defa 3200 }
AzureIoTClient 28:add19eb7defa 3201
AzureIoTClient 28:add19eb7defa 3202 return result;
Azure.IoT Build 0:6ae2f7bca550 3203 }
Azure.IoT Build 0:6ae2f7bca550 3204
Azure.IoT Build 0:6ae2f7bca550 3205 int begin_get_desired_capabilities(BEGIN_HANDLE begin, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3206 {
AzureIoTClient 28:add19eb7defa 3207 int result;
AzureIoTClient 28:add19eb7defa 3208
AzureIoTClient 28:add19eb7defa 3209 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3210 {
AzureIoTClient 28:add19eb7defa 3211 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3212 }
AzureIoTClient 28:add19eb7defa 3213 else
AzureIoTClient 28:add19eb7defa 3214 {
AzureIoTClient 28:add19eb7defa 3215 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3216 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3217 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3218 {
AzureIoTClient 23:1111ee8bcba4 3219 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3220 }
AzureIoTClient 23:1111ee8bcba4 3221 else
AzureIoTClient 23:1111ee8bcba4 3222 {
AzureIoTClient 23:1111ee8bcba4 3223 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 3224 {
AzureIoTClient 28:add19eb7defa 3225 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3226 }
AzureIoTClient 28:add19eb7defa 3227 else
AzureIoTClient 28:add19eb7defa 3228 {
AzureIoTClient 28:add19eb7defa 3229 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 3230 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3231 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3232 {
AzureIoTClient 28:add19eb7defa 3233 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3234 }
AzureIoTClient 28:add19eb7defa 3235 else
AzureIoTClient 28:add19eb7defa 3236 {
AzureIoTClient 28:add19eb7defa 3237 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 3238 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3239 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3240 {
AzureIoTClient 28:add19eb7defa 3241 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3242 }
AzureIoTClient 28:add19eb7defa 3243 else
AzureIoTClient 28:add19eb7defa 3244 {
AzureIoTClient 28:add19eb7defa 3245 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 3246 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 3247 }
AzureIoTClient 28:add19eb7defa 3248
AzureIoTClient 28:add19eb7defa 3249 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 3250 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 3251 {
AzureIoTClient 28:add19eb7defa 3252 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3253 }
AzureIoTClient 28:add19eb7defa 3254 else
AzureIoTClient 28:add19eb7defa 3255 {
AzureIoTClient 28:add19eb7defa 3256 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3257 {
AzureIoTClient 28:add19eb7defa 3258 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 3259 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 3260 {
AzureIoTClient 28:add19eb7defa 3261 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3262 }
AzureIoTClient 28:add19eb7defa 3263 else
AzureIoTClient 28:add19eb7defa 3264 {
AzureIoTClient 28:add19eb7defa 3265 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3266 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3267 {
AzureIoTClient 28:add19eb7defa 3268 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 3269 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3270 }
AzureIoTClient 28:add19eb7defa 3271 else
AzureIoTClient 28:add19eb7defa 3272 {
AzureIoTClient 28:add19eb7defa 3273 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3274 {
AzureIoTClient 28:add19eb7defa 3275 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 3276 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 3277 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3278 }
AzureIoTClient 28:add19eb7defa 3279 else
AzureIoTClient 28:add19eb7defa 3280 {
AzureIoTClient 29:4a11413cf217 3281 if (amqpvalue_set_composite_item(begin_instance->composite_value, 6, *desired_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 3282 {
AzureIoTClient 29:4a11413cf217 3283 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 29:4a11413cf217 3284 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 3285 }
AzureIoTClient 29:4a11413cf217 3286 else
AzureIoTClient 29:4a11413cf217 3287 {
AzureIoTClient 29:4a11413cf217 3288 result = 0;
AzureIoTClient 29:4a11413cf217 3289 }
AzureIoTClient 28:add19eb7defa 3290 }
AzureIoTClient 29:4a11413cf217 3291
AzureIoTClient 29:4a11413cf217 3292 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 3293 }
AzureIoTClient 29:4a11413cf217 3294 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 3295 }
AzureIoTClient 28:add19eb7defa 3296 }
AzureIoTClient 28:add19eb7defa 3297 else
AzureIoTClient 28:add19eb7defa 3298 {
AzureIoTClient 28:add19eb7defa 3299 result = 0;
AzureIoTClient 28:add19eb7defa 3300 }
AzureIoTClient 28:add19eb7defa 3301 }
AzureIoTClient 28:add19eb7defa 3302 }
AzureIoTClient 28:add19eb7defa 3303 }
AzureIoTClient 28:add19eb7defa 3304 }
AzureIoTClient 28:add19eb7defa 3305 }
AzureIoTClient 28:add19eb7defa 3306
AzureIoTClient 28:add19eb7defa 3307 return result;
Azure.IoT Build 0:6ae2f7bca550 3308 }
Azure.IoT Build 0:6ae2f7bca550 3309
Azure.IoT Build 0:6ae2f7bca550 3310 int begin_set_desired_capabilities(BEGIN_HANDLE begin, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3311 {
AzureIoTClient 28:add19eb7defa 3312 int result;
AzureIoTClient 28:add19eb7defa 3313
AzureIoTClient 28:add19eb7defa 3314 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3315 {
AzureIoTClient 28:add19eb7defa 3316 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3317 }
AzureIoTClient 28:add19eb7defa 3318 else
AzureIoTClient 28:add19eb7defa 3319 {
AzureIoTClient 28:add19eb7defa 3320 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3321 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 3322 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3323 {
AzureIoTClient 23:1111ee8bcba4 3324 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 3325 }
AzureIoTClient 23:1111ee8bcba4 3326 else
AzureIoTClient 23:1111ee8bcba4 3327 {
AzureIoTClient 23:1111ee8bcba4 3328 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 3329 }
AzureIoTClient 28:add19eb7defa 3330 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3331 {
AzureIoTClient 28:add19eb7defa 3332 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3333 }
AzureIoTClient 28:add19eb7defa 3334 else
AzureIoTClient 28:add19eb7defa 3335 {
AzureIoTClient 28:add19eb7defa 3336 if (amqpvalue_set_composite_item(begin_instance->composite_value, 6, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3337 {
AzureIoTClient 28:add19eb7defa 3338 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3339 }
AzureIoTClient 28:add19eb7defa 3340 else
AzureIoTClient 28:add19eb7defa 3341 {
AzureIoTClient 28:add19eb7defa 3342 result = 0;
AzureIoTClient 28:add19eb7defa 3343 }
AzureIoTClient 28:add19eb7defa 3344
AzureIoTClient 28:add19eb7defa 3345 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 3346 }
AzureIoTClient 28:add19eb7defa 3347 }
AzureIoTClient 28:add19eb7defa 3348
AzureIoTClient 28:add19eb7defa 3349 return result;
Azure.IoT Build 0:6ae2f7bca550 3350 }
Azure.IoT Build 0:6ae2f7bca550 3351
Azure.IoT Build 0:6ae2f7bca550 3352 int begin_get_properties(BEGIN_HANDLE begin, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 3353 {
AzureIoTClient 28:add19eb7defa 3354 int result;
AzureIoTClient 28:add19eb7defa 3355
AzureIoTClient 28:add19eb7defa 3356 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3357 {
AzureIoTClient 28:add19eb7defa 3358 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3359 }
AzureIoTClient 28:add19eb7defa 3360 else
AzureIoTClient 28:add19eb7defa 3361 {
AzureIoTClient 28:add19eb7defa 3362 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3363 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3364 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3365 {
AzureIoTClient 23:1111ee8bcba4 3366 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3367 }
AzureIoTClient 23:1111ee8bcba4 3368 else
AzureIoTClient 23:1111ee8bcba4 3369 {
AzureIoTClient 23:1111ee8bcba4 3370 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 3371 {
AzureIoTClient 28:add19eb7defa 3372 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3373 }
AzureIoTClient 28:add19eb7defa 3374 else
AzureIoTClient 28:add19eb7defa 3375 {
AzureIoTClient 28:add19eb7defa 3376 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 3377 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3378 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3379 {
AzureIoTClient 28:add19eb7defa 3380 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3381 }
AzureIoTClient 28:add19eb7defa 3382 else
AzureIoTClient 28:add19eb7defa 3383 {
AzureIoTClient 43:4c1e4e94cdd3 3384 int get_single_value_result = amqpvalue_get_fields(item_value, properties_value);
AzureIoTClient 43:4c1e4e94cdd3 3385 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 3386 {
AzureIoTClient 28:add19eb7defa 3387 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3388 }
AzureIoTClient 28:add19eb7defa 3389 else
AzureIoTClient 28:add19eb7defa 3390 {
AzureIoTClient 28:add19eb7defa 3391 result = 0;
AzureIoTClient 28:add19eb7defa 3392 }
AzureIoTClient 28:add19eb7defa 3393 }
AzureIoTClient 28:add19eb7defa 3394 }
AzureIoTClient 28:add19eb7defa 3395 }
AzureIoTClient 28:add19eb7defa 3396 }
AzureIoTClient 28:add19eb7defa 3397
AzureIoTClient 28:add19eb7defa 3398 return result;
Azure.IoT Build 0:6ae2f7bca550 3399 }
Azure.IoT Build 0:6ae2f7bca550 3400
Azure.IoT Build 0:6ae2f7bca550 3401 int begin_set_properties(BEGIN_HANDLE begin, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 3402 {
AzureIoTClient 28:add19eb7defa 3403 int result;
AzureIoTClient 28:add19eb7defa 3404
AzureIoTClient 28:add19eb7defa 3405 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3406 {
AzureIoTClient 28:add19eb7defa 3407 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3408 }
AzureIoTClient 28:add19eb7defa 3409 else
AzureIoTClient 28:add19eb7defa 3410 {
AzureIoTClient 28:add19eb7defa 3411 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3412 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 3413 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3414 {
AzureIoTClient 28:add19eb7defa 3415 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3416 }
AzureIoTClient 28:add19eb7defa 3417 else
AzureIoTClient 28:add19eb7defa 3418 {
AzureIoTClient 28:add19eb7defa 3419 if (amqpvalue_set_composite_item(begin_instance->composite_value, 7, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3420 {
AzureIoTClient 28:add19eb7defa 3421 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3422 }
AzureIoTClient 28:add19eb7defa 3423 else
AzureIoTClient 28:add19eb7defa 3424 {
AzureIoTClient 28:add19eb7defa 3425 result = 0;
AzureIoTClient 28:add19eb7defa 3426 }
AzureIoTClient 28:add19eb7defa 3427
AzureIoTClient 28:add19eb7defa 3428 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 3429 }
AzureIoTClient 28:add19eb7defa 3430 }
AzureIoTClient 28:add19eb7defa 3431
AzureIoTClient 28:add19eb7defa 3432 return result;
Azure.IoT Build 0:6ae2f7bca550 3433 }
Azure.IoT Build 0:6ae2f7bca550 3434
Azure.IoT Build 0:6ae2f7bca550 3435
Azure.IoT Build 0:6ae2f7bca550 3436 /* attach */
Azure.IoT Build 0:6ae2f7bca550 3437
Azure.IoT Build 0:6ae2f7bca550 3438 typedef struct ATTACH_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 3439 {
AzureIoTClient 28:add19eb7defa 3440 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 3441 } ATTACH_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 3442
Azure.IoT Build 0:6ae2f7bca550 3443 static ATTACH_HANDLE attach_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 3444 {
AzureIoTClient 28:add19eb7defa 3445 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3446 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3447 {
AzureIoTClient 28:add19eb7defa 3448 attach_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 3449 }
AzureIoTClient 28:add19eb7defa 3450
AzureIoTClient 28:add19eb7defa 3451 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3452 }
Azure.IoT Build 0:6ae2f7bca550 3453
Azure.IoT Build 0:6ae2f7bca550 3454 ATTACH_HANDLE attach_create(const char* name_value, handle handle_value, role role_value)
Azure.IoT Build 0:6ae2f7bca550 3455 {
AzureIoTClient 28:add19eb7defa 3456 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3457 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3458 {
AzureIoTClient 28:add19eb7defa 3459 attach_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(18);
AzureIoTClient 28:add19eb7defa 3460 if (attach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 3461 {
AzureIoTClient 28:add19eb7defa 3462 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3463 attach_instance = NULL;
AzureIoTClient 28:add19eb7defa 3464 }
AzureIoTClient 28:add19eb7defa 3465 else
AzureIoTClient 28:add19eb7defa 3466 {
AzureIoTClient 28:add19eb7defa 3467 AMQP_VALUE name_amqp_value;
AzureIoTClient 28:add19eb7defa 3468 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 3469 AMQP_VALUE role_amqp_value;
AzureIoTClient 28:add19eb7defa 3470 int result = 0;
AzureIoTClient 28:add19eb7defa 3471
AzureIoTClient 28:add19eb7defa 3472 name_amqp_value = amqpvalue_create_string(name_value);
AzureIoTClient 28:add19eb7defa 3473 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 0, name_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3474 {
AzureIoTClient 28:add19eb7defa 3475 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3476 }
AzureIoTClient 28:add19eb7defa 3477 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 3478 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 1, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3479 {
AzureIoTClient 28:add19eb7defa 3480 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3481 }
AzureIoTClient 28:add19eb7defa 3482 role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 3483 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 2, role_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3484 {
AzureIoTClient 28:add19eb7defa 3485 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3486 }
AzureIoTClient 28:add19eb7defa 3487
AzureIoTClient 28:add19eb7defa 3488 amqpvalue_destroy(name_amqp_value);
AzureIoTClient 28:add19eb7defa 3489 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 3490 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 3491 }
AzureIoTClient 28:add19eb7defa 3492 }
AzureIoTClient 28:add19eb7defa 3493
AzureIoTClient 28:add19eb7defa 3494 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3495 }
Azure.IoT Build 0:6ae2f7bca550 3496
Azure.IoT Build 0:6ae2f7bca550 3497 ATTACH_HANDLE attach_clone(ATTACH_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 3498 {
AzureIoTClient 28:add19eb7defa 3499 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3500 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3501 {
AzureIoTClient 28:add19eb7defa 3502 attach_instance->composite_value = amqpvalue_clone(((ATTACH_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 3503 if (attach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 3504 {
AzureIoTClient 28:add19eb7defa 3505 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3506 attach_instance = NULL;
AzureIoTClient 28:add19eb7defa 3507 }
AzureIoTClient 28:add19eb7defa 3508 }
AzureIoTClient 28:add19eb7defa 3509
AzureIoTClient 28:add19eb7defa 3510 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3511 }
Azure.IoT Build 0:6ae2f7bca550 3512
Azure.IoT Build 0:6ae2f7bca550 3513 void attach_destroy(ATTACH_HANDLE attach)
Azure.IoT Build 0:6ae2f7bca550 3514 {
AzureIoTClient 28:add19eb7defa 3515 if (attach != NULL)
AzureIoTClient 28:add19eb7defa 3516 {
AzureIoTClient 28:add19eb7defa 3517 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 3518 amqpvalue_destroy(attach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 3519 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3520 }
Azure.IoT Build 0:6ae2f7bca550 3521 }
Azure.IoT Build 0:6ae2f7bca550 3522
Azure.IoT Build 0:6ae2f7bca550 3523 AMQP_VALUE amqpvalue_create_attach(ATTACH_HANDLE attach)
Azure.IoT Build 0:6ae2f7bca550 3524 {
AzureIoTClient 28:add19eb7defa 3525 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 3526
AzureIoTClient 28:add19eb7defa 3527 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 3528 {
AzureIoTClient 28:add19eb7defa 3529 result = NULL;
AzureIoTClient 28:add19eb7defa 3530 }
AzureIoTClient 28:add19eb7defa 3531 else
AzureIoTClient 28:add19eb7defa 3532 {
AzureIoTClient 28:add19eb7defa 3533 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 3534 result = amqpvalue_clone(attach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 3535 }
AzureIoTClient 28:add19eb7defa 3536
AzureIoTClient 28:add19eb7defa 3537 return result;
Azure.IoT Build 0:6ae2f7bca550 3538 }
Azure.IoT Build 0:6ae2f7bca550 3539
Azure.IoT Build 0:6ae2f7bca550 3540 bool is_attach_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 3541 {
AzureIoTClient 28:add19eb7defa 3542 bool result;
AzureIoTClient 28:add19eb7defa 3543
AzureIoTClient 28:add19eb7defa 3544 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 3545 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 3546 (descriptor_ulong == 18))
AzureIoTClient 28:add19eb7defa 3547 {
AzureIoTClient 28:add19eb7defa 3548 result = true;
AzureIoTClient 28:add19eb7defa 3549 }
AzureIoTClient 28:add19eb7defa 3550 else
AzureIoTClient 28:add19eb7defa 3551 {
AzureIoTClient 28:add19eb7defa 3552 result = false;
AzureIoTClient 28:add19eb7defa 3553 }
AzureIoTClient 28:add19eb7defa 3554
AzureIoTClient 28:add19eb7defa 3555 return result;
Azure.IoT Build 0:6ae2f7bca550 3556 }
Azure.IoT Build 0:6ae2f7bca550 3557
Azure.IoT Build 0:6ae2f7bca550 3558
Azure.IoT Build 0:6ae2f7bca550 3559 int amqpvalue_get_attach(AMQP_VALUE value, ATTACH_HANDLE* attach_handle)
Azure.IoT Build 0:6ae2f7bca550 3560 {
AzureIoTClient 28:add19eb7defa 3561 int result;
AzureIoTClient 28:add19eb7defa 3562 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach_create_internal();
AzureIoTClient 28:add19eb7defa 3563 *attach_handle = attach_instance;
AzureIoTClient 28:add19eb7defa 3564 if (*attach_handle == NULL)
AzureIoTClient 28:add19eb7defa 3565 {
AzureIoTClient 28:add19eb7defa 3566 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3567 }
AzureIoTClient 28:add19eb7defa 3568 else
AzureIoTClient 28:add19eb7defa 3569 {
AzureIoTClient 28:add19eb7defa 3570 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 3571 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 3572 {
AzureIoTClient 28:add19eb7defa 3573 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3574 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3575 }
AzureIoTClient 28:add19eb7defa 3576 else
AzureIoTClient 28:add19eb7defa 3577 {
AzureIoTClient 23:1111ee8bcba4 3578 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 3579 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3580 {
AzureIoTClient 23:1111ee8bcba4 3581 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3582 }
AzureIoTClient 23:1111ee8bcba4 3583 else
AzureIoTClient 23:1111ee8bcba4 3584 {
AzureIoTClient 28:add19eb7defa 3585 do
AzureIoTClient 28:add19eb7defa 3586 {
AzureIoTClient 28:add19eb7defa 3587 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 3588 /* name */
AzureIoTClient 28:add19eb7defa 3589 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 3590 {
AzureIoTClient 23:1111ee8bcba4 3591 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 3592 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3593 {
AzureIoTClient 28:add19eb7defa 3594 {
AzureIoTClient 28:add19eb7defa 3595 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3596 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3597 break;
AzureIoTClient 28:add19eb7defa 3598 }
AzureIoTClient 28:add19eb7defa 3599 }
AzureIoTClient 28:add19eb7defa 3600 else
AzureIoTClient 28:add19eb7defa 3601 {
AzureIoTClient 28:add19eb7defa 3602 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3603 {
AzureIoTClient 28:add19eb7defa 3604 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3605 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3606 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3607 break;
AzureIoTClient 28:add19eb7defa 3608 }
AzureIoTClient 28:add19eb7defa 3609 else
AzureIoTClient 28:add19eb7defa 3610 {
AzureIoTClient 28:add19eb7defa 3611 const char* name;
AzureIoTClient 28:add19eb7defa 3612 if (amqpvalue_get_string(item_value, &name) != 0)
AzureIoTClient 28:add19eb7defa 3613 {
AzureIoTClient 28:add19eb7defa 3614 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3615 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3616 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3617 break;
AzureIoTClient 28:add19eb7defa 3618 }
AzureIoTClient 28:add19eb7defa 3619 }
AzureIoTClient 28:add19eb7defa 3620
AzureIoTClient 28:add19eb7defa 3621 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3622 }
AzureIoTClient 28:add19eb7defa 3623 }
AzureIoTClient 28:add19eb7defa 3624 else
AzureIoTClient 28:add19eb7defa 3625 {
AzureIoTClient 28:add19eb7defa 3626 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3627 }
AzureIoTClient 28:add19eb7defa 3628 /* handle */
AzureIoTClient 28:add19eb7defa 3629 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 3630 {
AzureIoTClient 23:1111ee8bcba4 3631 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 3632 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3633 {
AzureIoTClient 28:add19eb7defa 3634 {
AzureIoTClient 28:add19eb7defa 3635 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3636 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3637 break;
AzureIoTClient 28:add19eb7defa 3638 }
AzureIoTClient 28:add19eb7defa 3639 }
AzureIoTClient 28:add19eb7defa 3640 else
AzureIoTClient 28:add19eb7defa 3641 {
AzureIoTClient 28:add19eb7defa 3642 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3643 {
AzureIoTClient 28:add19eb7defa 3644 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3645 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3646 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3647 break;
AzureIoTClient 28:add19eb7defa 3648 }
AzureIoTClient 28:add19eb7defa 3649 else
AzureIoTClient 28:add19eb7defa 3650 {
AzureIoTClient 28:add19eb7defa 3651 handle handle;
AzureIoTClient 28:add19eb7defa 3652 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 3653 {
AzureIoTClient 28:add19eb7defa 3654 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3655 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3656 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3657 break;
AzureIoTClient 28:add19eb7defa 3658 }
AzureIoTClient 28:add19eb7defa 3659 }
AzureIoTClient 28:add19eb7defa 3660
AzureIoTClient 28:add19eb7defa 3661 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3662 }
AzureIoTClient 28:add19eb7defa 3663 }
AzureIoTClient 28:add19eb7defa 3664 else
AzureIoTClient 28:add19eb7defa 3665 {
AzureIoTClient 28:add19eb7defa 3666 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3667 }
AzureIoTClient 28:add19eb7defa 3668 /* role */
AzureIoTClient 28:add19eb7defa 3669 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 3670 {
AzureIoTClient 23:1111ee8bcba4 3671 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 3672 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3673 {
AzureIoTClient 28:add19eb7defa 3674 {
AzureIoTClient 28:add19eb7defa 3675 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3676 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3677 break;
AzureIoTClient 28:add19eb7defa 3678 }
AzureIoTClient 28:add19eb7defa 3679 }
AzureIoTClient 28:add19eb7defa 3680 else
AzureIoTClient 28:add19eb7defa 3681 {
AzureIoTClient 28:add19eb7defa 3682 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3683 {
AzureIoTClient 28:add19eb7defa 3684 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3685 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3686 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3687 break;
AzureIoTClient 28:add19eb7defa 3688 }
AzureIoTClient 28:add19eb7defa 3689 else
AzureIoTClient 28:add19eb7defa 3690 {
AzureIoTClient 28:add19eb7defa 3691 role role;
AzureIoTClient 28:add19eb7defa 3692 if (amqpvalue_get_role(item_value, &role) != 0)
AzureIoTClient 28:add19eb7defa 3693 {
AzureIoTClient 28:add19eb7defa 3694 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3695 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3696 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3697 break;
AzureIoTClient 28:add19eb7defa 3698 }
AzureIoTClient 28:add19eb7defa 3699 }
AzureIoTClient 28:add19eb7defa 3700
AzureIoTClient 28:add19eb7defa 3701 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3702 }
AzureIoTClient 28:add19eb7defa 3703 }
AzureIoTClient 28:add19eb7defa 3704 else
AzureIoTClient 28:add19eb7defa 3705 {
AzureIoTClient 28:add19eb7defa 3706 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3707 }
AzureIoTClient 28:add19eb7defa 3708 /* snd-settle-mode */
AzureIoTClient 28:add19eb7defa 3709 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 3710 {
AzureIoTClient 23:1111ee8bcba4 3711 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 3712 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3713 {
AzureIoTClient 28:add19eb7defa 3714 /* do nothing */
AzureIoTClient 28:add19eb7defa 3715 }
AzureIoTClient 28:add19eb7defa 3716 else
AzureIoTClient 28:add19eb7defa 3717 {
AzureIoTClient 28:add19eb7defa 3718 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3719 {
AzureIoTClient 28:add19eb7defa 3720 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3721 }
AzureIoTClient 28:add19eb7defa 3722 else
AzureIoTClient 28:add19eb7defa 3723 {
AzureIoTClient 28:add19eb7defa 3724 sender_settle_mode snd_settle_mode;
AzureIoTClient 28:add19eb7defa 3725 if (amqpvalue_get_sender_settle_mode(item_value, &snd_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 3726 {
AzureIoTClient 28:add19eb7defa 3727 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3728 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3729 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3730 break;
AzureIoTClient 28:add19eb7defa 3731 }
AzureIoTClient 28:add19eb7defa 3732 }
AzureIoTClient 28:add19eb7defa 3733
AzureIoTClient 28:add19eb7defa 3734 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3735 }
AzureIoTClient 28:add19eb7defa 3736 }
AzureIoTClient 28:add19eb7defa 3737 /* rcv-settle-mode */
AzureIoTClient 28:add19eb7defa 3738 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 3739 {
AzureIoTClient 23:1111ee8bcba4 3740 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 3741 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3742 {
AzureIoTClient 28:add19eb7defa 3743 /* do nothing */
AzureIoTClient 28:add19eb7defa 3744 }
AzureIoTClient 28:add19eb7defa 3745 else
AzureIoTClient 28:add19eb7defa 3746 {
AzureIoTClient 28:add19eb7defa 3747 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3748 {
AzureIoTClient 28:add19eb7defa 3749 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3750 }
AzureIoTClient 28:add19eb7defa 3751 else
AzureIoTClient 28:add19eb7defa 3752 {
AzureIoTClient 28:add19eb7defa 3753 receiver_settle_mode rcv_settle_mode;
AzureIoTClient 28:add19eb7defa 3754 if (amqpvalue_get_receiver_settle_mode(item_value, &rcv_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 3755 {
AzureIoTClient 28:add19eb7defa 3756 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3757 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3758 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3759 break;
AzureIoTClient 28:add19eb7defa 3760 }
AzureIoTClient 28:add19eb7defa 3761 }
AzureIoTClient 28:add19eb7defa 3762
AzureIoTClient 28:add19eb7defa 3763 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3764 }
AzureIoTClient 28:add19eb7defa 3765 }
AzureIoTClient 28:add19eb7defa 3766 /* source */
AzureIoTClient 28:add19eb7defa 3767 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 3768 {
AzureIoTClient 23:1111ee8bcba4 3769 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 3770 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3771 {
AzureIoTClient 28:add19eb7defa 3772 /* do nothing */
AzureIoTClient 28:add19eb7defa 3773 }
AzureIoTClient 28:add19eb7defa 3774 else
AzureIoTClient 28:add19eb7defa 3775 {
AzureIoTClient 28:add19eb7defa 3776 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3777 }
AzureIoTClient 28:add19eb7defa 3778 }
AzureIoTClient 28:add19eb7defa 3779 /* target */
AzureIoTClient 28:add19eb7defa 3780 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 3781 {
AzureIoTClient 23:1111ee8bcba4 3782 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 3783 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3784 {
AzureIoTClient 28:add19eb7defa 3785 /* do nothing */
AzureIoTClient 28:add19eb7defa 3786 }
AzureIoTClient 28:add19eb7defa 3787 else
AzureIoTClient 28:add19eb7defa 3788 {
AzureIoTClient 28:add19eb7defa 3789 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3790 }
AzureIoTClient 28:add19eb7defa 3791 }
AzureIoTClient 28:add19eb7defa 3792 /* unsettled */
AzureIoTClient 28:add19eb7defa 3793 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 3794 {
AzureIoTClient 23:1111ee8bcba4 3795 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 3796 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3797 {
AzureIoTClient 28:add19eb7defa 3798 /* do nothing */
AzureIoTClient 28:add19eb7defa 3799 }
AzureIoTClient 28:add19eb7defa 3800 else
AzureIoTClient 28:add19eb7defa 3801 {
AzureIoTClient 28:add19eb7defa 3802 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3803 {
AzureIoTClient 28:add19eb7defa 3804 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3805 }
AzureIoTClient 28:add19eb7defa 3806 else
AzureIoTClient 28:add19eb7defa 3807 {
AzureIoTClient 28:add19eb7defa 3808 AMQP_VALUE unsettled;
AzureIoTClient 28:add19eb7defa 3809 if (amqpvalue_get_map(item_value, &unsettled) != 0)
AzureIoTClient 28:add19eb7defa 3810 {
AzureIoTClient 28:add19eb7defa 3811 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3812 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3813 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3814 break;
AzureIoTClient 28:add19eb7defa 3815 }
AzureIoTClient 28:add19eb7defa 3816 }
AzureIoTClient 28:add19eb7defa 3817
AzureIoTClient 28:add19eb7defa 3818 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3819 }
AzureIoTClient 28:add19eb7defa 3820 }
AzureIoTClient 28:add19eb7defa 3821 /* incomplete-unsettled */
AzureIoTClient 28:add19eb7defa 3822 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 3823 {
AzureIoTClient 23:1111ee8bcba4 3824 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 3825 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3826 {
AzureIoTClient 28:add19eb7defa 3827 /* do nothing */
AzureIoTClient 28:add19eb7defa 3828 }
AzureIoTClient 28:add19eb7defa 3829 else
AzureIoTClient 28:add19eb7defa 3830 {
AzureIoTClient 28:add19eb7defa 3831 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3832 {
AzureIoTClient 28:add19eb7defa 3833 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3834 }
AzureIoTClient 28:add19eb7defa 3835 else
AzureIoTClient 28:add19eb7defa 3836 {
AzureIoTClient 28:add19eb7defa 3837 bool incomplete_unsettled;
AzureIoTClient 28:add19eb7defa 3838 if (amqpvalue_get_boolean(item_value, &incomplete_unsettled) != 0)
AzureIoTClient 28:add19eb7defa 3839 {
AzureIoTClient 28:add19eb7defa 3840 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3841 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3842 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3843 break;
AzureIoTClient 28:add19eb7defa 3844 }
AzureIoTClient 28:add19eb7defa 3845 }
AzureIoTClient 28:add19eb7defa 3846
AzureIoTClient 28:add19eb7defa 3847 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3848 }
AzureIoTClient 28:add19eb7defa 3849 }
AzureIoTClient 28:add19eb7defa 3850 /* initial-delivery-count */
AzureIoTClient 28:add19eb7defa 3851 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 3852 {
AzureIoTClient 23:1111ee8bcba4 3853 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 3854 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3855 {
AzureIoTClient 28:add19eb7defa 3856 /* do nothing */
AzureIoTClient 28:add19eb7defa 3857 }
AzureIoTClient 28:add19eb7defa 3858 else
AzureIoTClient 28:add19eb7defa 3859 {
AzureIoTClient 28:add19eb7defa 3860 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3861 {
AzureIoTClient 28:add19eb7defa 3862 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3863 }
AzureIoTClient 28:add19eb7defa 3864 else
AzureIoTClient 28:add19eb7defa 3865 {
AzureIoTClient 28:add19eb7defa 3866 sequence_no initial_delivery_count;
AzureIoTClient 28:add19eb7defa 3867 if (amqpvalue_get_sequence_no(item_value, &initial_delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 3868 {
AzureIoTClient 28:add19eb7defa 3869 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3870 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3871 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3872 break;
AzureIoTClient 28:add19eb7defa 3873 }
AzureIoTClient 28:add19eb7defa 3874 }
AzureIoTClient 28:add19eb7defa 3875
AzureIoTClient 28:add19eb7defa 3876 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3877 }
AzureIoTClient 28:add19eb7defa 3878 }
AzureIoTClient 28:add19eb7defa 3879 /* max-message-size */
AzureIoTClient 28:add19eb7defa 3880 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 3881 {
AzureIoTClient 23:1111ee8bcba4 3882 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 3883 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3884 {
AzureIoTClient 28:add19eb7defa 3885 /* do nothing */
AzureIoTClient 28:add19eb7defa 3886 }
AzureIoTClient 28:add19eb7defa 3887 else
AzureIoTClient 28:add19eb7defa 3888 {
AzureIoTClient 28:add19eb7defa 3889 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3890 {
AzureIoTClient 28:add19eb7defa 3891 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3892 }
AzureIoTClient 28:add19eb7defa 3893 else
AzureIoTClient 28:add19eb7defa 3894 {
AzureIoTClient 28:add19eb7defa 3895 uint64_t max_message_size;
AzureIoTClient 28:add19eb7defa 3896 if (amqpvalue_get_ulong(item_value, &max_message_size) != 0)
AzureIoTClient 28:add19eb7defa 3897 {
AzureIoTClient 28:add19eb7defa 3898 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3899 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3900 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3901 break;
AzureIoTClient 28:add19eb7defa 3902 }
AzureIoTClient 28:add19eb7defa 3903 }
AzureIoTClient 28:add19eb7defa 3904
AzureIoTClient 28:add19eb7defa 3905 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3906 }
AzureIoTClient 28:add19eb7defa 3907 }
AzureIoTClient 28:add19eb7defa 3908 /* offered-capabilities */
AzureIoTClient 28:add19eb7defa 3909 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 3910 {
AzureIoTClient 23:1111ee8bcba4 3911 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 28:add19eb7defa 3912 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3913 {
AzureIoTClient 28:add19eb7defa 3914 /* do nothing */
AzureIoTClient 28:add19eb7defa 3915 }
AzureIoTClient 28:add19eb7defa 3916 else
AzureIoTClient 28:add19eb7defa 3917 {
AzureIoTClient 28:add19eb7defa 3918 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3919 {
AzureIoTClient 28:add19eb7defa 3920 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3921 }
AzureIoTClient 28:add19eb7defa 3922 else
AzureIoTClient 28:add19eb7defa 3923 {
AzureIoTClient 28:add19eb7defa 3924 const char* offered_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 3925 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 28:add19eb7defa 3926 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &offered_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 3927 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 3928 {
AzureIoTClient 28:add19eb7defa 3929 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3930 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3931 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3932 break;
AzureIoTClient 28:add19eb7defa 3933 }
AzureIoTClient 28:add19eb7defa 3934 }
AzureIoTClient 28:add19eb7defa 3935
AzureIoTClient 28:add19eb7defa 3936 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3937 }
AzureIoTClient 28:add19eb7defa 3938 }
AzureIoTClient 28:add19eb7defa 3939 /* desired-capabilities */
AzureIoTClient 28:add19eb7defa 3940 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 3941 {
AzureIoTClient 23:1111ee8bcba4 3942 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 28:add19eb7defa 3943 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3944 {
AzureIoTClient 28:add19eb7defa 3945 /* do nothing */
AzureIoTClient 28:add19eb7defa 3946 }
AzureIoTClient 28:add19eb7defa 3947 else
AzureIoTClient 28:add19eb7defa 3948 {
AzureIoTClient 28:add19eb7defa 3949 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3950 {
AzureIoTClient 28:add19eb7defa 3951 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3952 }
AzureIoTClient 28:add19eb7defa 3953 else
AzureIoTClient 28:add19eb7defa 3954 {
AzureIoTClient 28:add19eb7defa 3955 const char* desired_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 3956 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 28:add19eb7defa 3957 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &desired_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 3958 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 3959 {
AzureIoTClient 28:add19eb7defa 3960 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3961 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3962 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3963 break;
AzureIoTClient 28:add19eb7defa 3964 }
AzureIoTClient 28:add19eb7defa 3965 }
AzureIoTClient 28:add19eb7defa 3966
AzureIoTClient 28:add19eb7defa 3967 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3968 }
AzureIoTClient 28:add19eb7defa 3969 }
AzureIoTClient 28:add19eb7defa 3970 /* properties */
AzureIoTClient 28:add19eb7defa 3971 if (list_item_count > 13)
AzureIoTClient 23:1111ee8bcba4 3972 {
AzureIoTClient 23:1111ee8bcba4 3973 item_value = amqpvalue_get_list_item(list_value, 13);
AzureIoTClient 28:add19eb7defa 3974 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3975 {
AzureIoTClient 28:add19eb7defa 3976 /* do nothing */
AzureIoTClient 28:add19eb7defa 3977 }
AzureIoTClient 28:add19eb7defa 3978 else
AzureIoTClient 28:add19eb7defa 3979 {
AzureIoTClient 28:add19eb7defa 3980 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3981 {
AzureIoTClient 28:add19eb7defa 3982 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3983 }
AzureIoTClient 28:add19eb7defa 3984 else
AzureIoTClient 28:add19eb7defa 3985 {
AzureIoTClient 28:add19eb7defa 3986 fields properties;
AzureIoTClient 28:add19eb7defa 3987 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 3988 {
AzureIoTClient 28:add19eb7defa 3989 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3990 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3991 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3992 break;
AzureIoTClient 28:add19eb7defa 3993 }
AzureIoTClient 28:add19eb7defa 3994 }
AzureIoTClient 28:add19eb7defa 3995
AzureIoTClient 28:add19eb7defa 3996 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3997 }
AzureIoTClient 28:add19eb7defa 3998 }
AzureIoTClient 28:add19eb7defa 3999
AzureIoTClient 28:add19eb7defa 4000 attach_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 4001
AzureIoTClient 28:add19eb7defa 4002 result = 0;
AzureIoTClient 28:add19eb7defa 4003 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 4004 }
AzureIoTClient 28:add19eb7defa 4005 }
AzureIoTClient 28:add19eb7defa 4006 }
AzureIoTClient 28:add19eb7defa 4007
AzureIoTClient 28:add19eb7defa 4008 return result;
Azure.IoT Build 0:6ae2f7bca550 4009 }
Azure.IoT Build 0:6ae2f7bca550 4010
Azure.IoT Build 0:6ae2f7bca550 4011 int attach_get_name(ATTACH_HANDLE attach, const char** name_value)
Azure.IoT Build 0:6ae2f7bca550 4012 {
AzureIoTClient 28:add19eb7defa 4013 int result;
AzureIoTClient 28:add19eb7defa 4014
AzureIoTClient 28:add19eb7defa 4015 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4016 {
AzureIoTClient 28:add19eb7defa 4017 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4018 }
AzureIoTClient 28:add19eb7defa 4019 else
AzureIoTClient 28:add19eb7defa 4020 {
AzureIoTClient 28:add19eb7defa 4021 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4022 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4023 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4024 {
AzureIoTClient 23:1111ee8bcba4 4025 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4026 }
AzureIoTClient 23:1111ee8bcba4 4027 else
AzureIoTClient 23:1111ee8bcba4 4028 {
AzureIoTClient 23:1111ee8bcba4 4029 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 4030 {
AzureIoTClient 28:add19eb7defa 4031 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4032 }
AzureIoTClient 28:add19eb7defa 4033 else
AzureIoTClient 28:add19eb7defa 4034 {
AzureIoTClient 28:add19eb7defa 4035 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 4036 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4037 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4038 {
AzureIoTClient 28:add19eb7defa 4039 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4040 }
AzureIoTClient 28:add19eb7defa 4041 else
AzureIoTClient 28:add19eb7defa 4042 {
AzureIoTClient 43:4c1e4e94cdd3 4043 int get_single_value_result = amqpvalue_get_string(item_value, name_value);
AzureIoTClient 43:4c1e4e94cdd3 4044 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4045 {
AzureIoTClient 28:add19eb7defa 4046 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4047 }
AzureIoTClient 28:add19eb7defa 4048 else
AzureIoTClient 28:add19eb7defa 4049 {
AzureIoTClient 28:add19eb7defa 4050 result = 0;
AzureIoTClient 28:add19eb7defa 4051 }
AzureIoTClient 28:add19eb7defa 4052 }
AzureIoTClient 28:add19eb7defa 4053 }
AzureIoTClient 28:add19eb7defa 4054 }
AzureIoTClient 28:add19eb7defa 4055 }
AzureIoTClient 28:add19eb7defa 4056
AzureIoTClient 28:add19eb7defa 4057 return result;
Azure.IoT Build 0:6ae2f7bca550 4058 }
Azure.IoT Build 0:6ae2f7bca550 4059
Azure.IoT Build 0:6ae2f7bca550 4060 int attach_set_name(ATTACH_HANDLE attach, const char* name_value)
Azure.IoT Build 0:6ae2f7bca550 4061 {
AzureIoTClient 28:add19eb7defa 4062 int result;
AzureIoTClient 28:add19eb7defa 4063
AzureIoTClient 28:add19eb7defa 4064 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4065 {
AzureIoTClient 28:add19eb7defa 4066 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4067 }
AzureIoTClient 28:add19eb7defa 4068 else
AzureIoTClient 28:add19eb7defa 4069 {
AzureIoTClient 28:add19eb7defa 4070 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4071 AMQP_VALUE name_amqp_value = amqpvalue_create_string(name_value);
AzureIoTClient 28:add19eb7defa 4072 if (name_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4073 {
AzureIoTClient 28:add19eb7defa 4074 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4075 }
AzureIoTClient 28:add19eb7defa 4076 else
AzureIoTClient 28:add19eb7defa 4077 {
AzureIoTClient 28:add19eb7defa 4078 if (amqpvalue_set_composite_item(attach_instance->composite_value, 0, name_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4079 {
AzureIoTClient 28:add19eb7defa 4080 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4081 }
AzureIoTClient 28:add19eb7defa 4082 else
AzureIoTClient 28:add19eb7defa 4083 {
AzureIoTClient 28:add19eb7defa 4084 result = 0;
AzureIoTClient 28:add19eb7defa 4085 }
AzureIoTClient 28:add19eb7defa 4086
AzureIoTClient 28:add19eb7defa 4087 amqpvalue_destroy(name_amqp_value);
AzureIoTClient 28:add19eb7defa 4088 }
AzureIoTClient 28:add19eb7defa 4089 }
AzureIoTClient 28:add19eb7defa 4090
AzureIoTClient 28:add19eb7defa 4091 return result;
Azure.IoT Build 0:6ae2f7bca550 4092 }
Azure.IoT Build 0:6ae2f7bca550 4093
Azure.IoT Build 0:6ae2f7bca550 4094 int attach_get_handle(ATTACH_HANDLE attach, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 4095 {
AzureIoTClient 28:add19eb7defa 4096 int result;
AzureIoTClient 28:add19eb7defa 4097
AzureIoTClient 28:add19eb7defa 4098 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4099 {
AzureIoTClient 28:add19eb7defa 4100 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4101 }
AzureIoTClient 28:add19eb7defa 4102 else
AzureIoTClient 28:add19eb7defa 4103 {
AzureIoTClient 28:add19eb7defa 4104 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4105 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4106 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4107 {
AzureIoTClient 23:1111ee8bcba4 4108 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4109 }
AzureIoTClient 23:1111ee8bcba4 4110 else
AzureIoTClient 23:1111ee8bcba4 4111 {
AzureIoTClient 23:1111ee8bcba4 4112 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 4113 {
AzureIoTClient 28:add19eb7defa 4114 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4115 }
AzureIoTClient 28:add19eb7defa 4116 else
AzureIoTClient 28:add19eb7defa 4117 {
AzureIoTClient 28:add19eb7defa 4118 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 4119 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4120 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4121 {
AzureIoTClient 28:add19eb7defa 4122 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4123 }
AzureIoTClient 28:add19eb7defa 4124 else
AzureIoTClient 28:add19eb7defa 4125 {
AzureIoTClient 43:4c1e4e94cdd3 4126 int get_single_value_result = amqpvalue_get_handle(item_value, handle_value);
AzureIoTClient 43:4c1e4e94cdd3 4127 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4128 {
AzureIoTClient 28:add19eb7defa 4129 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4130 }
AzureIoTClient 28:add19eb7defa 4131 else
AzureIoTClient 28:add19eb7defa 4132 {
AzureIoTClient 28:add19eb7defa 4133 result = 0;
AzureIoTClient 28:add19eb7defa 4134 }
AzureIoTClient 28:add19eb7defa 4135 }
AzureIoTClient 28:add19eb7defa 4136 }
AzureIoTClient 28:add19eb7defa 4137 }
AzureIoTClient 28:add19eb7defa 4138 }
AzureIoTClient 28:add19eb7defa 4139
AzureIoTClient 28:add19eb7defa 4140 return result;
Azure.IoT Build 0:6ae2f7bca550 4141 }
Azure.IoT Build 0:6ae2f7bca550 4142
Azure.IoT Build 0:6ae2f7bca550 4143 int attach_set_handle(ATTACH_HANDLE attach, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 4144 {
AzureIoTClient 28:add19eb7defa 4145 int result;
AzureIoTClient 28:add19eb7defa 4146
AzureIoTClient 28:add19eb7defa 4147 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4148 {
AzureIoTClient 28:add19eb7defa 4149 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4150 }
AzureIoTClient 28:add19eb7defa 4151 else
AzureIoTClient 28:add19eb7defa 4152 {
AzureIoTClient 28:add19eb7defa 4153 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4154 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 4155 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4156 {
AzureIoTClient 28:add19eb7defa 4157 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4158 }
AzureIoTClient 28:add19eb7defa 4159 else
AzureIoTClient 28:add19eb7defa 4160 {
AzureIoTClient 28:add19eb7defa 4161 if (amqpvalue_set_composite_item(attach_instance->composite_value, 1, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4162 {
AzureIoTClient 28:add19eb7defa 4163 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4164 }
AzureIoTClient 28:add19eb7defa 4165 else
AzureIoTClient 28:add19eb7defa 4166 {
AzureIoTClient 28:add19eb7defa 4167 result = 0;
AzureIoTClient 28:add19eb7defa 4168 }
AzureIoTClient 28:add19eb7defa 4169
AzureIoTClient 28:add19eb7defa 4170 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 4171 }
AzureIoTClient 28:add19eb7defa 4172 }
AzureIoTClient 28:add19eb7defa 4173
AzureIoTClient 28:add19eb7defa 4174 return result;
Azure.IoT Build 0:6ae2f7bca550 4175 }
Azure.IoT Build 0:6ae2f7bca550 4176
Azure.IoT Build 0:6ae2f7bca550 4177 int attach_get_role(ATTACH_HANDLE attach, role* role_value)
Azure.IoT Build 0:6ae2f7bca550 4178 {
AzureIoTClient 28:add19eb7defa 4179 int result;
AzureIoTClient 28:add19eb7defa 4180
AzureIoTClient 28:add19eb7defa 4181 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4182 {
AzureIoTClient 28:add19eb7defa 4183 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4184 }
AzureIoTClient 28:add19eb7defa 4185 else
AzureIoTClient 28:add19eb7defa 4186 {
AzureIoTClient 28:add19eb7defa 4187 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4188 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4189 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4190 {
AzureIoTClient 23:1111ee8bcba4 4191 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4192 }
AzureIoTClient 23:1111ee8bcba4 4193 else
AzureIoTClient 23:1111ee8bcba4 4194 {
AzureIoTClient 23:1111ee8bcba4 4195 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 4196 {
AzureIoTClient 28:add19eb7defa 4197 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4198 }
AzureIoTClient 28:add19eb7defa 4199 else
AzureIoTClient 28:add19eb7defa 4200 {
AzureIoTClient 28:add19eb7defa 4201 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 4202 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4203 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4204 {
AzureIoTClient 28:add19eb7defa 4205 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4206 }
AzureIoTClient 28:add19eb7defa 4207 else
AzureIoTClient 28:add19eb7defa 4208 {
AzureIoTClient 43:4c1e4e94cdd3 4209 int get_single_value_result = amqpvalue_get_role(item_value, role_value);
AzureIoTClient 43:4c1e4e94cdd3 4210 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4211 {
AzureIoTClient 28:add19eb7defa 4212 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4213 }
AzureIoTClient 28:add19eb7defa 4214 else
AzureIoTClient 28:add19eb7defa 4215 {
AzureIoTClient 28:add19eb7defa 4216 result = 0;
AzureIoTClient 28:add19eb7defa 4217 }
AzureIoTClient 28:add19eb7defa 4218 }
AzureIoTClient 28:add19eb7defa 4219 }
AzureIoTClient 28:add19eb7defa 4220 }
AzureIoTClient 28:add19eb7defa 4221 }
AzureIoTClient 28:add19eb7defa 4222
AzureIoTClient 28:add19eb7defa 4223 return result;
Azure.IoT Build 0:6ae2f7bca550 4224 }
Azure.IoT Build 0:6ae2f7bca550 4225
Azure.IoT Build 0:6ae2f7bca550 4226 int attach_set_role(ATTACH_HANDLE attach, role role_value)
Azure.IoT Build 0:6ae2f7bca550 4227 {
AzureIoTClient 28:add19eb7defa 4228 int result;
AzureIoTClient 28:add19eb7defa 4229
AzureIoTClient 28:add19eb7defa 4230 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4231 {
AzureIoTClient 28:add19eb7defa 4232 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4233 }
AzureIoTClient 28:add19eb7defa 4234 else
AzureIoTClient 28:add19eb7defa 4235 {
AzureIoTClient 28:add19eb7defa 4236 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4237 AMQP_VALUE role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 4238 if (role_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4239 {
AzureIoTClient 28:add19eb7defa 4240 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4241 }
AzureIoTClient 28:add19eb7defa 4242 else
AzureIoTClient 28:add19eb7defa 4243 {
AzureIoTClient 28:add19eb7defa 4244 if (amqpvalue_set_composite_item(attach_instance->composite_value, 2, role_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4245 {
AzureIoTClient 28:add19eb7defa 4246 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4247 }
AzureIoTClient 28:add19eb7defa 4248 else
AzureIoTClient 28:add19eb7defa 4249 {
AzureIoTClient 28:add19eb7defa 4250 result = 0;
AzureIoTClient 28:add19eb7defa 4251 }
AzureIoTClient 28:add19eb7defa 4252
AzureIoTClient 28:add19eb7defa 4253 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 4254 }
AzureIoTClient 28:add19eb7defa 4255 }
AzureIoTClient 28:add19eb7defa 4256
AzureIoTClient 28:add19eb7defa 4257 return result;
Azure.IoT Build 0:6ae2f7bca550 4258 }
Azure.IoT Build 0:6ae2f7bca550 4259
Azure.IoT Build 0:6ae2f7bca550 4260 int attach_get_snd_settle_mode(ATTACH_HANDLE attach, sender_settle_mode* snd_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4261 {
AzureIoTClient 28:add19eb7defa 4262 int result;
AzureIoTClient 28:add19eb7defa 4263
AzureIoTClient 28:add19eb7defa 4264 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4265 {
AzureIoTClient 28:add19eb7defa 4266 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4267 }
AzureIoTClient 28:add19eb7defa 4268 else
AzureIoTClient 28:add19eb7defa 4269 {
AzureIoTClient 28:add19eb7defa 4270 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4271 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4272 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4273 {
AzureIoTClient 23:1111ee8bcba4 4274 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4275 }
AzureIoTClient 23:1111ee8bcba4 4276 else
AzureIoTClient 23:1111ee8bcba4 4277 {
AzureIoTClient 23:1111ee8bcba4 4278 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 4279 {
AzureIoTClient 23:1111ee8bcba4 4280 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 23:1111ee8bcba4 4281 result = 0;
AzureIoTClient 23:1111ee8bcba4 4282 }
AzureIoTClient 23:1111ee8bcba4 4283 else
AzureIoTClient 23:1111ee8bcba4 4284 {
AzureIoTClient 28:add19eb7defa 4285 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 4286 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4287 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4288 {
AzureIoTClient 16:22a72cf8e416 4289 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 16:22a72cf8e416 4290 result = 0;
AzureIoTClient 28:add19eb7defa 4291 }
AzureIoTClient 28:add19eb7defa 4292 else
AzureIoTClient 28:add19eb7defa 4293 {
AzureIoTClient 43:4c1e4e94cdd3 4294 int get_single_value_result = amqpvalue_get_sender_settle_mode(item_value, snd_settle_mode_value);
AzureIoTClient 43:4c1e4e94cdd3 4295 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4296 {
AzureIoTClient 23:1111ee8bcba4 4297 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4298 {
AzureIoTClient 28:add19eb7defa 4299 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4300 }
AzureIoTClient 23:1111ee8bcba4 4301 else
AzureIoTClient 23:1111ee8bcba4 4302 {
AzureIoTClient 23:1111ee8bcba4 4303 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 23:1111ee8bcba4 4304 result = 0;
AzureIoTClient 23:1111ee8bcba4 4305 }
AzureIoTClient 28:add19eb7defa 4306 }
AzureIoTClient 28:add19eb7defa 4307 else
AzureIoTClient 28:add19eb7defa 4308 {
AzureIoTClient 28:add19eb7defa 4309 result = 0;
AzureIoTClient 28:add19eb7defa 4310 }
AzureIoTClient 28:add19eb7defa 4311 }
AzureIoTClient 28:add19eb7defa 4312 }
AzureIoTClient 28:add19eb7defa 4313 }
AzureIoTClient 28:add19eb7defa 4314 }
AzureIoTClient 28:add19eb7defa 4315
AzureIoTClient 28:add19eb7defa 4316 return result;
Azure.IoT Build 0:6ae2f7bca550 4317 }
Azure.IoT Build 0:6ae2f7bca550 4318
Azure.IoT Build 0:6ae2f7bca550 4319 int attach_set_snd_settle_mode(ATTACH_HANDLE attach, sender_settle_mode snd_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4320 {
AzureIoTClient 28:add19eb7defa 4321 int result;
AzureIoTClient 28:add19eb7defa 4322
AzureIoTClient 28:add19eb7defa 4323 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4324 {
AzureIoTClient 28:add19eb7defa 4325 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4326 }
AzureIoTClient 28:add19eb7defa 4327 else
AzureIoTClient 28:add19eb7defa 4328 {
AzureIoTClient 28:add19eb7defa 4329 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4330 AMQP_VALUE snd_settle_mode_amqp_value = amqpvalue_create_sender_settle_mode(snd_settle_mode_value);
AzureIoTClient 28:add19eb7defa 4331 if (snd_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4332 {
AzureIoTClient 28:add19eb7defa 4333 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4334 }
AzureIoTClient 28:add19eb7defa 4335 else
AzureIoTClient 28:add19eb7defa 4336 {
AzureIoTClient 28:add19eb7defa 4337 if (amqpvalue_set_composite_item(attach_instance->composite_value, 3, snd_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4338 {
AzureIoTClient 28:add19eb7defa 4339 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4340 }
AzureIoTClient 28:add19eb7defa 4341 else
AzureIoTClient 28:add19eb7defa 4342 {
AzureIoTClient 28:add19eb7defa 4343 result = 0;
AzureIoTClient 28:add19eb7defa 4344 }
AzureIoTClient 28:add19eb7defa 4345
AzureIoTClient 28:add19eb7defa 4346 amqpvalue_destroy(snd_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 4347 }
AzureIoTClient 28:add19eb7defa 4348 }
AzureIoTClient 28:add19eb7defa 4349
AzureIoTClient 28:add19eb7defa 4350 return result;
Azure.IoT Build 0:6ae2f7bca550 4351 }
Azure.IoT Build 0:6ae2f7bca550 4352
Azure.IoT Build 0:6ae2f7bca550 4353 int attach_get_rcv_settle_mode(ATTACH_HANDLE attach, receiver_settle_mode* rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4354 {
AzureIoTClient 28:add19eb7defa 4355 int result;
AzureIoTClient 28:add19eb7defa 4356
AzureIoTClient 28:add19eb7defa 4357 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4358 {
AzureIoTClient 28:add19eb7defa 4359 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4360 }
AzureIoTClient 28:add19eb7defa 4361 else
AzureIoTClient 28:add19eb7defa 4362 {
AzureIoTClient 28:add19eb7defa 4363 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4364 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4365 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4366 {
AzureIoTClient 23:1111ee8bcba4 4367 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4368 }
AzureIoTClient 23:1111ee8bcba4 4369 else
AzureIoTClient 23:1111ee8bcba4 4370 {
AzureIoTClient 23:1111ee8bcba4 4371 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 4372 {
AzureIoTClient 23:1111ee8bcba4 4373 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 23:1111ee8bcba4 4374 result = 0;
AzureIoTClient 23:1111ee8bcba4 4375 }
AzureIoTClient 23:1111ee8bcba4 4376 else
AzureIoTClient 23:1111ee8bcba4 4377 {
AzureIoTClient 28:add19eb7defa 4378 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 4379 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4380 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4381 {
AzureIoTClient 16:22a72cf8e416 4382 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 16:22a72cf8e416 4383 result = 0;
AzureIoTClient 28:add19eb7defa 4384 }
AzureIoTClient 28:add19eb7defa 4385 else
AzureIoTClient 28:add19eb7defa 4386 {
AzureIoTClient 43:4c1e4e94cdd3 4387 int get_single_value_result = amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value);
AzureIoTClient 43:4c1e4e94cdd3 4388 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4389 {
AzureIoTClient 23:1111ee8bcba4 4390 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4391 {
AzureIoTClient 28:add19eb7defa 4392 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4393 }
AzureIoTClient 23:1111ee8bcba4 4394 else
AzureIoTClient 23:1111ee8bcba4 4395 {
AzureIoTClient 23:1111ee8bcba4 4396 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 23:1111ee8bcba4 4397 result = 0;
AzureIoTClient 23:1111ee8bcba4 4398 }
AzureIoTClient 28:add19eb7defa 4399 }
AzureIoTClient 28:add19eb7defa 4400 else
AzureIoTClient 28:add19eb7defa 4401 {
AzureIoTClient 28:add19eb7defa 4402 result = 0;
AzureIoTClient 28:add19eb7defa 4403 }
AzureIoTClient 28:add19eb7defa 4404 }
AzureIoTClient 28:add19eb7defa 4405 }
AzureIoTClient 28:add19eb7defa 4406 }
AzureIoTClient 28:add19eb7defa 4407 }
AzureIoTClient 28:add19eb7defa 4408
AzureIoTClient 28:add19eb7defa 4409 return result;
Azure.IoT Build 0:6ae2f7bca550 4410 }
Azure.IoT Build 0:6ae2f7bca550 4411
Azure.IoT Build 0:6ae2f7bca550 4412 int attach_set_rcv_settle_mode(ATTACH_HANDLE attach, receiver_settle_mode rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4413 {
AzureIoTClient 28:add19eb7defa 4414 int result;
AzureIoTClient 28:add19eb7defa 4415
AzureIoTClient 28:add19eb7defa 4416 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4417 {
AzureIoTClient 28:add19eb7defa 4418 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4419 }
AzureIoTClient 28:add19eb7defa 4420 else
AzureIoTClient 28:add19eb7defa 4421 {
AzureIoTClient 28:add19eb7defa 4422 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4423 AMQP_VALUE rcv_settle_mode_amqp_value = amqpvalue_create_receiver_settle_mode(rcv_settle_mode_value);
AzureIoTClient 28:add19eb7defa 4424 if (rcv_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4425 {
AzureIoTClient 28:add19eb7defa 4426 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4427 }
AzureIoTClient 28:add19eb7defa 4428 else
AzureIoTClient 28:add19eb7defa 4429 {
AzureIoTClient 28:add19eb7defa 4430 if (amqpvalue_set_composite_item(attach_instance->composite_value, 4, rcv_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4431 {
AzureIoTClient 28:add19eb7defa 4432 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4433 }
AzureIoTClient 28:add19eb7defa 4434 else
AzureIoTClient 28:add19eb7defa 4435 {
AzureIoTClient 28:add19eb7defa 4436 result = 0;
AzureIoTClient 28:add19eb7defa 4437 }
AzureIoTClient 28:add19eb7defa 4438
AzureIoTClient 28:add19eb7defa 4439 amqpvalue_destroy(rcv_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 4440 }
AzureIoTClient 28:add19eb7defa 4441 }
AzureIoTClient 28:add19eb7defa 4442
AzureIoTClient 28:add19eb7defa 4443 return result;
Azure.IoT Build 0:6ae2f7bca550 4444 }
Azure.IoT Build 0:6ae2f7bca550 4445
Azure.IoT Build 0:6ae2f7bca550 4446 int attach_get_source(ATTACH_HANDLE attach, AMQP_VALUE* source_value)
Azure.IoT Build 0:6ae2f7bca550 4447 {
AzureIoTClient 28:add19eb7defa 4448 int result;
AzureIoTClient 28:add19eb7defa 4449
AzureIoTClient 28:add19eb7defa 4450 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4451 {
AzureIoTClient 28:add19eb7defa 4452 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4453 }
AzureIoTClient 28:add19eb7defa 4454 else
AzureIoTClient 28:add19eb7defa 4455 {
AzureIoTClient 28:add19eb7defa 4456 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4457 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4458 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4459 {
AzureIoTClient 23:1111ee8bcba4 4460 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4461 }
AzureIoTClient 23:1111ee8bcba4 4462 else
AzureIoTClient 23:1111ee8bcba4 4463 {
AzureIoTClient 23:1111ee8bcba4 4464 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 4465 {
AzureIoTClient 28:add19eb7defa 4466 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4467 }
AzureIoTClient 28:add19eb7defa 4468 else
AzureIoTClient 28:add19eb7defa 4469 {
AzureIoTClient 28:add19eb7defa 4470 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 4471 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4472 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4473 {
AzureIoTClient 28:add19eb7defa 4474 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4475 }
AzureIoTClient 28:add19eb7defa 4476 else
AzureIoTClient 28:add19eb7defa 4477 {
AzureIoTClient 28:add19eb7defa 4478 *source_value = item_value;
AzureIoTClient 28:add19eb7defa 4479 result = 0;
AzureIoTClient 28:add19eb7defa 4480 }
AzureIoTClient 28:add19eb7defa 4481 }
AzureIoTClient 28:add19eb7defa 4482 }
AzureIoTClient 28:add19eb7defa 4483 }
AzureIoTClient 28:add19eb7defa 4484
AzureIoTClient 28:add19eb7defa 4485 return result;
Azure.IoT Build 0:6ae2f7bca550 4486 }
Azure.IoT Build 0:6ae2f7bca550 4487
Azure.IoT Build 0:6ae2f7bca550 4488 int attach_set_source(ATTACH_HANDLE attach, AMQP_VALUE source_value)
Azure.IoT Build 0:6ae2f7bca550 4489 {
AzureIoTClient 28:add19eb7defa 4490 int result;
AzureIoTClient 28:add19eb7defa 4491
AzureIoTClient 28:add19eb7defa 4492 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4493 {
AzureIoTClient 28:add19eb7defa 4494 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4495 }
AzureIoTClient 28:add19eb7defa 4496 else
AzureIoTClient 28:add19eb7defa 4497 {
AzureIoTClient 28:add19eb7defa 4498 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4499 AMQP_VALUE source_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4500 if (source_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4501 {
AzureIoTClient 23:1111ee8bcba4 4502 source_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4503 }
AzureIoTClient 23:1111ee8bcba4 4504 else
AzureIoTClient 23:1111ee8bcba4 4505 {
AzureIoTClient 23:1111ee8bcba4 4506 source_amqp_value = amqpvalue_clone(source_value);
AzureIoTClient 23:1111ee8bcba4 4507 }
AzureIoTClient 28:add19eb7defa 4508 if (source_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4509 {
AzureIoTClient 28:add19eb7defa 4510 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4511 }
AzureIoTClient 28:add19eb7defa 4512 else
AzureIoTClient 28:add19eb7defa 4513 {
AzureIoTClient 28:add19eb7defa 4514 if (amqpvalue_set_composite_item(attach_instance->composite_value, 5, source_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4515 {
AzureIoTClient 28:add19eb7defa 4516 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4517 }
AzureIoTClient 28:add19eb7defa 4518 else
AzureIoTClient 28:add19eb7defa 4519 {
AzureIoTClient 28:add19eb7defa 4520 result = 0;
AzureIoTClient 28:add19eb7defa 4521 }
AzureIoTClient 28:add19eb7defa 4522
AzureIoTClient 28:add19eb7defa 4523 amqpvalue_destroy(source_amqp_value);
AzureIoTClient 28:add19eb7defa 4524 }
AzureIoTClient 28:add19eb7defa 4525 }
AzureIoTClient 28:add19eb7defa 4526
AzureIoTClient 28:add19eb7defa 4527 return result;
Azure.IoT Build 0:6ae2f7bca550 4528 }
Azure.IoT Build 0:6ae2f7bca550 4529
Azure.IoT Build 0:6ae2f7bca550 4530 int attach_get_target(ATTACH_HANDLE attach, AMQP_VALUE* target_value)
Azure.IoT Build 0:6ae2f7bca550 4531 {
AzureIoTClient 28:add19eb7defa 4532 int result;
AzureIoTClient 28:add19eb7defa 4533
AzureIoTClient 28:add19eb7defa 4534 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4535 {
AzureIoTClient 28:add19eb7defa 4536 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4537 }
AzureIoTClient 28:add19eb7defa 4538 else
AzureIoTClient 28:add19eb7defa 4539 {
AzureIoTClient 28:add19eb7defa 4540 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4541 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4542 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4543 {
AzureIoTClient 23:1111ee8bcba4 4544 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4545 }
AzureIoTClient 23:1111ee8bcba4 4546 else
AzureIoTClient 23:1111ee8bcba4 4547 {
AzureIoTClient 23:1111ee8bcba4 4548 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 4549 {
AzureIoTClient 28:add19eb7defa 4550 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4551 }
AzureIoTClient 28:add19eb7defa 4552 else
AzureIoTClient 28:add19eb7defa 4553 {
AzureIoTClient 28:add19eb7defa 4554 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 4555 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4556 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4557 {
AzureIoTClient 28:add19eb7defa 4558 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4559 }
AzureIoTClient 28:add19eb7defa 4560 else
AzureIoTClient 28:add19eb7defa 4561 {
AzureIoTClient 28:add19eb7defa 4562 *target_value = item_value;
AzureIoTClient 28:add19eb7defa 4563 result = 0;
AzureIoTClient 28:add19eb7defa 4564 }
AzureIoTClient 28:add19eb7defa 4565 }
AzureIoTClient 28:add19eb7defa 4566 }
AzureIoTClient 28:add19eb7defa 4567 }
AzureIoTClient 28:add19eb7defa 4568
AzureIoTClient 28:add19eb7defa 4569 return result;
Azure.IoT Build 0:6ae2f7bca550 4570 }
Azure.IoT Build 0:6ae2f7bca550 4571
Azure.IoT Build 0:6ae2f7bca550 4572 int attach_set_target(ATTACH_HANDLE attach, AMQP_VALUE target_value)
Azure.IoT Build 0:6ae2f7bca550 4573 {
AzureIoTClient 28:add19eb7defa 4574 int result;
AzureIoTClient 28:add19eb7defa 4575
AzureIoTClient 28:add19eb7defa 4576 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4577 {
AzureIoTClient 28:add19eb7defa 4578 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4579 }
AzureIoTClient 28:add19eb7defa 4580 else
AzureIoTClient 28:add19eb7defa 4581 {
AzureIoTClient 28:add19eb7defa 4582 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4583 AMQP_VALUE target_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4584 if (target_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4585 {
AzureIoTClient 23:1111ee8bcba4 4586 target_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4587 }
AzureIoTClient 23:1111ee8bcba4 4588 else
AzureIoTClient 23:1111ee8bcba4 4589 {
AzureIoTClient 23:1111ee8bcba4 4590 target_amqp_value = amqpvalue_clone(target_value);
AzureIoTClient 23:1111ee8bcba4 4591 }
AzureIoTClient 28:add19eb7defa 4592 if (target_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4593 {
AzureIoTClient 28:add19eb7defa 4594 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4595 }
AzureIoTClient 28:add19eb7defa 4596 else
AzureIoTClient 28:add19eb7defa 4597 {
AzureIoTClient 28:add19eb7defa 4598 if (amqpvalue_set_composite_item(attach_instance->composite_value, 6, target_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4599 {
AzureIoTClient 28:add19eb7defa 4600 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4601 }
AzureIoTClient 28:add19eb7defa 4602 else
AzureIoTClient 28:add19eb7defa 4603 {
AzureIoTClient 28:add19eb7defa 4604 result = 0;
AzureIoTClient 28:add19eb7defa 4605 }
AzureIoTClient 28:add19eb7defa 4606
AzureIoTClient 28:add19eb7defa 4607 amqpvalue_destroy(target_amqp_value);
AzureIoTClient 28:add19eb7defa 4608 }
AzureIoTClient 28:add19eb7defa 4609 }
AzureIoTClient 28:add19eb7defa 4610
AzureIoTClient 28:add19eb7defa 4611 return result;
Azure.IoT Build 0:6ae2f7bca550 4612 }
Azure.IoT Build 0:6ae2f7bca550 4613
Azure.IoT Build 0:6ae2f7bca550 4614 int attach_get_unsettled(ATTACH_HANDLE attach, AMQP_VALUE* unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4615 {
AzureIoTClient 28:add19eb7defa 4616 int result;
AzureIoTClient 28:add19eb7defa 4617
AzureIoTClient 28:add19eb7defa 4618 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4619 {
AzureIoTClient 28:add19eb7defa 4620 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4621 }
AzureIoTClient 28:add19eb7defa 4622 else
AzureIoTClient 28:add19eb7defa 4623 {
AzureIoTClient 28:add19eb7defa 4624 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4625 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4626 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4627 {
AzureIoTClient 23:1111ee8bcba4 4628 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4629 }
AzureIoTClient 23:1111ee8bcba4 4630 else
AzureIoTClient 23:1111ee8bcba4 4631 {
AzureIoTClient 23:1111ee8bcba4 4632 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 4633 {
AzureIoTClient 28:add19eb7defa 4634 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4635 }
AzureIoTClient 28:add19eb7defa 4636 else
AzureIoTClient 28:add19eb7defa 4637 {
AzureIoTClient 28:add19eb7defa 4638 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 4639 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4640 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4641 {
AzureIoTClient 28:add19eb7defa 4642 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4643 }
AzureIoTClient 28:add19eb7defa 4644 else
AzureIoTClient 28:add19eb7defa 4645 {
AzureIoTClient 43:4c1e4e94cdd3 4646 int get_single_value_result = amqpvalue_get_map(item_value, unsettled_value);
AzureIoTClient 43:4c1e4e94cdd3 4647 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4648 {
AzureIoTClient 28:add19eb7defa 4649 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4650 }
AzureIoTClient 28:add19eb7defa 4651 else
AzureIoTClient 28:add19eb7defa 4652 {
AzureIoTClient 28:add19eb7defa 4653 result = 0;
AzureIoTClient 28:add19eb7defa 4654 }
AzureIoTClient 28:add19eb7defa 4655 }
AzureIoTClient 28:add19eb7defa 4656 }
AzureIoTClient 28:add19eb7defa 4657 }
AzureIoTClient 28:add19eb7defa 4658 }
AzureIoTClient 28:add19eb7defa 4659
AzureIoTClient 28:add19eb7defa 4660 return result;
Azure.IoT Build 0:6ae2f7bca550 4661 }
Azure.IoT Build 0:6ae2f7bca550 4662
Azure.IoT Build 0:6ae2f7bca550 4663 int attach_set_unsettled(ATTACH_HANDLE attach, AMQP_VALUE unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4664 {
AzureIoTClient 28:add19eb7defa 4665 int result;
AzureIoTClient 28:add19eb7defa 4666
AzureIoTClient 28:add19eb7defa 4667 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4668 {
AzureIoTClient 28:add19eb7defa 4669 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4670 }
AzureIoTClient 28:add19eb7defa 4671 else
AzureIoTClient 28:add19eb7defa 4672 {
AzureIoTClient 28:add19eb7defa 4673 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4674 AMQP_VALUE unsettled_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4675 if (unsettled_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4676 {
AzureIoTClient 23:1111ee8bcba4 4677 unsettled_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4678 }
AzureIoTClient 23:1111ee8bcba4 4679 else
AzureIoTClient 23:1111ee8bcba4 4680 {
AzureIoTClient 23:1111ee8bcba4 4681 unsettled_amqp_value = amqpvalue_clone(unsettled_value);
AzureIoTClient 23:1111ee8bcba4 4682 }
AzureIoTClient 28:add19eb7defa 4683 if (unsettled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4684 {
AzureIoTClient 28:add19eb7defa 4685 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4686 }
AzureIoTClient 28:add19eb7defa 4687 else
AzureIoTClient 28:add19eb7defa 4688 {
AzureIoTClient 28:add19eb7defa 4689 if (amqpvalue_set_composite_item(attach_instance->composite_value, 7, unsettled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4690 {
AzureIoTClient 28:add19eb7defa 4691 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4692 }
AzureIoTClient 28:add19eb7defa 4693 else
AzureIoTClient 28:add19eb7defa 4694 {
AzureIoTClient 28:add19eb7defa 4695 result = 0;
AzureIoTClient 28:add19eb7defa 4696 }
AzureIoTClient 28:add19eb7defa 4697
AzureIoTClient 28:add19eb7defa 4698 amqpvalue_destroy(unsettled_amqp_value);
AzureIoTClient 28:add19eb7defa 4699 }
AzureIoTClient 28:add19eb7defa 4700 }
AzureIoTClient 28:add19eb7defa 4701
AzureIoTClient 28:add19eb7defa 4702 return result;
Azure.IoT Build 0:6ae2f7bca550 4703 }
Azure.IoT Build 0:6ae2f7bca550 4704
Azure.IoT Build 0:6ae2f7bca550 4705 int attach_get_incomplete_unsettled(ATTACH_HANDLE attach, bool* incomplete_unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4706 {
AzureIoTClient 28:add19eb7defa 4707 int result;
AzureIoTClient 28:add19eb7defa 4708
AzureIoTClient 28:add19eb7defa 4709 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4710 {
AzureIoTClient 28:add19eb7defa 4711 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4712 }
AzureIoTClient 28:add19eb7defa 4713 else
AzureIoTClient 28:add19eb7defa 4714 {
AzureIoTClient 28:add19eb7defa 4715 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4716 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4717 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4718 {
AzureIoTClient 23:1111ee8bcba4 4719 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4720 }
AzureIoTClient 23:1111ee8bcba4 4721 else
AzureIoTClient 23:1111ee8bcba4 4722 {
AzureIoTClient 23:1111ee8bcba4 4723 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 4724 {
AzureIoTClient 28:add19eb7defa 4725 *incomplete_unsettled_value = false;
AzureIoTClient 28:add19eb7defa 4726 result = 0;
AzureIoTClient 28:add19eb7defa 4727 }
AzureIoTClient 28:add19eb7defa 4728 else
AzureIoTClient 28:add19eb7defa 4729 {
AzureIoTClient 28:add19eb7defa 4730 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 4731 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4732 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4733 {
AzureIoTClient 28:add19eb7defa 4734 *incomplete_unsettled_value = false;
AzureIoTClient 28:add19eb7defa 4735 result = 0;
AzureIoTClient 28:add19eb7defa 4736 }
AzureIoTClient 28:add19eb7defa 4737 else
AzureIoTClient 28:add19eb7defa 4738 {
AzureIoTClient 43:4c1e4e94cdd3 4739 int get_single_value_result = amqpvalue_get_boolean(item_value, incomplete_unsettled_value);
AzureIoTClient 43:4c1e4e94cdd3 4740 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4741 {
AzureIoTClient 23:1111ee8bcba4 4742 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4743 {
AzureIoTClient 28:add19eb7defa 4744 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4745 }
AzureIoTClient 28:add19eb7defa 4746 else
AzureIoTClient 28:add19eb7defa 4747 {
AzureIoTClient 28:add19eb7defa 4748 *incomplete_unsettled_value = false;
AzureIoTClient 23:1111ee8bcba4 4749 result = 0;
AzureIoTClient 23:1111ee8bcba4 4750 }
AzureIoTClient 28:add19eb7defa 4751 }
AzureIoTClient 28:add19eb7defa 4752 else
AzureIoTClient 28:add19eb7defa 4753 {
AzureIoTClient 28:add19eb7defa 4754 result = 0;
AzureIoTClient 28:add19eb7defa 4755 }
AzureIoTClient 28:add19eb7defa 4756 }
AzureIoTClient 28:add19eb7defa 4757 }
AzureIoTClient 28:add19eb7defa 4758 }
AzureIoTClient 28:add19eb7defa 4759 }
AzureIoTClient 28:add19eb7defa 4760
AzureIoTClient 28:add19eb7defa 4761 return result;
Azure.IoT Build 0:6ae2f7bca550 4762 }
Azure.IoT Build 0:6ae2f7bca550 4763
Azure.IoT Build 0:6ae2f7bca550 4764 int attach_set_incomplete_unsettled(ATTACH_HANDLE attach, bool incomplete_unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4765 {
AzureIoTClient 28:add19eb7defa 4766 int result;
AzureIoTClient 28:add19eb7defa 4767
AzureIoTClient 28:add19eb7defa 4768 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4769 {
AzureIoTClient 28:add19eb7defa 4770 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4771 }
AzureIoTClient 28:add19eb7defa 4772 else
AzureIoTClient 28:add19eb7defa 4773 {
AzureIoTClient 28:add19eb7defa 4774 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4775 AMQP_VALUE incomplete_unsettled_amqp_value = amqpvalue_create_boolean(incomplete_unsettled_value);
AzureIoTClient 28:add19eb7defa 4776 if (incomplete_unsettled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4777 {
AzureIoTClient 28:add19eb7defa 4778 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4779 }
AzureIoTClient 28:add19eb7defa 4780 else
AzureIoTClient 28:add19eb7defa 4781 {
AzureIoTClient 28:add19eb7defa 4782 if (amqpvalue_set_composite_item(attach_instance->composite_value, 8, incomplete_unsettled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4783 {
AzureIoTClient 28:add19eb7defa 4784 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4785 }
AzureIoTClient 28:add19eb7defa 4786 else
AzureIoTClient 28:add19eb7defa 4787 {
AzureIoTClient 28:add19eb7defa 4788 result = 0;
AzureIoTClient 28:add19eb7defa 4789 }
AzureIoTClient 28:add19eb7defa 4790
AzureIoTClient 28:add19eb7defa 4791 amqpvalue_destroy(incomplete_unsettled_amqp_value);
AzureIoTClient 28:add19eb7defa 4792 }
AzureIoTClient 28:add19eb7defa 4793 }
AzureIoTClient 28:add19eb7defa 4794
AzureIoTClient 28:add19eb7defa 4795 return result;
Azure.IoT Build 0:6ae2f7bca550 4796 }
Azure.IoT Build 0:6ae2f7bca550 4797
Azure.IoT Build 0:6ae2f7bca550 4798 int attach_get_initial_delivery_count(ATTACH_HANDLE attach, sequence_no* initial_delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 4799 {
AzureIoTClient 28:add19eb7defa 4800 int result;
AzureIoTClient 28:add19eb7defa 4801
AzureIoTClient 28:add19eb7defa 4802 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4803 {
AzureIoTClient 28:add19eb7defa 4804 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4805 }
AzureIoTClient 28:add19eb7defa 4806 else
AzureIoTClient 28:add19eb7defa 4807 {
AzureIoTClient 28:add19eb7defa 4808 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4809 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4810 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4811 {
AzureIoTClient 23:1111ee8bcba4 4812 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4813 }
AzureIoTClient 23:1111ee8bcba4 4814 else
AzureIoTClient 23:1111ee8bcba4 4815 {
AzureIoTClient 23:1111ee8bcba4 4816 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 4817 {
AzureIoTClient 28:add19eb7defa 4818 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4819 }
AzureIoTClient 28:add19eb7defa 4820 else
AzureIoTClient 28:add19eb7defa 4821 {
AzureIoTClient 28:add19eb7defa 4822 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 4823 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4824 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4825 {
AzureIoTClient 28:add19eb7defa 4826 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4827 }
AzureIoTClient 28:add19eb7defa 4828 else
AzureIoTClient 28:add19eb7defa 4829 {
AzureIoTClient 43:4c1e4e94cdd3 4830 int get_single_value_result = amqpvalue_get_sequence_no(item_value, initial_delivery_count_value);
AzureIoTClient 43:4c1e4e94cdd3 4831 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4832 {
AzureIoTClient 28:add19eb7defa 4833 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4834 }
AzureIoTClient 28:add19eb7defa 4835 else
AzureIoTClient 28:add19eb7defa 4836 {
AzureIoTClient 28:add19eb7defa 4837 result = 0;
AzureIoTClient 28:add19eb7defa 4838 }
AzureIoTClient 28:add19eb7defa 4839 }
AzureIoTClient 28:add19eb7defa 4840 }
AzureIoTClient 28:add19eb7defa 4841 }
AzureIoTClient 28:add19eb7defa 4842 }
AzureIoTClient 28:add19eb7defa 4843
AzureIoTClient 28:add19eb7defa 4844 return result;
Azure.IoT Build 0:6ae2f7bca550 4845 }
Azure.IoT Build 0:6ae2f7bca550 4846
Azure.IoT Build 0:6ae2f7bca550 4847 int attach_set_initial_delivery_count(ATTACH_HANDLE attach, sequence_no initial_delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 4848 {
AzureIoTClient 28:add19eb7defa 4849 int result;
AzureIoTClient 28:add19eb7defa 4850
AzureIoTClient 28:add19eb7defa 4851 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4852 {
AzureIoTClient 28:add19eb7defa 4853 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4854 }
AzureIoTClient 28:add19eb7defa 4855 else
AzureIoTClient 28:add19eb7defa 4856 {
AzureIoTClient 28:add19eb7defa 4857 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4858 AMQP_VALUE initial_delivery_count_amqp_value = amqpvalue_create_sequence_no(initial_delivery_count_value);
AzureIoTClient 28:add19eb7defa 4859 if (initial_delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4860 {
AzureIoTClient 28:add19eb7defa 4861 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4862 }
AzureIoTClient 28:add19eb7defa 4863 else
AzureIoTClient 28:add19eb7defa 4864 {
AzureIoTClient 28:add19eb7defa 4865 if (amqpvalue_set_composite_item(attach_instance->composite_value, 9, initial_delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4866 {
AzureIoTClient 28:add19eb7defa 4867 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4868 }
AzureIoTClient 28:add19eb7defa 4869 else
AzureIoTClient 28:add19eb7defa 4870 {
AzureIoTClient 28:add19eb7defa 4871 result = 0;
AzureIoTClient 28:add19eb7defa 4872 }
AzureIoTClient 28:add19eb7defa 4873
AzureIoTClient 28:add19eb7defa 4874 amqpvalue_destroy(initial_delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 4875 }
AzureIoTClient 28:add19eb7defa 4876 }
AzureIoTClient 28:add19eb7defa 4877
AzureIoTClient 28:add19eb7defa 4878 return result;
Azure.IoT Build 0:6ae2f7bca550 4879 }
Azure.IoT Build 0:6ae2f7bca550 4880
Azure.IoT Build 0:6ae2f7bca550 4881 int attach_get_max_message_size(ATTACH_HANDLE attach, uint64_t* max_message_size_value)
Azure.IoT Build 0:6ae2f7bca550 4882 {
AzureIoTClient 28:add19eb7defa 4883 int result;
AzureIoTClient 28:add19eb7defa 4884
AzureIoTClient 28:add19eb7defa 4885 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4886 {
AzureIoTClient 28:add19eb7defa 4887 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4888 }
AzureIoTClient 28:add19eb7defa 4889 else
AzureIoTClient 28:add19eb7defa 4890 {
AzureIoTClient 28:add19eb7defa 4891 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4892 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4893 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4894 {
AzureIoTClient 23:1111ee8bcba4 4895 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4896 }
AzureIoTClient 23:1111ee8bcba4 4897 else
AzureIoTClient 23:1111ee8bcba4 4898 {
AzureIoTClient 23:1111ee8bcba4 4899 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 4900 {
AzureIoTClient 28:add19eb7defa 4901 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4902 }
AzureIoTClient 28:add19eb7defa 4903 else
AzureIoTClient 28:add19eb7defa 4904 {
AzureIoTClient 28:add19eb7defa 4905 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 4906 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4907 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4908 {
AzureIoTClient 28:add19eb7defa 4909 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4910 }
AzureIoTClient 28:add19eb7defa 4911 else
AzureIoTClient 28:add19eb7defa 4912 {
AzureIoTClient 43:4c1e4e94cdd3 4913 int get_single_value_result = amqpvalue_get_ulong(item_value, max_message_size_value);
AzureIoTClient 43:4c1e4e94cdd3 4914 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 4915 {
AzureIoTClient 28:add19eb7defa 4916 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4917 }
AzureIoTClient 28:add19eb7defa 4918 else
AzureIoTClient 28:add19eb7defa 4919 {
AzureIoTClient 28:add19eb7defa 4920 result = 0;
AzureIoTClient 28:add19eb7defa 4921 }
AzureIoTClient 28:add19eb7defa 4922 }
AzureIoTClient 28:add19eb7defa 4923 }
AzureIoTClient 28:add19eb7defa 4924 }
AzureIoTClient 28:add19eb7defa 4925 }
AzureIoTClient 28:add19eb7defa 4926
AzureIoTClient 28:add19eb7defa 4927 return result;
Azure.IoT Build 0:6ae2f7bca550 4928 }
Azure.IoT Build 0:6ae2f7bca550 4929
Azure.IoT Build 0:6ae2f7bca550 4930 int attach_set_max_message_size(ATTACH_HANDLE attach, uint64_t max_message_size_value)
Azure.IoT Build 0:6ae2f7bca550 4931 {
AzureIoTClient 28:add19eb7defa 4932 int result;
AzureIoTClient 28:add19eb7defa 4933
AzureIoTClient 28:add19eb7defa 4934 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4935 {
AzureIoTClient 28:add19eb7defa 4936 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4937 }
AzureIoTClient 28:add19eb7defa 4938 else
AzureIoTClient 28:add19eb7defa 4939 {
AzureIoTClient 28:add19eb7defa 4940 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4941 AMQP_VALUE max_message_size_amqp_value = amqpvalue_create_ulong(max_message_size_value);
AzureIoTClient 28:add19eb7defa 4942 if (max_message_size_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4943 {
AzureIoTClient 28:add19eb7defa 4944 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4945 }
AzureIoTClient 28:add19eb7defa 4946 else
AzureIoTClient 28:add19eb7defa 4947 {
AzureIoTClient 28:add19eb7defa 4948 if (amqpvalue_set_composite_item(attach_instance->composite_value, 10, max_message_size_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4949 {
AzureIoTClient 28:add19eb7defa 4950 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4951 }
AzureIoTClient 28:add19eb7defa 4952 else
AzureIoTClient 28:add19eb7defa 4953 {
AzureIoTClient 28:add19eb7defa 4954 result = 0;
AzureIoTClient 28:add19eb7defa 4955 }
AzureIoTClient 28:add19eb7defa 4956
AzureIoTClient 28:add19eb7defa 4957 amqpvalue_destroy(max_message_size_amqp_value);
AzureIoTClient 28:add19eb7defa 4958 }
AzureIoTClient 28:add19eb7defa 4959 }
AzureIoTClient 28:add19eb7defa 4960
AzureIoTClient 28:add19eb7defa 4961 return result;
Azure.IoT Build 0:6ae2f7bca550 4962 }
Azure.IoT Build 0:6ae2f7bca550 4963
Azure.IoT Build 0:6ae2f7bca550 4964 int attach_get_offered_capabilities(ATTACH_HANDLE attach, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 4965 {
AzureIoTClient 28:add19eb7defa 4966 int result;
AzureIoTClient 28:add19eb7defa 4967
AzureIoTClient 28:add19eb7defa 4968 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4969 {
AzureIoTClient 28:add19eb7defa 4970 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4971 }
AzureIoTClient 28:add19eb7defa 4972 else
AzureIoTClient 28:add19eb7defa 4973 {
AzureIoTClient 28:add19eb7defa 4974 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4975 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4976 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4977 {
AzureIoTClient 23:1111ee8bcba4 4978 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4979 }
AzureIoTClient 23:1111ee8bcba4 4980 else
AzureIoTClient 23:1111ee8bcba4 4981 {
AzureIoTClient 23:1111ee8bcba4 4982 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 4983 {
AzureIoTClient 28:add19eb7defa 4984 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4985 }
AzureIoTClient 28:add19eb7defa 4986 else
AzureIoTClient 28:add19eb7defa 4987 {
AzureIoTClient 28:add19eb7defa 4988 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 11);
AzureIoTClient 28:add19eb7defa 4989 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4990 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4991 {
AzureIoTClient 28:add19eb7defa 4992 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4993 }
AzureIoTClient 28:add19eb7defa 4994 else
AzureIoTClient 28:add19eb7defa 4995 {
AzureIoTClient 28:add19eb7defa 4996 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 4997 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4998 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 4999 {
AzureIoTClient 28:add19eb7defa 5000 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5001 }
AzureIoTClient 28:add19eb7defa 5002 else
AzureIoTClient 28:add19eb7defa 5003 {
AzureIoTClient 28:add19eb7defa 5004 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 5005 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 5006 }
AzureIoTClient 28:add19eb7defa 5007
AzureIoTClient 28:add19eb7defa 5008 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 5009 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 5010 {
AzureIoTClient 28:add19eb7defa 5011 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5012 }
AzureIoTClient 28:add19eb7defa 5013 else
AzureIoTClient 28:add19eb7defa 5014 {
AzureIoTClient 28:add19eb7defa 5015 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 5016 {
AzureIoTClient 28:add19eb7defa 5017 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 5018 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 5019 {
AzureIoTClient 28:add19eb7defa 5020 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5021 }
AzureIoTClient 28:add19eb7defa 5022 else
AzureIoTClient 28:add19eb7defa 5023 {
AzureIoTClient 28:add19eb7defa 5024 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5025 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5026 {
AzureIoTClient 28:add19eb7defa 5027 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 5028 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5029 }
AzureIoTClient 28:add19eb7defa 5030 else
AzureIoTClient 28:add19eb7defa 5031 {
AzureIoTClient 28:add19eb7defa 5032 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5033 {
AzureIoTClient 28:add19eb7defa 5034 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 5035 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 5036 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5037 }
AzureIoTClient 28:add19eb7defa 5038 else
AzureIoTClient 28:add19eb7defa 5039 {
AzureIoTClient 29:4a11413cf217 5040 if (amqpvalue_set_composite_item(attach_instance->composite_value, 11, *offered_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 5041 {
AzureIoTClient 29:4a11413cf217 5042 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 29:4a11413cf217 5043 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 5044 }
AzureIoTClient 29:4a11413cf217 5045 else
AzureIoTClient 29:4a11413cf217 5046 {
AzureIoTClient 29:4a11413cf217 5047 result = 0;
AzureIoTClient 29:4a11413cf217 5048 }
AzureIoTClient 28:add19eb7defa 5049 }
AzureIoTClient 29:4a11413cf217 5050
AzureIoTClient 29:4a11413cf217 5051 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 5052 }
AzureIoTClient 29:4a11413cf217 5053 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 5054 }
AzureIoTClient 28:add19eb7defa 5055 }
AzureIoTClient 28:add19eb7defa 5056 else
AzureIoTClient 28:add19eb7defa 5057 {
AzureIoTClient 28:add19eb7defa 5058 result = 0;
AzureIoTClient 28:add19eb7defa 5059 }
AzureIoTClient 28:add19eb7defa 5060 }
AzureIoTClient 28:add19eb7defa 5061 }
AzureIoTClient 28:add19eb7defa 5062 }
AzureIoTClient 28:add19eb7defa 5063 }
AzureIoTClient 28:add19eb7defa 5064 }
AzureIoTClient 28:add19eb7defa 5065
AzureIoTClient 28:add19eb7defa 5066 return result;
Azure.IoT Build 0:6ae2f7bca550 5067 }
Azure.IoT Build 0:6ae2f7bca550 5068
Azure.IoT Build 0:6ae2f7bca550 5069 int attach_set_offered_capabilities(ATTACH_HANDLE attach, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 5070 {
AzureIoTClient 28:add19eb7defa 5071 int result;
AzureIoTClient 28:add19eb7defa 5072
AzureIoTClient 28:add19eb7defa 5073 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5074 {
AzureIoTClient 28:add19eb7defa 5075 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5076 }
AzureIoTClient 28:add19eb7defa 5077 else
AzureIoTClient 28:add19eb7defa 5078 {
AzureIoTClient 28:add19eb7defa 5079 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5080 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 5081 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5082 {
AzureIoTClient 23:1111ee8bcba4 5083 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 5084 }
AzureIoTClient 23:1111ee8bcba4 5085 else
AzureIoTClient 23:1111ee8bcba4 5086 {
AzureIoTClient 23:1111ee8bcba4 5087 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 5088 }
AzureIoTClient 28:add19eb7defa 5089 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5090 {
AzureIoTClient 28:add19eb7defa 5091 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5092 }
AzureIoTClient 28:add19eb7defa 5093 else
AzureIoTClient 28:add19eb7defa 5094 {
AzureIoTClient 28:add19eb7defa 5095 if (amqpvalue_set_composite_item(attach_instance->composite_value, 11, offered_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5096 {
AzureIoTClient 28:add19eb7defa 5097 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5098 }
AzureIoTClient 28:add19eb7defa 5099 else
AzureIoTClient 28:add19eb7defa 5100 {
AzureIoTClient 28:add19eb7defa 5101 result = 0;
AzureIoTClient 28:add19eb7defa 5102 }
AzureIoTClient 28:add19eb7defa 5103
AzureIoTClient 28:add19eb7defa 5104 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 5105 }
AzureIoTClient 28:add19eb7defa 5106 }
AzureIoTClient 28:add19eb7defa 5107
AzureIoTClient 28:add19eb7defa 5108 return result;
Azure.IoT Build 0:6ae2f7bca550 5109 }
Azure.IoT Build 0:6ae2f7bca550 5110
Azure.IoT Build 0:6ae2f7bca550 5111 int attach_get_desired_capabilities(ATTACH_HANDLE attach, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 5112 {
AzureIoTClient 28:add19eb7defa 5113 int result;
AzureIoTClient 28:add19eb7defa 5114
AzureIoTClient 28:add19eb7defa 5115 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5116 {
AzureIoTClient 28:add19eb7defa 5117 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5118 }
AzureIoTClient 28:add19eb7defa 5119 else
AzureIoTClient 28:add19eb7defa 5120 {
AzureIoTClient 28:add19eb7defa 5121 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5122 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 5123 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5124 {
AzureIoTClient 23:1111ee8bcba4 5125 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5126 }
AzureIoTClient 23:1111ee8bcba4 5127 else
AzureIoTClient 23:1111ee8bcba4 5128 {
AzureIoTClient 23:1111ee8bcba4 5129 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 5130 {
AzureIoTClient 28:add19eb7defa 5131 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5132 }
AzureIoTClient 28:add19eb7defa 5133 else
AzureIoTClient 28:add19eb7defa 5134 {
AzureIoTClient 28:add19eb7defa 5135 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 12);
AzureIoTClient 28:add19eb7defa 5136 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5137 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5138 {
AzureIoTClient 28:add19eb7defa 5139 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5140 }
AzureIoTClient 28:add19eb7defa 5141 else
AzureIoTClient 28:add19eb7defa 5142 {
AzureIoTClient 28:add19eb7defa 5143 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 5144 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5145 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 5146 {
AzureIoTClient 28:add19eb7defa 5147 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5148 }
AzureIoTClient 28:add19eb7defa 5149 else
AzureIoTClient 28:add19eb7defa 5150 {
AzureIoTClient 28:add19eb7defa 5151 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 5152 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 5153 }
AzureIoTClient 28:add19eb7defa 5154
AzureIoTClient 28:add19eb7defa 5155 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 5156 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 5157 {
AzureIoTClient 28:add19eb7defa 5158 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5159 }
AzureIoTClient 28:add19eb7defa 5160 else
AzureIoTClient 28:add19eb7defa 5161 {
AzureIoTClient 28:add19eb7defa 5162 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 5163 {
AzureIoTClient 28:add19eb7defa 5164 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 5165 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 5166 {
AzureIoTClient 28:add19eb7defa 5167 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5168 }
AzureIoTClient 28:add19eb7defa 5169 else
AzureIoTClient 28:add19eb7defa 5170 {
AzureIoTClient 28:add19eb7defa 5171 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5172 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5173 {
AzureIoTClient 28:add19eb7defa 5174 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 5175 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5176 }
AzureIoTClient 28:add19eb7defa 5177 else
AzureIoTClient 28:add19eb7defa 5178 {
AzureIoTClient 28:add19eb7defa 5179 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5180 {
AzureIoTClient 28:add19eb7defa 5181 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 5182 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 5183 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5184 }
AzureIoTClient 28:add19eb7defa 5185 else
AzureIoTClient 28:add19eb7defa 5186 {
AzureIoTClient 29:4a11413cf217 5187 if (amqpvalue_set_composite_item(attach_instance->composite_value, 12, *desired_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 5188 {
AzureIoTClient 29:4a11413cf217 5189 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 29:4a11413cf217 5190 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 5191 }
AzureIoTClient 29:4a11413cf217 5192 else
AzureIoTClient 29:4a11413cf217 5193 {
AzureIoTClient 29:4a11413cf217 5194 result = 0;
AzureIoTClient 29:4a11413cf217 5195 }
AzureIoTClient 28:add19eb7defa 5196 }
AzureIoTClient 29:4a11413cf217 5197
AzureIoTClient 29:4a11413cf217 5198 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 5199 }
AzureIoTClient 29:4a11413cf217 5200 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 5201 }
AzureIoTClient 28:add19eb7defa 5202 }
AzureIoTClient 28:add19eb7defa 5203 else
AzureIoTClient 28:add19eb7defa 5204 {
AzureIoTClient 28:add19eb7defa 5205 result = 0;
AzureIoTClient 28:add19eb7defa 5206 }
AzureIoTClient 28:add19eb7defa 5207 }
AzureIoTClient 28:add19eb7defa 5208 }
AzureIoTClient 28:add19eb7defa 5209 }
AzureIoTClient 28:add19eb7defa 5210 }
AzureIoTClient 28:add19eb7defa 5211 }
AzureIoTClient 28:add19eb7defa 5212
AzureIoTClient 28:add19eb7defa 5213 return result;
Azure.IoT Build 0:6ae2f7bca550 5214 }
Azure.IoT Build 0:6ae2f7bca550 5215
Azure.IoT Build 0:6ae2f7bca550 5216 int attach_set_desired_capabilities(ATTACH_HANDLE attach, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 5217 {
AzureIoTClient 28:add19eb7defa 5218 int result;
AzureIoTClient 28:add19eb7defa 5219
AzureIoTClient 28:add19eb7defa 5220 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5221 {
AzureIoTClient 28:add19eb7defa 5222 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5223 }
AzureIoTClient 28:add19eb7defa 5224 else
AzureIoTClient 28:add19eb7defa 5225 {
AzureIoTClient 28:add19eb7defa 5226 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5227 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 5228 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5229 {
AzureIoTClient 23:1111ee8bcba4 5230 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 5231 }
AzureIoTClient 23:1111ee8bcba4 5232 else
AzureIoTClient 23:1111ee8bcba4 5233 {
AzureIoTClient 23:1111ee8bcba4 5234 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 5235 }
AzureIoTClient 28:add19eb7defa 5236 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5237 {
AzureIoTClient 28:add19eb7defa 5238 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5239 }
AzureIoTClient 28:add19eb7defa 5240 else
AzureIoTClient 28:add19eb7defa 5241 {
AzureIoTClient 28:add19eb7defa 5242 if (amqpvalue_set_composite_item(attach_instance->composite_value, 12, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5243 {
AzureIoTClient 28:add19eb7defa 5244 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5245 }
AzureIoTClient 28:add19eb7defa 5246 else
AzureIoTClient 28:add19eb7defa 5247 {
AzureIoTClient 28:add19eb7defa 5248 result = 0;
AzureIoTClient 28:add19eb7defa 5249 }
AzureIoTClient 28:add19eb7defa 5250
AzureIoTClient 28:add19eb7defa 5251 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 5252 }
AzureIoTClient 28:add19eb7defa 5253 }
AzureIoTClient 28:add19eb7defa 5254
AzureIoTClient 28:add19eb7defa 5255 return result;
Azure.IoT Build 0:6ae2f7bca550 5256 }
Azure.IoT Build 0:6ae2f7bca550 5257
Azure.IoT Build 0:6ae2f7bca550 5258 int attach_get_properties(ATTACH_HANDLE attach, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 5259 {
AzureIoTClient 28:add19eb7defa 5260 int result;
AzureIoTClient 28:add19eb7defa 5261
AzureIoTClient 28:add19eb7defa 5262 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5263 {
AzureIoTClient 28:add19eb7defa 5264 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5265 }
AzureIoTClient 28:add19eb7defa 5266 else
AzureIoTClient 28:add19eb7defa 5267 {
AzureIoTClient 28:add19eb7defa 5268 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5269 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 5270 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5271 {
AzureIoTClient 23:1111ee8bcba4 5272 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5273 }
AzureIoTClient 23:1111ee8bcba4 5274 else
AzureIoTClient 23:1111ee8bcba4 5275 {
AzureIoTClient 23:1111ee8bcba4 5276 if (item_count <= 13)
AzureIoTClient 23:1111ee8bcba4 5277 {
AzureIoTClient 28:add19eb7defa 5278 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5279 }
AzureIoTClient 28:add19eb7defa 5280 else
AzureIoTClient 28:add19eb7defa 5281 {
AzureIoTClient 28:add19eb7defa 5282 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 13);
AzureIoTClient 28:add19eb7defa 5283 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5284 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5285 {
AzureIoTClient 28:add19eb7defa 5286 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5287 }
AzureIoTClient 28:add19eb7defa 5288 else
AzureIoTClient 28:add19eb7defa 5289 {
AzureIoTClient 43:4c1e4e94cdd3 5290 int get_single_value_result = amqpvalue_get_fields(item_value, properties_value);
AzureIoTClient 43:4c1e4e94cdd3 5291 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 5292 {
AzureIoTClient 28:add19eb7defa 5293 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5294 }
AzureIoTClient 28:add19eb7defa 5295 else
AzureIoTClient 28:add19eb7defa 5296 {
AzureIoTClient 28:add19eb7defa 5297 result = 0;
AzureIoTClient 28:add19eb7defa 5298 }
AzureIoTClient 28:add19eb7defa 5299 }
AzureIoTClient 28:add19eb7defa 5300 }
AzureIoTClient 28:add19eb7defa 5301 }
AzureIoTClient 28:add19eb7defa 5302 }
AzureIoTClient 28:add19eb7defa 5303
AzureIoTClient 28:add19eb7defa 5304 return result;
Azure.IoT Build 0:6ae2f7bca550 5305 }
Azure.IoT Build 0:6ae2f7bca550 5306
Azure.IoT Build 0:6ae2f7bca550 5307 int attach_set_properties(ATTACH_HANDLE attach, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 5308 {
AzureIoTClient 28:add19eb7defa 5309 int result;
AzureIoTClient 28:add19eb7defa 5310
AzureIoTClient 28:add19eb7defa 5311 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5312 {
AzureIoTClient 28:add19eb7defa 5313 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5314 }
AzureIoTClient 28:add19eb7defa 5315 else
AzureIoTClient 28:add19eb7defa 5316 {
AzureIoTClient 28:add19eb7defa 5317 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5318 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 5319 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5320 {
AzureIoTClient 28:add19eb7defa 5321 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5322 }
AzureIoTClient 28:add19eb7defa 5323 else
AzureIoTClient 28:add19eb7defa 5324 {
AzureIoTClient 28:add19eb7defa 5325 if (amqpvalue_set_composite_item(attach_instance->composite_value, 13, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5326 {
AzureIoTClient 28:add19eb7defa 5327 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5328 }
AzureIoTClient 28:add19eb7defa 5329 else
AzureIoTClient 28:add19eb7defa 5330 {
AzureIoTClient 28:add19eb7defa 5331 result = 0;
AzureIoTClient 28:add19eb7defa 5332 }
AzureIoTClient 28:add19eb7defa 5333
AzureIoTClient 28:add19eb7defa 5334 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 5335 }
AzureIoTClient 28:add19eb7defa 5336 }
AzureIoTClient 28:add19eb7defa 5337
AzureIoTClient 28:add19eb7defa 5338 return result;
Azure.IoT Build 0:6ae2f7bca550 5339 }
Azure.IoT Build 0:6ae2f7bca550 5340
Azure.IoT Build 0:6ae2f7bca550 5341
Azure.IoT Build 0:6ae2f7bca550 5342 /* flow */
Azure.IoT Build 0:6ae2f7bca550 5343
Azure.IoT Build 0:6ae2f7bca550 5344 typedef struct FLOW_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 5345 {
AzureIoTClient 28:add19eb7defa 5346 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 5347 } FLOW_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 5348
Azure.IoT Build 0:6ae2f7bca550 5349 static FLOW_HANDLE flow_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 5350 {
AzureIoTClient 28:add19eb7defa 5351 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5352 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5353 {
AzureIoTClient 28:add19eb7defa 5354 flow_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 5355 }
AzureIoTClient 28:add19eb7defa 5356
AzureIoTClient 28:add19eb7defa 5357 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5358 }
Azure.IoT Build 0:6ae2f7bca550 5359
Azure.IoT Build 0:6ae2f7bca550 5360 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 5361 {
AzureIoTClient 28:add19eb7defa 5362 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5363 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5364 {
AzureIoTClient 28:add19eb7defa 5365 flow_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(19);
AzureIoTClient 28:add19eb7defa 5366 if (flow_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 5367 {
AzureIoTClient 28:add19eb7defa 5368 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5369 flow_instance = NULL;
AzureIoTClient 28:add19eb7defa 5370 }
AzureIoTClient 28:add19eb7defa 5371 else
AzureIoTClient 28:add19eb7defa 5372 {
AzureIoTClient 28:add19eb7defa 5373 AMQP_VALUE incoming_window_amqp_value;
AzureIoTClient 28:add19eb7defa 5374 AMQP_VALUE next_outgoing_id_amqp_value;
AzureIoTClient 28:add19eb7defa 5375 AMQP_VALUE outgoing_window_amqp_value;
AzureIoTClient 28:add19eb7defa 5376 int result = 0;
AzureIoTClient 28:add19eb7defa 5377
AzureIoTClient 28:add19eb7defa 5378 incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 5379 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 1, incoming_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5380 {
AzureIoTClient 28:add19eb7defa 5381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5382 }
AzureIoTClient 28:add19eb7defa 5383 next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 5384 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 2, next_outgoing_id_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5385 {
AzureIoTClient 28:add19eb7defa 5386 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5387 }
AzureIoTClient 28:add19eb7defa 5388 outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 5389 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 3, outgoing_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5390 {
AzureIoTClient 28:add19eb7defa 5391 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5392 }
AzureIoTClient 28:add19eb7defa 5393
AzureIoTClient 28:add19eb7defa 5394 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 5395 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 5396 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 5397 }
AzureIoTClient 28:add19eb7defa 5398 }
AzureIoTClient 28:add19eb7defa 5399
AzureIoTClient 28:add19eb7defa 5400 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5401 }
Azure.IoT Build 0:6ae2f7bca550 5402
Azure.IoT Build 0:6ae2f7bca550 5403 FLOW_HANDLE flow_clone(FLOW_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 5404 {
AzureIoTClient 28:add19eb7defa 5405 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5406 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5407 {
AzureIoTClient 28:add19eb7defa 5408 flow_instance->composite_value = amqpvalue_clone(((FLOW_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 5409 if (flow_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 5410 {
AzureIoTClient 28:add19eb7defa 5411 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5412 flow_instance = NULL;
AzureIoTClient 28:add19eb7defa 5413 }
AzureIoTClient 28:add19eb7defa 5414 }
AzureIoTClient 28:add19eb7defa 5415
AzureIoTClient 28:add19eb7defa 5416 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5417 }
Azure.IoT Build 0:6ae2f7bca550 5418
Azure.IoT Build 0:6ae2f7bca550 5419 void flow_destroy(FLOW_HANDLE flow)
Azure.IoT Build 0:6ae2f7bca550 5420 {
AzureIoTClient 28:add19eb7defa 5421 if (flow != NULL)
AzureIoTClient 28:add19eb7defa 5422 {
AzureIoTClient 28:add19eb7defa 5423 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5424 amqpvalue_destroy(flow_instance->composite_value);
AzureIoTClient 28:add19eb7defa 5425 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5426 }
Azure.IoT Build 0:6ae2f7bca550 5427 }
Azure.IoT Build 0:6ae2f7bca550 5428
Azure.IoT Build 0:6ae2f7bca550 5429 AMQP_VALUE amqpvalue_create_flow(FLOW_HANDLE flow)
Azure.IoT Build 0:6ae2f7bca550 5430 {
AzureIoTClient 28:add19eb7defa 5431 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 5432
AzureIoTClient 28:add19eb7defa 5433 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5434 {
AzureIoTClient 28:add19eb7defa 5435 result = NULL;
AzureIoTClient 28:add19eb7defa 5436 }
AzureIoTClient 28:add19eb7defa 5437 else
AzureIoTClient 28:add19eb7defa 5438 {
AzureIoTClient 28:add19eb7defa 5439 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5440 result = amqpvalue_clone(flow_instance->composite_value);
AzureIoTClient 28:add19eb7defa 5441 }
AzureIoTClient 28:add19eb7defa 5442
AzureIoTClient 28:add19eb7defa 5443 return result;
Azure.IoT Build 0:6ae2f7bca550 5444 }
Azure.IoT Build 0:6ae2f7bca550 5445
Azure.IoT Build 0:6ae2f7bca550 5446 bool is_flow_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 5447 {
AzureIoTClient 28:add19eb7defa 5448 bool result;
AzureIoTClient 28:add19eb7defa 5449
AzureIoTClient 28:add19eb7defa 5450 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 5451 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 5452 (descriptor_ulong == 19))
AzureIoTClient 28:add19eb7defa 5453 {
AzureIoTClient 28:add19eb7defa 5454 result = true;
AzureIoTClient 28:add19eb7defa 5455 }
AzureIoTClient 28:add19eb7defa 5456 else
AzureIoTClient 28:add19eb7defa 5457 {
AzureIoTClient 28:add19eb7defa 5458 result = false;
AzureIoTClient 28:add19eb7defa 5459 }
AzureIoTClient 28:add19eb7defa 5460
AzureIoTClient 28:add19eb7defa 5461 return result;
Azure.IoT Build 0:6ae2f7bca550 5462 }
Azure.IoT Build 0:6ae2f7bca550 5463
Azure.IoT Build 0:6ae2f7bca550 5464
Azure.IoT Build 0:6ae2f7bca550 5465 int amqpvalue_get_flow(AMQP_VALUE value, FLOW_HANDLE* flow_handle)
Azure.IoT Build 0:6ae2f7bca550 5466 {
AzureIoTClient 28:add19eb7defa 5467 int result;
AzureIoTClient 28:add19eb7defa 5468 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow_create_internal();
AzureIoTClient 28:add19eb7defa 5469 *flow_handle = flow_instance;
AzureIoTClient 28:add19eb7defa 5470 if (*flow_handle == NULL)
AzureIoTClient 28:add19eb7defa 5471 {
AzureIoTClient 28:add19eb7defa 5472 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5473 }
AzureIoTClient 28:add19eb7defa 5474 else
AzureIoTClient 28:add19eb7defa 5475 {
AzureIoTClient 28:add19eb7defa 5476 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 5477 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 5478 {
AzureIoTClient 28:add19eb7defa 5479 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5480 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5481 }
AzureIoTClient 28:add19eb7defa 5482 else
AzureIoTClient 28:add19eb7defa 5483 {
AzureIoTClient 23:1111ee8bcba4 5484 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 5485 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5486 {
AzureIoTClient 23:1111ee8bcba4 5487 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5488 }
AzureIoTClient 23:1111ee8bcba4 5489 else
AzureIoTClient 23:1111ee8bcba4 5490 {
AzureIoTClient 28:add19eb7defa 5491 do
AzureIoTClient 28:add19eb7defa 5492 {
AzureIoTClient 28:add19eb7defa 5493 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 5494 /* next-incoming-id */
AzureIoTClient 28:add19eb7defa 5495 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 5496 {
AzureIoTClient 23:1111ee8bcba4 5497 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 5498 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5499 {
AzureIoTClient 28:add19eb7defa 5500 /* do nothing */
AzureIoTClient 28:add19eb7defa 5501 }
AzureIoTClient 28:add19eb7defa 5502 else
AzureIoTClient 28:add19eb7defa 5503 {
AzureIoTClient 28:add19eb7defa 5504 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5505 {
AzureIoTClient 28:add19eb7defa 5506 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5507 }
AzureIoTClient 28:add19eb7defa 5508 else
AzureIoTClient 28:add19eb7defa 5509 {
AzureIoTClient 28:add19eb7defa 5510 transfer_number next_incoming_id;
AzureIoTClient 28:add19eb7defa 5511 if (amqpvalue_get_transfer_number(item_value, &next_incoming_id) != 0)
AzureIoTClient 28:add19eb7defa 5512 {
AzureIoTClient 28:add19eb7defa 5513 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5514 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5515 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5516 break;
AzureIoTClient 28:add19eb7defa 5517 }
AzureIoTClient 28:add19eb7defa 5518 }
AzureIoTClient 28:add19eb7defa 5519
AzureIoTClient 28:add19eb7defa 5520 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5521 }
AzureIoTClient 28:add19eb7defa 5522 }
AzureIoTClient 28:add19eb7defa 5523 /* incoming-window */
AzureIoTClient 28:add19eb7defa 5524 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 5525 {
AzureIoTClient 23:1111ee8bcba4 5526 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 5527 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5528 {
AzureIoTClient 28:add19eb7defa 5529 {
AzureIoTClient 28:add19eb7defa 5530 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5531 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5532 break;
AzureIoTClient 28:add19eb7defa 5533 }
AzureIoTClient 28:add19eb7defa 5534 }
AzureIoTClient 28:add19eb7defa 5535 else
AzureIoTClient 28:add19eb7defa 5536 {
AzureIoTClient 28:add19eb7defa 5537 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5538 {
AzureIoTClient 28:add19eb7defa 5539 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5540 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5541 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5542 break;
AzureIoTClient 28:add19eb7defa 5543 }
AzureIoTClient 28:add19eb7defa 5544 else
AzureIoTClient 28:add19eb7defa 5545 {
AzureIoTClient 28:add19eb7defa 5546 uint32_t incoming_window;
AzureIoTClient 28:add19eb7defa 5547 if (amqpvalue_get_uint(item_value, &incoming_window) != 0)
AzureIoTClient 28:add19eb7defa 5548 {
AzureIoTClient 28:add19eb7defa 5549 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5550 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5551 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5552 break;
AzureIoTClient 28:add19eb7defa 5553 }
AzureIoTClient 28:add19eb7defa 5554 }
AzureIoTClient 28:add19eb7defa 5555
AzureIoTClient 28:add19eb7defa 5556 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5557 }
AzureIoTClient 28:add19eb7defa 5558 }
AzureIoTClient 28:add19eb7defa 5559 else
AzureIoTClient 28:add19eb7defa 5560 {
AzureIoTClient 28:add19eb7defa 5561 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5562 }
AzureIoTClient 28:add19eb7defa 5563 /* next-outgoing-id */
AzureIoTClient 28:add19eb7defa 5564 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 5565 {
AzureIoTClient 23:1111ee8bcba4 5566 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 5567 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5568 {
AzureIoTClient 28:add19eb7defa 5569 {
AzureIoTClient 28:add19eb7defa 5570 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5571 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5572 break;
AzureIoTClient 28:add19eb7defa 5573 }
AzureIoTClient 28:add19eb7defa 5574 }
AzureIoTClient 28:add19eb7defa 5575 else
AzureIoTClient 28:add19eb7defa 5576 {
AzureIoTClient 28:add19eb7defa 5577 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5578 {
AzureIoTClient 28:add19eb7defa 5579 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5580 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5581 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5582 break;
AzureIoTClient 28:add19eb7defa 5583 }
AzureIoTClient 28:add19eb7defa 5584 else
AzureIoTClient 28:add19eb7defa 5585 {
AzureIoTClient 28:add19eb7defa 5586 transfer_number next_outgoing_id;
AzureIoTClient 28:add19eb7defa 5587 if (amqpvalue_get_transfer_number(item_value, &next_outgoing_id) != 0)
AzureIoTClient 28:add19eb7defa 5588 {
AzureIoTClient 28:add19eb7defa 5589 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5590 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5591 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5592 break;
AzureIoTClient 28:add19eb7defa 5593 }
AzureIoTClient 28:add19eb7defa 5594 }
AzureIoTClient 28:add19eb7defa 5595
AzureIoTClient 28:add19eb7defa 5596 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5597 }
AzureIoTClient 28:add19eb7defa 5598 }
AzureIoTClient 28:add19eb7defa 5599 else
AzureIoTClient 28:add19eb7defa 5600 {
AzureIoTClient 28:add19eb7defa 5601 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5602 }
AzureIoTClient 28:add19eb7defa 5603 /* outgoing-window */
AzureIoTClient 28:add19eb7defa 5604 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 5605 {
AzureIoTClient 23:1111ee8bcba4 5606 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 5607 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5608 {
AzureIoTClient 28:add19eb7defa 5609 {
AzureIoTClient 28:add19eb7defa 5610 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5611 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5612 break;
AzureIoTClient 28:add19eb7defa 5613 }
AzureIoTClient 28:add19eb7defa 5614 }
AzureIoTClient 28:add19eb7defa 5615 else
AzureIoTClient 28:add19eb7defa 5616 {
AzureIoTClient 28:add19eb7defa 5617 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5618 {
AzureIoTClient 28:add19eb7defa 5619 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5620 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5621 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5622 break;
AzureIoTClient 28:add19eb7defa 5623 }
AzureIoTClient 28:add19eb7defa 5624 else
AzureIoTClient 28:add19eb7defa 5625 {
AzureIoTClient 28:add19eb7defa 5626 uint32_t outgoing_window;
AzureIoTClient 28:add19eb7defa 5627 if (amqpvalue_get_uint(item_value, &outgoing_window) != 0)
AzureIoTClient 28:add19eb7defa 5628 {
AzureIoTClient 28:add19eb7defa 5629 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5630 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5631 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5632 break;
AzureIoTClient 28:add19eb7defa 5633 }
AzureIoTClient 28:add19eb7defa 5634 }
AzureIoTClient 28:add19eb7defa 5635
AzureIoTClient 28:add19eb7defa 5636 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5637 }
AzureIoTClient 28:add19eb7defa 5638 }
AzureIoTClient 28:add19eb7defa 5639 else
AzureIoTClient 28:add19eb7defa 5640 {
AzureIoTClient 28:add19eb7defa 5641 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5642 }
AzureIoTClient 28:add19eb7defa 5643 /* handle */
AzureIoTClient 28:add19eb7defa 5644 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 5645 {
AzureIoTClient 23:1111ee8bcba4 5646 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 5647 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5648 {
AzureIoTClient 28:add19eb7defa 5649 /* do nothing */
AzureIoTClient 28:add19eb7defa 5650 }
AzureIoTClient 28:add19eb7defa 5651 else
AzureIoTClient 28:add19eb7defa 5652 {
AzureIoTClient 28:add19eb7defa 5653 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5654 {
AzureIoTClient 28:add19eb7defa 5655 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5656 }
AzureIoTClient 28:add19eb7defa 5657 else
AzureIoTClient 28:add19eb7defa 5658 {
AzureIoTClient 28:add19eb7defa 5659 handle handle;
AzureIoTClient 28:add19eb7defa 5660 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 5661 {
AzureIoTClient 28:add19eb7defa 5662 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5663 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5664 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5665 break;
AzureIoTClient 28:add19eb7defa 5666 }
AzureIoTClient 28:add19eb7defa 5667 }
AzureIoTClient 28:add19eb7defa 5668
AzureIoTClient 28:add19eb7defa 5669 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5670 }
AzureIoTClient 28:add19eb7defa 5671 }
AzureIoTClient 28:add19eb7defa 5672 /* delivery-count */
AzureIoTClient 28:add19eb7defa 5673 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 5674 {
AzureIoTClient 23:1111ee8bcba4 5675 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 5676 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5677 {
AzureIoTClient 28:add19eb7defa 5678 /* do nothing */
AzureIoTClient 28:add19eb7defa 5679 }
AzureIoTClient 28:add19eb7defa 5680 else
AzureIoTClient 28:add19eb7defa 5681 {
AzureIoTClient 28:add19eb7defa 5682 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5683 {
AzureIoTClient 28:add19eb7defa 5684 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5685 }
AzureIoTClient 28:add19eb7defa 5686 else
AzureIoTClient 28:add19eb7defa 5687 {
AzureIoTClient 28:add19eb7defa 5688 sequence_no delivery_count;
AzureIoTClient 28:add19eb7defa 5689 if (amqpvalue_get_sequence_no(item_value, &delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 5690 {
AzureIoTClient 28:add19eb7defa 5691 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5692 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5693 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5694 break;
AzureIoTClient 28:add19eb7defa 5695 }
AzureIoTClient 28:add19eb7defa 5696 }
AzureIoTClient 28:add19eb7defa 5697
AzureIoTClient 28:add19eb7defa 5698 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5699 }
AzureIoTClient 28:add19eb7defa 5700 }
AzureIoTClient 28:add19eb7defa 5701 /* link-credit */
AzureIoTClient 28:add19eb7defa 5702 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 5703 {
AzureIoTClient 23:1111ee8bcba4 5704 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 5705 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5706 {
AzureIoTClient 28:add19eb7defa 5707 /* do nothing */
AzureIoTClient 28:add19eb7defa 5708 }
AzureIoTClient 28:add19eb7defa 5709 else
AzureIoTClient 28:add19eb7defa 5710 {
AzureIoTClient 28:add19eb7defa 5711 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5712 {
AzureIoTClient 28:add19eb7defa 5713 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5714 }
AzureIoTClient 28:add19eb7defa 5715 else
AzureIoTClient 28:add19eb7defa 5716 {
AzureIoTClient 28:add19eb7defa 5717 uint32_t link_credit;
AzureIoTClient 28:add19eb7defa 5718 if (amqpvalue_get_uint(item_value, &link_credit) != 0)
AzureIoTClient 28:add19eb7defa 5719 {
AzureIoTClient 28:add19eb7defa 5720 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5721 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5722 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5723 break;
AzureIoTClient 28:add19eb7defa 5724 }
AzureIoTClient 28:add19eb7defa 5725 }
AzureIoTClient 28:add19eb7defa 5726
AzureIoTClient 28:add19eb7defa 5727 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5728 }
AzureIoTClient 28:add19eb7defa 5729 }
AzureIoTClient 28:add19eb7defa 5730 /* available */
AzureIoTClient 28:add19eb7defa 5731 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 5732 {
AzureIoTClient 23:1111ee8bcba4 5733 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 5734 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5735 {
AzureIoTClient 28:add19eb7defa 5736 /* do nothing */
AzureIoTClient 28:add19eb7defa 5737 }
AzureIoTClient 28:add19eb7defa 5738 else
AzureIoTClient 28:add19eb7defa 5739 {
AzureIoTClient 28:add19eb7defa 5740 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5741 {
AzureIoTClient 28:add19eb7defa 5742 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5743 }
AzureIoTClient 28:add19eb7defa 5744 else
AzureIoTClient 28:add19eb7defa 5745 {
AzureIoTClient 28:add19eb7defa 5746 uint32_t available;
AzureIoTClient 28:add19eb7defa 5747 if (amqpvalue_get_uint(item_value, &available) != 0)
AzureIoTClient 28:add19eb7defa 5748 {
AzureIoTClient 28:add19eb7defa 5749 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5750 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5751 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5752 break;
AzureIoTClient 28:add19eb7defa 5753 }
AzureIoTClient 28:add19eb7defa 5754 }
AzureIoTClient 28:add19eb7defa 5755
AzureIoTClient 28:add19eb7defa 5756 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5757 }
AzureIoTClient 28:add19eb7defa 5758 }
AzureIoTClient 28:add19eb7defa 5759 /* drain */
AzureIoTClient 28:add19eb7defa 5760 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 5761 {
AzureIoTClient 23:1111ee8bcba4 5762 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 5763 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5764 {
AzureIoTClient 28:add19eb7defa 5765 /* do nothing */
AzureIoTClient 28:add19eb7defa 5766 }
AzureIoTClient 28:add19eb7defa 5767 else
AzureIoTClient 28:add19eb7defa 5768 {
AzureIoTClient 28:add19eb7defa 5769 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5770 {
AzureIoTClient 28:add19eb7defa 5771 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5772 }
AzureIoTClient 28:add19eb7defa 5773 else
AzureIoTClient 28:add19eb7defa 5774 {
AzureIoTClient 28:add19eb7defa 5775 bool drain;
AzureIoTClient 28:add19eb7defa 5776 if (amqpvalue_get_boolean(item_value, &drain) != 0)
AzureIoTClient 28:add19eb7defa 5777 {
AzureIoTClient 28:add19eb7defa 5778 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5779 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5780 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5781 break;
AzureIoTClient 28:add19eb7defa 5782 }
AzureIoTClient 28:add19eb7defa 5783 }
AzureIoTClient 28:add19eb7defa 5784
AzureIoTClient 28:add19eb7defa 5785 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5786 }
AzureIoTClient 28:add19eb7defa 5787 }
AzureIoTClient 28:add19eb7defa 5788 /* echo */
AzureIoTClient 28:add19eb7defa 5789 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 5790 {
AzureIoTClient 23:1111ee8bcba4 5791 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 5792 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5793 {
AzureIoTClient 28:add19eb7defa 5794 /* do nothing */
AzureIoTClient 28:add19eb7defa 5795 }
AzureIoTClient 28:add19eb7defa 5796 else
AzureIoTClient 28:add19eb7defa 5797 {
AzureIoTClient 28:add19eb7defa 5798 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5799 {
AzureIoTClient 28:add19eb7defa 5800 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5801 }
AzureIoTClient 28:add19eb7defa 5802 else
AzureIoTClient 28:add19eb7defa 5803 {
AzureIoTClient 28:add19eb7defa 5804 bool echo;
AzureIoTClient 28:add19eb7defa 5805 if (amqpvalue_get_boolean(item_value, &echo) != 0)
AzureIoTClient 28:add19eb7defa 5806 {
AzureIoTClient 28:add19eb7defa 5807 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5808 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5809 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5810 break;
AzureIoTClient 28:add19eb7defa 5811 }
AzureIoTClient 28:add19eb7defa 5812 }
AzureIoTClient 28:add19eb7defa 5813
AzureIoTClient 28:add19eb7defa 5814 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5815 }
AzureIoTClient 28:add19eb7defa 5816 }
AzureIoTClient 28:add19eb7defa 5817 /* properties */
AzureIoTClient 28:add19eb7defa 5818 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 5819 {
AzureIoTClient 23:1111ee8bcba4 5820 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 5821 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5822 {
AzureIoTClient 28:add19eb7defa 5823 /* do nothing */
AzureIoTClient 28:add19eb7defa 5824 }
AzureIoTClient 28:add19eb7defa 5825 else
AzureIoTClient 28:add19eb7defa 5826 {
AzureIoTClient 28:add19eb7defa 5827 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5828 {
AzureIoTClient 28:add19eb7defa 5829 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5830 }
AzureIoTClient 28:add19eb7defa 5831 else
AzureIoTClient 28:add19eb7defa 5832 {
AzureIoTClient 28:add19eb7defa 5833 fields properties;
AzureIoTClient 28:add19eb7defa 5834 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 5835 {
AzureIoTClient 28:add19eb7defa 5836 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5837 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5838 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5839 break;
AzureIoTClient 28:add19eb7defa 5840 }
AzureIoTClient 28:add19eb7defa 5841 }
AzureIoTClient 28:add19eb7defa 5842
AzureIoTClient 28:add19eb7defa 5843 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5844 }
AzureIoTClient 28:add19eb7defa 5845 }
AzureIoTClient 28:add19eb7defa 5846
AzureIoTClient 28:add19eb7defa 5847 flow_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 5848
AzureIoTClient 28:add19eb7defa 5849 result = 0;
AzureIoTClient 28:add19eb7defa 5850 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 5851 }
AzureIoTClient 28:add19eb7defa 5852 }
AzureIoTClient 28:add19eb7defa 5853 }
AzureIoTClient 28:add19eb7defa 5854
AzureIoTClient 28:add19eb7defa 5855 return result;
Azure.IoT Build 0:6ae2f7bca550 5856 }
Azure.IoT Build 0:6ae2f7bca550 5857
Azure.IoT Build 0:6ae2f7bca550 5858 int flow_get_next_incoming_id(FLOW_HANDLE flow, transfer_number* next_incoming_id_value)
Azure.IoT Build 0:6ae2f7bca550 5859 {
AzureIoTClient 28:add19eb7defa 5860 int result;
AzureIoTClient 28:add19eb7defa 5861
AzureIoTClient 28:add19eb7defa 5862 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5863 {
AzureIoTClient 28:add19eb7defa 5864 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5865 }
AzureIoTClient 28:add19eb7defa 5866 else
AzureIoTClient 28:add19eb7defa 5867 {
AzureIoTClient 28:add19eb7defa 5868 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5869 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5870 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5871 {
AzureIoTClient 23:1111ee8bcba4 5872 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5873 }
AzureIoTClient 23:1111ee8bcba4 5874 else
AzureIoTClient 23:1111ee8bcba4 5875 {
AzureIoTClient 23:1111ee8bcba4 5876 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 5877 {
AzureIoTClient 28:add19eb7defa 5878 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5879 }
AzureIoTClient 28:add19eb7defa 5880 else
AzureIoTClient 28:add19eb7defa 5881 {
AzureIoTClient 28:add19eb7defa 5882 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 5883 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5884 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5885 {
AzureIoTClient 28:add19eb7defa 5886 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5887 }
AzureIoTClient 28:add19eb7defa 5888 else
AzureIoTClient 28:add19eb7defa 5889 {
AzureIoTClient 43:4c1e4e94cdd3 5890 int get_single_value_result = amqpvalue_get_transfer_number(item_value, next_incoming_id_value);
AzureIoTClient 43:4c1e4e94cdd3 5891 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 5892 {
AzureIoTClient 28:add19eb7defa 5893 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5894 }
AzureIoTClient 28:add19eb7defa 5895 else
AzureIoTClient 28:add19eb7defa 5896 {
AzureIoTClient 28:add19eb7defa 5897 result = 0;
AzureIoTClient 28:add19eb7defa 5898 }
AzureIoTClient 28:add19eb7defa 5899 }
AzureIoTClient 28:add19eb7defa 5900 }
AzureIoTClient 28:add19eb7defa 5901 }
AzureIoTClient 28:add19eb7defa 5902 }
AzureIoTClient 28:add19eb7defa 5903
AzureIoTClient 28:add19eb7defa 5904 return result;
Azure.IoT Build 0:6ae2f7bca550 5905 }
Azure.IoT Build 0:6ae2f7bca550 5906
Azure.IoT Build 0:6ae2f7bca550 5907 int flow_set_next_incoming_id(FLOW_HANDLE flow, transfer_number next_incoming_id_value)
Azure.IoT Build 0:6ae2f7bca550 5908 {
AzureIoTClient 28:add19eb7defa 5909 int result;
AzureIoTClient 28:add19eb7defa 5910
AzureIoTClient 28:add19eb7defa 5911 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5912 {
AzureIoTClient 28:add19eb7defa 5913 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5914 }
AzureIoTClient 28:add19eb7defa 5915 else
AzureIoTClient 28:add19eb7defa 5916 {
AzureIoTClient 28:add19eb7defa 5917 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5918 AMQP_VALUE next_incoming_id_amqp_value = amqpvalue_create_transfer_number(next_incoming_id_value);
AzureIoTClient 28:add19eb7defa 5919 if (next_incoming_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5920 {
AzureIoTClient 28:add19eb7defa 5921 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5922 }
AzureIoTClient 28:add19eb7defa 5923 else
AzureIoTClient 28:add19eb7defa 5924 {
AzureIoTClient 28:add19eb7defa 5925 if (amqpvalue_set_composite_item(flow_instance->composite_value, 0, next_incoming_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5926 {
AzureIoTClient 28:add19eb7defa 5927 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5928 }
AzureIoTClient 28:add19eb7defa 5929 else
AzureIoTClient 28:add19eb7defa 5930 {
AzureIoTClient 28:add19eb7defa 5931 result = 0;
AzureIoTClient 28:add19eb7defa 5932 }
AzureIoTClient 28:add19eb7defa 5933
AzureIoTClient 28:add19eb7defa 5934 amqpvalue_destroy(next_incoming_id_amqp_value);
AzureIoTClient 28:add19eb7defa 5935 }
AzureIoTClient 28:add19eb7defa 5936 }
AzureIoTClient 28:add19eb7defa 5937
AzureIoTClient 28:add19eb7defa 5938 return result;
Azure.IoT Build 0:6ae2f7bca550 5939 }
Azure.IoT Build 0:6ae2f7bca550 5940
Azure.IoT Build 0:6ae2f7bca550 5941 int flow_get_incoming_window(FLOW_HANDLE flow, uint32_t* incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 5942 {
AzureIoTClient 28:add19eb7defa 5943 int result;
AzureIoTClient 28:add19eb7defa 5944
AzureIoTClient 28:add19eb7defa 5945 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5946 {
AzureIoTClient 28:add19eb7defa 5947 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5948 }
AzureIoTClient 28:add19eb7defa 5949 else
AzureIoTClient 28:add19eb7defa 5950 {
AzureIoTClient 28:add19eb7defa 5951 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5952 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5953 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5954 {
AzureIoTClient 23:1111ee8bcba4 5955 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5956 }
AzureIoTClient 23:1111ee8bcba4 5957 else
AzureIoTClient 23:1111ee8bcba4 5958 {
AzureIoTClient 23:1111ee8bcba4 5959 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 5960 {
AzureIoTClient 28:add19eb7defa 5961 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5962 }
AzureIoTClient 28:add19eb7defa 5963 else
AzureIoTClient 28:add19eb7defa 5964 {
AzureIoTClient 28:add19eb7defa 5965 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 5966 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5967 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5968 {
AzureIoTClient 28:add19eb7defa 5969 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5970 }
AzureIoTClient 28:add19eb7defa 5971 else
AzureIoTClient 28:add19eb7defa 5972 {
AzureIoTClient 43:4c1e4e94cdd3 5973 int get_single_value_result = amqpvalue_get_uint(item_value, incoming_window_value);
AzureIoTClient 43:4c1e4e94cdd3 5974 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 5975 {
AzureIoTClient 28:add19eb7defa 5976 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5977 }
AzureIoTClient 28:add19eb7defa 5978 else
AzureIoTClient 28:add19eb7defa 5979 {
AzureIoTClient 28:add19eb7defa 5980 result = 0;
AzureIoTClient 28:add19eb7defa 5981 }
AzureIoTClient 28:add19eb7defa 5982 }
AzureIoTClient 28:add19eb7defa 5983 }
AzureIoTClient 28:add19eb7defa 5984 }
AzureIoTClient 28:add19eb7defa 5985 }
AzureIoTClient 28:add19eb7defa 5986
AzureIoTClient 28:add19eb7defa 5987 return result;
Azure.IoT Build 0:6ae2f7bca550 5988 }
Azure.IoT Build 0:6ae2f7bca550 5989
Azure.IoT Build 0:6ae2f7bca550 5990 int flow_set_incoming_window(FLOW_HANDLE flow, uint32_t incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 5991 {
AzureIoTClient 28:add19eb7defa 5992 int result;
AzureIoTClient 28:add19eb7defa 5993
AzureIoTClient 28:add19eb7defa 5994 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5995 {
AzureIoTClient 28:add19eb7defa 5996 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5997 }
AzureIoTClient 28:add19eb7defa 5998 else
AzureIoTClient 28:add19eb7defa 5999 {
AzureIoTClient 28:add19eb7defa 6000 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6001 AMQP_VALUE incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 6002 if (incoming_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6003 {
AzureIoTClient 28:add19eb7defa 6004 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6005 }
AzureIoTClient 28:add19eb7defa 6006 else
AzureIoTClient 28:add19eb7defa 6007 {
AzureIoTClient 28:add19eb7defa 6008 if (amqpvalue_set_composite_item(flow_instance->composite_value, 1, incoming_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6009 {
AzureIoTClient 28:add19eb7defa 6010 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6011 }
AzureIoTClient 28:add19eb7defa 6012 else
AzureIoTClient 28:add19eb7defa 6013 {
AzureIoTClient 28:add19eb7defa 6014 result = 0;
AzureIoTClient 28:add19eb7defa 6015 }
AzureIoTClient 28:add19eb7defa 6016
AzureIoTClient 28:add19eb7defa 6017 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 6018 }
AzureIoTClient 28:add19eb7defa 6019 }
AzureIoTClient 28:add19eb7defa 6020
AzureIoTClient 28:add19eb7defa 6021 return result;
Azure.IoT Build 0:6ae2f7bca550 6022 }
Azure.IoT Build 0:6ae2f7bca550 6023
Azure.IoT Build 0:6ae2f7bca550 6024 int flow_get_next_outgoing_id(FLOW_HANDLE flow, transfer_number* next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 6025 {
AzureIoTClient 28:add19eb7defa 6026 int result;
AzureIoTClient 28:add19eb7defa 6027
AzureIoTClient 28:add19eb7defa 6028 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6029 {
AzureIoTClient 28:add19eb7defa 6030 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6031 }
AzureIoTClient 28:add19eb7defa 6032 else
AzureIoTClient 28:add19eb7defa 6033 {
AzureIoTClient 28:add19eb7defa 6034 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6035 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6036 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6037 {
AzureIoTClient 23:1111ee8bcba4 6038 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6039 }
AzureIoTClient 23:1111ee8bcba4 6040 else
AzureIoTClient 23:1111ee8bcba4 6041 {
AzureIoTClient 23:1111ee8bcba4 6042 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 6043 {
AzureIoTClient 28:add19eb7defa 6044 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6045 }
AzureIoTClient 28:add19eb7defa 6046 else
AzureIoTClient 28:add19eb7defa 6047 {
AzureIoTClient 28:add19eb7defa 6048 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 6049 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6050 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6051 {
AzureIoTClient 28:add19eb7defa 6052 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6053 }
AzureIoTClient 28:add19eb7defa 6054 else
AzureIoTClient 28:add19eb7defa 6055 {
AzureIoTClient 43:4c1e4e94cdd3 6056 int get_single_value_result = amqpvalue_get_transfer_number(item_value, next_outgoing_id_value);
AzureIoTClient 43:4c1e4e94cdd3 6057 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6058 {
AzureIoTClient 28:add19eb7defa 6059 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6060 }
AzureIoTClient 28:add19eb7defa 6061 else
AzureIoTClient 28:add19eb7defa 6062 {
AzureIoTClient 28:add19eb7defa 6063 result = 0;
AzureIoTClient 28:add19eb7defa 6064 }
AzureIoTClient 28:add19eb7defa 6065 }
AzureIoTClient 28:add19eb7defa 6066 }
AzureIoTClient 28:add19eb7defa 6067 }
AzureIoTClient 28:add19eb7defa 6068 }
AzureIoTClient 28:add19eb7defa 6069
AzureIoTClient 28:add19eb7defa 6070 return result;
Azure.IoT Build 0:6ae2f7bca550 6071 }
Azure.IoT Build 0:6ae2f7bca550 6072
Azure.IoT Build 0:6ae2f7bca550 6073 int flow_set_next_outgoing_id(FLOW_HANDLE flow, transfer_number next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 6074 {
AzureIoTClient 28:add19eb7defa 6075 int result;
AzureIoTClient 28:add19eb7defa 6076
AzureIoTClient 28:add19eb7defa 6077 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6078 {
AzureIoTClient 28:add19eb7defa 6079 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6080 }
AzureIoTClient 28:add19eb7defa 6081 else
AzureIoTClient 28:add19eb7defa 6082 {
AzureIoTClient 28:add19eb7defa 6083 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6084 AMQP_VALUE next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 6085 if (next_outgoing_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6086 {
AzureIoTClient 28:add19eb7defa 6087 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6088 }
AzureIoTClient 28:add19eb7defa 6089 else
AzureIoTClient 28:add19eb7defa 6090 {
AzureIoTClient 28:add19eb7defa 6091 if (amqpvalue_set_composite_item(flow_instance->composite_value, 2, next_outgoing_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6092 {
AzureIoTClient 28:add19eb7defa 6093 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6094 }
AzureIoTClient 28:add19eb7defa 6095 else
AzureIoTClient 28:add19eb7defa 6096 {
AzureIoTClient 28:add19eb7defa 6097 result = 0;
AzureIoTClient 28:add19eb7defa 6098 }
AzureIoTClient 28:add19eb7defa 6099
AzureIoTClient 28:add19eb7defa 6100 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 6101 }
AzureIoTClient 28:add19eb7defa 6102 }
AzureIoTClient 28:add19eb7defa 6103
AzureIoTClient 28:add19eb7defa 6104 return result;
Azure.IoT Build 0:6ae2f7bca550 6105 }
Azure.IoT Build 0:6ae2f7bca550 6106
Azure.IoT Build 0:6ae2f7bca550 6107 int flow_get_outgoing_window(FLOW_HANDLE flow, uint32_t* outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 6108 {
AzureIoTClient 28:add19eb7defa 6109 int result;
AzureIoTClient 28:add19eb7defa 6110
AzureIoTClient 28:add19eb7defa 6111 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6112 {
AzureIoTClient 28:add19eb7defa 6113 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6114 }
AzureIoTClient 28:add19eb7defa 6115 else
AzureIoTClient 28:add19eb7defa 6116 {
AzureIoTClient 28:add19eb7defa 6117 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6118 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6119 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6120 {
AzureIoTClient 23:1111ee8bcba4 6121 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6122 }
AzureIoTClient 23:1111ee8bcba4 6123 else
AzureIoTClient 23:1111ee8bcba4 6124 {
AzureIoTClient 23:1111ee8bcba4 6125 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 6126 {
AzureIoTClient 28:add19eb7defa 6127 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6128 }
AzureIoTClient 28:add19eb7defa 6129 else
AzureIoTClient 28:add19eb7defa 6130 {
AzureIoTClient 28:add19eb7defa 6131 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 6132 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6133 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6134 {
AzureIoTClient 28:add19eb7defa 6135 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6136 }
AzureIoTClient 28:add19eb7defa 6137 else
AzureIoTClient 28:add19eb7defa 6138 {
AzureIoTClient 43:4c1e4e94cdd3 6139 int get_single_value_result = amqpvalue_get_uint(item_value, outgoing_window_value);
AzureIoTClient 43:4c1e4e94cdd3 6140 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6141 {
AzureIoTClient 28:add19eb7defa 6142 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6143 }
AzureIoTClient 28:add19eb7defa 6144 else
AzureIoTClient 28:add19eb7defa 6145 {
AzureIoTClient 28:add19eb7defa 6146 result = 0;
AzureIoTClient 28:add19eb7defa 6147 }
AzureIoTClient 28:add19eb7defa 6148 }
AzureIoTClient 28:add19eb7defa 6149 }
AzureIoTClient 28:add19eb7defa 6150 }
AzureIoTClient 28:add19eb7defa 6151 }
AzureIoTClient 28:add19eb7defa 6152
AzureIoTClient 28:add19eb7defa 6153 return result;
Azure.IoT Build 0:6ae2f7bca550 6154 }
Azure.IoT Build 0:6ae2f7bca550 6155
Azure.IoT Build 0:6ae2f7bca550 6156 int flow_set_outgoing_window(FLOW_HANDLE flow, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 6157 {
AzureIoTClient 28:add19eb7defa 6158 int result;
AzureIoTClient 28:add19eb7defa 6159
AzureIoTClient 28:add19eb7defa 6160 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6161 {
AzureIoTClient 28:add19eb7defa 6162 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6163 }
AzureIoTClient 28:add19eb7defa 6164 else
AzureIoTClient 28:add19eb7defa 6165 {
AzureIoTClient 28:add19eb7defa 6166 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6167 AMQP_VALUE outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 6168 if (outgoing_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6169 {
AzureIoTClient 28:add19eb7defa 6170 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6171 }
AzureIoTClient 28:add19eb7defa 6172 else
AzureIoTClient 28:add19eb7defa 6173 {
AzureIoTClient 28:add19eb7defa 6174 if (amqpvalue_set_composite_item(flow_instance->composite_value, 3, outgoing_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6175 {
AzureIoTClient 28:add19eb7defa 6176 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6177 }
AzureIoTClient 28:add19eb7defa 6178 else
AzureIoTClient 28:add19eb7defa 6179 {
AzureIoTClient 28:add19eb7defa 6180 result = 0;
AzureIoTClient 28:add19eb7defa 6181 }
AzureIoTClient 28:add19eb7defa 6182
AzureIoTClient 28:add19eb7defa 6183 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 6184 }
AzureIoTClient 28:add19eb7defa 6185 }
AzureIoTClient 28:add19eb7defa 6186
AzureIoTClient 28:add19eb7defa 6187 return result;
Azure.IoT Build 0:6ae2f7bca550 6188 }
Azure.IoT Build 0:6ae2f7bca550 6189
Azure.IoT Build 0:6ae2f7bca550 6190 int flow_get_handle(FLOW_HANDLE flow, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 6191 {
AzureIoTClient 28:add19eb7defa 6192 int result;
AzureIoTClient 28:add19eb7defa 6193
AzureIoTClient 28:add19eb7defa 6194 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6195 {
AzureIoTClient 28:add19eb7defa 6196 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6197 }
AzureIoTClient 28:add19eb7defa 6198 else
AzureIoTClient 28:add19eb7defa 6199 {
AzureIoTClient 28:add19eb7defa 6200 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6201 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6202 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6203 {
AzureIoTClient 23:1111ee8bcba4 6204 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6205 }
AzureIoTClient 23:1111ee8bcba4 6206 else
AzureIoTClient 23:1111ee8bcba4 6207 {
AzureIoTClient 23:1111ee8bcba4 6208 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 6209 {
AzureIoTClient 28:add19eb7defa 6210 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6211 }
AzureIoTClient 28:add19eb7defa 6212 else
AzureIoTClient 28:add19eb7defa 6213 {
AzureIoTClient 28:add19eb7defa 6214 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 6215 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6216 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6217 {
AzureIoTClient 28:add19eb7defa 6218 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6219 }
AzureIoTClient 28:add19eb7defa 6220 else
AzureIoTClient 28:add19eb7defa 6221 {
AzureIoTClient 43:4c1e4e94cdd3 6222 int get_single_value_result = amqpvalue_get_handle(item_value, handle_value);
AzureIoTClient 43:4c1e4e94cdd3 6223 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6224 {
AzureIoTClient 28:add19eb7defa 6225 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6226 }
AzureIoTClient 28:add19eb7defa 6227 else
AzureIoTClient 28:add19eb7defa 6228 {
AzureIoTClient 28:add19eb7defa 6229 result = 0;
AzureIoTClient 28:add19eb7defa 6230 }
AzureIoTClient 28:add19eb7defa 6231 }
AzureIoTClient 28:add19eb7defa 6232 }
AzureIoTClient 28:add19eb7defa 6233 }
AzureIoTClient 28:add19eb7defa 6234 }
AzureIoTClient 28:add19eb7defa 6235
AzureIoTClient 28:add19eb7defa 6236 return result;
Azure.IoT Build 0:6ae2f7bca550 6237 }
Azure.IoT Build 0:6ae2f7bca550 6238
Azure.IoT Build 0:6ae2f7bca550 6239 int flow_set_handle(FLOW_HANDLE flow, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 6240 {
AzureIoTClient 28:add19eb7defa 6241 int result;
AzureIoTClient 28:add19eb7defa 6242
AzureIoTClient 28:add19eb7defa 6243 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6244 {
AzureIoTClient 28:add19eb7defa 6245 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6246 }
AzureIoTClient 28:add19eb7defa 6247 else
AzureIoTClient 28:add19eb7defa 6248 {
AzureIoTClient 28:add19eb7defa 6249 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6250 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 6251 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6252 {
AzureIoTClient 28:add19eb7defa 6253 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6254 }
AzureIoTClient 28:add19eb7defa 6255 else
AzureIoTClient 28:add19eb7defa 6256 {
AzureIoTClient 28:add19eb7defa 6257 if (amqpvalue_set_composite_item(flow_instance->composite_value, 4, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6258 {
AzureIoTClient 28:add19eb7defa 6259 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6260 }
AzureIoTClient 28:add19eb7defa 6261 else
AzureIoTClient 28:add19eb7defa 6262 {
AzureIoTClient 28:add19eb7defa 6263 result = 0;
AzureIoTClient 28:add19eb7defa 6264 }
AzureIoTClient 28:add19eb7defa 6265
AzureIoTClient 28:add19eb7defa 6266 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 6267 }
AzureIoTClient 28:add19eb7defa 6268 }
AzureIoTClient 28:add19eb7defa 6269
AzureIoTClient 28:add19eb7defa 6270 return result;
Azure.IoT Build 0:6ae2f7bca550 6271 }
Azure.IoT Build 0:6ae2f7bca550 6272
Azure.IoT Build 0:6ae2f7bca550 6273 int flow_get_delivery_count(FLOW_HANDLE flow, sequence_no* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 6274 {
AzureIoTClient 28:add19eb7defa 6275 int result;
AzureIoTClient 28:add19eb7defa 6276
AzureIoTClient 28:add19eb7defa 6277 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6278 {
AzureIoTClient 28:add19eb7defa 6279 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6280 }
AzureIoTClient 28:add19eb7defa 6281 else
AzureIoTClient 28:add19eb7defa 6282 {
AzureIoTClient 28:add19eb7defa 6283 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6284 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6285 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6286 {
AzureIoTClient 23:1111ee8bcba4 6287 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6288 }
AzureIoTClient 23:1111ee8bcba4 6289 else
AzureIoTClient 23:1111ee8bcba4 6290 {
AzureIoTClient 23:1111ee8bcba4 6291 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 6292 {
AzureIoTClient 28:add19eb7defa 6293 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6294 }
AzureIoTClient 28:add19eb7defa 6295 else
AzureIoTClient 28:add19eb7defa 6296 {
AzureIoTClient 28:add19eb7defa 6297 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 6298 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6299 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6300 {
AzureIoTClient 28:add19eb7defa 6301 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6302 }
AzureIoTClient 28:add19eb7defa 6303 else
AzureIoTClient 28:add19eb7defa 6304 {
AzureIoTClient 43:4c1e4e94cdd3 6305 int get_single_value_result = amqpvalue_get_sequence_no(item_value, delivery_count_value);
AzureIoTClient 43:4c1e4e94cdd3 6306 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6307 {
AzureIoTClient 28:add19eb7defa 6308 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6309 }
AzureIoTClient 28:add19eb7defa 6310 else
AzureIoTClient 28:add19eb7defa 6311 {
AzureIoTClient 28:add19eb7defa 6312 result = 0;
AzureIoTClient 28:add19eb7defa 6313 }
AzureIoTClient 28:add19eb7defa 6314 }
AzureIoTClient 28:add19eb7defa 6315 }
AzureIoTClient 28:add19eb7defa 6316 }
AzureIoTClient 28:add19eb7defa 6317 }
AzureIoTClient 28:add19eb7defa 6318
AzureIoTClient 28:add19eb7defa 6319 return result;
Azure.IoT Build 0:6ae2f7bca550 6320 }
Azure.IoT Build 0:6ae2f7bca550 6321
Azure.IoT Build 0:6ae2f7bca550 6322 int flow_set_delivery_count(FLOW_HANDLE flow, sequence_no delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 6323 {
AzureIoTClient 28:add19eb7defa 6324 int result;
AzureIoTClient 28:add19eb7defa 6325
AzureIoTClient 28:add19eb7defa 6326 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6327 {
AzureIoTClient 28:add19eb7defa 6328 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6329 }
AzureIoTClient 28:add19eb7defa 6330 else
AzureIoTClient 28:add19eb7defa 6331 {
AzureIoTClient 28:add19eb7defa 6332 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6333 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_sequence_no(delivery_count_value);
AzureIoTClient 28:add19eb7defa 6334 if (delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6335 {
AzureIoTClient 28:add19eb7defa 6336 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6337 }
AzureIoTClient 28:add19eb7defa 6338 else
AzureIoTClient 28:add19eb7defa 6339 {
AzureIoTClient 28:add19eb7defa 6340 if (amqpvalue_set_composite_item(flow_instance->composite_value, 5, delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6341 {
AzureIoTClient 28:add19eb7defa 6342 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6343 }
AzureIoTClient 28:add19eb7defa 6344 else
AzureIoTClient 28:add19eb7defa 6345 {
AzureIoTClient 28:add19eb7defa 6346 result = 0;
AzureIoTClient 28:add19eb7defa 6347 }
AzureIoTClient 28:add19eb7defa 6348
AzureIoTClient 28:add19eb7defa 6349 amqpvalue_destroy(delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 6350 }
AzureIoTClient 28:add19eb7defa 6351 }
AzureIoTClient 28:add19eb7defa 6352
AzureIoTClient 28:add19eb7defa 6353 return result;
Azure.IoT Build 0:6ae2f7bca550 6354 }
Azure.IoT Build 0:6ae2f7bca550 6355
Azure.IoT Build 0:6ae2f7bca550 6356 int flow_get_link_credit(FLOW_HANDLE flow, uint32_t* link_credit_value)
Azure.IoT Build 0:6ae2f7bca550 6357 {
AzureIoTClient 28:add19eb7defa 6358 int result;
AzureIoTClient 28:add19eb7defa 6359
AzureIoTClient 28:add19eb7defa 6360 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6361 {
AzureIoTClient 28:add19eb7defa 6362 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6363 }
AzureIoTClient 28:add19eb7defa 6364 else
AzureIoTClient 28:add19eb7defa 6365 {
AzureIoTClient 28:add19eb7defa 6366 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6367 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6368 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6369 {
AzureIoTClient 23:1111ee8bcba4 6370 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6371 }
AzureIoTClient 23:1111ee8bcba4 6372 else
AzureIoTClient 23:1111ee8bcba4 6373 {
AzureIoTClient 23:1111ee8bcba4 6374 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 6375 {
AzureIoTClient 28:add19eb7defa 6376 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6377 }
AzureIoTClient 28:add19eb7defa 6378 else
AzureIoTClient 28:add19eb7defa 6379 {
AzureIoTClient 28:add19eb7defa 6380 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 6381 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6382 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6383 {
AzureIoTClient 28:add19eb7defa 6384 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6385 }
AzureIoTClient 28:add19eb7defa 6386 else
AzureIoTClient 28:add19eb7defa 6387 {
AzureIoTClient 43:4c1e4e94cdd3 6388 int get_single_value_result = amqpvalue_get_uint(item_value, link_credit_value);
AzureIoTClient 43:4c1e4e94cdd3 6389 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6390 {
AzureIoTClient 28:add19eb7defa 6391 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6392 }
AzureIoTClient 28:add19eb7defa 6393 else
AzureIoTClient 28:add19eb7defa 6394 {
AzureIoTClient 28:add19eb7defa 6395 result = 0;
AzureIoTClient 28:add19eb7defa 6396 }
AzureIoTClient 28:add19eb7defa 6397 }
AzureIoTClient 28:add19eb7defa 6398 }
AzureIoTClient 28:add19eb7defa 6399 }
AzureIoTClient 28:add19eb7defa 6400 }
AzureIoTClient 28:add19eb7defa 6401
AzureIoTClient 28:add19eb7defa 6402 return result;
Azure.IoT Build 0:6ae2f7bca550 6403 }
Azure.IoT Build 0:6ae2f7bca550 6404
Azure.IoT Build 0:6ae2f7bca550 6405 int flow_set_link_credit(FLOW_HANDLE flow, uint32_t link_credit_value)
Azure.IoT Build 0:6ae2f7bca550 6406 {
AzureIoTClient 28:add19eb7defa 6407 int result;
AzureIoTClient 28:add19eb7defa 6408
AzureIoTClient 28:add19eb7defa 6409 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6410 {
AzureIoTClient 28:add19eb7defa 6411 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6412 }
AzureIoTClient 28:add19eb7defa 6413 else
AzureIoTClient 28:add19eb7defa 6414 {
AzureIoTClient 28:add19eb7defa 6415 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6416 AMQP_VALUE link_credit_amqp_value = amqpvalue_create_uint(link_credit_value);
AzureIoTClient 28:add19eb7defa 6417 if (link_credit_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6418 {
AzureIoTClient 28:add19eb7defa 6419 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6420 }
AzureIoTClient 28:add19eb7defa 6421 else
AzureIoTClient 28:add19eb7defa 6422 {
AzureIoTClient 28:add19eb7defa 6423 if (amqpvalue_set_composite_item(flow_instance->composite_value, 6, link_credit_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6424 {
AzureIoTClient 28:add19eb7defa 6425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6426 }
AzureIoTClient 28:add19eb7defa 6427 else
AzureIoTClient 28:add19eb7defa 6428 {
AzureIoTClient 28:add19eb7defa 6429 result = 0;
AzureIoTClient 28:add19eb7defa 6430 }
AzureIoTClient 28:add19eb7defa 6431
AzureIoTClient 28:add19eb7defa 6432 amqpvalue_destroy(link_credit_amqp_value);
AzureIoTClient 28:add19eb7defa 6433 }
AzureIoTClient 28:add19eb7defa 6434 }
AzureIoTClient 28:add19eb7defa 6435
AzureIoTClient 28:add19eb7defa 6436 return result;
Azure.IoT Build 0:6ae2f7bca550 6437 }
Azure.IoT Build 0:6ae2f7bca550 6438
Azure.IoT Build 0:6ae2f7bca550 6439 int flow_get_available(FLOW_HANDLE flow, uint32_t* available_value)
Azure.IoT Build 0:6ae2f7bca550 6440 {
AzureIoTClient 28:add19eb7defa 6441 int result;
AzureIoTClient 28:add19eb7defa 6442
AzureIoTClient 28:add19eb7defa 6443 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6444 {
AzureIoTClient 28:add19eb7defa 6445 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6446 }
AzureIoTClient 28:add19eb7defa 6447 else
AzureIoTClient 28:add19eb7defa 6448 {
AzureIoTClient 28:add19eb7defa 6449 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6450 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6451 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6452 {
AzureIoTClient 23:1111ee8bcba4 6453 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6454 }
AzureIoTClient 23:1111ee8bcba4 6455 else
AzureIoTClient 23:1111ee8bcba4 6456 {
AzureIoTClient 23:1111ee8bcba4 6457 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 6458 {
AzureIoTClient 28:add19eb7defa 6459 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6460 }
AzureIoTClient 28:add19eb7defa 6461 else
AzureIoTClient 28:add19eb7defa 6462 {
AzureIoTClient 28:add19eb7defa 6463 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 6464 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6465 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6466 {
AzureIoTClient 28:add19eb7defa 6467 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6468 }
AzureIoTClient 28:add19eb7defa 6469 else
AzureIoTClient 28:add19eb7defa 6470 {
AzureIoTClient 43:4c1e4e94cdd3 6471 int get_single_value_result = amqpvalue_get_uint(item_value, available_value);
AzureIoTClient 43:4c1e4e94cdd3 6472 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6473 {
AzureIoTClient 28:add19eb7defa 6474 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6475 }
AzureIoTClient 28:add19eb7defa 6476 else
AzureIoTClient 28:add19eb7defa 6477 {
AzureIoTClient 28:add19eb7defa 6478 result = 0;
AzureIoTClient 28:add19eb7defa 6479 }
AzureIoTClient 28:add19eb7defa 6480 }
AzureIoTClient 28:add19eb7defa 6481 }
AzureIoTClient 28:add19eb7defa 6482 }
AzureIoTClient 28:add19eb7defa 6483 }
AzureIoTClient 28:add19eb7defa 6484
AzureIoTClient 28:add19eb7defa 6485 return result;
Azure.IoT Build 0:6ae2f7bca550 6486 }
Azure.IoT Build 0:6ae2f7bca550 6487
Azure.IoT Build 0:6ae2f7bca550 6488 int flow_set_available(FLOW_HANDLE flow, uint32_t available_value)
Azure.IoT Build 0:6ae2f7bca550 6489 {
AzureIoTClient 28:add19eb7defa 6490 int result;
AzureIoTClient 28:add19eb7defa 6491
AzureIoTClient 28:add19eb7defa 6492 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6493 {
AzureIoTClient 28:add19eb7defa 6494 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6495 }
AzureIoTClient 28:add19eb7defa 6496 else
AzureIoTClient 28:add19eb7defa 6497 {
AzureIoTClient 28:add19eb7defa 6498 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6499 AMQP_VALUE available_amqp_value = amqpvalue_create_uint(available_value);
AzureIoTClient 28:add19eb7defa 6500 if (available_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6501 {
AzureIoTClient 28:add19eb7defa 6502 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6503 }
AzureIoTClient 28:add19eb7defa 6504 else
AzureIoTClient 28:add19eb7defa 6505 {
AzureIoTClient 28:add19eb7defa 6506 if (amqpvalue_set_composite_item(flow_instance->composite_value, 7, available_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6507 {
AzureIoTClient 28:add19eb7defa 6508 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6509 }
AzureIoTClient 28:add19eb7defa 6510 else
AzureIoTClient 28:add19eb7defa 6511 {
AzureIoTClient 28:add19eb7defa 6512 result = 0;
AzureIoTClient 28:add19eb7defa 6513 }
AzureIoTClient 28:add19eb7defa 6514
AzureIoTClient 28:add19eb7defa 6515 amqpvalue_destroy(available_amqp_value);
AzureIoTClient 28:add19eb7defa 6516 }
AzureIoTClient 28:add19eb7defa 6517 }
AzureIoTClient 28:add19eb7defa 6518
AzureIoTClient 28:add19eb7defa 6519 return result;
Azure.IoT Build 0:6ae2f7bca550 6520 }
Azure.IoT Build 0:6ae2f7bca550 6521
Azure.IoT Build 0:6ae2f7bca550 6522 int flow_get_drain(FLOW_HANDLE flow, bool* drain_value)
Azure.IoT Build 0:6ae2f7bca550 6523 {
AzureIoTClient 28:add19eb7defa 6524 int result;
AzureIoTClient 28:add19eb7defa 6525
AzureIoTClient 28:add19eb7defa 6526 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6527 {
AzureIoTClient 28:add19eb7defa 6528 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6529 }
AzureIoTClient 28:add19eb7defa 6530 else
AzureIoTClient 28:add19eb7defa 6531 {
AzureIoTClient 28:add19eb7defa 6532 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6533 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6534 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6535 {
AzureIoTClient 23:1111ee8bcba4 6536 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6537 }
AzureIoTClient 23:1111ee8bcba4 6538 else
AzureIoTClient 23:1111ee8bcba4 6539 {
AzureIoTClient 23:1111ee8bcba4 6540 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 6541 {
AzureIoTClient 28:add19eb7defa 6542 *drain_value = false;
AzureIoTClient 28:add19eb7defa 6543 result = 0;
AzureIoTClient 28:add19eb7defa 6544 }
AzureIoTClient 28:add19eb7defa 6545 else
AzureIoTClient 28:add19eb7defa 6546 {
AzureIoTClient 28:add19eb7defa 6547 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 6548 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6549 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6550 {
AzureIoTClient 28:add19eb7defa 6551 *drain_value = false;
AzureIoTClient 28:add19eb7defa 6552 result = 0;
AzureIoTClient 28:add19eb7defa 6553 }
AzureIoTClient 28:add19eb7defa 6554 else
AzureIoTClient 28:add19eb7defa 6555 {
AzureIoTClient 43:4c1e4e94cdd3 6556 int get_single_value_result = amqpvalue_get_boolean(item_value, drain_value);
AzureIoTClient 43:4c1e4e94cdd3 6557 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6558 {
AzureIoTClient 23:1111ee8bcba4 6559 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 6560 {
AzureIoTClient 28:add19eb7defa 6561 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6562 }
AzureIoTClient 28:add19eb7defa 6563 else
AzureIoTClient 28:add19eb7defa 6564 {
AzureIoTClient 28:add19eb7defa 6565 *drain_value = false;
AzureIoTClient 23:1111ee8bcba4 6566 result = 0;
AzureIoTClient 23:1111ee8bcba4 6567 }
AzureIoTClient 28:add19eb7defa 6568 }
AzureIoTClient 28:add19eb7defa 6569 else
AzureIoTClient 28:add19eb7defa 6570 {
AzureIoTClient 28:add19eb7defa 6571 result = 0;
AzureIoTClient 28:add19eb7defa 6572 }
AzureIoTClient 28:add19eb7defa 6573 }
AzureIoTClient 28:add19eb7defa 6574 }
AzureIoTClient 28:add19eb7defa 6575 }
AzureIoTClient 28:add19eb7defa 6576 }
AzureIoTClient 28:add19eb7defa 6577
AzureIoTClient 28:add19eb7defa 6578 return result;
Azure.IoT Build 0:6ae2f7bca550 6579 }
Azure.IoT Build 0:6ae2f7bca550 6580
Azure.IoT Build 0:6ae2f7bca550 6581 int flow_set_drain(FLOW_HANDLE flow, bool drain_value)
Azure.IoT Build 0:6ae2f7bca550 6582 {
AzureIoTClient 28:add19eb7defa 6583 int result;
AzureIoTClient 28:add19eb7defa 6584
AzureIoTClient 28:add19eb7defa 6585 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6586 {
AzureIoTClient 28:add19eb7defa 6587 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6588 }
AzureIoTClient 28:add19eb7defa 6589 else
AzureIoTClient 28:add19eb7defa 6590 {
AzureIoTClient 28:add19eb7defa 6591 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6592 AMQP_VALUE drain_amqp_value = amqpvalue_create_boolean(drain_value);
AzureIoTClient 28:add19eb7defa 6593 if (drain_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6594 {
AzureIoTClient 28:add19eb7defa 6595 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6596 }
AzureIoTClient 28:add19eb7defa 6597 else
AzureIoTClient 28:add19eb7defa 6598 {
AzureIoTClient 28:add19eb7defa 6599 if (amqpvalue_set_composite_item(flow_instance->composite_value, 8, drain_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6600 {
AzureIoTClient 28:add19eb7defa 6601 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6602 }
AzureIoTClient 28:add19eb7defa 6603 else
AzureIoTClient 28:add19eb7defa 6604 {
AzureIoTClient 28:add19eb7defa 6605 result = 0;
AzureIoTClient 28:add19eb7defa 6606 }
AzureIoTClient 28:add19eb7defa 6607
AzureIoTClient 28:add19eb7defa 6608 amqpvalue_destroy(drain_amqp_value);
AzureIoTClient 28:add19eb7defa 6609 }
AzureIoTClient 28:add19eb7defa 6610 }
AzureIoTClient 28:add19eb7defa 6611
AzureIoTClient 28:add19eb7defa 6612 return result;
Azure.IoT Build 0:6ae2f7bca550 6613 }
Azure.IoT Build 0:6ae2f7bca550 6614
Azure.IoT Build 0:6ae2f7bca550 6615 int flow_get_echo(FLOW_HANDLE flow, bool* echo_value)
Azure.IoT Build 0:6ae2f7bca550 6616 {
AzureIoTClient 28:add19eb7defa 6617 int result;
AzureIoTClient 28:add19eb7defa 6618
AzureIoTClient 28:add19eb7defa 6619 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6620 {
AzureIoTClient 28:add19eb7defa 6621 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6622 }
AzureIoTClient 28:add19eb7defa 6623 else
AzureIoTClient 28:add19eb7defa 6624 {
AzureIoTClient 28:add19eb7defa 6625 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6626 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6627 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6628 {
AzureIoTClient 23:1111ee8bcba4 6629 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6630 }
AzureIoTClient 23:1111ee8bcba4 6631 else
AzureIoTClient 23:1111ee8bcba4 6632 {
AzureIoTClient 23:1111ee8bcba4 6633 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 6634 {
AzureIoTClient 28:add19eb7defa 6635 *echo_value = false;
AzureIoTClient 28:add19eb7defa 6636 result = 0;
AzureIoTClient 28:add19eb7defa 6637 }
AzureIoTClient 28:add19eb7defa 6638 else
AzureIoTClient 28:add19eb7defa 6639 {
AzureIoTClient 28:add19eb7defa 6640 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 6641 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6642 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6643 {
AzureIoTClient 28:add19eb7defa 6644 *echo_value = false;
AzureIoTClient 28:add19eb7defa 6645 result = 0;
AzureIoTClient 28:add19eb7defa 6646 }
AzureIoTClient 28:add19eb7defa 6647 else
AzureIoTClient 28:add19eb7defa 6648 {
AzureIoTClient 43:4c1e4e94cdd3 6649 int get_single_value_result = amqpvalue_get_boolean(item_value, echo_value);
AzureIoTClient 43:4c1e4e94cdd3 6650 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6651 {
AzureIoTClient 23:1111ee8bcba4 6652 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 6653 {
AzureIoTClient 28:add19eb7defa 6654 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6655 }
AzureIoTClient 28:add19eb7defa 6656 else
AzureIoTClient 28:add19eb7defa 6657 {
AzureIoTClient 28:add19eb7defa 6658 *echo_value = false;
AzureIoTClient 23:1111ee8bcba4 6659 result = 0;
AzureIoTClient 23:1111ee8bcba4 6660 }
AzureIoTClient 28:add19eb7defa 6661 }
AzureIoTClient 28:add19eb7defa 6662 else
AzureIoTClient 28:add19eb7defa 6663 {
AzureIoTClient 28:add19eb7defa 6664 result = 0;
AzureIoTClient 28:add19eb7defa 6665 }
AzureIoTClient 28:add19eb7defa 6666 }
AzureIoTClient 28:add19eb7defa 6667 }
AzureIoTClient 28:add19eb7defa 6668 }
AzureIoTClient 28:add19eb7defa 6669 }
AzureIoTClient 28:add19eb7defa 6670
AzureIoTClient 28:add19eb7defa 6671 return result;
Azure.IoT Build 0:6ae2f7bca550 6672 }
Azure.IoT Build 0:6ae2f7bca550 6673
Azure.IoT Build 0:6ae2f7bca550 6674 int flow_set_echo(FLOW_HANDLE flow, bool echo_value)
Azure.IoT Build 0:6ae2f7bca550 6675 {
AzureIoTClient 28:add19eb7defa 6676 int result;
AzureIoTClient 28:add19eb7defa 6677
AzureIoTClient 28:add19eb7defa 6678 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6679 {
AzureIoTClient 28:add19eb7defa 6680 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6681 }
AzureIoTClient 28:add19eb7defa 6682 else
AzureIoTClient 28:add19eb7defa 6683 {
AzureIoTClient 28:add19eb7defa 6684 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6685 AMQP_VALUE echo_amqp_value = amqpvalue_create_boolean(echo_value);
AzureIoTClient 28:add19eb7defa 6686 if (echo_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6687 {
AzureIoTClient 28:add19eb7defa 6688 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6689 }
AzureIoTClient 28:add19eb7defa 6690 else
AzureIoTClient 28:add19eb7defa 6691 {
AzureIoTClient 28:add19eb7defa 6692 if (amqpvalue_set_composite_item(flow_instance->composite_value, 9, echo_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6693 {
AzureIoTClient 28:add19eb7defa 6694 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6695 }
AzureIoTClient 28:add19eb7defa 6696 else
AzureIoTClient 28:add19eb7defa 6697 {
AzureIoTClient 28:add19eb7defa 6698 result = 0;
AzureIoTClient 28:add19eb7defa 6699 }
AzureIoTClient 28:add19eb7defa 6700
AzureIoTClient 28:add19eb7defa 6701 amqpvalue_destroy(echo_amqp_value);
AzureIoTClient 28:add19eb7defa 6702 }
AzureIoTClient 28:add19eb7defa 6703 }
AzureIoTClient 28:add19eb7defa 6704
AzureIoTClient 28:add19eb7defa 6705 return result;
Azure.IoT Build 0:6ae2f7bca550 6706 }
Azure.IoT Build 0:6ae2f7bca550 6707
Azure.IoT Build 0:6ae2f7bca550 6708 int flow_get_properties(FLOW_HANDLE flow, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 6709 {
AzureIoTClient 28:add19eb7defa 6710 int result;
AzureIoTClient 28:add19eb7defa 6711
AzureIoTClient 28:add19eb7defa 6712 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6713 {
AzureIoTClient 28:add19eb7defa 6714 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6715 }
AzureIoTClient 28:add19eb7defa 6716 else
AzureIoTClient 28:add19eb7defa 6717 {
AzureIoTClient 28:add19eb7defa 6718 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6719 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6720 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6721 {
AzureIoTClient 23:1111ee8bcba4 6722 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6723 }
AzureIoTClient 23:1111ee8bcba4 6724 else
AzureIoTClient 23:1111ee8bcba4 6725 {
AzureIoTClient 23:1111ee8bcba4 6726 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 6727 {
AzureIoTClient 28:add19eb7defa 6728 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6729 }
AzureIoTClient 28:add19eb7defa 6730 else
AzureIoTClient 28:add19eb7defa 6731 {
AzureIoTClient 28:add19eb7defa 6732 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 6733 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6734 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6735 {
AzureIoTClient 28:add19eb7defa 6736 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6737 }
AzureIoTClient 28:add19eb7defa 6738 else
AzureIoTClient 28:add19eb7defa 6739 {
AzureIoTClient 43:4c1e4e94cdd3 6740 int get_single_value_result = amqpvalue_get_fields(item_value, properties_value);
AzureIoTClient 43:4c1e4e94cdd3 6741 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 6742 {
AzureIoTClient 28:add19eb7defa 6743 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6744 }
AzureIoTClient 28:add19eb7defa 6745 else
AzureIoTClient 28:add19eb7defa 6746 {
AzureIoTClient 28:add19eb7defa 6747 result = 0;
AzureIoTClient 28:add19eb7defa 6748 }
AzureIoTClient 28:add19eb7defa 6749 }
AzureIoTClient 28:add19eb7defa 6750 }
AzureIoTClient 28:add19eb7defa 6751 }
AzureIoTClient 28:add19eb7defa 6752 }
AzureIoTClient 28:add19eb7defa 6753
AzureIoTClient 28:add19eb7defa 6754 return result;
Azure.IoT Build 0:6ae2f7bca550 6755 }
Azure.IoT Build 0:6ae2f7bca550 6756
Azure.IoT Build 0:6ae2f7bca550 6757 int flow_set_properties(FLOW_HANDLE flow, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 6758 {
AzureIoTClient 28:add19eb7defa 6759 int result;
AzureIoTClient 28:add19eb7defa 6760
AzureIoTClient 28:add19eb7defa 6761 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6762 {
AzureIoTClient 28:add19eb7defa 6763 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6764 }
AzureIoTClient 28:add19eb7defa 6765 else
AzureIoTClient 28:add19eb7defa 6766 {
AzureIoTClient 28:add19eb7defa 6767 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6768 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 6769 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6770 {
AzureIoTClient 28:add19eb7defa 6771 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6772 }
AzureIoTClient 28:add19eb7defa 6773 else
AzureIoTClient 28:add19eb7defa 6774 {
AzureIoTClient 28:add19eb7defa 6775 if (amqpvalue_set_composite_item(flow_instance->composite_value, 10, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6776 {
AzureIoTClient 28:add19eb7defa 6777 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6778 }
AzureIoTClient 28:add19eb7defa 6779 else
AzureIoTClient 28:add19eb7defa 6780 {
AzureIoTClient 28:add19eb7defa 6781 result = 0;
AzureIoTClient 28:add19eb7defa 6782 }
AzureIoTClient 28:add19eb7defa 6783
AzureIoTClient 28:add19eb7defa 6784 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 6785 }
AzureIoTClient 28:add19eb7defa 6786 }
AzureIoTClient 28:add19eb7defa 6787
AzureIoTClient 28:add19eb7defa 6788 return result;
Azure.IoT Build 0:6ae2f7bca550 6789 }
Azure.IoT Build 0:6ae2f7bca550 6790
Azure.IoT Build 0:6ae2f7bca550 6791
Azure.IoT Build 0:6ae2f7bca550 6792 /* transfer */
Azure.IoT Build 0:6ae2f7bca550 6793
Azure.IoT Build 0:6ae2f7bca550 6794 typedef struct TRANSFER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 6795 {
AzureIoTClient 28:add19eb7defa 6796 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 6797 } TRANSFER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 6798
Azure.IoT Build 0:6ae2f7bca550 6799 static TRANSFER_HANDLE transfer_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 6800 {
AzureIoTClient 28:add19eb7defa 6801 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6802 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6803 {
AzureIoTClient 28:add19eb7defa 6804 transfer_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 6805 }
AzureIoTClient 28:add19eb7defa 6806
AzureIoTClient 28:add19eb7defa 6807 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6808 }
Azure.IoT Build 0:6ae2f7bca550 6809
Azure.IoT Build 0:6ae2f7bca550 6810 TRANSFER_HANDLE transfer_create(handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 6811 {
AzureIoTClient 28:add19eb7defa 6812 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6813 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6814 {
AzureIoTClient 28:add19eb7defa 6815 transfer_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(20);
AzureIoTClient 28:add19eb7defa 6816 if (transfer_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 6817 {
AzureIoTClient 28:add19eb7defa 6818 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6819 transfer_instance = NULL;
AzureIoTClient 28:add19eb7defa 6820 }
AzureIoTClient 28:add19eb7defa 6821 else
AzureIoTClient 28:add19eb7defa 6822 {
AzureIoTClient 28:add19eb7defa 6823 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 6824 int result = 0;
AzureIoTClient 28:add19eb7defa 6825
AzureIoTClient 28:add19eb7defa 6826 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 6827 if ((result == 0) && (amqpvalue_set_composite_item(transfer_instance->composite_value, 0, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 6828 {
AzureIoTClient 28:add19eb7defa 6829 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6830 }
AzureIoTClient 28:add19eb7defa 6831
AzureIoTClient 28:add19eb7defa 6832 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 6833 }
AzureIoTClient 28:add19eb7defa 6834 }
AzureIoTClient 28:add19eb7defa 6835
AzureIoTClient 28:add19eb7defa 6836 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6837 }
Azure.IoT Build 0:6ae2f7bca550 6838
Azure.IoT Build 0:6ae2f7bca550 6839 TRANSFER_HANDLE transfer_clone(TRANSFER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 6840 {
AzureIoTClient 28:add19eb7defa 6841 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6842 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6843 {
AzureIoTClient 28:add19eb7defa 6844 transfer_instance->composite_value = amqpvalue_clone(((TRANSFER_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 6845 if (transfer_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 6846 {
AzureIoTClient 28:add19eb7defa 6847 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6848 transfer_instance = NULL;
AzureIoTClient 28:add19eb7defa 6849 }
AzureIoTClient 28:add19eb7defa 6850 }
AzureIoTClient 28:add19eb7defa 6851
AzureIoTClient 28:add19eb7defa 6852 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6853 }
Azure.IoT Build 0:6ae2f7bca550 6854
Azure.IoT Build 0:6ae2f7bca550 6855 void transfer_destroy(TRANSFER_HANDLE transfer)
Azure.IoT Build 0:6ae2f7bca550 6856 {
AzureIoTClient 28:add19eb7defa 6857 if (transfer != NULL)
AzureIoTClient 28:add19eb7defa 6858 {
AzureIoTClient 28:add19eb7defa 6859 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 6860 amqpvalue_destroy(transfer_instance->composite_value);
AzureIoTClient 28:add19eb7defa 6861 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6862 }
Azure.IoT Build 0:6ae2f7bca550 6863 }
Azure.IoT Build 0:6ae2f7bca550 6864
Azure.IoT Build 0:6ae2f7bca550 6865 AMQP_VALUE amqpvalue_create_transfer(TRANSFER_HANDLE transfer)
Azure.IoT Build 0:6ae2f7bca550 6866 {
AzureIoTClient 28:add19eb7defa 6867 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 6868
AzureIoTClient 28:add19eb7defa 6869 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 6870 {
AzureIoTClient 28:add19eb7defa 6871 result = NULL;
AzureIoTClient 28:add19eb7defa 6872 }
AzureIoTClient 28:add19eb7defa 6873 else
AzureIoTClient 28:add19eb7defa 6874 {
AzureIoTClient 28:add19eb7defa 6875 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 6876 result = amqpvalue_clone(transfer_instance->composite_value);
AzureIoTClient 28:add19eb7defa 6877 }
AzureIoTClient 28:add19eb7defa 6878
AzureIoTClient 28:add19eb7defa 6879 return result;
Azure.IoT Build 0:6ae2f7bca550 6880 }
Azure.IoT Build 0:6ae2f7bca550 6881
Azure.IoT Build 0:6ae2f7bca550 6882 bool is_transfer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 6883 {
AzureIoTClient 28:add19eb7defa 6884 bool result;
AzureIoTClient 28:add19eb7defa 6885
AzureIoTClient 28:add19eb7defa 6886 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 6887 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 6888 (descriptor_ulong == 20))
AzureIoTClient 28:add19eb7defa 6889 {
AzureIoTClient 28:add19eb7defa 6890 result = true;
AzureIoTClient 28:add19eb7defa 6891 }
AzureIoTClient 28:add19eb7defa 6892 else
AzureIoTClient 28:add19eb7defa 6893 {
AzureIoTClient 28:add19eb7defa 6894 result = false;
AzureIoTClient 28:add19eb7defa 6895 }
AzureIoTClient 28:add19eb7defa 6896
AzureIoTClient 28:add19eb7defa 6897 return result;
Azure.IoT Build 0:6ae2f7bca550 6898 }
Azure.IoT Build 0:6ae2f7bca550 6899
Azure.IoT Build 0:6ae2f7bca550 6900
Azure.IoT Build 0:6ae2f7bca550 6901 int amqpvalue_get_transfer(AMQP_VALUE value, TRANSFER_HANDLE* transfer_handle)
Azure.IoT Build 0:6ae2f7bca550 6902 {
AzureIoTClient 28:add19eb7defa 6903 int result;
AzureIoTClient 28:add19eb7defa 6904 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer_create_internal();
AzureIoTClient 28:add19eb7defa 6905 *transfer_handle = transfer_instance;
AzureIoTClient 28:add19eb7defa 6906 if (*transfer_handle == NULL)
AzureIoTClient 28:add19eb7defa 6907 {
AzureIoTClient 28:add19eb7defa 6908 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6909 }
AzureIoTClient 28:add19eb7defa 6910 else
AzureIoTClient 28:add19eb7defa 6911 {
AzureIoTClient 28:add19eb7defa 6912 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 6913 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 6914 {
AzureIoTClient 28:add19eb7defa 6915 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6916 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6917 }
AzureIoTClient 28:add19eb7defa 6918 else
AzureIoTClient 28:add19eb7defa 6919 {
AzureIoTClient 23:1111ee8bcba4 6920 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 6921 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6922 {
AzureIoTClient 23:1111ee8bcba4 6923 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6924 }
AzureIoTClient 23:1111ee8bcba4 6925 else
AzureIoTClient 23:1111ee8bcba4 6926 {
AzureIoTClient 28:add19eb7defa 6927 do
AzureIoTClient 28:add19eb7defa 6928 {
AzureIoTClient 28:add19eb7defa 6929 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 6930 /* handle */
AzureIoTClient 28:add19eb7defa 6931 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 6932 {
AzureIoTClient 23:1111ee8bcba4 6933 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 6934 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6935 {
AzureIoTClient 28:add19eb7defa 6936 {
AzureIoTClient 28:add19eb7defa 6937 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6938 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6939 break;
AzureIoTClient 28:add19eb7defa 6940 }
AzureIoTClient 28:add19eb7defa 6941 }
AzureIoTClient 28:add19eb7defa 6942 else
AzureIoTClient 28:add19eb7defa 6943 {
AzureIoTClient 28:add19eb7defa 6944 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6945 {
AzureIoTClient 28:add19eb7defa 6946 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6947 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6948 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6949 break;
AzureIoTClient 28:add19eb7defa 6950 }
AzureIoTClient 28:add19eb7defa 6951 else
AzureIoTClient 28:add19eb7defa 6952 {
AzureIoTClient 28:add19eb7defa 6953 handle handle;
AzureIoTClient 28:add19eb7defa 6954 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 6955 {
AzureIoTClient 28:add19eb7defa 6956 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6957 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6958 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6959 break;
AzureIoTClient 28:add19eb7defa 6960 }
AzureIoTClient 28:add19eb7defa 6961 }
AzureIoTClient 28:add19eb7defa 6962
AzureIoTClient 28:add19eb7defa 6963 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6964 }
AzureIoTClient 28:add19eb7defa 6965 }
AzureIoTClient 28:add19eb7defa 6966 else
AzureIoTClient 28:add19eb7defa 6967 {
AzureIoTClient 28:add19eb7defa 6968 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6969 }
AzureIoTClient 28:add19eb7defa 6970 /* delivery-id */
AzureIoTClient 28:add19eb7defa 6971 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 6972 {
AzureIoTClient 23:1111ee8bcba4 6973 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 6974 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6975 {
AzureIoTClient 28:add19eb7defa 6976 /* do nothing */
AzureIoTClient 28:add19eb7defa 6977 }
AzureIoTClient 28:add19eb7defa 6978 else
AzureIoTClient 28:add19eb7defa 6979 {
AzureIoTClient 28:add19eb7defa 6980 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6981 {
AzureIoTClient 28:add19eb7defa 6982 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 6983 }
AzureIoTClient 28:add19eb7defa 6984 else
AzureIoTClient 28:add19eb7defa 6985 {
AzureIoTClient 28:add19eb7defa 6986 delivery_number delivery_id;
AzureIoTClient 28:add19eb7defa 6987 if (amqpvalue_get_delivery_number(item_value, &delivery_id) != 0)
AzureIoTClient 28:add19eb7defa 6988 {
AzureIoTClient 28:add19eb7defa 6989 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6990 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6991 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6992 break;
AzureIoTClient 28:add19eb7defa 6993 }
AzureIoTClient 28:add19eb7defa 6994 }
AzureIoTClient 28:add19eb7defa 6995
AzureIoTClient 28:add19eb7defa 6996 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6997 }
AzureIoTClient 28:add19eb7defa 6998 }
AzureIoTClient 28:add19eb7defa 6999 /* delivery-tag */
AzureIoTClient 28:add19eb7defa 7000 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 7001 {
AzureIoTClient 23:1111ee8bcba4 7002 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 7003 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7004 {
AzureIoTClient 28:add19eb7defa 7005 /* do nothing */
AzureIoTClient 28:add19eb7defa 7006 }
AzureIoTClient 28:add19eb7defa 7007 else
AzureIoTClient 28:add19eb7defa 7008 {
AzureIoTClient 28:add19eb7defa 7009 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7010 {
AzureIoTClient 28:add19eb7defa 7011 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7012 }
AzureIoTClient 28:add19eb7defa 7013 else
AzureIoTClient 28:add19eb7defa 7014 {
AzureIoTClient 28:add19eb7defa 7015 delivery_tag delivery_tag;
AzureIoTClient 28:add19eb7defa 7016 if (amqpvalue_get_delivery_tag(item_value, &delivery_tag) != 0)
AzureIoTClient 28:add19eb7defa 7017 {
AzureIoTClient 28:add19eb7defa 7018 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7019 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7020 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7021 break;
AzureIoTClient 28:add19eb7defa 7022 }
AzureIoTClient 28:add19eb7defa 7023 }
AzureIoTClient 28:add19eb7defa 7024
AzureIoTClient 28:add19eb7defa 7025 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7026 }
AzureIoTClient 28:add19eb7defa 7027 }
AzureIoTClient 28:add19eb7defa 7028 /* message-format */
AzureIoTClient 28:add19eb7defa 7029 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 7030 {
AzureIoTClient 23:1111ee8bcba4 7031 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 7032 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7033 {
AzureIoTClient 28:add19eb7defa 7034 /* do nothing */
AzureIoTClient 28:add19eb7defa 7035 }
AzureIoTClient 28:add19eb7defa 7036 else
AzureIoTClient 28:add19eb7defa 7037 {
AzureIoTClient 28:add19eb7defa 7038 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7039 {
AzureIoTClient 28:add19eb7defa 7040 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7041 }
AzureIoTClient 28:add19eb7defa 7042 else
AzureIoTClient 28:add19eb7defa 7043 {
AzureIoTClient 28:add19eb7defa 7044 message_format message_format;
AzureIoTClient 28:add19eb7defa 7045 if (amqpvalue_get_message_format(item_value, &message_format) != 0)
AzureIoTClient 28:add19eb7defa 7046 {
AzureIoTClient 28:add19eb7defa 7047 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7048 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7049 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7050 break;
AzureIoTClient 28:add19eb7defa 7051 }
AzureIoTClient 28:add19eb7defa 7052 }
AzureIoTClient 28:add19eb7defa 7053
AzureIoTClient 28:add19eb7defa 7054 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7055 }
AzureIoTClient 28:add19eb7defa 7056 }
AzureIoTClient 28:add19eb7defa 7057 /* settled */
AzureIoTClient 28:add19eb7defa 7058 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 7059 {
AzureIoTClient 23:1111ee8bcba4 7060 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 7061 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7062 {
AzureIoTClient 28:add19eb7defa 7063 /* do nothing */
AzureIoTClient 28:add19eb7defa 7064 }
AzureIoTClient 28:add19eb7defa 7065 else
AzureIoTClient 28:add19eb7defa 7066 {
AzureIoTClient 28:add19eb7defa 7067 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7068 {
AzureIoTClient 28:add19eb7defa 7069 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7070 }
AzureIoTClient 28:add19eb7defa 7071 else
AzureIoTClient 28:add19eb7defa 7072 {
AzureIoTClient 28:add19eb7defa 7073 bool settled;
AzureIoTClient 28:add19eb7defa 7074 if (amqpvalue_get_boolean(item_value, &settled) != 0)
AzureIoTClient 28:add19eb7defa 7075 {
AzureIoTClient 28:add19eb7defa 7076 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7077 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7078 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7079 break;
AzureIoTClient 28:add19eb7defa 7080 }
AzureIoTClient 28:add19eb7defa 7081 }
AzureIoTClient 28:add19eb7defa 7082
AzureIoTClient 28:add19eb7defa 7083 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7084 }
AzureIoTClient 28:add19eb7defa 7085 }
AzureIoTClient 28:add19eb7defa 7086 /* more */
AzureIoTClient 28:add19eb7defa 7087 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 7088 {
AzureIoTClient 23:1111ee8bcba4 7089 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 7090 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7091 {
AzureIoTClient 28:add19eb7defa 7092 /* do nothing */
AzureIoTClient 28:add19eb7defa 7093 }
AzureIoTClient 28:add19eb7defa 7094 else
AzureIoTClient 28:add19eb7defa 7095 {
AzureIoTClient 28:add19eb7defa 7096 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7097 {
AzureIoTClient 28:add19eb7defa 7098 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7099 }
AzureIoTClient 28:add19eb7defa 7100 else
AzureIoTClient 28:add19eb7defa 7101 {
AzureIoTClient 28:add19eb7defa 7102 bool more;
AzureIoTClient 28:add19eb7defa 7103 if (amqpvalue_get_boolean(item_value, &more) != 0)
AzureIoTClient 28:add19eb7defa 7104 {
AzureIoTClient 28:add19eb7defa 7105 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7106 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7107 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7108 break;
AzureIoTClient 28:add19eb7defa 7109 }
AzureIoTClient 28:add19eb7defa 7110 }
AzureIoTClient 28:add19eb7defa 7111
AzureIoTClient 28:add19eb7defa 7112 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7113 }
AzureIoTClient 28:add19eb7defa 7114 }
AzureIoTClient 28:add19eb7defa 7115 /* rcv-settle-mode */
AzureIoTClient 28:add19eb7defa 7116 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 7117 {
AzureIoTClient 23:1111ee8bcba4 7118 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 7119 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7120 {
AzureIoTClient 28:add19eb7defa 7121 /* do nothing */
AzureIoTClient 28:add19eb7defa 7122 }
AzureIoTClient 28:add19eb7defa 7123 else
AzureIoTClient 28:add19eb7defa 7124 {
AzureIoTClient 28:add19eb7defa 7125 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7126 {
AzureIoTClient 28:add19eb7defa 7127 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7128 }
AzureIoTClient 28:add19eb7defa 7129 else
AzureIoTClient 28:add19eb7defa 7130 {
AzureIoTClient 28:add19eb7defa 7131 receiver_settle_mode rcv_settle_mode;
AzureIoTClient 28:add19eb7defa 7132 if (amqpvalue_get_receiver_settle_mode(item_value, &rcv_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 7133 {
AzureIoTClient 28:add19eb7defa 7134 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7135 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7136 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7137 break;
AzureIoTClient 28:add19eb7defa 7138 }
AzureIoTClient 28:add19eb7defa 7139 }
AzureIoTClient 28:add19eb7defa 7140
AzureIoTClient 28:add19eb7defa 7141 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7142 }
AzureIoTClient 28:add19eb7defa 7143 }
AzureIoTClient 28:add19eb7defa 7144 /* state */
AzureIoTClient 28:add19eb7defa 7145 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 7146 {
AzureIoTClient 23:1111ee8bcba4 7147 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 7148 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7149 {
AzureIoTClient 28:add19eb7defa 7150 /* do nothing */
AzureIoTClient 28:add19eb7defa 7151 }
AzureIoTClient 28:add19eb7defa 7152 else
AzureIoTClient 28:add19eb7defa 7153 {
AzureIoTClient 28:add19eb7defa 7154 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7155 }
AzureIoTClient 28:add19eb7defa 7156 }
AzureIoTClient 28:add19eb7defa 7157 /* resume */
AzureIoTClient 28:add19eb7defa 7158 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 7159 {
AzureIoTClient 23:1111ee8bcba4 7160 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 7161 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7162 {
AzureIoTClient 28:add19eb7defa 7163 /* do nothing */
AzureIoTClient 28:add19eb7defa 7164 }
AzureIoTClient 28:add19eb7defa 7165 else
AzureIoTClient 28:add19eb7defa 7166 {
AzureIoTClient 28:add19eb7defa 7167 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7168 {
AzureIoTClient 28:add19eb7defa 7169 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7170 }
AzureIoTClient 28:add19eb7defa 7171 else
AzureIoTClient 28:add19eb7defa 7172 {
AzureIoTClient 28:add19eb7defa 7173 bool resume;
AzureIoTClient 28:add19eb7defa 7174 if (amqpvalue_get_boolean(item_value, &resume) != 0)
AzureIoTClient 28:add19eb7defa 7175 {
AzureIoTClient 28:add19eb7defa 7176 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7177 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7178 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7179 break;
AzureIoTClient 28:add19eb7defa 7180 }
AzureIoTClient 28:add19eb7defa 7181 }
AzureIoTClient 28:add19eb7defa 7182
AzureIoTClient 28:add19eb7defa 7183 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7184 }
AzureIoTClient 28:add19eb7defa 7185 }
AzureIoTClient 28:add19eb7defa 7186 /* aborted */
AzureIoTClient 28:add19eb7defa 7187 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 7188 {
AzureIoTClient 23:1111ee8bcba4 7189 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 7190 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7191 {
AzureIoTClient 28:add19eb7defa 7192 /* do nothing */
AzureIoTClient 28:add19eb7defa 7193 }
AzureIoTClient 28:add19eb7defa 7194 else
AzureIoTClient 28:add19eb7defa 7195 {
AzureIoTClient 28:add19eb7defa 7196 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7197 {
AzureIoTClient 28:add19eb7defa 7198 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7199 }
AzureIoTClient 28:add19eb7defa 7200 else
AzureIoTClient 28:add19eb7defa 7201 {
AzureIoTClient 28:add19eb7defa 7202 bool aborted;
AzureIoTClient 28:add19eb7defa 7203 if (amqpvalue_get_boolean(item_value, &aborted) != 0)
AzureIoTClient 28:add19eb7defa 7204 {
AzureIoTClient 28:add19eb7defa 7205 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7206 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7207 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7208 break;
AzureIoTClient 28:add19eb7defa 7209 }
AzureIoTClient 28:add19eb7defa 7210 }
AzureIoTClient 28:add19eb7defa 7211
AzureIoTClient 28:add19eb7defa 7212 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7213 }
AzureIoTClient 28:add19eb7defa 7214 }
AzureIoTClient 28:add19eb7defa 7215 /* batchable */
AzureIoTClient 28:add19eb7defa 7216 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 7217 {
AzureIoTClient 23:1111ee8bcba4 7218 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 7219 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7220 {
AzureIoTClient 28:add19eb7defa 7221 /* do nothing */
AzureIoTClient 28:add19eb7defa 7222 }
AzureIoTClient 28:add19eb7defa 7223 else
AzureIoTClient 28:add19eb7defa 7224 {
AzureIoTClient 28:add19eb7defa 7225 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7226 {
AzureIoTClient 28:add19eb7defa 7227 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7228 }
AzureIoTClient 28:add19eb7defa 7229 else
AzureIoTClient 28:add19eb7defa 7230 {
AzureIoTClient 28:add19eb7defa 7231 bool batchable;
AzureIoTClient 28:add19eb7defa 7232 if (amqpvalue_get_boolean(item_value, &batchable) != 0)
AzureIoTClient 28:add19eb7defa 7233 {
AzureIoTClient 28:add19eb7defa 7234 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7235 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7236 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7237 break;
AzureIoTClient 28:add19eb7defa 7238 }
AzureIoTClient 28:add19eb7defa 7239 }
AzureIoTClient 28:add19eb7defa 7240
AzureIoTClient 28:add19eb7defa 7241 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7242 }
AzureIoTClient 28:add19eb7defa 7243 }
AzureIoTClient 28:add19eb7defa 7244
AzureIoTClient 28:add19eb7defa 7245 transfer_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 7246
AzureIoTClient 28:add19eb7defa 7247 result = 0;
AzureIoTClient 28:add19eb7defa 7248 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 7249 }
AzureIoTClient 28:add19eb7defa 7250 }
AzureIoTClient 28:add19eb7defa 7251 }
AzureIoTClient 28:add19eb7defa 7252
AzureIoTClient 28:add19eb7defa 7253 return result;
Azure.IoT Build 0:6ae2f7bca550 7254 }
Azure.IoT Build 0:6ae2f7bca550 7255
Azure.IoT Build 0:6ae2f7bca550 7256 int transfer_get_handle(TRANSFER_HANDLE transfer, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 7257 {
AzureIoTClient 28:add19eb7defa 7258 int result;
AzureIoTClient 28:add19eb7defa 7259
AzureIoTClient 28:add19eb7defa 7260 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7261 {
AzureIoTClient 28:add19eb7defa 7262 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7263 }
AzureIoTClient 28:add19eb7defa 7264 else
AzureIoTClient 28:add19eb7defa 7265 {
AzureIoTClient 28:add19eb7defa 7266 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7267 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7268 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7269 {
AzureIoTClient 23:1111ee8bcba4 7270 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7271 }
AzureIoTClient 23:1111ee8bcba4 7272 else
AzureIoTClient 23:1111ee8bcba4 7273 {
AzureIoTClient 23:1111ee8bcba4 7274 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 7275 {
AzureIoTClient 28:add19eb7defa 7276 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7277 }
AzureIoTClient 28:add19eb7defa 7278 else
AzureIoTClient 28:add19eb7defa 7279 {
AzureIoTClient 28:add19eb7defa 7280 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 7281 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7282 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7283 {
AzureIoTClient 28:add19eb7defa 7284 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7285 }
AzureIoTClient 28:add19eb7defa 7286 else
AzureIoTClient 28:add19eb7defa 7287 {
AzureIoTClient 43:4c1e4e94cdd3 7288 int get_single_value_result = amqpvalue_get_handle(item_value, handle_value);
AzureIoTClient 43:4c1e4e94cdd3 7289 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 7290 {
AzureIoTClient 28:add19eb7defa 7291 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7292 }
AzureIoTClient 28:add19eb7defa 7293 else
AzureIoTClient 28:add19eb7defa 7294 {
AzureIoTClient 28:add19eb7defa 7295 result = 0;
AzureIoTClient 28:add19eb7defa 7296 }
AzureIoTClient 28:add19eb7defa 7297 }
AzureIoTClient 28:add19eb7defa 7298 }
AzureIoTClient 28:add19eb7defa 7299 }
AzureIoTClient 28:add19eb7defa 7300 }
AzureIoTClient 28:add19eb7defa 7301
AzureIoTClient 28:add19eb7defa 7302 return result;
Azure.IoT Build 0:6ae2f7bca550 7303 }
Azure.IoT Build 0:6ae2f7bca550 7304
Azure.IoT Build 0:6ae2f7bca550 7305 int transfer_set_handle(TRANSFER_HANDLE transfer, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 7306 {
AzureIoTClient 28:add19eb7defa 7307 int result;
AzureIoTClient 28:add19eb7defa 7308
AzureIoTClient 28:add19eb7defa 7309 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7310 {
AzureIoTClient 28:add19eb7defa 7311 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7312 }
AzureIoTClient 28:add19eb7defa 7313 else
AzureIoTClient 28:add19eb7defa 7314 {
AzureIoTClient 28:add19eb7defa 7315 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7316 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 7317 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7318 {
AzureIoTClient 28:add19eb7defa 7319 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7320 }
AzureIoTClient 28:add19eb7defa 7321 else
AzureIoTClient 28:add19eb7defa 7322 {
AzureIoTClient 28:add19eb7defa 7323 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 0, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7324 {
AzureIoTClient 28:add19eb7defa 7325 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7326 }
AzureIoTClient 28:add19eb7defa 7327 else
AzureIoTClient 28:add19eb7defa 7328 {
AzureIoTClient 28:add19eb7defa 7329 result = 0;
AzureIoTClient 28:add19eb7defa 7330 }
AzureIoTClient 28:add19eb7defa 7331
AzureIoTClient 28:add19eb7defa 7332 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 7333 }
AzureIoTClient 28:add19eb7defa 7334 }
AzureIoTClient 28:add19eb7defa 7335
AzureIoTClient 28:add19eb7defa 7336 return result;
Azure.IoT Build 0:6ae2f7bca550 7337 }
Azure.IoT Build 0:6ae2f7bca550 7338
Azure.IoT Build 0:6ae2f7bca550 7339 int transfer_get_delivery_id(TRANSFER_HANDLE transfer, delivery_number* delivery_id_value)
Azure.IoT Build 0:6ae2f7bca550 7340 {
AzureIoTClient 28:add19eb7defa 7341 int result;
AzureIoTClient 28:add19eb7defa 7342
AzureIoTClient 28:add19eb7defa 7343 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7344 {
AzureIoTClient 28:add19eb7defa 7345 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7346 }
AzureIoTClient 28:add19eb7defa 7347 else
AzureIoTClient 28:add19eb7defa 7348 {
AzureIoTClient 28:add19eb7defa 7349 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7350 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7351 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7352 {
AzureIoTClient 23:1111ee8bcba4 7353 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7354 }
AzureIoTClient 23:1111ee8bcba4 7355 else
AzureIoTClient 23:1111ee8bcba4 7356 {
AzureIoTClient 23:1111ee8bcba4 7357 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 7358 {
AzureIoTClient 28:add19eb7defa 7359 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7360 }
AzureIoTClient 28:add19eb7defa 7361 else
AzureIoTClient 28:add19eb7defa 7362 {
AzureIoTClient 28:add19eb7defa 7363 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 7364 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7365 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7366 {
AzureIoTClient 28:add19eb7defa 7367 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7368 }
AzureIoTClient 28:add19eb7defa 7369 else
AzureIoTClient 28:add19eb7defa 7370 {
AzureIoTClient 43:4c1e4e94cdd3 7371 int get_single_value_result = amqpvalue_get_delivery_number(item_value, delivery_id_value);
AzureIoTClient 43:4c1e4e94cdd3 7372 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 7373 {
AzureIoTClient 28:add19eb7defa 7374 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7375 }
AzureIoTClient 28:add19eb7defa 7376 else
AzureIoTClient 28:add19eb7defa 7377 {
AzureIoTClient 28:add19eb7defa 7378 result = 0;
AzureIoTClient 28:add19eb7defa 7379 }
AzureIoTClient 28:add19eb7defa 7380 }
AzureIoTClient 28:add19eb7defa 7381 }
AzureIoTClient 28:add19eb7defa 7382 }
AzureIoTClient 28:add19eb7defa 7383 }
AzureIoTClient 28:add19eb7defa 7384
AzureIoTClient 28:add19eb7defa 7385 return result;
Azure.IoT Build 0:6ae2f7bca550 7386 }
Azure.IoT Build 0:6ae2f7bca550 7387
Azure.IoT Build 0:6ae2f7bca550 7388 int transfer_set_delivery_id(TRANSFER_HANDLE transfer, delivery_number delivery_id_value)
Azure.IoT Build 0:6ae2f7bca550 7389 {
AzureIoTClient 28:add19eb7defa 7390 int result;
AzureIoTClient 28:add19eb7defa 7391
AzureIoTClient 28:add19eb7defa 7392 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7393 {
AzureIoTClient 28:add19eb7defa 7394 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7395 }
AzureIoTClient 28:add19eb7defa 7396 else
AzureIoTClient 28:add19eb7defa 7397 {
AzureIoTClient 28:add19eb7defa 7398 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7399 AMQP_VALUE delivery_id_amqp_value = amqpvalue_create_delivery_number(delivery_id_value);
AzureIoTClient 28:add19eb7defa 7400 if (delivery_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7401 {
AzureIoTClient 28:add19eb7defa 7402 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7403 }
AzureIoTClient 28:add19eb7defa 7404 else
AzureIoTClient 28:add19eb7defa 7405 {
AzureIoTClient 28:add19eb7defa 7406 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 1, delivery_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7407 {
AzureIoTClient 28:add19eb7defa 7408 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7409 }
AzureIoTClient 28:add19eb7defa 7410 else
AzureIoTClient 28:add19eb7defa 7411 {
AzureIoTClient 28:add19eb7defa 7412 result = 0;
AzureIoTClient 28:add19eb7defa 7413 }
AzureIoTClient 28:add19eb7defa 7414
AzureIoTClient 28:add19eb7defa 7415 amqpvalue_destroy(delivery_id_amqp_value);
AzureIoTClient 28:add19eb7defa 7416 }
AzureIoTClient 28:add19eb7defa 7417 }
AzureIoTClient 28:add19eb7defa 7418
AzureIoTClient 28:add19eb7defa 7419 return result;
Azure.IoT Build 0:6ae2f7bca550 7420 }
Azure.IoT Build 0:6ae2f7bca550 7421
Azure.IoT Build 0:6ae2f7bca550 7422 int transfer_get_delivery_tag(TRANSFER_HANDLE transfer, delivery_tag* delivery_tag_value)
Azure.IoT Build 0:6ae2f7bca550 7423 {
AzureIoTClient 28:add19eb7defa 7424 int result;
AzureIoTClient 28:add19eb7defa 7425
AzureIoTClient 28:add19eb7defa 7426 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7427 {
AzureIoTClient 28:add19eb7defa 7428 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7429 }
AzureIoTClient 28:add19eb7defa 7430 else
AzureIoTClient 28:add19eb7defa 7431 {
AzureIoTClient 28:add19eb7defa 7432 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7433 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7434 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7435 {
AzureIoTClient 23:1111ee8bcba4 7436 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7437 }
AzureIoTClient 23:1111ee8bcba4 7438 else
AzureIoTClient 23:1111ee8bcba4 7439 {
AzureIoTClient 23:1111ee8bcba4 7440 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 7441 {
AzureIoTClient 28:add19eb7defa 7442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7443 }
AzureIoTClient 28:add19eb7defa 7444 else
AzureIoTClient 28:add19eb7defa 7445 {
AzureIoTClient 28:add19eb7defa 7446 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 7447 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7448 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7449 {
AzureIoTClient 28:add19eb7defa 7450 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7451 }
AzureIoTClient 28:add19eb7defa 7452 else
AzureIoTClient 28:add19eb7defa 7453 {
AzureIoTClient 43:4c1e4e94cdd3 7454 int get_single_value_result = amqpvalue_get_delivery_tag(item_value, delivery_tag_value);
AzureIoTClient 43:4c1e4e94cdd3 7455 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 7456 {
AzureIoTClient 28:add19eb7defa 7457 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7458 }
AzureIoTClient 28:add19eb7defa 7459 else
AzureIoTClient 28:add19eb7defa 7460 {
AzureIoTClient 28:add19eb7defa 7461 result = 0;
AzureIoTClient 28:add19eb7defa 7462 }
AzureIoTClient 28:add19eb7defa 7463 }
AzureIoTClient 28:add19eb7defa 7464 }
AzureIoTClient 28:add19eb7defa 7465 }
AzureIoTClient 28:add19eb7defa 7466 }
AzureIoTClient 28:add19eb7defa 7467
AzureIoTClient 28:add19eb7defa 7468 return result;
Azure.IoT Build 0:6ae2f7bca550 7469 }
Azure.IoT Build 0:6ae2f7bca550 7470
Azure.IoT Build 0:6ae2f7bca550 7471 int transfer_set_delivery_tag(TRANSFER_HANDLE transfer, delivery_tag delivery_tag_value)
Azure.IoT Build 0:6ae2f7bca550 7472 {
AzureIoTClient 28:add19eb7defa 7473 int result;
AzureIoTClient 28:add19eb7defa 7474
AzureIoTClient 28:add19eb7defa 7475 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7476 {
AzureIoTClient 28:add19eb7defa 7477 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7478 }
AzureIoTClient 28:add19eb7defa 7479 else
AzureIoTClient 28:add19eb7defa 7480 {
AzureIoTClient 28:add19eb7defa 7481 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7482 AMQP_VALUE delivery_tag_amqp_value = amqpvalue_create_delivery_tag(delivery_tag_value);
AzureIoTClient 28:add19eb7defa 7483 if (delivery_tag_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7484 {
AzureIoTClient 28:add19eb7defa 7485 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7486 }
AzureIoTClient 28:add19eb7defa 7487 else
AzureIoTClient 28:add19eb7defa 7488 {
AzureIoTClient 28:add19eb7defa 7489 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 2, delivery_tag_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7490 {
AzureIoTClient 28:add19eb7defa 7491 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7492 }
AzureIoTClient 28:add19eb7defa 7493 else
AzureIoTClient 28:add19eb7defa 7494 {
AzureIoTClient 28:add19eb7defa 7495 result = 0;
AzureIoTClient 28:add19eb7defa 7496 }
AzureIoTClient 28:add19eb7defa 7497
AzureIoTClient 28:add19eb7defa 7498 amqpvalue_destroy(delivery_tag_amqp_value);
AzureIoTClient 28:add19eb7defa 7499 }
AzureIoTClient 28:add19eb7defa 7500 }
AzureIoTClient 28:add19eb7defa 7501
AzureIoTClient 28:add19eb7defa 7502 return result;
Azure.IoT Build 0:6ae2f7bca550 7503 }
Azure.IoT Build 0:6ae2f7bca550 7504
Azure.IoT Build 0:6ae2f7bca550 7505 int transfer_get_message_format(TRANSFER_HANDLE transfer, message_format* message_format_value)
Azure.IoT Build 0:6ae2f7bca550 7506 {
AzureIoTClient 28:add19eb7defa 7507 int result;
AzureIoTClient 28:add19eb7defa 7508
AzureIoTClient 28:add19eb7defa 7509 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7510 {
AzureIoTClient 28:add19eb7defa 7511 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7512 }
AzureIoTClient 28:add19eb7defa 7513 else
AzureIoTClient 28:add19eb7defa 7514 {
AzureIoTClient 28:add19eb7defa 7515 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7516 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7517 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7518 {
AzureIoTClient 23:1111ee8bcba4 7519 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7520 }
AzureIoTClient 23:1111ee8bcba4 7521 else
AzureIoTClient 23:1111ee8bcba4 7522 {
AzureIoTClient 23:1111ee8bcba4 7523 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 7524 {
AzureIoTClient 28:add19eb7defa 7525 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7526 }
AzureIoTClient 28:add19eb7defa 7527 else
AzureIoTClient 28:add19eb7defa 7528 {
AzureIoTClient 28:add19eb7defa 7529 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 7530 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7531 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7532 {
AzureIoTClient 28:add19eb7defa 7533 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7534 }
AzureIoTClient 28:add19eb7defa 7535 else
AzureIoTClient 28:add19eb7defa 7536 {
AzureIoTClient 43:4c1e4e94cdd3 7537 int get_single_value_result = amqpvalue_get_message_format(item_value, message_format_value);
AzureIoTClient 43:4c1e4e94cdd3 7538 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 7539 {
AzureIoTClient 28:add19eb7defa 7540 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7541 }
AzureIoTClient 28:add19eb7defa 7542 else
AzureIoTClient 28:add19eb7defa 7543 {
AzureIoTClient 28:add19eb7defa 7544 result = 0;
AzureIoTClient 28:add19eb7defa 7545 }
AzureIoTClient 28:add19eb7defa 7546 }
AzureIoTClient 28:add19eb7defa 7547 }
AzureIoTClient 28:add19eb7defa 7548 }
AzureIoTClient 28:add19eb7defa 7549 }
AzureIoTClient 28:add19eb7defa 7550
AzureIoTClient 28:add19eb7defa 7551 return result;
Azure.IoT Build 0:6ae2f7bca550 7552 }
Azure.IoT Build 0:6ae2f7bca550 7553
Azure.IoT Build 0:6ae2f7bca550 7554 int transfer_set_message_format(TRANSFER_HANDLE transfer, message_format message_format_value)
Azure.IoT Build 0:6ae2f7bca550 7555 {
AzureIoTClient 28:add19eb7defa 7556 int result;
AzureIoTClient 28:add19eb7defa 7557
AzureIoTClient 28:add19eb7defa 7558 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7559 {
AzureIoTClient 28:add19eb7defa 7560 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7561 }
AzureIoTClient 28:add19eb7defa 7562 else
AzureIoTClient 28:add19eb7defa 7563 {
AzureIoTClient 28:add19eb7defa 7564 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7565 AMQP_VALUE message_format_amqp_value = amqpvalue_create_message_format(message_format_value);
AzureIoTClient 28:add19eb7defa 7566 if (message_format_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7567 {
AzureIoTClient 28:add19eb7defa 7568 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7569 }
AzureIoTClient 28:add19eb7defa 7570 else
AzureIoTClient 28:add19eb7defa 7571 {
AzureIoTClient 28:add19eb7defa 7572 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 3, message_format_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7573 {
AzureIoTClient 28:add19eb7defa 7574 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7575 }
AzureIoTClient 28:add19eb7defa 7576 else
AzureIoTClient 28:add19eb7defa 7577 {
AzureIoTClient 28:add19eb7defa 7578 result = 0;
AzureIoTClient 28:add19eb7defa 7579 }
AzureIoTClient 28:add19eb7defa 7580
AzureIoTClient 28:add19eb7defa 7581 amqpvalue_destroy(message_format_amqp_value);
AzureIoTClient 28:add19eb7defa 7582 }
AzureIoTClient 28:add19eb7defa 7583 }
AzureIoTClient 28:add19eb7defa 7584
AzureIoTClient 28:add19eb7defa 7585 return result;
Azure.IoT Build 0:6ae2f7bca550 7586 }
Azure.IoT Build 0:6ae2f7bca550 7587
Azure.IoT Build 0:6ae2f7bca550 7588 int transfer_get_settled(TRANSFER_HANDLE transfer, bool* settled_value)
Azure.IoT Build 0:6ae2f7bca550 7589 {
AzureIoTClient 28:add19eb7defa 7590 int result;
AzureIoTClient 28:add19eb7defa 7591
AzureIoTClient 28:add19eb7defa 7592 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7593 {
AzureIoTClient 28:add19eb7defa 7594 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7595 }
AzureIoTClient 28:add19eb7defa 7596 else
AzureIoTClient 28:add19eb7defa 7597 {
AzureIoTClient 28:add19eb7defa 7598 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7599 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7600 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7601 {
AzureIoTClient 23:1111ee8bcba4 7602 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7603 }
AzureIoTClient 23:1111ee8bcba4 7604 else
AzureIoTClient 23:1111ee8bcba4 7605 {
AzureIoTClient 23:1111ee8bcba4 7606 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 7607 {
AzureIoTClient 28:add19eb7defa 7608 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7609 }
AzureIoTClient 28:add19eb7defa 7610 else
AzureIoTClient 28:add19eb7defa 7611 {
AzureIoTClient 28:add19eb7defa 7612 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 7613 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7614 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7615 {
AzureIoTClient 28:add19eb7defa 7616 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7617 }
AzureIoTClient 28:add19eb7defa 7618 else
AzureIoTClient 28:add19eb7defa 7619 {
AzureIoTClient 43:4c1e4e94cdd3 7620 int get_single_value_result = amqpvalue_get_boolean(item_value, settled_value);
AzureIoTClient 43:4c1e4e94cdd3 7621 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 7622 {
AzureIoTClient 28:add19eb7defa 7623 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7624 }
AzureIoTClient 28:add19eb7defa 7625 else
AzureIoTClient 28:add19eb7defa 7626 {
AzureIoTClient 28:add19eb7defa 7627 result = 0;
AzureIoTClient 28:add19eb7defa 7628 }
AzureIoTClient 28:add19eb7defa 7629 }
AzureIoTClient 28:add19eb7defa 7630 }
AzureIoTClient 28:add19eb7defa 7631 }
AzureIoTClient 28:add19eb7defa 7632 }
AzureIoTClient 28:add19eb7defa 7633
AzureIoTClient 28:add19eb7defa 7634 return result;
Azure.IoT Build 0:6ae2f7bca550 7635 }
Azure.IoT Build 0:6ae2f7bca550 7636
Azure.IoT Build 0:6ae2f7bca550 7637 int transfer_set_settled(TRANSFER_HANDLE transfer, bool settled_value)
Azure.IoT Build 0:6ae2f7bca550 7638 {
AzureIoTClient 28:add19eb7defa 7639 int result;
AzureIoTClient 28:add19eb7defa 7640
AzureIoTClient 28:add19eb7defa 7641 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7642 {
AzureIoTClient 28:add19eb7defa 7643 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7644 }
AzureIoTClient 28:add19eb7defa 7645 else
AzureIoTClient 28:add19eb7defa 7646 {
AzureIoTClient 28:add19eb7defa 7647 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7648 AMQP_VALUE settled_amqp_value = amqpvalue_create_boolean(settled_value);
AzureIoTClient 28:add19eb7defa 7649 if (settled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7650 {
AzureIoTClient 28:add19eb7defa 7651 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7652 }
AzureIoTClient 28:add19eb7defa 7653 else
AzureIoTClient 28:add19eb7defa 7654 {
AzureIoTClient 28:add19eb7defa 7655 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 4, settled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7656 {
AzureIoTClient 28:add19eb7defa 7657 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7658 }
AzureIoTClient 28:add19eb7defa 7659 else
AzureIoTClient 28:add19eb7defa 7660 {
AzureIoTClient 28:add19eb7defa 7661 result = 0;
AzureIoTClient 28:add19eb7defa 7662 }
AzureIoTClient 28:add19eb7defa 7663
AzureIoTClient 28:add19eb7defa 7664 amqpvalue_destroy(settled_amqp_value);
AzureIoTClient 28:add19eb7defa 7665 }
AzureIoTClient 28:add19eb7defa 7666 }
AzureIoTClient 28:add19eb7defa 7667
AzureIoTClient 28:add19eb7defa 7668 return result;
Azure.IoT Build 0:6ae2f7bca550 7669 }
Azure.IoT Build 0:6ae2f7bca550 7670
Azure.IoT Build 0:6ae2f7bca550 7671 int transfer_get_more(TRANSFER_HANDLE transfer, bool* more_value)
Azure.IoT Build 0:6ae2f7bca550 7672 {
AzureIoTClient 28:add19eb7defa 7673 int result;
AzureIoTClient 28:add19eb7defa 7674
AzureIoTClient 28:add19eb7defa 7675 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7676 {
AzureIoTClient 28:add19eb7defa 7677 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7678 }
AzureIoTClient 28:add19eb7defa 7679 else
AzureIoTClient 28:add19eb7defa 7680 {
AzureIoTClient 28:add19eb7defa 7681 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7682 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7683 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7684 {
AzureIoTClient 23:1111ee8bcba4 7685 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7686 }
AzureIoTClient 23:1111ee8bcba4 7687 else
AzureIoTClient 23:1111ee8bcba4 7688 {
AzureIoTClient 23:1111ee8bcba4 7689 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 7690 {
AzureIoTClient 28:add19eb7defa 7691 *more_value = false;
AzureIoTClient 28:add19eb7defa 7692 result = 0;
AzureIoTClient 28:add19eb7defa 7693 }
AzureIoTClient 28:add19eb7defa 7694 else
AzureIoTClient 28:add19eb7defa 7695 {
AzureIoTClient 28:add19eb7defa 7696 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 7697 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7698 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7699 {
AzureIoTClient 28:add19eb7defa 7700 *more_value = false;
AzureIoTClient 28:add19eb7defa 7701 result = 0;
AzureIoTClient 28:add19eb7defa 7702 }
AzureIoTClient 28:add19eb7defa 7703 else
AzureIoTClient 28:add19eb7defa 7704 {
AzureIoTClient 43:4c1e4e94cdd3 7705 int get_single_value_result = amqpvalue_get_boolean(item_value, more_value);
AzureIoTClient 43:4c1e4e94cdd3 7706 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 7707 {
AzureIoTClient 23:1111ee8bcba4 7708 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7709 {
AzureIoTClient 28:add19eb7defa 7710 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7711 }
AzureIoTClient 28:add19eb7defa 7712 else
AzureIoTClient 28:add19eb7defa 7713 {
AzureIoTClient 28:add19eb7defa 7714 *more_value = false;
AzureIoTClient 23:1111ee8bcba4 7715 result = 0;
AzureIoTClient 23:1111ee8bcba4 7716 }
AzureIoTClient 28:add19eb7defa 7717 }
AzureIoTClient 28:add19eb7defa 7718 else
AzureIoTClient 28:add19eb7defa 7719 {
AzureIoTClient 28:add19eb7defa 7720 result = 0;
AzureIoTClient 28:add19eb7defa 7721 }
AzureIoTClient 28:add19eb7defa 7722 }
AzureIoTClient 28:add19eb7defa 7723 }
AzureIoTClient 28:add19eb7defa 7724 }
AzureIoTClient 28:add19eb7defa 7725 }
AzureIoTClient 28:add19eb7defa 7726
AzureIoTClient 28:add19eb7defa 7727 return result;
Azure.IoT Build 0:6ae2f7bca550 7728 }
Azure.IoT Build 0:6ae2f7bca550 7729
Azure.IoT Build 0:6ae2f7bca550 7730 int transfer_set_more(TRANSFER_HANDLE transfer, bool more_value)
Azure.IoT Build 0:6ae2f7bca550 7731 {
AzureIoTClient 28:add19eb7defa 7732 int result;
AzureIoTClient 28:add19eb7defa 7733
AzureIoTClient 28:add19eb7defa 7734 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7735 {
AzureIoTClient 28:add19eb7defa 7736 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7737 }
AzureIoTClient 28:add19eb7defa 7738 else
AzureIoTClient 28:add19eb7defa 7739 {
AzureIoTClient 28:add19eb7defa 7740 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7741 AMQP_VALUE more_amqp_value = amqpvalue_create_boolean(more_value);
AzureIoTClient 28:add19eb7defa 7742 if (more_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7743 {
AzureIoTClient 28:add19eb7defa 7744 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7745 }
AzureIoTClient 28:add19eb7defa 7746 else
AzureIoTClient 28:add19eb7defa 7747 {
AzureIoTClient 28:add19eb7defa 7748 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 5, more_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7749 {
AzureIoTClient 28:add19eb7defa 7750 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7751 }
AzureIoTClient 28:add19eb7defa 7752 else
AzureIoTClient 28:add19eb7defa 7753 {
AzureIoTClient 28:add19eb7defa 7754 result = 0;
AzureIoTClient 28:add19eb7defa 7755 }
AzureIoTClient 28:add19eb7defa 7756
AzureIoTClient 28:add19eb7defa 7757 amqpvalue_destroy(more_amqp_value);
AzureIoTClient 28:add19eb7defa 7758 }
AzureIoTClient 28:add19eb7defa 7759 }
AzureIoTClient 28:add19eb7defa 7760
AzureIoTClient 28:add19eb7defa 7761 return result;
Azure.IoT Build 0:6ae2f7bca550 7762 }
Azure.IoT Build 0:6ae2f7bca550 7763
Azure.IoT Build 0:6ae2f7bca550 7764 int transfer_get_rcv_settle_mode(TRANSFER_HANDLE transfer, receiver_settle_mode* rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 7765 {
AzureIoTClient 28:add19eb7defa 7766 int result;
AzureIoTClient 28:add19eb7defa 7767
AzureIoTClient 28:add19eb7defa 7768 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7769 {
AzureIoTClient 28:add19eb7defa 7770 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7771 }
AzureIoTClient 28:add19eb7defa 7772 else
AzureIoTClient 28:add19eb7defa 7773 {
AzureIoTClient 28:add19eb7defa 7774 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7775 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7776 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7777 {
AzureIoTClient 23:1111ee8bcba4 7778 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7779 }
AzureIoTClient 23:1111ee8bcba4 7780 else
AzureIoTClient 23:1111ee8bcba4 7781 {
AzureIoTClient 23:1111ee8bcba4 7782 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 7783 {
AzureIoTClient 28:add19eb7defa 7784 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7785 }
AzureIoTClient 28:add19eb7defa 7786 else
AzureIoTClient 28:add19eb7defa 7787 {
AzureIoTClient 28:add19eb7defa 7788 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 7789 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7790 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7791 {
AzureIoTClient 28:add19eb7defa 7792 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7793 }
AzureIoTClient 28:add19eb7defa 7794 else
AzureIoTClient 28:add19eb7defa 7795 {
AzureIoTClient 43:4c1e4e94cdd3 7796 int get_single_value_result = amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value);
AzureIoTClient 43:4c1e4e94cdd3 7797 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 7798 {
AzureIoTClient 28:add19eb7defa 7799 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7800 }
AzureIoTClient 28:add19eb7defa 7801 else
AzureIoTClient 28:add19eb7defa 7802 {
AzureIoTClient 28:add19eb7defa 7803 result = 0;
AzureIoTClient 28:add19eb7defa 7804 }
AzureIoTClient 28:add19eb7defa 7805 }
AzureIoTClient 28:add19eb7defa 7806 }
AzureIoTClient 28:add19eb7defa 7807 }
AzureIoTClient 28:add19eb7defa 7808 }
AzureIoTClient 28:add19eb7defa 7809
AzureIoTClient 28:add19eb7defa 7810 return result;
Azure.IoT Build 0:6ae2f7bca550 7811 }
Azure.IoT Build 0:6ae2f7bca550 7812
Azure.IoT Build 0:6ae2f7bca550 7813 int transfer_set_rcv_settle_mode(TRANSFER_HANDLE transfer, receiver_settle_mode rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 7814 {
AzureIoTClient 28:add19eb7defa 7815 int result;
AzureIoTClient 28:add19eb7defa 7816
AzureIoTClient 28:add19eb7defa 7817 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7818 {
AzureIoTClient 28:add19eb7defa 7819 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7820 }
AzureIoTClient 28:add19eb7defa 7821 else
AzureIoTClient 28:add19eb7defa 7822 {
AzureIoTClient 28:add19eb7defa 7823 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7824 AMQP_VALUE rcv_settle_mode_amqp_value = amqpvalue_create_receiver_settle_mode(rcv_settle_mode_value);
AzureIoTClient 28:add19eb7defa 7825 if (rcv_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7826 {
AzureIoTClient 28:add19eb7defa 7827 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7828 }
AzureIoTClient 28:add19eb7defa 7829 else
AzureIoTClient 28:add19eb7defa 7830 {
AzureIoTClient 28:add19eb7defa 7831 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 6, rcv_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7832 {
AzureIoTClient 28:add19eb7defa 7833 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7834 }
AzureIoTClient 28:add19eb7defa 7835 else
AzureIoTClient 28:add19eb7defa 7836 {
AzureIoTClient 28:add19eb7defa 7837 result = 0;
AzureIoTClient 28:add19eb7defa 7838 }
AzureIoTClient 28:add19eb7defa 7839
AzureIoTClient 28:add19eb7defa 7840 amqpvalue_destroy(rcv_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 7841 }
AzureIoTClient 28:add19eb7defa 7842 }
AzureIoTClient 28:add19eb7defa 7843
AzureIoTClient 28:add19eb7defa 7844 return result;
Azure.IoT Build 0:6ae2f7bca550 7845 }
Azure.IoT Build 0:6ae2f7bca550 7846
Azure.IoT Build 0:6ae2f7bca550 7847 int transfer_get_state(TRANSFER_HANDLE transfer, AMQP_VALUE* state_value)
Azure.IoT Build 0:6ae2f7bca550 7848 {
AzureIoTClient 28:add19eb7defa 7849 int result;
AzureIoTClient 28:add19eb7defa 7850
AzureIoTClient 28:add19eb7defa 7851 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7852 {
AzureIoTClient 28:add19eb7defa 7853 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7854 }
AzureIoTClient 28:add19eb7defa 7855 else
AzureIoTClient 28:add19eb7defa 7856 {
AzureIoTClient 28:add19eb7defa 7857 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7858 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7859 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7860 {
AzureIoTClient 23:1111ee8bcba4 7861 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7862 }
AzureIoTClient 23:1111ee8bcba4 7863 else
AzureIoTClient 23:1111ee8bcba4 7864 {
AzureIoTClient 23:1111ee8bcba4 7865 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 7866 {
AzureIoTClient 28:add19eb7defa 7867 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7868 }
AzureIoTClient 28:add19eb7defa 7869 else
AzureIoTClient 28:add19eb7defa 7870 {
AzureIoTClient 28:add19eb7defa 7871 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 7872 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7873 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7874 {
AzureIoTClient 28:add19eb7defa 7875 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7876 }
AzureIoTClient 28:add19eb7defa 7877 else
AzureIoTClient 28:add19eb7defa 7878 {
AzureIoTClient 28:add19eb7defa 7879 *state_value = item_value;
AzureIoTClient 28:add19eb7defa 7880 result = 0;
AzureIoTClient 28:add19eb7defa 7881 }
AzureIoTClient 28:add19eb7defa 7882 }
AzureIoTClient 28:add19eb7defa 7883 }
AzureIoTClient 28:add19eb7defa 7884 }
AzureIoTClient 28:add19eb7defa 7885
AzureIoTClient 28:add19eb7defa 7886 return result;
Azure.IoT Build 0:6ae2f7bca550 7887 }
Azure.IoT Build 0:6ae2f7bca550 7888
Azure.IoT Build 0:6ae2f7bca550 7889 int transfer_set_state(TRANSFER_HANDLE transfer, AMQP_VALUE state_value)
Azure.IoT Build 0:6ae2f7bca550 7890 {
AzureIoTClient 28:add19eb7defa 7891 int result;
AzureIoTClient 28:add19eb7defa 7892
AzureIoTClient 28:add19eb7defa 7893 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7894 {
AzureIoTClient 28:add19eb7defa 7895 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7896 }
AzureIoTClient 28:add19eb7defa 7897 else
AzureIoTClient 28:add19eb7defa 7898 {
AzureIoTClient 28:add19eb7defa 7899 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7900 AMQP_VALUE state_amqp_value;
AzureIoTClient 23:1111ee8bcba4 7901 if (state_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7902 {
AzureIoTClient 23:1111ee8bcba4 7903 state_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 7904 }
AzureIoTClient 23:1111ee8bcba4 7905 else
AzureIoTClient 23:1111ee8bcba4 7906 {
AzureIoTClient 23:1111ee8bcba4 7907 state_amqp_value = amqpvalue_clone(state_value);
AzureIoTClient 23:1111ee8bcba4 7908 }
AzureIoTClient 28:add19eb7defa 7909 if (state_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7910 {
AzureIoTClient 28:add19eb7defa 7911 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7912 }
AzureIoTClient 28:add19eb7defa 7913 else
AzureIoTClient 28:add19eb7defa 7914 {
AzureIoTClient 28:add19eb7defa 7915 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 7, state_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7916 {
AzureIoTClient 28:add19eb7defa 7917 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7918 }
AzureIoTClient 28:add19eb7defa 7919 else
AzureIoTClient 28:add19eb7defa 7920 {
AzureIoTClient 28:add19eb7defa 7921 result = 0;
AzureIoTClient 28:add19eb7defa 7922 }
AzureIoTClient 28:add19eb7defa 7923
AzureIoTClient 28:add19eb7defa 7924 amqpvalue_destroy(state_amqp_value);
AzureIoTClient 28:add19eb7defa 7925 }
AzureIoTClient 28:add19eb7defa 7926 }
AzureIoTClient 28:add19eb7defa 7927
AzureIoTClient 28:add19eb7defa 7928 return result;
Azure.IoT Build 0:6ae2f7bca550 7929 }
Azure.IoT Build 0:6ae2f7bca550 7930
Azure.IoT Build 0:6ae2f7bca550 7931 int transfer_get_resume(TRANSFER_HANDLE transfer, bool* resume_value)
Azure.IoT Build 0:6ae2f7bca550 7932 {
AzureIoTClient 28:add19eb7defa 7933 int result;
AzureIoTClient 28:add19eb7defa 7934
AzureIoTClient 28:add19eb7defa 7935 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7936 {
AzureIoTClient 28:add19eb7defa 7937 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7938 }
AzureIoTClient 28:add19eb7defa 7939 else
AzureIoTClient 28:add19eb7defa 7940 {
AzureIoTClient 28:add19eb7defa 7941 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7942 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7943 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7944 {
AzureIoTClient 23:1111ee8bcba4 7945 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7946 }
AzureIoTClient 23:1111ee8bcba4 7947 else
AzureIoTClient 23:1111ee8bcba4 7948 {
AzureIoTClient 23:1111ee8bcba4 7949 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 7950 {
AzureIoTClient 28:add19eb7defa 7951 *resume_value = false;
AzureIoTClient 28:add19eb7defa 7952 result = 0;
AzureIoTClient 28:add19eb7defa 7953 }
AzureIoTClient 28:add19eb7defa 7954 else
AzureIoTClient 28:add19eb7defa 7955 {
AzureIoTClient 28:add19eb7defa 7956 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 7957 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7958 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7959 {
AzureIoTClient 28:add19eb7defa 7960 *resume_value = false;
AzureIoTClient 28:add19eb7defa 7961 result = 0;
AzureIoTClient 28:add19eb7defa 7962 }
AzureIoTClient 28:add19eb7defa 7963 else
AzureIoTClient 28:add19eb7defa 7964 {
AzureIoTClient 43:4c1e4e94cdd3 7965 int get_single_value_result = amqpvalue_get_boolean(item_value, resume_value);
AzureIoTClient 43:4c1e4e94cdd3 7966 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 7967 {
AzureIoTClient 23:1111ee8bcba4 7968 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7969 {
AzureIoTClient 28:add19eb7defa 7970 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7971 }
AzureIoTClient 28:add19eb7defa 7972 else
AzureIoTClient 28:add19eb7defa 7973 {
AzureIoTClient 28:add19eb7defa 7974 *resume_value = false;
AzureIoTClient 23:1111ee8bcba4 7975 result = 0;
AzureIoTClient 23:1111ee8bcba4 7976 }
AzureIoTClient 28:add19eb7defa 7977 }
AzureIoTClient 28:add19eb7defa 7978 else
AzureIoTClient 28:add19eb7defa 7979 {
AzureIoTClient 28:add19eb7defa 7980 result = 0;
AzureIoTClient 28:add19eb7defa 7981 }
AzureIoTClient 28:add19eb7defa 7982 }
AzureIoTClient 28:add19eb7defa 7983 }
AzureIoTClient 28:add19eb7defa 7984 }
AzureIoTClient 28:add19eb7defa 7985 }
AzureIoTClient 28:add19eb7defa 7986
AzureIoTClient 28:add19eb7defa 7987 return result;
Azure.IoT Build 0:6ae2f7bca550 7988 }
Azure.IoT Build 0:6ae2f7bca550 7989
Azure.IoT Build 0:6ae2f7bca550 7990 int transfer_set_resume(TRANSFER_HANDLE transfer, bool resume_value)
Azure.IoT Build 0:6ae2f7bca550 7991 {
AzureIoTClient 28:add19eb7defa 7992 int result;
AzureIoTClient 28:add19eb7defa 7993
AzureIoTClient 28:add19eb7defa 7994 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7995 {
AzureIoTClient 28:add19eb7defa 7996 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7997 }
AzureIoTClient 28:add19eb7defa 7998 else
AzureIoTClient 28:add19eb7defa 7999 {
AzureIoTClient 28:add19eb7defa 8000 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 8001 AMQP_VALUE resume_amqp_value = amqpvalue_create_boolean(resume_value);
AzureIoTClient 28:add19eb7defa 8002 if (resume_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8003 {
AzureIoTClient 28:add19eb7defa 8004 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8005 }
AzureIoTClient 28:add19eb7defa 8006 else
AzureIoTClient 28:add19eb7defa 8007 {
AzureIoTClient 28:add19eb7defa 8008 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 8, resume_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8009 {
AzureIoTClient 28:add19eb7defa 8010 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8011 }
AzureIoTClient 28:add19eb7defa 8012 else
AzureIoTClient 28:add19eb7defa 8013 {
AzureIoTClient 28:add19eb7defa 8014 result = 0;
AzureIoTClient 28:add19eb7defa 8015 }
AzureIoTClient 28:add19eb7defa 8016
AzureIoTClient 28:add19eb7defa 8017 amqpvalue_destroy(resume_amqp_value);
AzureIoTClient 28:add19eb7defa 8018 }
AzureIoTClient 28:add19eb7defa 8019 }
AzureIoTClient 28:add19eb7defa 8020
AzureIoTClient 28:add19eb7defa 8021 return result;
Azure.IoT Build 0:6ae2f7bca550 8022 }
Azure.IoT Build 0:6ae2f7bca550 8023
Azure.IoT Build 0:6ae2f7bca550 8024 int transfer_get_aborted(TRANSFER_HANDLE transfer, bool* aborted_value)
Azure.IoT Build 0:6ae2f7bca550 8025 {
AzureIoTClient 28:add19eb7defa 8026 int result;
AzureIoTClient 28:add19eb7defa 8027
AzureIoTClient 28:add19eb7defa 8028 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8029 {
AzureIoTClient 28:add19eb7defa 8030 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8031 }
AzureIoTClient 28:add19eb7defa 8032 else
AzureIoTClient 28:add19eb7defa 8033 {
AzureIoTClient 28:add19eb7defa 8034 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8035 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 8036 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8037 {
AzureIoTClient 23:1111ee8bcba4 8038 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8039 }
AzureIoTClient 23:1111ee8bcba4 8040 else
AzureIoTClient 23:1111ee8bcba4 8041 {
AzureIoTClient 23:1111ee8bcba4 8042 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 8043 {
AzureIoTClient 28:add19eb7defa 8044 *aborted_value = false;
AzureIoTClient 28:add19eb7defa 8045 result = 0;
AzureIoTClient 28:add19eb7defa 8046 }
AzureIoTClient 28:add19eb7defa 8047 else
AzureIoTClient 28:add19eb7defa 8048 {
AzureIoTClient 28:add19eb7defa 8049 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 8050 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8051 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8052 {
AzureIoTClient 28:add19eb7defa 8053 *aborted_value = false;
AzureIoTClient 28:add19eb7defa 8054 result = 0;
AzureIoTClient 28:add19eb7defa 8055 }
AzureIoTClient 28:add19eb7defa 8056 else
AzureIoTClient 28:add19eb7defa 8057 {
AzureIoTClient 43:4c1e4e94cdd3 8058 int get_single_value_result = amqpvalue_get_boolean(item_value, aborted_value);
AzureIoTClient 43:4c1e4e94cdd3 8059 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 8060 {
AzureIoTClient 23:1111ee8bcba4 8061 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8062 {
AzureIoTClient 28:add19eb7defa 8063 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8064 }
AzureIoTClient 28:add19eb7defa 8065 else
AzureIoTClient 28:add19eb7defa 8066 {
AzureIoTClient 28:add19eb7defa 8067 *aborted_value = false;
AzureIoTClient 23:1111ee8bcba4 8068 result = 0;
AzureIoTClient 23:1111ee8bcba4 8069 }
AzureIoTClient 28:add19eb7defa 8070 }
AzureIoTClient 28:add19eb7defa 8071 else
AzureIoTClient 28:add19eb7defa 8072 {
AzureIoTClient 28:add19eb7defa 8073 result = 0;
AzureIoTClient 28:add19eb7defa 8074 }
AzureIoTClient 28:add19eb7defa 8075 }
AzureIoTClient 28:add19eb7defa 8076 }
AzureIoTClient 28:add19eb7defa 8077 }
AzureIoTClient 28:add19eb7defa 8078 }
AzureIoTClient 28:add19eb7defa 8079
AzureIoTClient 28:add19eb7defa 8080 return result;
Azure.IoT Build 0:6ae2f7bca550 8081 }
Azure.IoT Build 0:6ae2f7bca550 8082
Azure.IoT Build 0:6ae2f7bca550 8083 int transfer_set_aborted(TRANSFER_HANDLE transfer, bool aborted_value)
Azure.IoT Build 0:6ae2f7bca550 8084 {
AzureIoTClient 28:add19eb7defa 8085 int result;
AzureIoTClient 28:add19eb7defa 8086
AzureIoTClient 28:add19eb7defa 8087 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8088 {
AzureIoTClient 28:add19eb7defa 8089 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8090 }
AzureIoTClient 28:add19eb7defa 8091 else
AzureIoTClient 28:add19eb7defa 8092 {
AzureIoTClient 28:add19eb7defa 8093 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 8094 AMQP_VALUE aborted_amqp_value = amqpvalue_create_boolean(aborted_value);
AzureIoTClient 28:add19eb7defa 8095 if (aborted_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8096 {
AzureIoTClient 28:add19eb7defa 8097 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8098 }
AzureIoTClient 28:add19eb7defa 8099 else
AzureIoTClient 28:add19eb7defa 8100 {
AzureIoTClient 28:add19eb7defa 8101 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 9, aborted_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8102 {
AzureIoTClient 28:add19eb7defa 8103 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8104 }
AzureIoTClient 28:add19eb7defa 8105 else
AzureIoTClient 28:add19eb7defa 8106 {
AzureIoTClient 28:add19eb7defa 8107 result = 0;
AzureIoTClient 28:add19eb7defa 8108 }
AzureIoTClient 28:add19eb7defa 8109
AzureIoTClient 28:add19eb7defa 8110 amqpvalue_destroy(aborted_amqp_value);
AzureIoTClient 28:add19eb7defa 8111 }
AzureIoTClient 28:add19eb7defa 8112 }
AzureIoTClient 28:add19eb7defa 8113
AzureIoTClient 28:add19eb7defa 8114 return result;
Azure.IoT Build 0:6ae2f7bca550 8115 }
Azure.IoT Build 0:6ae2f7bca550 8116
Azure.IoT Build 0:6ae2f7bca550 8117 int transfer_get_batchable(TRANSFER_HANDLE transfer, bool* batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8118 {
AzureIoTClient 28:add19eb7defa 8119 int result;
AzureIoTClient 28:add19eb7defa 8120
AzureIoTClient 28:add19eb7defa 8121 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8122 {
AzureIoTClient 28:add19eb7defa 8123 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8124 }
AzureIoTClient 28:add19eb7defa 8125 else
AzureIoTClient 28:add19eb7defa 8126 {
AzureIoTClient 28:add19eb7defa 8127 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8128 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 8129 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8130 {
AzureIoTClient 23:1111ee8bcba4 8131 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8132 }
AzureIoTClient 23:1111ee8bcba4 8133 else
AzureIoTClient 23:1111ee8bcba4 8134 {
AzureIoTClient 23:1111ee8bcba4 8135 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 8136 {
AzureIoTClient 28:add19eb7defa 8137 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8138 result = 0;
AzureIoTClient 28:add19eb7defa 8139 }
AzureIoTClient 28:add19eb7defa 8140 else
AzureIoTClient 28:add19eb7defa 8141 {
AzureIoTClient 28:add19eb7defa 8142 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 8143 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8144 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8145 {
AzureIoTClient 28:add19eb7defa 8146 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8147 result = 0;
AzureIoTClient 28:add19eb7defa 8148 }
AzureIoTClient 28:add19eb7defa 8149 else
AzureIoTClient 28:add19eb7defa 8150 {
AzureIoTClient 43:4c1e4e94cdd3 8151 int get_single_value_result = amqpvalue_get_boolean(item_value, batchable_value);
AzureIoTClient 43:4c1e4e94cdd3 8152 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 8153 {
AzureIoTClient 23:1111ee8bcba4 8154 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8155 {
AzureIoTClient 28:add19eb7defa 8156 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8157 }
AzureIoTClient 28:add19eb7defa 8158 else
AzureIoTClient 28:add19eb7defa 8159 {
AzureIoTClient 28:add19eb7defa 8160 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 8161 result = 0;
AzureIoTClient 23:1111ee8bcba4 8162 }
AzureIoTClient 28:add19eb7defa 8163 }
AzureIoTClient 28:add19eb7defa 8164 else
AzureIoTClient 28:add19eb7defa 8165 {
AzureIoTClient 28:add19eb7defa 8166 result = 0;
AzureIoTClient 28:add19eb7defa 8167 }
AzureIoTClient 28:add19eb7defa 8168 }
AzureIoTClient 28:add19eb7defa 8169 }
AzureIoTClient 28:add19eb7defa 8170 }
AzureIoTClient 28:add19eb7defa 8171 }
AzureIoTClient 28:add19eb7defa 8172
AzureIoTClient 28:add19eb7defa 8173 return result;
Azure.IoT Build 0:6ae2f7bca550 8174 }
Azure.IoT Build 0:6ae2f7bca550 8175
Azure.IoT Build 0:6ae2f7bca550 8176 int transfer_set_batchable(TRANSFER_HANDLE transfer, bool batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8177 {
AzureIoTClient 28:add19eb7defa 8178 int result;
AzureIoTClient 28:add19eb7defa 8179
AzureIoTClient 28:add19eb7defa 8180 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8181 {
AzureIoTClient 28:add19eb7defa 8182 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8183 }
AzureIoTClient 28:add19eb7defa 8184 else
AzureIoTClient 28:add19eb7defa 8185 {
AzureIoTClient 28:add19eb7defa 8186 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 8187 AMQP_VALUE batchable_amqp_value = amqpvalue_create_boolean(batchable_value);
AzureIoTClient 28:add19eb7defa 8188 if (batchable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8189 {
AzureIoTClient 28:add19eb7defa 8190 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8191 }
AzureIoTClient 28:add19eb7defa 8192 else
AzureIoTClient 28:add19eb7defa 8193 {
AzureIoTClient 28:add19eb7defa 8194 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 10, batchable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8195 {
AzureIoTClient 28:add19eb7defa 8196 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8197 }
AzureIoTClient 28:add19eb7defa 8198 else
AzureIoTClient 28:add19eb7defa 8199 {
AzureIoTClient 28:add19eb7defa 8200 result = 0;
AzureIoTClient 28:add19eb7defa 8201 }
AzureIoTClient 28:add19eb7defa 8202
AzureIoTClient 28:add19eb7defa 8203 amqpvalue_destroy(batchable_amqp_value);
AzureIoTClient 28:add19eb7defa 8204 }
AzureIoTClient 28:add19eb7defa 8205 }
AzureIoTClient 28:add19eb7defa 8206
AzureIoTClient 28:add19eb7defa 8207 return result;
Azure.IoT Build 0:6ae2f7bca550 8208 }
Azure.IoT Build 0:6ae2f7bca550 8209
Azure.IoT Build 0:6ae2f7bca550 8210
Azure.IoT Build 0:6ae2f7bca550 8211 /* disposition */
Azure.IoT Build 0:6ae2f7bca550 8212
Azure.IoT Build 0:6ae2f7bca550 8213 typedef struct DISPOSITION_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 8214 {
AzureIoTClient 28:add19eb7defa 8215 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 8216 } DISPOSITION_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 8217
Azure.IoT Build 0:6ae2f7bca550 8218 static DISPOSITION_HANDLE disposition_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 8219 {
AzureIoTClient 28:add19eb7defa 8220 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8221 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8222 {
AzureIoTClient 28:add19eb7defa 8223 disposition_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 8224 }
AzureIoTClient 28:add19eb7defa 8225
AzureIoTClient 28:add19eb7defa 8226 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8227 }
Azure.IoT Build 0:6ae2f7bca550 8228
Azure.IoT Build 0:6ae2f7bca550 8229 DISPOSITION_HANDLE disposition_create(role role_value, delivery_number first_value)
Azure.IoT Build 0:6ae2f7bca550 8230 {
AzureIoTClient 28:add19eb7defa 8231 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8232 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8233 {
AzureIoTClient 28:add19eb7defa 8234 disposition_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(21);
AzureIoTClient 28:add19eb7defa 8235 if (disposition_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 8236 {
AzureIoTClient 28:add19eb7defa 8237 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8238 disposition_instance = NULL;
AzureIoTClient 28:add19eb7defa 8239 }
AzureIoTClient 28:add19eb7defa 8240 else
AzureIoTClient 28:add19eb7defa 8241 {
AzureIoTClient 28:add19eb7defa 8242 AMQP_VALUE role_amqp_value;
AzureIoTClient 28:add19eb7defa 8243 AMQP_VALUE first_amqp_value;
AzureIoTClient 28:add19eb7defa 8244 int result = 0;
AzureIoTClient 28:add19eb7defa 8245
AzureIoTClient 28:add19eb7defa 8246 role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 8247 if ((result == 0) && (amqpvalue_set_composite_item(disposition_instance->composite_value, 0, role_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 8248 {
AzureIoTClient 28:add19eb7defa 8249 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8250 }
AzureIoTClient 28:add19eb7defa 8251 first_amqp_value = amqpvalue_create_delivery_number(first_value);
AzureIoTClient 28:add19eb7defa 8252 if ((result == 0) && (amqpvalue_set_composite_item(disposition_instance->composite_value, 1, first_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 8253 {
AzureIoTClient 28:add19eb7defa 8254 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8255 }
AzureIoTClient 28:add19eb7defa 8256
AzureIoTClient 28:add19eb7defa 8257 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 8258 amqpvalue_destroy(first_amqp_value);
AzureIoTClient 28:add19eb7defa 8259 }
AzureIoTClient 28:add19eb7defa 8260 }
AzureIoTClient 28:add19eb7defa 8261
AzureIoTClient 28:add19eb7defa 8262 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8263 }
Azure.IoT Build 0:6ae2f7bca550 8264
Azure.IoT Build 0:6ae2f7bca550 8265 DISPOSITION_HANDLE disposition_clone(DISPOSITION_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 8266 {
AzureIoTClient 28:add19eb7defa 8267 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8268 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8269 {
AzureIoTClient 28:add19eb7defa 8270 disposition_instance->composite_value = amqpvalue_clone(((DISPOSITION_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 8271 if (disposition_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 8272 {
AzureIoTClient 28:add19eb7defa 8273 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8274 disposition_instance = NULL;
AzureIoTClient 28:add19eb7defa 8275 }
AzureIoTClient 28:add19eb7defa 8276 }
AzureIoTClient 28:add19eb7defa 8277
AzureIoTClient 28:add19eb7defa 8278 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8279 }
Azure.IoT Build 0:6ae2f7bca550 8280
Azure.IoT Build 0:6ae2f7bca550 8281 void disposition_destroy(DISPOSITION_HANDLE disposition)
Azure.IoT Build 0:6ae2f7bca550 8282 {
AzureIoTClient 28:add19eb7defa 8283 if (disposition != NULL)
AzureIoTClient 28:add19eb7defa 8284 {
AzureIoTClient 28:add19eb7defa 8285 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8286 amqpvalue_destroy(disposition_instance->composite_value);
AzureIoTClient 28:add19eb7defa 8287 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8288 }
Azure.IoT Build 0:6ae2f7bca550 8289 }
Azure.IoT Build 0:6ae2f7bca550 8290
Azure.IoT Build 0:6ae2f7bca550 8291 AMQP_VALUE amqpvalue_create_disposition(DISPOSITION_HANDLE disposition)
Azure.IoT Build 0:6ae2f7bca550 8292 {
AzureIoTClient 28:add19eb7defa 8293 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 8294
AzureIoTClient 28:add19eb7defa 8295 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8296 {
AzureIoTClient 28:add19eb7defa 8297 result = NULL;
AzureIoTClient 28:add19eb7defa 8298 }
AzureIoTClient 28:add19eb7defa 8299 else
AzureIoTClient 28:add19eb7defa 8300 {
AzureIoTClient 28:add19eb7defa 8301 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8302 result = amqpvalue_clone(disposition_instance->composite_value);
AzureIoTClient 28:add19eb7defa 8303 }
AzureIoTClient 28:add19eb7defa 8304
AzureIoTClient 28:add19eb7defa 8305 return result;
Azure.IoT Build 0:6ae2f7bca550 8306 }
Azure.IoT Build 0:6ae2f7bca550 8307
Azure.IoT Build 0:6ae2f7bca550 8308 bool is_disposition_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 8309 {
AzureIoTClient 28:add19eb7defa 8310 bool result;
AzureIoTClient 28:add19eb7defa 8311
AzureIoTClient 28:add19eb7defa 8312 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 8313 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 8314 (descriptor_ulong == 21))
AzureIoTClient 28:add19eb7defa 8315 {
AzureIoTClient 28:add19eb7defa 8316 result = true;
AzureIoTClient 28:add19eb7defa 8317 }
AzureIoTClient 28:add19eb7defa 8318 else
AzureIoTClient 28:add19eb7defa 8319 {
AzureIoTClient 28:add19eb7defa 8320 result = false;
AzureIoTClient 28:add19eb7defa 8321 }
AzureIoTClient 28:add19eb7defa 8322
AzureIoTClient 28:add19eb7defa 8323 return result;
Azure.IoT Build 0:6ae2f7bca550 8324 }
Azure.IoT Build 0:6ae2f7bca550 8325
Azure.IoT Build 0:6ae2f7bca550 8326
Azure.IoT Build 0:6ae2f7bca550 8327 int amqpvalue_get_disposition(AMQP_VALUE value, DISPOSITION_HANDLE* disposition_handle)
Azure.IoT Build 0:6ae2f7bca550 8328 {
AzureIoTClient 28:add19eb7defa 8329 int result;
AzureIoTClient 28:add19eb7defa 8330 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition_create_internal();
AzureIoTClient 28:add19eb7defa 8331 *disposition_handle = disposition_instance;
AzureIoTClient 28:add19eb7defa 8332 if (*disposition_handle == NULL)
AzureIoTClient 28:add19eb7defa 8333 {
AzureIoTClient 28:add19eb7defa 8334 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8335 }
AzureIoTClient 28:add19eb7defa 8336 else
AzureIoTClient 28:add19eb7defa 8337 {
AzureIoTClient 28:add19eb7defa 8338 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 8339 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 8340 {
AzureIoTClient 28:add19eb7defa 8341 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8342 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8343 }
AzureIoTClient 28:add19eb7defa 8344 else
AzureIoTClient 28:add19eb7defa 8345 {
AzureIoTClient 23:1111ee8bcba4 8346 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 8347 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8348 {
AzureIoTClient 23:1111ee8bcba4 8349 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8350 }
AzureIoTClient 23:1111ee8bcba4 8351 else
AzureIoTClient 23:1111ee8bcba4 8352 {
AzureIoTClient 28:add19eb7defa 8353 do
AzureIoTClient 28:add19eb7defa 8354 {
AzureIoTClient 28:add19eb7defa 8355 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 8356 /* role */
AzureIoTClient 28:add19eb7defa 8357 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 8358 {
AzureIoTClient 23:1111ee8bcba4 8359 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 8360 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8361 {
AzureIoTClient 28:add19eb7defa 8362 {
AzureIoTClient 28:add19eb7defa 8363 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8364 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8365 break;
AzureIoTClient 28:add19eb7defa 8366 }
AzureIoTClient 28:add19eb7defa 8367 }
AzureIoTClient 28:add19eb7defa 8368 else
AzureIoTClient 28:add19eb7defa 8369 {
AzureIoTClient 28:add19eb7defa 8370 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8371 {
AzureIoTClient 28:add19eb7defa 8372 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8373 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8374 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8375 break;
AzureIoTClient 28:add19eb7defa 8376 }
AzureIoTClient 28:add19eb7defa 8377 else
AzureIoTClient 28:add19eb7defa 8378 {
AzureIoTClient 28:add19eb7defa 8379 role role;
AzureIoTClient 28:add19eb7defa 8380 if (amqpvalue_get_role(item_value, &role) != 0)
AzureIoTClient 28:add19eb7defa 8381 {
AzureIoTClient 28:add19eb7defa 8382 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8383 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8384 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8385 break;
AzureIoTClient 28:add19eb7defa 8386 }
AzureIoTClient 28:add19eb7defa 8387 }
AzureIoTClient 28:add19eb7defa 8388
AzureIoTClient 28:add19eb7defa 8389 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8390 }
AzureIoTClient 28:add19eb7defa 8391 }
AzureIoTClient 28:add19eb7defa 8392 else
AzureIoTClient 28:add19eb7defa 8393 {
AzureIoTClient 28:add19eb7defa 8394 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8395 }
AzureIoTClient 28:add19eb7defa 8396 /* first */
AzureIoTClient 28:add19eb7defa 8397 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 8398 {
AzureIoTClient 23:1111ee8bcba4 8399 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 8400 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8401 {
AzureIoTClient 28:add19eb7defa 8402 {
AzureIoTClient 28:add19eb7defa 8403 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8404 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8405 break;
AzureIoTClient 28:add19eb7defa 8406 }
AzureIoTClient 28:add19eb7defa 8407 }
AzureIoTClient 28:add19eb7defa 8408 else
AzureIoTClient 28:add19eb7defa 8409 {
AzureIoTClient 28:add19eb7defa 8410 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8411 {
AzureIoTClient 28:add19eb7defa 8412 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8413 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8414 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8415 break;
AzureIoTClient 28:add19eb7defa 8416 }
AzureIoTClient 28:add19eb7defa 8417 else
AzureIoTClient 28:add19eb7defa 8418 {
AzureIoTClient 28:add19eb7defa 8419 delivery_number first;
AzureIoTClient 28:add19eb7defa 8420 if (amqpvalue_get_delivery_number(item_value, &first) != 0)
AzureIoTClient 28:add19eb7defa 8421 {
AzureIoTClient 28:add19eb7defa 8422 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8423 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8424 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8425 break;
AzureIoTClient 28:add19eb7defa 8426 }
AzureIoTClient 28:add19eb7defa 8427 }
AzureIoTClient 28:add19eb7defa 8428
AzureIoTClient 28:add19eb7defa 8429 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8430 }
AzureIoTClient 28:add19eb7defa 8431 }
AzureIoTClient 28:add19eb7defa 8432 else
AzureIoTClient 28:add19eb7defa 8433 {
AzureIoTClient 28:add19eb7defa 8434 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8435 }
AzureIoTClient 28:add19eb7defa 8436 /* last */
AzureIoTClient 28:add19eb7defa 8437 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 8438 {
AzureIoTClient 23:1111ee8bcba4 8439 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 8440 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8441 {
AzureIoTClient 28:add19eb7defa 8442 /* do nothing */
AzureIoTClient 28:add19eb7defa 8443 }
AzureIoTClient 28:add19eb7defa 8444 else
AzureIoTClient 28:add19eb7defa 8445 {
AzureIoTClient 28:add19eb7defa 8446 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8447 {
AzureIoTClient 28:add19eb7defa 8448 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8449 }
AzureIoTClient 28:add19eb7defa 8450 else
AzureIoTClient 28:add19eb7defa 8451 {
AzureIoTClient 28:add19eb7defa 8452 delivery_number last;
AzureIoTClient 28:add19eb7defa 8453 if (amqpvalue_get_delivery_number(item_value, &last) != 0)
AzureIoTClient 28:add19eb7defa 8454 {
AzureIoTClient 28:add19eb7defa 8455 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8456 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8457 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8458 break;
AzureIoTClient 28:add19eb7defa 8459 }
AzureIoTClient 28:add19eb7defa 8460 }
AzureIoTClient 28:add19eb7defa 8461
AzureIoTClient 28:add19eb7defa 8462 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8463 }
AzureIoTClient 28:add19eb7defa 8464 }
AzureIoTClient 28:add19eb7defa 8465 /* settled */
AzureIoTClient 28:add19eb7defa 8466 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 8467 {
AzureIoTClient 23:1111ee8bcba4 8468 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 8469 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8470 {
AzureIoTClient 28:add19eb7defa 8471 /* do nothing */
AzureIoTClient 28:add19eb7defa 8472 }
AzureIoTClient 28:add19eb7defa 8473 else
AzureIoTClient 28:add19eb7defa 8474 {
AzureIoTClient 28:add19eb7defa 8475 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8476 {
AzureIoTClient 28:add19eb7defa 8477 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8478 }
AzureIoTClient 28:add19eb7defa 8479 else
AzureIoTClient 28:add19eb7defa 8480 {
AzureIoTClient 28:add19eb7defa 8481 bool settled;
AzureIoTClient 28:add19eb7defa 8482 if (amqpvalue_get_boolean(item_value, &settled) != 0)
AzureIoTClient 28:add19eb7defa 8483 {
AzureIoTClient 28:add19eb7defa 8484 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8485 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8486 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8487 break;
AzureIoTClient 28:add19eb7defa 8488 }
AzureIoTClient 28:add19eb7defa 8489 }
AzureIoTClient 28:add19eb7defa 8490
AzureIoTClient 28:add19eb7defa 8491 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8492 }
AzureIoTClient 28:add19eb7defa 8493 }
AzureIoTClient 28:add19eb7defa 8494 /* state */
AzureIoTClient 28:add19eb7defa 8495 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 8496 {
AzureIoTClient 23:1111ee8bcba4 8497 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 8498 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8499 {
AzureIoTClient 28:add19eb7defa 8500 /* do nothing */
AzureIoTClient 28:add19eb7defa 8501 }
AzureIoTClient 28:add19eb7defa 8502 else
AzureIoTClient 28:add19eb7defa 8503 {
AzureIoTClient 28:add19eb7defa 8504 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8505 }
AzureIoTClient 28:add19eb7defa 8506 }
AzureIoTClient 28:add19eb7defa 8507 /* batchable */
AzureIoTClient 28:add19eb7defa 8508 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 8509 {
AzureIoTClient 23:1111ee8bcba4 8510 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 8511 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8512 {
AzureIoTClient 28:add19eb7defa 8513 /* do nothing */
AzureIoTClient 28:add19eb7defa 8514 }
AzureIoTClient 28:add19eb7defa 8515 else
AzureIoTClient 28:add19eb7defa 8516 {
AzureIoTClient 28:add19eb7defa 8517 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8518 {
AzureIoTClient 28:add19eb7defa 8519 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8520 }
AzureIoTClient 28:add19eb7defa 8521 else
AzureIoTClient 28:add19eb7defa 8522 {
AzureIoTClient 28:add19eb7defa 8523 bool batchable;
AzureIoTClient 28:add19eb7defa 8524 if (amqpvalue_get_boolean(item_value, &batchable) != 0)
AzureIoTClient 28:add19eb7defa 8525 {
AzureIoTClient 28:add19eb7defa 8526 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8527 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8528 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8529 break;
AzureIoTClient 28:add19eb7defa 8530 }
AzureIoTClient 28:add19eb7defa 8531 }
AzureIoTClient 28:add19eb7defa 8532
AzureIoTClient 28:add19eb7defa 8533 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8534 }
AzureIoTClient 28:add19eb7defa 8535 }
AzureIoTClient 28:add19eb7defa 8536
AzureIoTClient 28:add19eb7defa 8537 disposition_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 8538
AzureIoTClient 28:add19eb7defa 8539 result = 0;
AzureIoTClient 28:add19eb7defa 8540 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 8541 }
AzureIoTClient 28:add19eb7defa 8542 }
AzureIoTClient 28:add19eb7defa 8543 }
AzureIoTClient 28:add19eb7defa 8544
AzureIoTClient 28:add19eb7defa 8545 return result;
Azure.IoT Build 0:6ae2f7bca550 8546 }
Azure.IoT Build 0:6ae2f7bca550 8547
Azure.IoT Build 0:6ae2f7bca550 8548 int disposition_get_role(DISPOSITION_HANDLE disposition, role* role_value)
Azure.IoT Build 0:6ae2f7bca550 8549 {
AzureIoTClient 28:add19eb7defa 8550 int result;
AzureIoTClient 28:add19eb7defa 8551
AzureIoTClient 28:add19eb7defa 8552 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8553 {
AzureIoTClient 28:add19eb7defa 8554 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8555 }
AzureIoTClient 28:add19eb7defa 8556 else
AzureIoTClient 28:add19eb7defa 8557 {
AzureIoTClient 28:add19eb7defa 8558 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8559 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8560 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8561 {
AzureIoTClient 23:1111ee8bcba4 8562 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8563 }
AzureIoTClient 23:1111ee8bcba4 8564 else
AzureIoTClient 23:1111ee8bcba4 8565 {
AzureIoTClient 23:1111ee8bcba4 8566 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 8567 {
AzureIoTClient 28:add19eb7defa 8568 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8569 }
AzureIoTClient 28:add19eb7defa 8570 else
AzureIoTClient 28:add19eb7defa 8571 {
AzureIoTClient 28:add19eb7defa 8572 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 8573 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8574 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8575 {
AzureIoTClient 28:add19eb7defa 8576 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8577 }
AzureIoTClient 28:add19eb7defa 8578 else
AzureIoTClient 28:add19eb7defa 8579 {
AzureIoTClient 43:4c1e4e94cdd3 8580 int get_single_value_result = amqpvalue_get_role(item_value, role_value);
AzureIoTClient 43:4c1e4e94cdd3 8581 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 8582 {
AzureIoTClient 28:add19eb7defa 8583 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8584 }
AzureIoTClient 28:add19eb7defa 8585 else
AzureIoTClient 28:add19eb7defa 8586 {
AzureIoTClient 28:add19eb7defa 8587 result = 0;
AzureIoTClient 28:add19eb7defa 8588 }
AzureIoTClient 28:add19eb7defa 8589 }
AzureIoTClient 28:add19eb7defa 8590 }
AzureIoTClient 28:add19eb7defa 8591 }
AzureIoTClient 28:add19eb7defa 8592 }
AzureIoTClient 28:add19eb7defa 8593
AzureIoTClient 28:add19eb7defa 8594 return result;
Azure.IoT Build 0:6ae2f7bca550 8595 }
Azure.IoT Build 0:6ae2f7bca550 8596
Azure.IoT Build 0:6ae2f7bca550 8597 int disposition_set_role(DISPOSITION_HANDLE disposition, role role_value)
Azure.IoT Build 0:6ae2f7bca550 8598 {
AzureIoTClient 28:add19eb7defa 8599 int result;
AzureIoTClient 28:add19eb7defa 8600
AzureIoTClient 28:add19eb7defa 8601 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8602 {
AzureIoTClient 28:add19eb7defa 8603 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8604 }
AzureIoTClient 28:add19eb7defa 8605 else
AzureIoTClient 28:add19eb7defa 8606 {
AzureIoTClient 28:add19eb7defa 8607 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8608 AMQP_VALUE role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 8609 if (role_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8610 {
AzureIoTClient 28:add19eb7defa 8611 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8612 }
AzureIoTClient 28:add19eb7defa 8613 else
AzureIoTClient 28:add19eb7defa 8614 {
AzureIoTClient 28:add19eb7defa 8615 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 0, role_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8616 {
AzureIoTClient 28:add19eb7defa 8617 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8618 }
AzureIoTClient 28:add19eb7defa 8619 else
AzureIoTClient 28:add19eb7defa 8620 {
AzureIoTClient 28:add19eb7defa 8621 result = 0;
AzureIoTClient 28:add19eb7defa 8622 }
AzureIoTClient 28:add19eb7defa 8623
AzureIoTClient 28:add19eb7defa 8624 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 8625 }
AzureIoTClient 28:add19eb7defa 8626 }
AzureIoTClient 28:add19eb7defa 8627
AzureIoTClient 28:add19eb7defa 8628 return result;
Azure.IoT Build 0:6ae2f7bca550 8629 }
Azure.IoT Build 0:6ae2f7bca550 8630
Azure.IoT Build 0:6ae2f7bca550 8631 int disposition_get_first(DISPOSITION_HANDLE disposition, delivery_number* first_value)
Azure.IoT Build 0:6ae2f7bca550 8632 {
AzureIoTClient 28:add19eb7defa 8633 int result;
AzureIoTClient 28:add19eb7defa 8634
AzureIoTClient 28:add19eb7defa 8635 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8636 {
AzureIoTClient 28:add19eb7defa 8637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8638 }
AzureIoTClient 28:add19eb7defa 8639 else
AzureIoTClient 28:add19eb7defa 8640 {
AzureIoTClient 28:add19eb7defa 8641 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8642 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8643 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8644 {
AzureIoTClient 23:1111ee8bcba4 8645 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8646 }
AzureIoTClient 23:1111ee8bcba4 8647 else
AzureIoTClient 23:1111ee8bcba4 8648 {
AzureIoTClient 23:1111ee8bcba4 8649 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 8650 {
AzureIoTClient 28:add19eb7defa 8651 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8652 }
AzureIoTClient 28:add19eb7defa 8653 else
AzureIoTClient 28:add19eb7defa 8654 {
AzureIoTClient 28:add19eb7defa 8655 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 8656 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8657 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8658 {
AzureIoTClient 28:add19eb7defa 8659 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8660 }
AzureIoTClient 28:add19eb7defa 8661 else
AzureIoTClient 28:add19eb7defa 8662 {
AzureIoTClient 43:4c1e4e94cdd3 8663 int get_single_value_result = amqpvalue_get_delivery_number(item_value, first_value);
AzureIoTClient 43:4c1e4e94cdd3 8664 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 8665 {
AzureIoTClient 28:add19eb7defa 8666 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8667 }
AzureIoTClient 28:add19eb7defa 8668 else
AzureIoTClient 28:add19eb7defa 8669 {
AzureIoTClient 28:add19eb7defa 8670 result = 0;
AzureIoTClient 28:add19eb7defa 8671 }
AzureIoTClient 28:add19eb7defa 8672 }
AzureIoTClient 28:add19eb7defa 8673 }
AzureIoTClient 28:add19eb7defa 8674 }
AzureIoTClient 28:add19eb7defa 8675 }
AzureIoTClient 28:add19eb7defa 8676
AzureIoTClient 28:add19eb7defa 8677 return result;
Azure.IoT Build 0:6ae2f7bca550 8678 }
Azure.IoT Build 0:6ae2f7bca550 8679
Azure.IoT Build 0:6ae2f7bca550 8680 int disposition_set_first(DISPOSITION_HANDLE disposition, delivery_number first_value)
Azure.IoT Build 0:6ae2f7bca550 8681 {
AzureIoTClient 28:add19eb7defa 8682 int result;
AzureIoTClient 28:add19eb7defa 8683
AzureIoTClient 28:add19eb7defa 8684 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8685 {
AzureIoTClient 28:add19eb7defa 8686 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8687 }
AzureIoTClient 28:add19eb7defa 8688 else
AzureIoTClient 28:add19eb7defa 8689 {
AzureIoTClient 28:add19eb7defa 8690 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8691 AMQP_VALUE first_amqp_value = amqpvalue_create_delivery_number(first_value);
AzureIoTClient 28:add19eb7defa 8692 if (first_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8693 {
AzureIoTClient 28:add19eb7defa 8694 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8695 }
AzureIoTClient 28:add19eb7defa 8696 else
AzureIoTClient 28:add19eb7defa 8697 {
AzureIoTClient 28:add19eb7defa 8698 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 1, first_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8699 {
AzureIoTClient 28:add19eb7defa 8700 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8701 }
AzureIoTClient 28:add19eb7defa 8702 else
AzureIoTClient 28:add19eb7defa 8703 {
AzureIoTClient 28:add19eb7defa 8704 result = 0;
AzureIoTClient 28:add19eb7defa 8705 }
AzureIoTClient 28:add19eb7defa 8706
AzureIoTClient 28:add19eb7defa 8707 amqpvalue_destroy(first_amqp_value);
AzureIoTClient 28:add19eb7defa 8708 }
AzureIoTClient 28:add19eb7defa 8709 }
AzureIoTClient 28:add19eb7defa 8710
AzureIoTClient 28:add19eb7defa 8711 return result;
Azure.IoT Build 0:6ae2f7bca550 8712 }
Azure.IoT Build 0:6ae2f7bca550 8713
Azure.IoT Build 0:6ae2f7bca550 8714 int disposition_get_last(DISPOSITION_HANDLE disposition, delivery_number* last_value)
Azure.IoT Build 0:6ae2f7bca550 8715 {
AzureIoTClient 28:add19eb7defa 8716 int result;
AzureIoTClient 28:add19eb7defa 8717
AzureIoTClient 28:add19eb7defa 8718 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8719 {
AzureIoTClient 28:add19eb7defa 8720 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8721 }
AzureIoTClient 28:add19eb7defa 8722 else
AzureIoTClient 28:add19eb7defa 8723 {
AzureIoTClient 28:add19eb7defa 8724 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8725 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8726 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8727 {
AzureIoTClient 23:1111ee8bcba4 8728 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8729 }
AzureIoTClient 23:1111ee8bcba4 8730 else
AzureIoTClient 23:1111ee8bcba4 8731 {
AzureIoTClient 23:1111ee8bcba4 8732 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 8733 {
AzureIoTClient 28:add19eb7defa 8734 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8735 }
AzureIoTClient 28:add19eb7defa 8736 else
AzureIoTClient 28:add19eb7defa 8737 {
AzureIoTClient 28:add19eb7defa 8738 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 8739 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8740 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8741 {
AzureIoTClient 28:add19eb7defa 8742 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8743 }
AzureIoTClient 28:add19eb7defa 8744 else
AzureIoTClient 28:add19eb7defa 8745 {
AzureIoTClient 43:4c1e4e94cdd3 8746 int get_single_value_result = amqpvalue_get_delivery_number(item_value, last_value);
AzureIoTClient 43:4c1e4e94cdd3 8747 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 8748 {
AzureIoTClient 28:add19eb7defa 8749 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8750 }
AzureIoTClient 28:add19eb7defa 8751 else
AzureIoTClient 28:add19eb7defa 8752 {
AzureIoTClient 28:add19eb7defa 8753 result = 0;
AzureIoTClient 28:add19eb7defa 8754 }
AzureIoTClient 28:add19eb7defa 8755 }
AzureIoTClient 28:add19eb7defa 8756 }
AzureIoTClient 28:add19eb7defa 8757 }
AzureIoTClient 28:add19eb7defa 8758 }
AzureIoTClient 28:add19eb7defa 8759
AzureIoTClient 28:add19eb7defa 8760 return result;
Azure.IoT Build 0:6ae2f7bca550 8761 }
Azure.IoT Build 0:6ae2f7bca550 8762
Azure.IoT Build 0:6ae2f7bca550 8763 int disposition_set_last(DISPOSITION_HANDLE disposition, delivery_number last_value)
Azure.IoT Build 0:6ae2f7bca550 8764 {
AzureIoTClient 28:add19eb7defa 8765 int result;
AzureIoTClient 28:add19eb7defa 8766
AzureIoTClient 28:add19eb7defa 8767 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8768 {
AzureIoTClient 28:add19eb7defa 8769 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8770 }
AzureIoTClient 28:add19eb7defa 8771 else
AzureIoTClient 28:add19eb7defa 8772 {
AzureIoTClient 28:add19eb7defa 8773 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8774 AMQP_VALUE last_amqp_value = amqpvalue_create_delivery_number(last_value);
AzureIoTClient 28:add19eb7defa 8775 if (last_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8776 {
AzureIoTClient 28:add19eb7defa 8777 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8778 }
AzureIoTClient 28:add19eb7defa 8779 else
AzureIoTClient 28:add19eb7defa 8780 {
AzureIoTClient 28:add19eb7defa 8781 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 2, last_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8782 {
AzureIoTClient 28:add19eb7defa 8783 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8784 }
AzureIoTClient 28:add19eb7defa 8785 else
AzureIoTClient 28:add19eb7defa 8786 {
AzureIoTClient 28:add19eb7defa 8787 result = 0;
AzureIoTClient 28:add19eb7defa 8788 }
AzureIoTClient 28:add19eb7defa 8789
AzureIoTClient 28:add19eb7defa 8790 amqpvalue_destroy(last_amqp_value);
AzureIoTClient 28:add19eb7defa 8791 }
AzureIoTClient 28:add19eb7defa 8792 }
AzureIoTClient 28:add19eb7defa 8793
AzureIoTClient 28:add19eb7defa 8794 return result;
Azure.IoT Build 0:6ae2f7bca550 8795 }
Azure.IoT Build 0:6ae2f7bca550 8796
Azure.IoT Build 0:6ae2f7bca550 8797 int disposition_get_settled(DISPOSITION_HANDLE disposition, bool* settled_value)
Azure.IoT Build 0:6ae2f7bca550 8798 {
AzureIoTClient 28:add19eb7defa 8799 int result;
AzureIoTClient 28:add19eb7defa 8800
AzureIoTClient 28:add19eb7defa 8801 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8802 {
AzureIoTClient 28:add19eb7defa 8803 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8804 }
AzureIoTClient 28:add19eb7defa 8805 else
AzureIoTClient 28:add19eb7defa 8806 {
AzureIoTClient 28:add19eb7defa 8807 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8808 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8809 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8810 {
AzureIoTClient 23:1111ee8bcba4 8811 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8812 }
AzureIoTClient 23:1111ee8bcba4 8813 else
AzureIoTClient 23:1111ee8bcba4 8814 {
AzureIoTClient 23:1111ee8bcba4 8815 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 8816 {
AzureIoTClient 28:add19eb7defa 8817 *settled_value = false;
AzureIoTClient 28:add19eb7defa 8818 result = 0;
AzureIoTClient 28:add19eb7defa 8819 }
AzureIoTClient 28:add19eb7defa 8820 else
AzureIoTClient 28:add19eb7defa 8821 {
AzureIoTClient 28:add19eb7defa 8822 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 8823 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8824 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8825 {
AzureIoTClient 28:add19eb7defa 8826 *settled_value = false;
AzureIoTClient 28:add19eb7defa 8827 result = 0;
AzureIoTClient 28:add19eb7defa 8828 }
AzureIoTClient 28:add19eb7defa 8829 else
AzureIoTClient 28:add19eb7defa 8830 {
AzureIoTClient 43:4c1e4e94cdd3 8831 int get_single_value_result = amqpvalue_get_boolean(item_value, settled_value);
AzureIoTClient 43:4c1e4e94cdd3 8832 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 8833 {
AzureIoTClient 23:1111ee8bcba4 8834 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8835 {
AzureIoTClient 28:add19eb7defa 8836 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8837 }
AzureIoTClient 28:add19eb7defa 8838 else
AzureIoTClient 28:add19eb7defa 8839 {
AzureIoTClient 28:add19eb7defa 8840 *settled_value = false;
AzureIoTClient 23:1111ee8bcba4 8841 result = 0;
AzureIoTClient 23:1111ee8bcba4 8842 }
AzureIoTClient 28:add19eb7defa 8843 }
AzureIoTClient 28:add19eb7defa 8844 else
AzureIoTClient 28:add19eb7defa 8845 {
AzureIoTClient 28:add19eb7defa 8846 result = 0;
AzureIoTClient 28:add19eb7defa 8847 }
AzureIoTClient 28:add19eb7defa 8848 }
AzureIoTClient 28:add19eb7defa 8849 }
AzureIoTClient 28:add19eb7defa 8850 }
AzureIoTClient 28:add19eb7defa 8851 }
AzureIoTClient 28:add19eb7defa 8852
AzureIoTClient 28:add19eb7defa 8853 return result;
Azure.IoT Build 0:6ae2f7bca550 8854 }
Azure.IoT Build 0:6ae2f7bca550 8855
Azure.IoT Build 0:6ae2f7bca550 8856 int disposition_set_settled(DISPOSITION_HANDLE disposition, bool settled_value)
Azure.IoT Build 0:6ae2f7bca550 8857 {
AzureIoTClient 28:add19eb7defa 8858 int result;
AzureIoTClient 28:add19eb7defa 8859
AzureIoTClient 28:add19eb7defa 8860 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8861 {
AzureIoTClient 28:add19eb7defa 8862 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8863 }
AzureIoTClient 28:add19eb7defa 8864 else
AzureIoTClient 28:add19eb7defa 8865 {
AzureIoTClient 28:add19eb7defa 8866 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8867 AMQP_VALUE settled_amqp_value = amqpvalue_create_boolean(settled_value);
AzureIoTClient 28:add19eb7defa 8868 if (settled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8869 {
AzureIoTClient 28:add19eb7defa 8870 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8871 }
AzureIoTClient 28:add19eb7defa 8872 else
AzureIoTClient 28:add19eb7defa 8873 {
AzureIoTClient 28:add19eb7defa 8874 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 3, settled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8875 {
AzureIoTClient 28:add19eb7defa 8876 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8877 }
AzureIoTClient 28:add19eb7defa 8878 else
AzureIoTClient 28:add19eb7defa 8879 {
AzureIoTClient 28:add19eb7defa 8880 result = 0;
AzureIoTClient 28:add19eb7defa 8881 }
AzureIoTClient 28:add19eb7defa 8882
AzureIoTClient 28:add19eb7defa 8883 amqpvalue_destroy(settled_amqp_value);
AzureIoTClient 28:add19eb7defa 8884 }
AzureIoTClient 28:add19eb7defa 8885 }
AzureIoTClient 28:add19eb7defa 8886
AzureIoTClient 28:add19eb7defa 8887 return result;
Azure.IoT Build 0:6ae2f7bca550 8888 }
Azure.IoT Build 0:6ae2f7bca550 8889
Azure.IoT Build 0:6ae2f7bca550 8890 int disposition_get_state(DISPOSITION_HANDLE disposition, AMQP_VALUE* state_value)
Azure.IoT Build 0:6ae2f7bca550 8891 {
AzureIoTClient 28:add19eb7defa 8892 int result;
AzureIoTClient 28:add19eb7defa 8893
AzureIoTClient 28:add19eb7defa 8894 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8895 {
AzureIoTClient 28:add19eb7defa 8896 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8897 }
AzureIoTClient 28:add19eb7defa 8898 else
AzureIoTClient 28:add19eb7defa 8899 {
AzureIoTClient 28:add19eb7defa 8900 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8901 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8902 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8903 {
AzureIoTClient 23:1111ee8bcba4 8904 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8905 }
AzureIoTClient 23:1111ee8bcba4 8906 else
AzureIoTClient 23:1111ee8bcba4 8907 {
AzureIoTClient 23:1111ee8bcba4 8908 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 8909 {
AzureIoTClient 28:add19eb7defa 8910 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8911 }
AzureIoTClient 28:add19eb7defa 8912 else
AzureIoTClient 28:add19eb7defa 8913 {
AzureIoTClient 28:add19eb7defa 8914 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 8915 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8916 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8917 {
AzureIoTClient 28:add19eb7defa 8918 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8919 }
AzureIoTClient 28:add19eb7defa 8920 else
AzureIoTClient 28:add19eb7defa 8921 {
AzureIoTClient 28:add19eb7defa 8922 *state_value = item_value;
AzureIoTClient 28:add19eb7defa 8923 result = 0;
AzureIoTClient 28:add19eb7defa 8924 }
AzureIoTClient 28:add19eb7defa 8925 }
AzureIoTClient 28:add19eb7defa 8926 }
AzureIoTClient 28:add19eb7defa 8927 }
AzureIoTClient 28:add19eb7defa 8928
AzureIoTClient 28:add19eb7defa 8929 return result;
Azure.IoT Build 0:6ae2f7bca550 8930 }
Azure.IoT Build 0:6ae2f7bca550 8931
Azure.IoT Build 0:6ae2f7bca550 8932 int disposition_set_state(DISPOSITION_HANDLE disposition, AMQP_VALUE state_value)
Azure.IoT Build 0:6ae2f7bca550 8933 {
AzureIoTClient 28:add19eb7defa 8934 int result;
AzureIoTClient 28:add19eb7defa 8935
AzureIoTClient 28:add19eb7defa 8936 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8937 {
AzureIoTClient 28:add19eb7defa 8938 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8939 }
AzureIoTClient 28:add19eb7defa 8940 else
AzureIoTClient 28:add19eb7defa 8941 {
AzureIoTClient 28:add19eb7defa 8942 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8943 AMQP_VALUE state_amqp_value;
AzureIoTClient 23:1111ee8bcba4 8944 if (state_value == NULL)
AzureIoTClient 23:1111ee8bcba4 8945 {
AzureIoTClient 23:1111ee8bcba4 8946 state_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 8947 }
AzureIoTClient 23:1111ee8bcba4 8948 else
AzureIoTClient 23:1111ee8bcba4 8949 {
AzureIoTClient 23:1111ee8bcba4 8950 state_amqp_value = amqpvalue_clone(state_value);
AzureIoTClient 23:1111ee8bcba4 8951 }
AzureIoTClient 28:add19eb7defa 8952 if (state_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8953 {
AzureIoTClient 28:add19eb7defa 8954 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8955 }
AzureIoTClient 28:add19eb7defa 8956 else
AzureIoTClient 28:add19eb7defa 8957 {
AzureIoTClient 28:add19eb7defa 8958 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 4, state_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8959 {
AzureIoTClient 28:add19eb7defa 8960 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8961 }
AzureIoTClient 28:add19eb7defa 8962 else
AzureIoTClient 28:add19eb7defa 8963 {
AzureIoTClient 28:add19eb7defa 8964 result = 0;
AzureIoTClient 28:add19eb7defa 8965 }
AzureIoTClient 28:add19eb7defa 8966
AzureIoTClient 28:add19eb7defa 8967 amqpvalue_destroy(state_amqp_value);
AzureIoTClient 28:add19eb7defa 8968 }
AzureIoTClient 28:add19eb7defa 8969 }
AzureIoTClient 28:add19eb7defa 8970
AzureIoTClient 28:add19eb7defa 8971 return result;
Azure.IoT Build 0:6ae2f7bca550 8972 }
Azure.IoT Build 0:6ae2f7bca550 8973
Azure.IoT Build 0:6ae2f7bca550 8974 int disposition_get_batchable(DISPOSITION_HANDLE disposition, bool* batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8975 {
AzureIoTClient 28:add19eb7defa 8976 int result;
AzureIoTClient 28:add19eb7defa 8977
AzureIoTClient 28:add19eb7defa 8978 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8979 {
AzureIoTClient 28:add19eb7defa 8980 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8981 }
AzureIoTClient 28:add19eb7defa 8982 else
AzureIoTClient 28:add19eb7defa 8983 {
AzureIoTClient 28:add19eb7defa 8984 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8985 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8986 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8987 {
AzureIoTClient 23:1111ee8bcba4 8988 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8989 }
AzureIoTClient 23:1111ee8bcba4 8990 else
AzureIoTClient 23:1111ee8bcba4 8991 {
AzureIoTClient 23:1111ee8bcba4 8992 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 8993 {
AzureIoTClient 28:add19eb7defa 8994 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8995 result = 0;
AzureIoTClient 28:add19eb7defa 8996 }
AzureIoTClient 28:add19eb7defa 8997 else
AzureIoTClient 28:add19eb7defa 8998 {
AzureIoTClient 28:add19eb7defa 8999 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 9000 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9001 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9002 {
AzureIoTClient 28:add19eb7defa 9003 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 9004 result = 0;
AzureIoTClient 28:add19eb7defa 9005 }
AzureIoTClient 28:add19eb7defa 9006 else
AzureIoTClient 28:add19eb7defa 9007 {
AzureIoTClient 43:4c1e4e94cdd3 9008 int get_single_value_result = amqpvalue_get_boolean(item_value, batchable_value);
AzureIoTClient 43:4c1e4e94cdd3 9009 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 9010 {
AzureIoTClient 23:1111ee8bcba4 9011 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 9012 {
AzureIoTClient 28:add19eb7defa 9013 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9014 }
AzureIoTClient 28:add19eb7defa 9015 else
AzureIoTClient 28:add19eb7defa 9016 {
AzureIoTClient 28:add19eb7defa 9017 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 9018 result = 0;
AzureIoTClient 23:1111ee8bcba4 9019 }
AzureIoTClient 28:add19eb7defa 9020 }
AzureIoTClient 28:add19eb7defa 9021 else
AzureIoTClient 28:add19eb7defa 9022 {
AzureIoTClient 28:add19eb7defa 9023 result = 0;
AzureIoTClient 28:add19eb7defa 9024 }
AzureIoTClient 28:add19eb7defa 9025 }
AzureIoTClient 28:add19eb7defa 9026 }
AzureIoTClient 28:add19eb7defa 9027 }
AzureIoTClient 28:add19eb7defa 9028 }
AzureIoTClient 28:add19eb7defa 9029
AzureIoTClient 28:add19eb7defa 9030 return result;
Azure.IoT Build 0:6ae2f7bca550 9031 }
Azure.IoT Build 0:6ae2f7bca550 9032
Azure.IoT Build 0:6ae2f7bca550 9033 int disposition_set_batchable(DISPOSITION_HANDLE disposition, bool batchable_value)
Azure.IoT Build 0:6ae2f7bca550 9034 {
AzureIoTClient 28:add19eb7defa 9035 int result;
AzureIoTClient 28:add19eb7defa 9036
AzureIoTClient 28:add19eb7defa 9037 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 9038 {
AzureIoTClient 28:add19eb7defa 9039 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9040 }
AzureIoTClient 28:add19eb7defa 9041 else
AzureIoTClient 28:add19eb7defa 9042 {
AzureIoTClient 28:add19eb7defa 9043 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 9044 AMQP_VALUE batchable_amqp_value = amqpvalue_create_boolean(batchable_value);
AzureIoTClient 28:add19eb7defa 9045 if (batchable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9046 {
AzureIoTClient 28:add19eb7defa 9047 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9048 }
AzureIoTClient 28:add19eb7defa 9049 else
AzureIoTClient 28:add19eb7defa 9050 {
AzureIoTClient 28:add19eb7defa 9051 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 5, batchable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9052 {
AzureIoTClient 28:add19eb7defa 9053 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9054 }
AzureIoTClient 28:add19eb7defa 9055 else
AzureIoTClient 28:add19eb7defa 9056 {
AzureIoTClient 28:add19eb7defa 9057 result = 0;
AzureIoTClient 28:add19eb7defa 9058 }
AzureIoTClient 28:add19eb7defa 9059
AzureIoTClient 28:add19eb7defa 9060 amqpvalue_destroy(batchable_amqp_value);
AzureIoTClient 28:add19eb7defa 9061 }
AzureIoTClient 28:add19eb7defa 9062 }
AzureIoTClient 28:add19eb7defa 9063
AzureIoTClient 28:add19eb7defa 9064 return result;
Azure.IoT Build 0:6ae2f7bca550 9065 }
Azure.IoT Build 0:6ae2f7bca550 9066
Azure.IoT Build 0:6ae2f7bca550 9067
Azure.IoT Build 0:6ae2f7bca550 9068 /* detach */
Azure.IoT Build 0:6ae2f7bca550 9069
Azure.IoT Build 0:6ae2f7bca550 9070 typedef struct DETACH_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9071 {
AzureIoTClient 28:add19eb7defa 9072 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9073 } DETACH_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9074
Azure.IoT Build 0:6ae2f7bca550 9075 static DETACH_HANDLE detach_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9076 {
AzureIoTClient 28:add19eb7defa 9077 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 9078 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 9079 {
AzureIoTClient 28:add19eb7defa 9080 detach_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 9081 }
AzureIoTClient 28:add19eb7defa 9082
AzureIoTClient 28:add19eb7defa 9083 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 9084 }
Azure.IoT Build 0:6ae2f7bca550 9085
Azure.IoT Build 0:6ae2f7bca550 9086 DETACH_HANDLE detach_create(handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 9087 {
AzureIoTClient 28:add19eb7defa 9088 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 9089 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 9090 {
AzureIoTClient 28:add19eb7defa 9091 detach_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(22);
AzureIoTClient 28:add19eb7defa 9092 if (detach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9093 {
AzureIoTClient 28:add19eb7defa 9094 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9095 detach_instance = NULL;
AzureIoTClient 28:add19eb7defa 9096 }
AzureIoTClient 28:add19eb7defa 9097 else
AzureIoTClient 28:add19eb7defa 9098 {
AzureIoTClient 28:add19eb7defa 9099 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 9100 int result = 0;
AzureIoTClient 28:add19eb7defa 9101
AzureIoTClient 28:add19eb7defa 9102 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 9103 if ((result == 0) && (amqpvalue_set_composite_item(detach_instance->composite_value, 0, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 9104 {
AzureIoTClient 28:add19eb7defa 9105 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9106 }
AzureIoTClient 28:add19eb7defa 9107
AzureIoTClient 28:add19eb7defa 9108 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 9109 }
AzureIoTClient 28:add19eb7defa 9110 }
AzureIoTClient 28:add19eb7defa 9111
AzureIoTClient 28:add19eb7defa 9112 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 9113 }
Azure.IoT Build 0:6ae2f7bca550 9114
Azure.IoT Build 0:6ae2f7bca550 9115 DETACH_HANDLE detach_clone(DETACH_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9116 {
AzureIoTClient 28:add19eb7defa 9117 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 9118 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 9119 {
AzureIoTClient 28:add19eb7defa 9120 detach_instance->composite_value = amqpvalue_clone(((DETACH_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9121 if (detach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9122 {
AzureIoTClient 28:add19eb7defa 9123 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9124 detach_instance = NULL;
AzureIoTClient 28:add19eb7defa 9125 }
AzureIoTClient 28:add19eb7defa 9126 }
AzureIoTClient 28:add19eb7defa 9127
AzureIoTClient 28:add19eb7defa 9128 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 9129 }
Azure.IoT Build 0:6ae2f7bca550 9130
Azure.IoT Build 0:6ae2f7bca550 9131 void detach_destroy(DETACH_HANDLE detach)
Azure.IoT Build 0:6ae2f7bca550 9132 {
AzureIoTClient 28:add19eb7defa 9133 if (detach != NULL)
AzureIoTClient 28:add19eb7defa 9134 {
AzureIoTClient 28:add19eb7defa 9135 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9136 amqpvalue_destroy(detach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9137 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9138 }
Azure.IoT Build 0:6ae2f7bca550 9139 }
Azure.IoT Build 0:6ae2f7bca550 9140
Azure.IoT Build 0:6ae2f7bca550 9141 AMQP_VALUE amqpvalue_create_detach(DETACH_HANDLE detach)
Azure.IoT Build 0:6ae2f7bca550 9142 {
AzureIoTClient 28:add19eb7defa 9143 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9144
AzureIoTClient 28:add19eb7defa 9145 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9146 {
AzureIoTClient 28:add19eb7defa 9147 result = NULL;
AzureIoTClient 28:add19eb7defa 9148 }
AzureIoTClient 28:add19eb7defa 9149 else
AzureIoTClient 28:add19eb7defa 9150 {
AzureIoTClient 28:add19eb7defa 9151 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9152 result = amqpvalue_clone(detach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9153 }
AzureIoTClient 28:add19eb7defa 9154
AzureIoTClient 28:add19eb7defa 9155 return result;
Azure.IoT Build 0:6ae2f7bca550 9156 }
Azure.IoT Build 0:6ae2f7bca550 9157
Azure.IoT Build 0:6ae2f7bca550 9158 bool is_detach_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9159 {
AzureIoTClient 28:add19eb7defa 9160 bool result;
AzureIoTClient 28:add19eb7defa 9161
AzureIoTClient 28:add19eb7defa 9162 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9163 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9164 (descriptor_ulong == 22))
AzureIoTClient 28:add19eb7defa 9165 {
AzureIoTClient 28:add19eb7defa 9166 result = true;
AzureIoTClient 28:add19eb7defa 9167 }
AzureIoTClient 28:add19eb7defa 9168 else
AzureIoTClient 28:add19eb7defa 9169 {
AzureIoTClient 28:add19eb7defa 9170 result = false;
AzureIoTClient 28:add19eb7defa 9171 }
AzureIoTClient 28:add19eb7defa 9172
AzureIoTClient 28:add19eb7defa 9173 return result;
Azure.IoT Build 0:6ae2f7bca550 9174 }
Azure.IoT Build 0:6ae2f7bca550 9175
Azure.IoT Build 0:6ae2f7bca550 9176
Azure.IoT Build 0:6ae2f7bca550 9177 int amqpvalue_get_detach(AMQP_VALUE value, DETACH_HANDLE* detach_handle)
Azure.IoT Build 0:6ae2f7bca550 9178 {
AzureIoTClient 28:add19eb7defa 9179 int result;
AzureIoTClient 28:add19eb7defa 9180 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach_create_internal();
AzureIoTClient 28:add19eb7defa 9181 *detach_handle = detach_instance;
AzureIoTClient 28:add19eb7defa 9182 if (*detach_handle == NULL)
AzureIoTClient 28:add19eb7defa 9183 {
AzureIoTClient 28:add19eb7defa 9184 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9185 }
AzureIoTClient 28:add19eb7defa 9186 else
AzureIoTClient 28:add19eb7defa 9187 {
AzureIoTClient 28:add19eb7defa 9188 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9189 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9190 {
AzureIoTClient 28:add19eb7defa 9191 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9192 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9193 }
AzureIoTClient 28:add19eb7defa 9194 else
AzureIoTClient 28:add19eb7defa 9195 {
AzureIoTClient 23:1111ee8bcba4 9196 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9197 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9198 {
AzureIoTClient 23:1111ee8bcba4 9199 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9200 }
AzureIoTClient 23:1111ee8bcba4 9201 else
AzureIoTClient 23:1111ee8bcba4 9202 {
AzureIoTClient 28:add19eb7defa 9203 do
AzureIoTClient 28:add19eb7defa 9204 {
AzureIoTClient 28:add19eb7defa 9205 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9206 /* handle */
AzureIoTClient 28:add19eb7defa 9207 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9208 {
AzureIoTClient 23:1111ee8bcba4 9209 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9210 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9211 {
AzureIoTClient 28:add19eb7defa 9212 {
AzureIoTClient 28:add19eb7defa 9213 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9214 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9215 break;
AzureIoTClient 28:add19eb7defa 9216 }
AzureIoTClient 28:add19eb7defa 9217 }
AzureIoTClient 28:add19eb7defa 9218 else
AzureIoTClient 28:add19eb7defa 9219 {
AzureIoTClient 28:add19eb7defa 9220 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9221 {
AzureIoTClient 28:add19eb7defa 9222 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9223 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9224 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9225 break;
AzureIoTClient 28:add19eb7defa 9226 }
AzureIoTClient 28:add19eb7defa 9227 else
AzureIoTClient 28:add19eb7defa 9228 {
AzureIoTClient 28:add19eb7defa 9229 handle handle;
AzureIoTClient 28:add19eb7defa 9230 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 9231 {
AzureIoTClient 28:add19eb7defa 9232 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9233 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9234 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9235 break;
AzureIoTClient 28:add19eb7defa 9236 }
AzureIoTClient 28:add19eb7defa 9237 }
AzureIoTClient 28:add19eb7defa 9238
AzureIoTClient 28:add19eb7defa 9239 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9240 }
AzureIoTClient 28:add19eb7defa 9241 }
AzureIoTClient 28:add19eb7defa 9242 else
AzureIoTClient 28:add19eb7defa 9243 {
AzureIoTClient 28:add19eb7defa 9244 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9245 }
AzureIoTClient 28:add19eb7defa 9246 /* closed */
AzureIoTClient 28:add19eb7defa 9247 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 9248 {
AzureIoTClient 23:1111ee8bcba4 9249 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 9250 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9251 {
AzureIoTClient 28:add19eb7defa 9252 /* do nothing */
AzureIoTClient 28:add19eb7defa 9253 }
AzureIoTClient 28:add19eb7defa 9254 else
AzureIoTClient 28:add19eb7defa 9255 {
AzureIoTClient 28:add19eb7defa 9256 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9257 {
AzureIoTClient 28:add19eb7defa 9258 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9259 }
AzureIoTClient 28:add19eb7defa 9260 else
AzureIoTClient 28:add19eb7defa 9261 {
AzureIoTClient 28:add19eb7defa 9262 bool closed;
AzureIoTClient 28:add19eb7defa 9263 if (amqpvalue_get_boolean(item_value, &closed) != 0)
AzureIoTClient 28:add19eb7defa 9264 {
AzureIoTClient 28:add19eb7defa 9265 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9266 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9267 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9268 break;
AzureIoTClient 28:add19eb7defa 9269 }
AzureIoTClient 28:add19eb7defa 9270 }
AzureIoTClient 28:add19eb7defa 9271
AzureIoTClient 28:add19eb7defa 9272 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9273 }
AzureIoTClient 28:add19eb7defa 9274 }
AzureIoTClient 28:add19eb7defa 9275 /* error */
AzureIoTClient 28:add19eb7defa 9276 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 9277 {
AzureIoTClient 23:1111ee8bcba4 9278 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 9279 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9280 {
AzureIoTClient 28:add19eb7defa 9281 /* do nothing */
AzureIoTClient 28:add19eb7defa 9282 }
AzureIoTClient 28:add19eb7defa 9283 else
AzureIoTClient 28:add19eb7defa 9284 {
AzureIoTClient 28:add19eb7defa 9285 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9286 {
AzureIoTClient 28:add19eb7defa 9287 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9288 }
AzureIoTClient 28:add19eb7defa 9289 else
AzureIoTClient 28:add19eb7defa 9290 {
AzureIoTClient 28:add19eb7defa 9291 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9292 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9293 {
AzureIoTClient 28:add19eb7defa 9294 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9295 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9296 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9297 break;
AzureIoTClient 28:add19eb7defa 9298 }
AzureIoTClient 25:1101516ee67d 9299 else
AzureIoTClient 25:1101516ee67d 9300 {
AzureIoTClient 28:add19eb7defa 9301 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9302 }
AzureIoTClient 28:add19eb7defa 9303 }
AzureIoTClient 28:add19eb7defa 9304
AzureIoTClient 28:add19eb7defa 9305 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9306 }
AzureIoTClient 28:add19eb7defa 9307 }
AzureIoTClient 28:add19eb7defa 9308
AzureIoTClient 28:add19eb7defa 9309 detach_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9310
AzureIoTClient 28:add19eb7defa 9311 result = 0;
AzureIoTClient 28:add19eb7defa 9312 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9313 }
AzureIoTClient 28:add19eb7defa 9314 }
AzureIoTClient 28:add19eb7defa 9315 }
AzureIoTClient 28:add19eb7defa 9316
AzureIoTClient 28:add19eb7defa 9317 return result;
Azure.IoT Build 0:6ae2f7bca550 9318 }
Azure.IoT Build 0:6ae2f7bca550 9319
Azure.IoT Build 0:6ae2f7bca550 9320 int detach_get_handle(DETACH_HANDLE detach, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 9321 {
AzureIoTClient 28:add19eb7defa 9322 int result;
AzureIoTClient 28:add19eb7defa 9323
AzureIoTClient 28:add19eb7defa 9324 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9325 {
AzureIoTClient 28:add19eb7defa 9326 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9327 }
AzureIoTClient 28:add19eb7defa 9328 else
AzureIoTClient 28:add19eb7defa 9329 {
AzureIoTClient 28:add19eb7defa 9330 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9331 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9332 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9333 {
AzureIoTClient 23:1111ee8bcba4 9334 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9335 }
AzureIoTClient 23:1111ee8bcba4 9336 else
AzureIoTClient 23:1111ee8bcba4 9337 {
AzureIoTClient 23:1111ee8bcba4 9338 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9339 {
AzureIoTClient 28:add19eb7defa 9340 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9341 }
AzureIoTClient 28:add19eb7defa 9342 else
AzureIoTClient 28:add19eb7defa 9343 {
AzureIoTClient 28:add19eb7defa 9344 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 9345 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9346 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9347 {
AzureIoTClient 28:add19eb7defa 9348 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9349 }
AzureIoTClient 28:add19eb7defa 9350 else
AzureIoTClient 28:add19eb7defa 9351 {
AzureIoTClient 43:4c1e4e94cdd3 9352 int get_single_value_result = amqpvalue_get_handle(item_value, handle_value);
AzureIoTClient 43:4c1e4e94cdd3 9353 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 9354 {
AzureIoTClient 28:add19eb7defa 9355 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9356 }
AzureIoTClient 28:add19eb7defa 9357 else
AzureIoTClient 28:add19eb7defa 9358 {
AzureIoTClient 28:add19eb7defa 9359 result = 0;
AzureIoTClient 28:add19eb7defa 9360 }
AzureIoTClient 28:add19eb7defa 9361 }
AzureIoTClient 28:add19eb7defa 9362 }
AzureIoTClient 28:add19eb7defa 9363 }
AzureIoTClient 28:add19eb7defa 9364 }
AzureIoTClient 28:add19eb7defa 9365
AzureIoTClient 28:add19eb7defa 9366 return result;
Azure.IoT Build 0:6ae2f7bca550 9367 }
Azure.IoT Build 0:6ae2f7bca550 9368
Azure.IoT Build 0:6ae2f7bca550 9369 int detach_set_handle(DETACH_HANDLE detach, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 9370 {
AzureIoTClient 28:add19eb7defa 9371 int result;
AzureIoTClient 28:add19eb7defa 9372
AzureIoTClient 28:add19eb7defa 9373 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9374 {
AzureIoTClient 28:add19eb7defa 9375 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9376 }
AzureIoTClient 28:add19eb7defa 9377 else
AzureIoTClient 28:add19eb7defa 9378 {
AzureIoTClient 28:add19eb7defa 9379 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9380 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 9381 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9382 {
AzureIoTClient 28:add19eb7defa 9383 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9384 }
AzureIoTClient 28:add19eb7defa 9385 else
AzureIoTClient 28:add19eb7defa 9386 {
AzureIoTClient 28:add19eb7defa 9387 if (amqpvalue_set_composite_item(detach_instance->composite_value, 0, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9388 {
AzureIoTClient 28:add19eb7defa 9389 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9390 }
AzureIoTClient 28:add19eb7defa 9391 else
AzureIoTClient 28:add19eb7defa 9392 {
AzureIoTClient 28:add19eb7defa 9393 result = 0;
AzureIoTClient 28:add19eb7defa 9394 }
AzureIoTClient 28:add19eb7defa 9395
AzureIoTClient 28:add19eb7defa 9396 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 9397 }
AzureIoTClient 28:add19eb7defa 9398 }
AzureIoTClient 28:add19eb7defa 9399
AzureIoTClient 28:add19eb7defa 9400 return result;
Azure.IoT Build 0:6ae2f7bca550 9401 }
Azure.IoT Build 0:6ae2f7bca550 9402
Azure.IoT Build 0:6ae2f7bca550 9403 int detach_get_closed(DETACH_HANDLE detach, bool* closed_value)
Azure.IoT Build 0:6ae2f7bca550 9404 {
AzureIoTClient 28:add19eb7defa 9405 int result;
AzureIoTClient 28:add19eb7defa 9406
AzureIoTClient 28:add19eb7defa 9407 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9408 {
AzureIoTClient 28:add19eb7defa 9409 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9410 }
AzureIoTClient 28:add19eb7defa 9411 else
AzureIoTClient 28:add19eb7defa 9412 {
AzureIoTClient 28:add19eb7defa 9413 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9414 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9415 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9416 {
AzureIoTClient 23:1111ee8bcba4 9417 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9418 }
AzureIoTClient 23:1111ee8bcba4 9419 else
AzureIoTClient 23:1111ee8bcba4 9420 {
AzureIoTClient 23:1111ee8bcba4 9421 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 9422 {
AzureIoTClient 28:add19eb7defa 9423 *closed_value = false;
AzureIoTClient 28:add19eb7defa 9424 result = 0;
AzureIoTClient 28:add19eb7defa 9425 }
AzureIoTClient 28:add19eb7defa 9426 else
AzureIoTClient 28:add19eb7defa 9427 {
AzureIoTClient 28:add19eb7defa 9428 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 9429 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9430 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9431 {
AzureIoTClient 28:add19eb7defa 9432 *closed_value = false;
AzureIoTClient 28:add19eb7defa 9433 result = 0;
AzureIoTClient 28:add19eb7defa 9434 }
AzureIoTClient 28:add19eb7defa 9435 else
AzureIoTClient 28:add19eb7defa 9436 {
AzureIoTClient 43:4c1e4e94cdd3 9437 int get_single_value_result = amqpvalue_get_boolean(item_value, closed_value);
AzureIoTClient 43:4c1e4e94cdd3 9438 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 9439 {
AzureIoTClient 23:1111ee8bcba4 9440 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 9441 {
AzureIoTClient 28:add19eb7defa 9442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9443 }
AzureIoTClient 28:add19eb7defa 9444 else
AzureIoTClient 28:add19eb7defa 9445 {
AzureIoTClient 28:add19eb7defa 9446 *closed_value = false;
AzureIoTClient 23:1111ee8bcba4 9447 result = 0;
AzureIoTClient 23:1111ee8bcba4 9448 }
AzureIoTClient 28:add19eb7defa 9449 }
AzureIoTClient 28:add19eb7defa 9450 else
AzureIoTClient 28:add19eb7defa 9451 {
AzureIoTClient 28:add19eb7defa 9452 result = 0;
AzureIoTClient 28:add19eb7defa 9453 }
AzureIoTClient 28:add19eb7defa 9454 }
AzureIoTClient 28:add19eb7defa 9455 }
AzureIoTClient 28:add19eb7defa 9456 }
AzureIoTClient 28:add19eb7defa 9457 }
AzureIoTClient 28:add19eb7defa 9458
AzureIoTClient 28:add19eb7defa 9459 return result;
Azure.IoT Build 0:6ae2f7bca550 9460 }
Azure.IoT Build 0:6ae2f7bca550 9461
Azure.IoT Build 0:6ae2f7bca550 9462 int detach_set_closed(DETACH_HANDLE detach, bool closed_value)
Azure.IoT Build 0:6ae2f7bca550 9463 {
AzureIoTClient 28:add19eb7defa 9464 int result;
AzureIoTClient 28:add19eb7defa 9465
AzureIoTClient 28:add19eb7defa 9466 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9467 {
AzureIoTClient 28:add19eb7defa 9468 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9469 }
AzureIoTClient 28:add19eb7defa 9470 else
AzureIoTClient 28:add19eb7defa 9471 {
AzureIoTClient 28:add19eb7defa 9472 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9473 AMQP_VALUE closed_amqp_value = amqpvalue_create_boolean(closed_value);
AzureIoTClient 28:add19eb7defa 9474 if (closed_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9475 {
AzureIoTClient 28:add19eb7defa 9476 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9477 }
AzureIoTClient 28:add19eb7defa 9478 else
AzureIoTClient 28:add19eb7defa 9479 {
AzureIoTClient 28:add19eb7defa 9480 if (amqpvalue_set_composite_item(detach_instance->composite_value, 1, closed_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9481 {
AzureIoTClient 28:add19eb7defa 9482 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9483 }
AzureIoTClient 28:add19eb7defa 9484 else
AzureIoTClient 28:add19eb7defa 9485 {
AzureIoTClient 28:add19eb7defa 9486 result = 0;
AzureIoTClient 28:add19eb7defa 9487 }
AzureIoTClient 28:add19eb7defa 9488
AzureIoTClient 28:add19eb7defa 9489 amqpvalue_destroy(closed_amqp_value);
AzureIoTClient 28:add19eb7defa 9490 }
AzureIoTClient 28:add19eb7defa 9491 }
AzureIoTClient 28:add19eb7defa 9492
AzureIoTClient 28:add19eb7defa 9493 return result;
Azure.IoT Build 0:6ae2f7bca550 9494 }
Azure.IoT Build 0:6ae2f7bca550 9495
Azure.IoT Build 0:6ae2f7bca550 9496 int detach_get_error(DETACH_HANDLE detach, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9497 {
AzureIoTClient 28:add19eb7defa 9498 int result;
AzureIoTClient 28:add19eb7defa 9499
AzureIoTClient 28:add19eb7defa 9500 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9501 {
AzureIoTClient 28:add19eb7defa 9502 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9503 }
AzureIoTClient 28:add19eb7defa 9504 else
AzureIoTClient 28:add19eb7defa 9505 {
AzureIoTClient 28:add19eb7defa 9506 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9507 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9508 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9509 {
AzureIoTClient 23:1111ee8bcba4 9510 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9511 }
AzureIoTClient 23:1111ee8bcba4 9512 else
AzureIoTClient 23:1111ee8bcba4 9513 {
AzureIoTClient 23:1111ee8bcba4 9514 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 9515 {
AzureIoTClient 28:add19eb7defa 9516 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9517 }
AzureIoTClient 28:add19eb7defa 9518 else
AzureIoTClient 28:add19eb7defa 9519 {
AzureIoTClient 28:add19eb7defa 9520 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 9521 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9522 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9523 {
AzureIoTClient 28:add19eb7defa 9524 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9525 }
AzureIoTClient 28:add19eb7defa 9526 else
AzureIoTClient 28:add19eb7defa 9527 {
AzureIoTClient 43:4c1e4e94cdd3 9528 int get_single_value_result = amqpvalue_get_error(item_value, error_value);
AzureIoTClient 43:4c1e4e94cdd3 9529 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 9530 {
AzureIoTClient 28:add19eb7defa 9531 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9532 }
AzureIoTClient 28:add19eb7defa 9533 else
AzureIoTClient 28:add19eb7defa 9534 {
AzureIoTClient 28:add19eb7defa 9535 result = 0;
AzureIoTClient 28:add19eb7defa 9536 }
AzureIoTClient 28:add19eb7defa 9537 }
AzureIoTClient 28:add19eb7defa 9538 }
AzureIoTClient 28:add19eb7defa 9539 }
AzureIoTClient 28:add19eb7defa 9540 }
AzureIoTClient 28:add19eb7defa 9541
AzureIoTClient 28:add19eb7defa 9542 return result;
Azure.IoT Build 0:6ae2f7bca550 9543 }
Azure.IoT Build 0:6ae2f7bca550 9544
Azure.IoT Build 0:6ae2f7bca550 9545 int detach_set_error(DETACH_HANDLE detach, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9546 {
AzureIoTClient 28:add19eb7defa 9547 int result;
AzureIoTClient 28:add19eb7defa 9548
AzureIoTClient 28:add19eb7defa 9549 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9550 {
AzureIoTClient 28:add19eb7defa 9551 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9552 }
AzureIoTClient 28:add19eb7defa 9553 else
AzureIoTClient 28:add19eb7defa 9554 {
AzureIoTClient 28:add19eb7defa 9555 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9556 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 9557 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9558 {
AzureIoTClient 28:add19eb7defa 9559 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9560 }
AzureIoTClient 28:add19eb7defa 9561 else
AzureIoTClient 28:add19eb7defa 9562 {
AzureIoTClient 28:add19eb7defa 9563 if (amqpvalue_set_composite_item(detach_instance->composite_value, 2, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9564 {
AzureIoTClient 28:add19eb7defa 9565 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9566 }
AzureIoTClient 28:add19eb7defa 9567 else
AzureIoTClient 28:add19eb7defa 9568 {
AzureIoTClient 28:add19eb7defa 9569 result = 0;
AzureIoTClient 28:add19eb7defa 9570 }
AzureIoTClient 28:add19eb7defa 9571
AzureIoTClient 28:add19eb7defa 9572 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 9573 }
AzureIoTClient 28:add19eb7defa 9574 }
AzureIoTClient 28:add19eb7defa 9575
AzureIoTClient 28:add19eb7defa 9576 return result;
Azure.IoT Build 0:6ae2f7bca550 9577 }
Azure.IoT Build 0:6ae2f7bca550 9578
Azure.IoT Build 0:6ae2f7bca550 9579
Azure.IoT Build 0:6ae2f7bca550 9580 /* end */
Azure.IoT Build 0:6ae2f7bca550 9581
Azure.IoT Build 0:6ae2f7bca550 9582 typedef struct END_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9583 {
AzureIoTClient 28:add19eb7defa 9584 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9585 } END_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9586
Azure.IoT Build 0:6ae2f7bca550 9587 static END_HANDLE end_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9588 {
AzureIoTClient 28:add19eb7defa 9589 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9590 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9591 {
AzureIoTClient 28:add19eb7defa 9592 end_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 9593 }
AzureIoTClient 28:add19eb7defa 9594
AzureIoTClient 28:add19eb7defa 9595 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9596 }
Azure.IoT Build 0:6ae2f7bca550 9597
Azure.IoT Build 0:6ae2f7bca550 9598 END_HANDLE end_create(void)
Azure.IoT Build 0:6ae2f7bca550 9599 {
AzureIoTClient 28:add19eb7defa 9600 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9601 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9602 {
AzureIoTClient 28:add19eb7defa 9603 end_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(23);
AzureIoTClient 28:add19eb7defa 9604 if (end_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9605 {
AzureIoTClient 28:add19eb7defa 9606 free(end_instance);
AzureIoTClient 28:add19eb7defa 9607 end_instance = NULL;
AzureIoTClient 28:add19eb7defa 9608 }
AzureIoTClient 28:add19eb7defa 9609 }
AzureIoTClient 28:add19eb7defa 9610
AzureIoTClient 28:add19eb7defa 9611 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9612 }
Azure.IoT Build 0:6ae2f7bca550 9613
Azure.IoT Build 0:6ae2f7bca550 9614 END_HANDLE end_clone(END_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9615 {
AzureIoTClient 28:add19eb7defa 9616 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9617 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9618 {
AzureIoTClient 28:add19eb7defa 9619 end_instance->composite_value = amqpvalue_clone(((END_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9620 if (end_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9621 {
AzureIoTClient 28:add19eb7defa 9622 free(end_instance);
AzureIoTClient 28:add19eb7defa 9623 end_instance = NULL;
AzureIoTClient 28:add19eb7defa 9624 }
AzureIoTClient 28:add19eb7defa 9625 }
AzureIoTClient 28:add19eb7defa 9626
AzureIoTClient 28:add19eb7defa 9627 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9628 }
Azure.IoT Build 0:6ae2f7bca550 9629
Azure.IoT Build 0:6ae2f7bca550 9630 void end_destroy(END_HANDLE end)
Azure.IoT Build 0:6ae2f7bca550 9631 {
AzureIoTClient 28:add19eb7defa 9632 if (end != NULL)
AzureIoTClient 28:add19eb7defa 9633 {
AzureIoTClient 28:add19eb7defa 9634 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9635 amqpvalue_destroy(end_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9636 free(end_instance);
AzureIoTClient 28:add19eb7defa 9637 }
Azure.IoT Build 0:6ae2f7bca550 9638 }
Azure.IoT Build 0:6ae2f7bca550 9639
Azure.IoT Build 0:6ae2f7bca550 9640 AMQP_VALUE amqpvalue_create_end(END_HANDLE end)
Azure.IoT Build 0:6ae2f7bca550 9641 {
AzureIoTClient 28:add19eb7defa 9642 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9643
AzureIoTClient 28:add19eb7defa 9644 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9645 {
AzureIoTClient 28:add19eb7defa 9646 result = NULL;
AzureIoTClient 28:add19eb7defa 9647 }
AzureIoTClient 28:add19eb7defa 9648 else
AzureIoTClient 28:add19eb7defa 9649 {
AzureIoTClient 28:add19eb7defa 9650 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9651 result = amqpvalue_clone(end_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9652 }
AzureIoTClient 28:add19eb7defa 9653
AzureIoTClient 28:add19eb7defa 9654 return result;
Azure.IoT Build 0:6ae2f7bca550 9655 }
Azure.IoT Build 0:6ae2f7bca550 9656
Azure.IoT Build 0:6ae2f7bca550 9657 bool is_end_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9658 {
AzureIoTClient 28:add19eb7defa 9659 bool result;
AzureIoTClient 28:add19eb7defa 9660
AzureIoTClient 28:add19eb7defa 9661 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9662 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9663 (descriptor_ulong == 23))
AzureIoTClient 28:add19eb7defa 9664 {
AzureIoTClient 28:add19eb7defa 9665 result = true;
AzureIoTClient 28:add19eb7defa 9666 }
AzureIoTClient 28:add19eb7defa 9667 else
AzureIoTClient 28:add19eb7defa 9668 {
AzureIoTClient 28:add19eb7defa 9669 result = false;
AzureIoTClient 28:add19eb7defa 9670 }
AzureIoTClient 28:add19eb7defa 9671
AzureIoTClient 28:add19eb7defa 9672 return result;
Azure.IoT Build 0:6ae2f7bca550 9673 }
Azure.IoT Build 0:6ae2f7bca550 9674
Azure.IoT Build 0:6ae2f7bca550 9675
Azure.IoT Build 0:6ae2f7bca550 9676 int amqpvalue_get_end(AMQP_VALUE value, END_HANDLE* end_handle)
Azure.IoT Build 0:6ae2f7bca550 9677 {
AzureIoTClient 28:add19eb7defa 9678 int result;
AzureIoTClient 28:add19eb7defa 9679 END_INSTANCE* end_instance = (END_INSTANCE*)end_create_internal();
AzureIoTClient 28:add19eb7defa 9680 *end_handle = end_instance;
AzureIoTClient 28:add19eb7defa 9681 if (*end_handle == NULL)
AzureIoTClient 28:add19eb7defa 9682 {
AzureIoTClient 28:add19eb7defa 9683 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9684 }
AzureIoTClient 28:add19eb7defa 9685 else
AzureIoTClient 28:add19eb7defa 9686 {
AzureIoTClient 28:add19eb7defa 9687 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9688 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9689 {
AzureIoTClient 28:add19eb7defa 9690 end_destroy(*end_handle);
AzureIoTClient 28:add19eb7defa 9691 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9692 }
AzureIoTClient 28:add19eb7defa 9693 else
AzureIoTClient 28:add19eb7defa 9694 {
AzureIoTClient 23:1111ee8bcba4 9695 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9696 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9697 {
AzureIoTClient 23:1111ee8bcba4 9698 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9699 }
AzureIoTClient 23:1111ee8bcba4 9700 else
AzureIoTClient 23:1111ee8bcba4 9701 {
AzureIoTClient 28:add19eb7defa 9702 do
AzureIoTClient 28:add19eb7defa 9703 {
AzureIoTClient 28:add19eb7defa 9704 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9705 /* error */
AzureIoTClient 28:add19eb7defa 9706 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9707 {
AzureIoTClient 23:1111ee8bcba4 9708 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9709 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9710 {
AzureIoTClient 28:add19eb7defa 9711 /* do nothing */
AzureIoTClient 28:add19eb7defa 9712 }
AzureIoTClient 28:add19eb7defa 9713 else
AzureIoTClient 28:add19eb7defa 9714 {
AzureIoTClient 28:add19eb7defa 9715 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9716 {
AzureIoTClient 28:add19eb7defa 9717 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9718 }
AzureIoTClient 28:add19eb7defa 9719 else
AzureIoTClient 28:add19eb7defa 9720 {
AzureIoTClient 28:add19eb7defa 9721 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9722 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9723 {
AzureIoTClient 28:add19eb7defa 9724 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9725 end_destroy(*end_handle);
AzureIoTClient 28:add19eb7defa 9726 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9727 break;
AzureIoTClient 28:add19eb7defa 9728 }
AzureIoTClient 25:1101516ee67d 9729 else
AzureIoTClient 25:1101516ee67d 9730 {
AzureIoTClient 28:add19eb7defa 9731 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9732 }
AzureIoTClient 28:add19eb7defa 9733 }
AzureIoTClient 28:add19eb7defa 9734
AzureIoTClient 28:add19eb7defa 9735 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9736 }
AzureIoTClient 28:add19eb7defa 9737 }
AzureIoTClient 28:add19eb7defa 9738
AzureIoTClient 28:add19eb7defa 9739 end_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9740
AzureIoTClient 28:add19eb7defa 9741 result = 0;
AzureIoTClient 28:add19eb7defa 9742 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9743 }
AzureIoTClient 28:add19eb7defa 9744 }
AzureIoTClient 28:add19eb7defa 9745 }
AzureIoTClient 28:add19eb7defa 9746
AzureIoTClient 28:add19eb7defa 9747 return result;
Azure.IoT Build 0:6ae2f7bca550 9748 }
Azure.IoT Build 0:6ae2f7bca550 9749
Azure.IoT Build 0:6ae2f7bca550 9750 int end_get_error(END_HANDLE end, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9751 {
AzureIoTClient 28:add19eb7defa 9752 int result;
AzureIoTClient 28:add19eb7defa 9753
AzureIoTClient 28:add19eb7defa 9754 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9755 {
AzureIoTClient 28:add19eb7defa 9756 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9757 }
AzureIoTClient 28:add19eb7defa 9758 else
AzureIoTClient 28:add19eb7defa 9759 {
AzureIoTClient 28:add19eb7defa 9760 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9761 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 23:1111ee8bcba4 9762 if (amqpvalue_get_composite_item_count(end_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9763 {
AzureIoTClient 23:1111ee8bcba4 9764 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9765 }
AzureIoTClient 23:1111ee8bcba4 9766 else
AzureIoTClient 23:1111ee8bcba4 9767 {
AzureIoTClient 23:1111ee8bcba4 9768 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9769 {
AzureIoTClient 28:add19eb7defa 9770 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9771 }
AzureIoTClient 28:add19eb7defa 9772 else
AzureIoTClient 28:add19eb7defa 9773 {
AzureIoTClient 28:add19eb7defa 9774 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(end_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 9775 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9776 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9777 {
AzureIoTClient 28:add19eb7defa 9778 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9779 }
AzureIoTClient 28:add19eb7defa 9780 else
AzureIoTClient 28:add19eb7defa 9781 {
AzureIoTClient 43:4c1e4e94cdd3 9782 int get_single_value_result = amqpvalue_get_error(item_value, error_value);
AzureIoTClient 43:4c1e4e94cdd3 9783 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 9784 {
AzureIoTClient 28:add19eb7defa 9785 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9786 }
AzureIoTClient 28:add19eb7defa 9787 else
AzureIoTClient 28:add19eb7defa 9788 {
AzureIoTClient 28:add19eb7defa 9789 result = 0;
AzureIoTClient 28:add19eb7defa 9790 }
AzureIoTClient 28:add19eb7defa 9791 }
AzureIoTClient 28:add19eb7defa 9792 }
AzureIoTClient 28:add19eb7defa 9793 }
AzureIoTClient 28:add19eb7defa 9794 }
AzureIoTClient 28:add19eb7defa 9795
AzureIoTClient 28:add19eb7defa 9796 return result;
Azure.IoT Build 0:6ae2f7bca550 9797 }
Azure.IoT Build 0:6ae2f7bca550 9798
Azure.IoT Build 0:6ae2f7bca550 9799 int end_set_error(END_HANDLE end, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9800 {
AzureIoTClient 28:add19eb7defa 9801 int result;
AzureIoTClient 28:add19eb7defa 9802
AzureIoTClient 28:add19eb7defa 9803 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9804 {
AzureIoTClient 28:add19eb7defa 9805 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9806 }
AzureIoTClient 28:add19eb7defa 9807 else
AzureIoTClient 28:add19eb7defa 9808 {
AzureIoTClient 28:add19eb7defa 9809 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9810 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 9811 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9812 {
AzureIoTClient 28:add19eb7defa 9813 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9814 }
AzureIoTClient 28:add19eb7defa 9815 else
AzureIoTClient 28:add19eb7defa 9816 {
AzureIoTClient 28:add19eb7defa 9817 if (amqpvalue_set_composite_item(end_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9818 {
AzureIoTClient 28:add19eb7defa 9819 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9820 }
AzureIoTClient 28:add19eb7defa 9821 else
AzureIoTClient 28:add19eb7defa 9822 {
AzureIoTClient 28:add19eb7defa 9823 result = 0;
AzureIoTClient 28:add19eb7defa 9824 }
AzureIoTClient 28:add19eb7defa 9825
AzureIoTClient 28:add19eb7defa 9826 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 9827 }
AzureIoTClient 28:add19eb7defa 9828 }
AzureIoTClient 28:add19eb7defa 9829
AzureIoTClient 28:add19eb7defa 9830 return result;
Azure.IoT Build 0:6ae2f7bca550 9831 }
Azure.IoT Build 0:6ae2f7bca550 9832
Azure.IoT Build 0:6ae2f7bca550 9833
Azure.IoT Build 0:6ae2f7bca550 9834 /* close */
Azure.IoT Build 0:6ae2f7bca550 9835
Azure.IoT Build 0:6ae2f7bca550 9836 typedef struct CLOSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9837 {
AzureIoTClient 28:add19eb7defa 9838 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9839 } CLOSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9840
Azure.IoT Build 0:6ae2f7bca550 9841 static CLOSE_HANDLE close_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9842 {
AzureIoTClient 28:add19eb7defa 9843 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9844 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9845 {
AzureIoTClient 28:add19eb7defa 9846 close_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 9847 }
AzureIoTClient 28:add19eb7defa 9848
AzureIoTClient 28:add19eb7defa 9849 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9850 }
Azure.IoT Build 0:6ae2f7bca550 9851
Azure.IoT Build 0:6ae2f7bca550 9852 CLOSE_HANDLE close_create(void)
Azure.IoT Build 0:6ae2f7bca550 9853 {
AzureIoTClient 28:add19eb7defa 9854 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9855 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9856 {
AzureIoTClient 28:add19eb7defa 9857 close_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(24);
AzureIoTClient 28:add19eb7defa 9858 if (close_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9859 {
AzureIoTClient 28:add19eb7defa 9860 free(close_instance);
AzureIoTClient 28:add19eb7defa 9861 close_instance = NULL;
AzureIoTClient 28:add19eb7defa 9862 }
AzureIoTClient 28:add19eb7defa 9863 }
AzureIoTClient 28:add19eb7defa 9864
AzureIoTClient 28:add19eb7defa 9865 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9866 }
Azure.IoT Build 0:6ae2f7bca550 9867
Azure.IoT Build 0:6ae2f7bca550 9868 CLOSE_HANDLE close_clone(CLOSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9869 {
AzureIoTClient 28:add19eb7defa 9870 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9871 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9872 {
AzureIoTClient 28:add19eb7defa 9873 close_instance->composite_value = amqpvalue_clone(((CLOSE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9874 if (close_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9875 {
AzureIoTClient 28:add19eb7defa 9876 free(close_instance);
AzureIoTClient 28:add19eb7defa 9877 close_instance = NULL;
AzureIoTClient 28:add19eb7defa 9878 }
AzureIoTClient 28:add19eb7defa 9879 }
AzureIoTClient 28:add19eb7defa 9880
AzureIoTClient 28:add19eb7defa 9881 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9882 }
Azure.IoT Build 0:6ae2f7bca550 9883
Azure.IoT Build 0:6ae2f7bca550 9884 void close_destroy(CLOSE_HANDLE close)
Azure.IoT Build 0:6ae2f7bca550 9885 {
AzureIoTClient 28:add19eb7defa 9886 if (close != NULL)
AzureIoTClient 28:add19eb7defa 9887 {
AzureIoTClient 28:add19eb7defa 9888 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 9889 amqpvalue_destroy(close_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9890 free(close_instance);
AzureIoTClient 28:add19eb7defa 9891 }
Azure.IoT Build 0:6ae2f7bca550 9892 }
Azure.IoT Build 0:6ae2f7bca550 9893
Azure.IoT Build 0:6ae2f7bca550 9894 AMQP_VALUE amqpvalue_create_close(CLOSE_HANDLE close)
Azure.IoT Build 0:6ae2f7bca550 9895 {
AzureIoTClient 28:add19eb7defa 9896 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9897
AzureIoTClient 28:add19eb7defa 9898 if (close == NULL)
AzureIoTClient 28:add19eb7defa 9899 {
AzureIoTClient 28:add19eb7defa 9900 result = NULL;
AzureIoTClient 28:add19eb7defa 9901 }
AzureIoTClient 28:add19eb7defa 9902 else
AzureIoTClient 28:add19eb7defa 9903 {
AzureIoTClient 28:add19eb7defa 9904 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 9905 result = amqpvalue_clone(close_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9906 }
AzureIoTClient 28:add19eb7defa 9907
AzureIoTClient 28:add19eb7defa 9908 return result;
Azure.IoT Build 0:6ae2f7bca550 9909 }
Azure.IoT Build 0:6ae2f7bca550 9910
Azure.IoT Build 0:6ae2f7bca550 9911 bool is_close_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9912 {
AzureIoTClient 28:add19eb7defa 9913 bool result;
AzureIoTClient 28:add19eb7defa 9914
AzureIoTClient 28:add19eb7defa 9915 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9916 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9917 (descriptor_ulong == 24))
AzureIoTClient 28:add19eb7defa 9918 {
AzureIoTClient 28:add19eb7defa 9919 result = true;
AzureIoTClient 28:add19eb7defa 9920 }
AzureIoTClient 28:add19eb7defa 9921 else
AzureIoTClient 28:add19eb7defa 9922 {
AzureIoTClient 28:add19eb7defa 9923 result = false;
AzureIoTClient 28:add19eb7defa 9924 }
AzureIoTClient 28:add19eb7defa 9925
AzureIoTClient 28:add19eb7defa 9926 return result;
Azure.IoT Build 0:6ae2f7bca550 9927 }
Azure.IoT Build 0:6ae2f7bca550 9928
Azure.IoT Build 0:6ae2f7bca550 9929
Azure.IoT Build 0:6ae2f7bca550 9930 int amqpvalue_get_close(AMQP_VALUE value, CLOSE_HANDLE* close_handle)
Azure.IoT Build 0:6ae2f7bca550 9931 {
AzureIoTClient 28:add19eb7defa 9932 int result;
AzureIoTClient 28:add19eb7defa 9933 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close_create_internal();
AzureIoTClient 28:add19eb7defa 9934 *close_handle = close_instance;
AzureIoTClient 28:add19eb7defa 9935 if (*close_handle == NULL)
AzureIoTClient 28:add19eb7defa 9936 {
AzureIoTClient 28:add19eb7defa 9937 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9938 }
AzureIoTClient 28:add19eb7defa 9939 else
AzureIoTClient 28:add19eb7defa 9940 {
AzureIoTClient 28:add19eb7defa 9941 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9942 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9943 {
AzureIoTClient 28:add19eb7defa 9944 close_destroy(*close_handle);
AzureIoTClient 28:add19eb7defa 9945 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9946 }
AzureIoTClient 28:add19eb7defa 9947 else
AzureIoTClient 28:add19eb7defa 9948 {
AzureIoTClient 23:1111ee8bcba4 9949 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9950 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9951 {
AzureIoTClient 23:1111ee8bcba4 9952 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9953 }
AzureIoTClient 23:1111ee8bcba4 9954 else
AzureIoTClient 23:1111ee8bcba4 9955 {
AzureIoTClient 28:add19eb7defa 9956 do
AzureIoTClient 28:add19eb7defa 9957 {
AzureIoTClient 28:add19eb7defa 9958 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9959 /* error */
AzureIoTClient 28:add19eb7defa 9960 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9961 {
AzureIoTClient 23:1111ee8bcba4 9962 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9963 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9964 {
AzureIoTClient 28:add19eb7defa 9965 /* do nothing */
AzureIoTClient 28:add19eb7defa 9966 }
AzureIoTClient 28:add19eb7defa 9967 else
AzureIoTClient 28:add19eb7defa 9968 {
AzureIoTClient 28:add19eb7defa 9969 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9970 {
AzureIoTClient 28:add19eb7defa 9971 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9972 }
AzureIoTClient 28:add19eb7defa 9973 else
AzureIoTClient 28:add19eb7defa 9974 {
AzureIoTClient 28:add19eb7defa 9975 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9976 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9977 {
AzureIoTClient 28:add19eb7defa 9978 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9979 close_destroy(*close_handle);
AzureIoTClient 28:add19eb7defa 9980 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9981 break;
AzureIoTClient 28:add19eb7defa 9982 }
AzureIoTClient 25:1101516ee67d 9983 else
AzureIoTClient 25:1101516ee67d 9984 {
AzureIoTClient 28:add19eb7defa 9985 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9986 }
AzureIoTClient 28:add19eb7defa 9987 }
AzureIoTClient 28:add19eb7defa 9988
AzureIoTClient 28:add19eb7defa 9989 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9990 }
AzureIoTClient 28:add19eb7defa 9991 }
AzureIoTClient 28:add19eb7defa 9992
AzureIoTClient 28:add19eb7defa 9993 close_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9994
AzureIoTClient 28:add19eb7defa 9995 result = 0;
AzureIoTClient 28:add19eb7defa 9996 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9997 }
AzureIoTClient 28:add19eb7defa 9998 }
AzureIoTClient 28:add19eb7defa 9999 }
AzureIoTClient 28:add19eb7defa 10000
AzureIoTClient 28:add19eb7defa 10001 return result;
Azure.IoT Build 0:6ae2f7bca550 10002 }
Azure.IoT Build 0:6ae2f7bca550 10003
Azure.IoT Build 0:6ae2f7bca550 10004 int close_get_error(CLOSE_HANDLE close, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 10005 {
AzureIoTClient 28:add19eb7defa 10006 int result;
AzureIoTClient 28:add19eb7defa 10007
AzureIoTClient 28:add19eb7defa 10008 if (close == NULL)
AzureIoTClient 28:add19eb7defa 10009 {
AzureIoTClient 28:add19eb7defa 10010 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10011 }
AzureIoTClient 28:add19eb7defa 10012 else
AzureIoTClient 28:add19eb7defa 10013 {
AzureIoTClient 28:add19eb7defa 10014 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10015 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 23:1111ee8bcba4 10016 if (amqpvalue_get_composite_item_count(close_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10017 {
AzureIoTClient 23:1111ee8bcba4 10018 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10019 }
AzureIoTClient 23:1111ee8bcba4 10020 else
AzureIoTClient 23:1111ee8bcba4 10021 {
AzureIoTClient 23:1111ee8bcba4 10022 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10023 {
AzureIoTClient 28:add19eb7defa 10024 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10025 }
AzureIoTClient 28:add19eb7defa 10026 else
AzureIoTClient 28:add19eb7defa 10027 {
AzureIoTClient 28:add19eb7defa 10028 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(close_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10029 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10030 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10031 {
AzureIoTClient 28:add19eb7defa 10032 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10033 }
AzureIoTClient 28:add19eb7defa 10034 else
AzureIoTClient 28:add19eb7defa 10035 {
AzureIoTClient 43:4c1e4e94cdd3 10036 int get_single_value_result = amqpvalue_get_error(item_value, error_value);
AzureIoTClient 43:4c1e4e94cdd3 10037 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 10038 {
AzureIoTClient 28:add19eb7defa 10039 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10040 }
AzureIoTClient 28:add19eb7defa 10041 else
AzureIoTClient 28:add19eb7defa 10042 {
AzureIoTClient 28:add19eb7defa 10043 result = 0;
AzureIoTClient 28:add19eb7defa 10044 }
AzureIoTClient 28:add19eb7defa 10045 }
AzureIoTClient 28:add19eb7defa 10046 }
AzureIoTClient 28:add19eb7defa 10047 }
AzureIoTClient 28:add19eb7defa 10048 }
AzureIoTClient 28:add19eb7defa 10049
AzureIoTClient 28:add19eb7defa 10050 return result;
Azure.IoT Build 0:6ae2f7bca550 10051 }
Azure.IoT Build 0:6ae2f7bca550 10052
Azure.IoT Build 0:6ae2f7bca550 10053 int close_set_error(CLOSE_HANDLE close, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 10054 {
AzureIoTClient 28:add19eb7defa 10055 int result;
AzureIoTClient 28:add19eb7defa 10056
AzureIoTClient 28:add19eb7defa 10057 if (close == NULL)
AzureIoTClient 28:add19eb7defa 10058 {
AzureIoTClient 28:add19eb7defa 10059 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10060 }
AzureIoTClient 28:add19eb7defa 10061 else
AzureIoTClient 28:add19eb7defa 10062 {
AzureIoTClient 28:add19eb7defa 10063 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 10064 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 10065 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10066 {
AzureIoTClient 28:add19eb7defa 10067 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10068 }
AzureIoTClient 28:add19eb7defa 10069 else
AzureIoTClient 28:add19eb7defa 10070 {
AzureIoTClient 28:add19eb7defa 10071 if (amqpvalue_set_composite_item(close_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10072 {
AzureIoTClient 28:add19eb7defa 10073 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10074 }
AzureIoTClient 28:add19eb7defa 10075 else
AzureIoTClient 28:add19eb7defa 10076 {
AzureIoTClient 28:add19eb7defa 10077 result = 0;
AzureIoTClient 28:add19eb7defa 10078 }
AzureIoTClient 28:add19eb7defa 10079
AzureIoTClient 28:add19eb7defa 10080 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 10081 }
AzureIoTClient 28:add19eb7defa 10082 }
AzureIoTClient 28:add19eb7defa 10083
AzureIoTClient 28:add19eb7defa 10084 return result;
Azure.IoT Build 0:6ae2f7bca550 10085 }
Azure.IoT Build 0:6ae2f7bca550 10086
Azure.IoT Build 0:6ae2f7bca550 10087
Azure.IoT Build 0:6ae2f7bca550 10088 /* sasl-code */
Azure.IoT Build 0:6ae2f7bca550 10089
Azure.IoT Build 0:6ae2f7bca550 10090 AMQP_VALUE amqpvalue_create_sasl_code(sasl_code value)
Azure.IoT Build 0:6ae2f7bca550 10091 {
AzureIoTClient 28:add19eb7defa 10092 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 10093 }
Azure.IoT Build 0:6ae2f7bca550 10094
Azure.IoT Build 0:6ae2f7bca550 10095 /* sasl-mechanisms */
Azure.IoT Build 0:6ae2f7bca550 10096
Azure.IoT Build 0:6ae2f7bca550 10097 typedef struct SASL_MECHANISMS_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10098 {
AzureIoTClient 28:add19eb7defa 10099 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10100 } SASL_MECHANISMS_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10101
Azure.IoT Build 0:6ae2f7bca550 10102 static SASL_MECHANISMS_HANDLE sasl_mechanisms_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10103 {
AzureIoTClient 28:add19eb7defa 10104 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10105 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10106 {
AzureIoTClient 28:add19eb7defa 10107 sasl_mechanisms_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10108 }
AzureIoTClient 28:add19eb7defa 10109
AzureIoTClient 28:add19eb7defa 10110 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10111 }
Azure.IoT Build 0:6ae2f7bca550 10112
Azure.IoT Build 0:6ae2f7bca550 10113 SASL_MECHANISMS_HANDLE sasl_mechanisms_create(AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10114 {
AzureIoTClient 28:add19eb7defa 10115 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10116 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10117 {
AzureIoTClient 28:add19eb7defa 10118 sasl_mechanisms_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(64);
AzureIoTClient 28:add19eb7defa 10119 if (sasl_mechanisms_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10120 {
AzureIoTClient 28:add19eb7defa 10121 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10122 sasl_mechanisms_instance = NULL;
AzureIoTClient 28:add19eb7defa 10123 }
AzureIoTClient 28:add19eb7defa 10124 else
AzureIoTClient 28:add19eb7defa 10125 {
AzureIoTClient 28:add19eb7defa 10126 AMQP_VALUE sasl_server_mechanisms_amqp_value;
AzureIoTClient 28:add19eb7defa 10127 int result = 0;
AzureIoTClient 28:add19eb7defa 10128
AzureIoTClient 28:add19eb7defa 10129 sasl_server_mechanisms_amqp_value = sasl_server_mechanisms_value;
AzureIoTClient 28:add19eb7defa 10130 if ((result == 0) && (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10131 {
AzureIoTClient 28:add19eb7defa 10132 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10133 }
AzureIoTClient 28:add19eb7defa 10134
AzureIoTClient 28:add19eb7defa 10135 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
AzureIoTClient 28:add19eb7defa 10136 }
AzureIoTClient 28:add19eb7defa 10137 }
AzureIoTClient 28:add19eb7defa 10138
AzureIoTClient 28:add19eb7defa 10139 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10140 }
Azure.IoT Build 0:6ae2f7bca550 10141
Azure.IoT Build 0:6ae2f7bca550 10142 SASL_MECHANISMS_HANDLE sasl_mechanisms_clone(SASL_MECHANISMS_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10143 {
AzureIoTClient 28:add19eb7defa 10144 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10145 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10146 {
AzureIoTClient 28:add19eb7defa 10147 sasl_mechanisms_instance->composite_value = amqpvalue_clone(((SASL_MECHANISMS_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10148 if (sasl_mechanisms_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10149 {
AzureIoTClient 28:add19eb7defa 10150 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10151 sasl_mechanisms_instance = NULL;
AzureIoTClient 28:add19eb7defa 10152 }
AzureIoTClient 28:add19eb7defa 10153 }
AzureIoTClient 28:add19eb7defa 10154
AzureIoTClient 28:add19eb7defa 10155 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10156 }
Azure.IoT Build 0:6ae2f7bca550 10157
Azure.IoT Build 0:6ae2f7bca550 10158 void sasl_mechanisms_destroy(SASL_MECHANISMS_HANDLE sasl_mechanisms)
Azure.IoT Build 0:6ae2f7bca550 10159 {
AzureIoTClient 28:add19eb7defa 10160 if (sasl_mechanisms != NULL)
AzureIoTClient 28:add19eb7defa 10161 {
AzureIoTClient 28:add19eb7defa 10162 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10163 amqpvalue_destroy(sasl_mechanisms_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10164 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10165 }
Azure.IoT Build 0:6ae2f7bca550 10166 }
Azure.IoT Build 0:6ae2f7bca550 10167
Azure.IoT Build 0:6ae2f7bca550 10168 AMQP_VALUE amqpvalue_create_sasl_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms)
Azure.IoT Build 0:6ae2f7bca550 10169 {
AzureIoTClient 28:add19eb7defa 10170 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 10171
AzureIoTClient 28:add19eb7defa 10172 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10173 {
AzureIoTClient 28:add19eb7defa 10174 result = NULL;
AzureIoTClient 28:add19eb7defa 10175 }
AzureIoTClient 28:add19eb7defa 10176 else
AzureIoTClient 28:add19eb7defa 10177 {
AzureIoTClient 28:add19eb7defa 10178 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10179 result = amqpvalue_clone(sasl_mechanisms_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10180 }
AzureIoTClient 28:add19eb7defa 10181
AzureIoTClient 28:add19eb7defa 10182 return result;
Azure.IoT Build 0:6ae2f7bca550 10183 }
Azure.IoT Build 0:6ae2f7bca550 10184
Azure.IoT Build 0:6ae2f7bca550 10185 bool is_sasl_mechanisms_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10186 {
AzureIoTClient 28:add19eb7defa 10187 bool result;
AzureIoTClient 28:add19eb7defa 10188
AzureIoTClient 28:add19eb7defa 10189 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 10190 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 10191 (descriptor_ulong == 64))
AzureIoTClient 28:add19eb7defa 10192 {
AzureIoTClient 28:add19eb7defa 10193 result = true;
AzureIoTClient 28:add19eb7defa 10194 }
AzureIoTClient 28:add19eb7defa 10195 else
AzureIoTClient 28:add19eb7defa 10196 {
AzureIoTClient 28:add19eb7defa 10197 result = false;
AzureIoTClient 28:add19eb7defa 10198 }
AzureIoTClient 28:add19eb7defa 10199
AzureIoTClient 28:add19eb7defa 10200 return result;
Azure.IoT Build 0:6ae2f7bca550 10201 }
Azure.IoT Build 0:6ae2f7bca550 10202
Azure.IoT Build 0:6ae2f7bca550 10203
Azure.IoT Build 0:6ae2f7bca550 10204 int amqpvalue_get_sasl_mechanisms(AMQP_VALUE value, SASL_MECHANISMS_HANDLE* sasl_mechanisms_handle)
Azure.IoT Build 0:6ae2f7bca550 10205 {
AzureIoTClient 28:add19eb7defa 10206 int result;
AzureIoTClient 28:add19eb7defa 10207 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms_create_internal();
AzureIoTClient 28:add19eb7defa 10208 *sasl_mechanisms_handle = sasl_mechanisms_instance;
AzureIoTClient 28:add19eb7defa 10209 if (*sasl_mechanisms_handle == NULL)
AzureIoTClient 28:add19eb7defa 10210 {
AzureIoTClient 28:add19eb7defa 10211 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10212 }
AzureIoTClient 28:add19eb7defa 10213 else
AzureIoTClient 28:add19eb7defa 10214 {
AzureIoTClient 28:add19eb7defa 10215 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 10216 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 10217 {
AzureIoTClient 28:add19eb7defa 10218 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10219 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10220 }
AzureIoTClient 28:add19eb7defa 10221 else
AzureIoTClient 28:add19eb7defa 10222 {
AzureIoTClient 23:1111ee8bcba4 10223 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10224 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10225 {
AzureIoTClient 23:1111ee8bcba4 10226 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10227 }
AzureIoTClient 23:1111ee8bcba4 10228 else
AzureIoTClient 23:1111ee8bcba4 10229 {
AzureIoTClient 28:add19eb7defa 10230 do
AzureIoTClient 28:add19eb7defa 10231 {
AzureIoTClient 28:add19eb7defa 10232 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 10233 /* sasl-server-mechanisms */
AzureIoTClient 28:add19eb7defa 10234 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10235 {
AzureIoTClient 23:1111ee8bcba4 10236 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 10237 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10238 {
AzureIoTClient 28:add19eb7defa 10239 {
AzureIoTClient 28:add19eb7defa 10240 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10242 break;
AzureIoTClient 28:add19eb7defa 10243 }
AzureIoTClient 28:add19eb7defa 10244 }
AzureIoTClient 28:add19eb7defa 10245 else
AzureIoTClient 28:add19eb7defa 10246 {
AzureIoTClient 28:add19eb7defa 10247 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10248 {
AzureIoTClient 28:add19eb7defa 10249 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10250 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10251 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10252 break;
AzureIoTClient 28:add19eb7defa 10253 }
AzureIoTClient 28:add19eb7defa 10254 else
AzureIoTClient 28:add19eb7defa 10255 {
AzureIoTClient 28:add19eb7defa 10256 const char* sasl_server_mechanisms = NULL;
AzureIoTClient 28:add19eb7defa 10257 AMQP_VALUE sasl_server_mechanisms_array;
AzureIoTClient 28:add19eb7defa 10258 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &sasl_server_mechanisms_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 10259 (amqpvalue_get_symbol(item_value, &sasl_server_mechanisms) != 0))
AzureIoTClient 28:add19eb7defa 10260 {
AzureIoTClient 28:add19eb7defa 10261 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10262 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10263 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10264 break;
AzureIoTClient 28:add19eb7defa 10265 }
AzureIoTClient 28:add19eb7defa 10266 }
AzureIoTClient 28:add19eb7defa 10267
AzureIoTClient 28:add19eb7defa 10268 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10269 }
AzureIoTClient 28:add19eb7defa 10270 }
AzureIoTClient 28:add19eb7defa 10271 else
AzureIoTClient 28:add19eb7defa 10272 {
AzureIoTClient 28:add19eb7defa 10273 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10274 }
AzureIoTClient 28:add19eb7defa 10275
AzureIoTClient 28:add19eb7defa 10276 sasl_mechanisms_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 10277
AzureIoTClient 28:add19eb7defa 10278 result = 0;
AzureIoTClient 28:add19eb7defa 10279 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 10280 }
AzureIoTClient 28:add19eb7defa 10281 }
AzureIoTClient 28:add19eb7defa 10282 }
AzureIoTClient 28:add19eb7defa 10283
AzureIoTClient 28:add19eb7defa 10284 return result;
Azure.IoT Build 0:6ae2f7bca550 10285 }
Azure.IoT Build 0:6ae2f7bca550 10286
Azure.IoT Build 0:6ae2f7bca550 10287 int sasl_mechanisms_get_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE* sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10288 {
AzureIoTClient 28:add19eb7defa 10289 int result;
AzureIoTClient 28:add19eb7defa 10290
AzureIoTClient 28:add19eb7defa 10291 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10292 {
AzureIoTClient 28:add19eb7defa 10293 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10294 }
AzureIoTClient 28:add19eb7defa 10295 else
AzureIoTClient 28:add19eb7defa 10296 {
AzureIoTClient 28:add19eb7defa 10297 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10298 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 23:1111ee8bcba4 10299 if (amqpvalue_get_composite_item_count(sasl_mechanisms_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10300 {
AzureIoTClient 23:1111ee8bcba4 10301 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10302 }
AzureIoTClient 23:1111ee8bcba4 10303 else
AzureIoTClient 23:1111ee8bcba4 10304 {
AzureIoTClient 23:1111ee8bcba4 10305 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10306 {
AzureIoTClient 28:add19eb7defa 10307 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10308 }
AzureIoTClient 28:add19eb7defa 10309 else
AzureIoTClient 28:add19eb7defa 10310 {
AzureIoTClient 28:add19eb7defa 10311 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_mechanisms_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10312 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10313 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10314 {
AzureIoTClient 28:add19eb7defa 10315 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10316 }
AzureIoTClient 28:add19eb7defa 10317 else
AzureIoTClient 28:add19eb7defa 10318 {
AzureIoTClient 28:add19eb7defa 10319 const char* sasl_server_mechanisms_single_value;
AzureIoTClient 28:add19eb7defa 10320 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10321 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 10322 {
AzureIoTClient 28:add19eb7defa 10323 get_single_value_result = amqpvalue_get_symbol(item_value, &sasl_server_mechanisms_single_value);
AzureIoTClient 28:add19eb7defa 10324 }
AzureIoTClient 28:add19eb7defa 10325 else
AzureIoTClient 28:add19eb7defa 10326 {
AzureIoTClient 28:add19eb7defa 10327 (void)memset((void*)&sasl_server_mechanisms_single_value, 0, sizeof(sasl_server_mechanisms_single_value));
AzureIoTClient 28:add19eb7defa 10328 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 10329 }
AzureIoTClient 28:add19eb7defa 10330
AzureIoTClient 28:add19eb7defa 10331 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, sasl_server_mechanisms_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 10332 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 10333 {
AzureIoTClient 28:add19eb7defa 10334 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10335 }
AzureIoTClient 28:add19eb7defa 10336 else
AzureIoTClient 28:add19eb7defa 10337 {
AzureIoTClient 28:add19eb7defa 10338 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 10339 {
AzureIoTClient 28:add19eb7defa 10340 *sasl_server_mechanisms_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 10341 if (*sasl_server_mechanisms_value == NULL)
AzureIoTClient 28:add19eb7defa 10342 {
AzureIoTClient 28:add19eb7defa 10343 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10344 }
AzureIoTClient 28:add19eb7defa 10345 else
AzureIoTClient 28:add19eb7defa 10346 {
AzureIoTClient 28:add19eb7defa 10347 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(sasl_server_mechanisms_single_value);
AzureIoTClient 28:add19eb7defa 10348 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10349 {
AzureIoTClient 28:add19eb7defa 10350 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10351 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10352 }
AzureIoTClient 28:add19eb7defa 10353 else
AzureIoTClient 28:add19eb7defa 10354 {
AzureIoTClient 28:add19eb7defa 10355 if (amqpvalue_add_array_item(*sasl_server_mechanisms_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10356 {
AzureIoTClient 28:add19eb7defa 10357 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10358 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 10359 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10360 }
AzureIoTClient 28:add19eb7defa 10361 else
AzureIoTClient 28:add19eb7defa 10362 {
AzureIoTClient 29:4a11413cf217 10363 if (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, *sasl_server_mechanisms_value) != 0)
AzureIoTClient 29:4a11413cf217 10364 {
AzureIoTClient 29:4a11413cf217 10365 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 29:4a11413cf217 10366 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 10367 }
AzureIoTClient 29:4a11413cf217 10368 else
AzureIoTClient 29:4a11413cf217 10369 {
AzureIoTClient 29:4a11413cf217 10370 result = 0;
AzureIoTClient 29:4a11413cf217 10371 }
AzureIoTClient 28:add19eb7defa 10372 }
AzureIoTClient 29:4a11413cf217 10373
AzureIoTClient 29:4a11413cf217 10374 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 10375 }
AzureIoTClient 29:4a11413cf217 10376 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10377 }
AzureIoTClient 28:add19eb7defa 10378 }
AzureIoTClient 28:add19eb7defa 10379 else
AzureIoTClient 28:add19eb7defa 10380 {
AzureIoTClient 28:add19eb7defa 10381 result = 0;
AzureIoTClient 28:add19eb7defa 10382 }
AzureIoTClient 28:add19eb7defa 10383 }
AzureIoTClient 28:add19eb7defa 10384 }
AzureIoTClient 28:add19eb7defa 10385 }
AzureIoTClient 28:add19eb7defa 10386 }
AzureIoTClient 28:add19eb7defa 10387 }
AzureIoTClient 28:add19eb7defa 10388
AzureIoTClient 28:add19eb7defa 10389 return result;
Azure.IoT Build 0:6ae2f7bca550 10390 }
Azure.IoT Build 0:6ae2f7bca550 10391
Azure.IoT Build 0:6ae2f7bca550 10392 int sasl_mechanisms_set_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10393 {
AzureIoTClient 28:add19eb7defa 10394 int result;
AzureIoTClient 28:add19eb7defa 10395
AzureIoTClient 28:add19eb7defa 10396 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10397 {
AzureIoTClient 28:add19eb7defa 10398 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10399 }
AzureIoTClient 28:add19eb7defa 10400 else
AzureIoTClient 28:add19eb7defa 10401 {
AzureIoTClient 28:add19eb7defa 10402 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10403 AMQP_VALUE sasl_server_mechanisms_amqp_value;
AzureIoTClient 23:1111ee8bcba4 10404 if (sasl_server_mechanisms_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10405 {
AzureIoTClient 23:1111ee8bcba4 10406 sasl_server_mechanisms_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 10407 }
AzureIoTClient 23:1111ee8bcba4 10408 else
AzureIoTClient 23:1111ee8bcba4 10409 {
AzureIoTClient 23:1111ee8bcba4 10410 sasl_server_mechanisms_amqp_value = amqpvalue_clone(sasl_server_mechanisms_value);
AzureIoTClient 23:1111ee8bcba4 10411 }
AzureIoTClient 28:add19eb7defa 10412 if (sasl_server_mechanisms_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10413 {
AzureIoTClient 28:add19eb7defa 10414 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10415 }
AzureIoTClient 28:add19eb7defa 10416 else
AzureIoTClient 28:add19eb7defa 10417 {
AzureIoTClient 28:add19eb7defa 10418 if (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10419 {
AzureIoTClient 28:add19eb7defa 10420 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10421 }
AzureIoTClient 28:add19eb7defa 10422 else
AzureIoTClient 28:add19eb7defa 10423 {
AzureIoTClient 28:add19eb7defa 10424 result = 0;
AzureIoTClient 28:add19eb7defa 10425 }
AzureIoTClient 28:add19eb7defa 10426
AzureIoTClient 28:add19eb7defa 10427 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
AzureIoTClient 28:add19eb7defa 10428 }
AzureIoTClient 28:add19eb7defa 10429 }
AzureIoTClient 28:add19eb7defa 10430
AzureIoTClient 28:add19eb7defa 10431 return result;
Azure.IoT Build 0:6ae2f7bca550 10432 }
Azure.IoT Build 0:6ae2f7bca550 10433
Azure.IoT Build 0:6ae2f7bca550 10434
Azure.IoT Build 0:6ae2f7bca550 10435 /* sasl-init */
Azure.IoT Build 0:6ae2f7bca550 10436
Azure.IoT Build 0:6ae2f7bca550 10437 typedef struct SASL_INIT_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10438 {
AzureIoTClient 28:add19eb7defa 10439 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10440 } SASL_INIT_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10441
Azure.IoT Build 0:6ae2f7bca550 10442 static SASL_INIT_HANDLE sasl_init_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10443 {
AzureIoTClient 28:add19eb7defa 10444 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10445 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10446 {
AzureIoTClient 28:add19eb7defa 10447 sasl_init_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10448 }
AzureIoTClient 28:add19eb7defa 10449
AzureIoTClient 28:add19eb7defa 10450 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10451 }
Azure.IoT Build 0:6ae2f7bca550 10452
Azure.IoT Build 0:6ae2f7bca550 10453 SASL_INIT_HANDLE sasl_init_create(const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10454 {
AzureIoTClient 28:add19eb7defa 10455 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10456 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10457 {
AzureIoTClient 28:add19eb7defa 10458 sasl_init_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(65);
AzureIoTClient 28:add19eb7defa 10459 if (sasl_init_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10460 {
AzureIoTClient 28:add19eb7defa 10461 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10462 sasl_init_instance = NULL;
AzureIoTClient 28:add19eb7defa 10463 }
AzureIoTClient 28:add19eb7defa 10464 else
AzureIoTClient 28:add19eb7defa 10465 {
AzureIoTClient 28:add19eb7defa 10466 AMQP_VALUE mechanism_amqp_value;
AzureIoTClient 28:add19eb7defa 10467 int result = 0;
AzureIoTClient 28:add19eb7defa 10468
AzureIoTClient 28:add19eb7defa 10469 mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
AzureIoTClient 28:add19eb7defa 10470 if ((result == 0) && (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10471 {
AzureIoTClient 28:add19eb7defa 10472 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10473 }
AzureIoTClient 28:add19eb7defa 10474
AzureIoTClient 28:add19eb7defa 10475 amqpvalue_destroy(mechanism_amqp_value);
AzureIoTClient 28:add19eb7defa 10476 }
AzureIoTClient 28:add19eb7defa 10477 }
AzureIoTClient 28:add19eb7defa 10478
AzureIoTClient 28:add19eb7defa 10479 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10480 }
Azure.IoT Build 0:6ae2f7bca550 10481
Azure.IoT Build 0:6ae2f7bca550 10482 SASL_INIT_HANDLE sasl_init_clone(SASL_INIT_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10483 {
AzureIoTClient 28:add19eb7defa 10484 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10485 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10486 {
AzureIoTClient 28:add19eb7defa 10487 sasl_init_instance->composite_value = amqpvalue_clone(((SASL_INIT_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10488 if (sasl_init_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10489 {
AzureIoTClient 28:add19eb7defa 10490 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10491 sasl_init_instance = NULL;
AzureIoTClient 28:add19eb7defa 10492 }
AzureIoTClient 28:add19eb7defa 10493 }
AzureIoTClient 28:add19eb7defa 10494
AzureIoTClient 28:add19eb7defa 10495 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10496 }
Azure.IoT Build 0:6ae2f7bca550 10497
Azure.IoT Build 0:6ae2f7bca550 10498 void sasl_init_destroy(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 10499 {
AzureIoTClient 28:add19eb7defa 10500 if (sasl_init != NULL)
AzureIoTClient 28:add19eb7defa 10501 {
AzureIoTClient 28:add19eb7defa 10502 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10503 amqpvalue_destroy(sasl_init_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10504 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10505 }
Azure.IoT Build 0:6ae2f7bca550 10506 }
Azure.IoT Build 0:6ae2f7bca550 10507
Azure.IoT Build 0:6ae2f7bca550 10508 AMQP_VALUE amqpvalue_create_sasl_init(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 10509 {
AzureIoTClient 28:add19eb7defa 10510 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 10511
AzureIoTClient 28:add19eb7defa 10512 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10513 {
AzureIoTClient 28:add19eb7defa 10514 result = NULL;
AzureIoTClient 28:add19eb7defa 10515 }
AzureIoTClient 28:add19eb7defa 10516 else
AzureIoTClient 28:add19eb7defa 10517 {
AzureIoTClient 28:add19eb7defa 10518 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10519 result = amqpvalue_clone(sasl_init_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10520 }
AzureIoTClient 28:add19eb7defa 10521
AzureIoTClient 28:add19eb7defa 10522 return result;
Azure.IoT Build 0:6ae2f7bca550 10523 }
Azure.IoT Build 0:6ae2f7bca550 10524
Azure.IoT Build 0:6ae2f7bca550 10525 bool is_sasl_init_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10526 {
AzureIoTClient 28:add19eb7defa 10527 bool result;
AzureIoTClient 28:add19eb7defa 10528
AzureIoTClient 28:add19eb7defa 10529 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 10530 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 10531 (descriptor_ulong == 65))
AzureIoTClient 28:add19eb7defa 10532 {
AzureIoTClient 28:add19eb7defa 10533 result = true;
AzureIoTClient 28:add19eb7defa 10534 }
AzureIoTClient 28:add19eb7defa 10535 else
AzureIoTClient 28:add19eb7defa 10536 {
AzureIoTClient 28:add19eb7defa 10537 result = false;
AzureIoTClient 28:add19eb7defa 10538 }
AzureIoTClient 28:add19eb7defa 10539
AzureIoTClient 28:add19eb7defa 10540 return result;
Azure.IoT Build 0:6ae2f7bca550 10541 }
Azure.IoT Build 0:6ae2f7bca550 10542
Azure.IoT Build 0:6ae2f7bca550 10543
Azure.IoT Build 0:6ae2f7bca550 10544 int amqpvalue_get_sasl_init(AMQP_VALUE value, SASL_INIT_HANDLE* sasl_init_handle)
Azure.IoT Build 0:6ae2f7bca550 10545 {
AzureIoTClient 28:add19eb7defa 10546 int result;
AzureIoTClient 28:add19eb7defa 10547 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init_create_internal();
AzureIoTClient 28:add19eb7defa 10548 *sasl_init_handle = sasl_init_instance;
AzureIoTClient 28:add19eb7defa 10549 if (*sasl_init_handle == NULL)
AzureIoTClient 28:add19eb7defa 10550 {
AzureIoTClient 28:add19eb7defa 10551 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10552 }
AzureIoTClient 28:add19eb7defa 10553 else
AzureIoTClient 28:add19eb7defa 10554 {
AzureIoTClient 28:add19eb7defa 10555 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 10556 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 10557 {
AzureIoTClient 28:add19eb7defa 10558 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10559 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10560 }
AzureIoTClient 28:add19eb7defa 10561 else
AzureIoTClient 28:add19eb7defa 10562 {
AzureIoTClient 23:1111ee8bcba4 10563 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10564 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10565 {
AzureIoTClient 23:1111ee8bcba4 10566 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10567 }
AzureIoTClient 23:1111ee8bcba4 10568 else
AzureIoTClient 23:1111ee8bcba4 10569 {
AzureIoTClient 28:add19eb7defa 10570 do
AzureIoTClient 28:add19eb7defa 10571 {
AzureIoTClient 28:add19eb7defa 10572 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 10573 /* mechanism */
AzureIoTClient 28:add19eb7defa 10574 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10575 {
AzureIoTClient 23:1111ee8bcba4 10576 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 10577 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10578 {
AzureIoTClient 28:add19eb7defa 10579 {
AzureIoTClient 28:add19eb7defa 10580 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10581 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10582 break;
AzureIoTClient 28:add19eb7defa 10583 }
AzureIoTClient 28:add19eb7defa 10584 }
AzureIoTClient 28:add19eb7defa 10585 else
AzureIoTClient 28:add19eb7defa 10586 {
AzureIoTClient 28:add19eb7defa 10587 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10588 {
AzureIoTClient 28:add19eb7defa 10589 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10590 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10591 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10592 break;
AzureIoTClient 28:add19eb7defa 10593 }
AzureIoTClient 28:add19eb7defa 10594 else
AzureIoTClient 28:add19eb7defa 10595 {
AzureIoTClient 28:add19eb7defa 10596 const char* mechanism;
AzureIoTClient 28:add19eb7defa 10597 if (amqpvalue_get_symbol(item_value, &mechanism) != 0)
AzureIoTClient 28:add19eb7defa 10598 {
AzureIoTClient 28:add19eb7defa 10599 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10600 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10601 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10602 break;
AzureIoTClient 28:add19eb7defa 10603 }
AzureIoTClient 28:add19eb7defa 10604 }
AzureIoTClient 28:add19eb7defa 10605
AzureIoTClient 28:add19eb7defa 10606 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10607 }
AzureIoTClient 28:add19eb7defa 10608 }
AzureIoTClient 28:add19eb7defa 10609 else
AzureIoTClient 28:add19eb7defa 10610 {
AzureIoTClient 28:add19eb7defa 10611 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10612 }
AzureIoTClient 28:add19eb7defa 10613 /* initial-response */
AzureIoTClient 28:add19eb7defa 10614 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 10615 {
AzureIoTClient 23:1111ee8bcba4 10616 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 10617 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10618 {
AzureIoTClient 28:add19eb7defa 10619 /* do nothing */
AzureIoTClient 28:add19eb7defa 10620 }
AzureIoTClient 28:add19eb7defa 10621 else
AzureIoTClient 28:add19eb7defa 10622 {
AzureIoTClient 28:add19eb7defa 10623 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10624 {
AzureIoTClient 28:add19eb7defa 10625 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 10626 }
AzureIoTClient 28:add19eb7defa 10627 else
AzureIoTClient 28:add19eb7defa 10628 {
AzureIoTClient 28:add19eb7defa 10629 amqp_binary initial_response;
AzureIoTClient 28:add19eb7defa 10630 if (amqpvalue_get_binary(item_value, &initial_response) != 0)
AzureIoTClient 28:add19eb7defa 10631 {
AzureIoTClient 28:add19eb7defa 10632 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10633 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10634 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10635 break;
AzureIoTClient 28:add19eb7defa 10636 }
AzureIoTClient 28:add19eb7defa 10637 }
AzureIoTClient 28:add19eb7defa 10638
AzureIoTClient 28:add19eb7defa 10639 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10640 }
AzureIoTClient 28:add19eb7defa 10641 }
AzureIoTClient 28:add19eb7defa 10642 /* hostname */
AzureIoTClient 28:add19eb7defa 10643 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 10644 {
AzureIoTClient 23:1111ee8bcba4 10645 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 10646 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10647 {
AzureIoTClient 28:add19eb7defa 10648 /* do nothing */
AzureIoTClient 28:add19eb7defa 10649 }
AzureIoTClient 28:add19eb7defa 10650 else
AzureIoTClient 28:add19eb7defa 10651 {
AzureIoTClient 28:add19eb7defa 10652 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10653 {
AzureIoTClient 28:add19eb7defa 10654 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 10655 }
AzureIoTClient 28:add19eb7defa 10656 else
AzureIoTClient 28:add19eb7defa 10657 {
AzureIoTClient 28:add19eb7defa 10658 const char* hostname;
AzureIoTClient 28:add19eb7defa 10659 if (amqpvalue_get_string(item_value, &hostname) != 0)
AzureIoTClient 28:add19eb7defa 10660 {
AzureIoTClient 28:add19eb7defa 10661 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10662 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10663 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10664 break;
AzureIoTClient 28:add19eb7defa 10665 }
AzureIoTClient 28:add19eb7defa 10666 }
AzureIoTClient 28:add19eb7defa 10667
AzureIoTClient 28:add19eb7defa 10668 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10669 }
AzureIoTClient 28:add19eb7defa 10670 }
AzureIoTClient 28:add19eb7defa 10671
AzureIoTClient 28:add19eb7defa 10672 sasl_init_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 10673
AzureIoTClient 28:add19eb7defa 10674 result = 0;
AzureIoTClient 28:add19eb7defa 10675 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 10676 }
AzureIoTClient 28:add19eb7defa 10677 }
AzureIoTClient 28:add19eb7defa 10678 }
AzureIoTClient 28:add19eb7defa 10679
AzureIoTClient 28:add19eb7defa 10680 return result;
Azure.IoT Build 0:6ae2f7bca550 10681 }
Azure.IoT Build 0:6ae2f7bca550 10682
Azure.IoT Build 0:6ae2f7bca550 10683 int sasl_init_get_mechanism(SASL_INIT_HANDLE sasl_init, const char** mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10684 {
AzureIoTClient 28:add19eb7defa 10685 int result;
AzureIoTClient 28:add19eb7defa 10686
AzureIoTClient 28:add19eb7defa 10687 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10688 {
AzureIoTClient 28:add19eb7defa 10689 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10690 }
AzureIoTClient 28:add19eb7defa 10691 else
AzureIoTClient 28:add19eb7defa 10692 {
AzureIoTClient 28:add19eb7defa 10693 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10694 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10695 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10696 {
AzureIoTClient 23:1111ee8bcba4 10697 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10698 }
AzureIoTClient 23:1111ee8bcba4 10699 else
AzureIoTClient 23:1111ee8bcba4 10700 {
AzureIoTClient 23:1111ee8bcba4 10701 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10702 {
AzureIoTClient 28:add19eb7defa 10703 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10704 }
AzureIoTClient 28:add19eb7defa 10705 else
AzureIoTClient 28:add19eb7defa 10706 {
AzureIoTClient 28:add19eb7defa 10707 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10708 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10709 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10710 {
AzureIoTClient 28:add19eb7defa 10711 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10712 }
AzureIoTClient 28:add19eb7defa 10713 else
AzureIoTClient 28:add19eb7defa 10714 {
AzureIoTClient 43:4c1e4e94cdd3 10715 int get_single_value_result = amqpvalue_get_symbol(item_value, mechanism_value);
AzureIoTClient 43:4c1e4e94cdd3 10716 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 10717 {
AzureIoTClient 28:add19eb7defa 10718 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10719 }
AzureIoTClient 28:add19eb7defa 10720 else
AzureIoTClient 28:add19eb7defa 10721 {
AzureIoTClient 28:add19eb7defa 10722 result = 0;
AzureIoTClient 28:add19eb7defa 10723 }
AzureIoTClient 28:add19eb7defa 10724 }
AzureIoTClient 28:add19eb7defa 10725 }
AzureIoTClient 28:add19eb7defa 10726 }
AzureIoTClient 28:add19eb7defa 10727 }
AzureIoTClient 28:add19eb7defa 10728
AzureIoTClient 28:add19eb7defa 10729 return result;
Azure.IoT Build 0:6ae2f7bca550 10730 }
Azure.IoT Build 0:6ae2f7bca550 10731
Azure.IoT Build 0:6ae2f7bca550 10732 int sasl_init_set_mechanism(SASL_INIT_HANDLE sasl_init, const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10733 {
AzureIoTClient 28:add19eb7defa 10734 int result;
AzureIoTClient 28:add19eb7defa 10735
AzureIoTClient 28:add19eb7defa 10736 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10737 {
AzureIoTClient 28:add19eb7defa 10738 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10739 }
AzureIoTClient 28:add19eb7defa 10740 else
AzureIoTClient 28:add19eb7defa 10741 {
AzureIoTClient 28:add19eb7defa 10742 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10743 AMQP_VALUE mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
AzureIoTClient 28:add19eb7defa 10744 if (mechanism_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10745 {
AzureIoTClient 28:add19eb7defa 10746 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10747 }
AzureIoTClient 28:add19eb7defa 10748 else
AzureIoTClient 28:add19eb7defa 10749 {
AzureIoTClient 28:add19eb7defa 10750 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10751 {
AzureIoTClient 28:add19eb7defa 10752 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10753 }
AzureIoTClient 28:add19eb7defa 10754 else
AzureIoTClient 28:add19eb7defa 10755 {
AzureIoTClient 28:add19eb7defa 10756 result = 0;
AzureIoTClient 28:add19eb7defa 10757 }
AzureIoTClient 28:add19eb7defa 10758
AzureIoTClient 28:add19eb7defa 10759 amqpvalue_destroy(mechanism_amqp_value);
AzureIoTClient 28:add19eb7defa 10760 }
AzureIoTClient 28:add19eb7defa 10761 }
AzureIoTClient 28:add19eb7defa 10762
AzureIoTClient 28:add19eb7defa 10763 return result;
Azure.IoT Build 0:6ae2f7bca550 10764 }
Azure.IoT Build 0:6ae2f7bca550 10765
Azure.IoT Build 0:6ae2f7bca550 10766 int sasl_init_get_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary* initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10767 {
AzureIoTClient 28:add19eb7defa 10768 int result;
AzureIoTClient 28:add19eb7defa 10769
AzureIoTClient 28:add19eb7defa 10770 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10771 {
AzureIoTClient 28:add19eb7defa 10772 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10773 }
AzureIoTClient 28:add19eb7defa 10774 else
AzureIoTClient 28:add19eb7defa 10775 {
AzureIoTClient 28:add19eb7defa 10776 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10777 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10778 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10779 {
AzureIoTClient 23:1111ee8bcba4 10780 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10781 }
AzureIoTClient 23:1111ee8bcba4 10782 else
AzureIoTClient 23:1111ee8bcba4 10783 {
AzureIoTClient 23:1111ee8bcba4 10784 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 10785 {
AzureIoTClient 28:add19eb7defa 10786 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10787 }
AzureIoTClient 28:add19eb7defa 10788 else
AzureIoTClient 28:add19eb7defa 10789 {
AzureIoTClient 28:add19eb7defa 10790 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 10791 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10792 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10793 {
AzureIoTClient 28:add19eb7defa 10794 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10795 }
AzureIoTClient 28:add19eb7defa 10796 else
AzureIoTClient 28:add19eb7defa 10797 {
AzureIoTClient 43:4c1e4e94cdd3 10798 int get_single_value_result = amqpvalue_get_binary(item_value, initial_response_value);
AzureIoTClient 43:4c1e4e94cdd3 10799 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 10800 {
AzureIoTClient 28:add19eb7defa 10801 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10802 }
AzureIoTClient 28:add19eb7defa 10803 else
AzureIoTClient 28:add19eb7defa 10804 {
AzureIoTClient 28:add19eb7defa 10805 result = 0;
AzureIoTClient 28:add19eb7defa 10806 }
AzureIoTClient 28:add19eb7defa 10807 }
AzureIoTClient 28:add19eb7defa 10808 }
AzureIoTClient 28:add19eb7defa 10809 }
AzureIoTClient 28:add19eb7defa 10810 }
AzureIoTClient 28:add19eb7defa 10811
AzureIoTClient 28:add19eb7defa 10812 return result;
Azure.IoT Build 0:6ae2f7bca550 10813 }
Azure.IoT Build 0:6ae2f7bca550 10814
Azure.IoT Build 0:6ae2f7bca550 10815 int sasl_init_set_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10816 {
AzureIoTClient 28:add19eb7defa 10817 int result;
AzureIoTClient 28:add19eb7defa 10818
AzureIoTClient 28:add19eb7defa 10819 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10820 {
AzureIoTClient 28:add19eb7defa 10821 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10822 }
AzureIoTClient 28:add19eb7defa 10823 else
AzureIoTClient 28:add19eb7defa 10824 {
AzureIoTClient 28:add19eb7defa 10825 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10826 AMQP_VALUE initial_response_amqp_value = amqpvalue_create_binary(initial_response_value);
AzureIoTClient 28:add19eb7defa 10827 if (initial_response_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10828 {
AzureIoTClient 28:add19eb7defa 10829 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10830 }
AzureIoTClient 28:add19eb7defa 10831 else
AzureIoTClient 28:add19eb7defa 10832 {
AzureIoTClient 28:add19eb7defa 10833 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 1, initial_response_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10834 {
AzureIoTClient 28:add19eb7defa 10835 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10836 }
AzureIoTClient 28:add19eb7defa 10837 else
AzureIoTClient 28:add19eb7defa 10838 {
AzureIoTClient 28:add19eb7defa 10839 result = 0;
AzureIoTClient 28:add19eb7defa 10840 }
AzureIoTClient 28:add19eb7defa 10841
AzureIoTClient 28:add19eb7defa 10842 amqpvalue_destroy(initial_response_amqp_value);
AzureIoTClient 28:add19eb7defa 10843 }
AzureIoTClient 28:add19eb7defa 10844 }
AzureIoTClient 28:add19eb7defa 10845
AzureIoTClient 28:add19eb7defa 10846 return result;
Azure.IoT Build 0:6ae2f7bca550 10847 }
Azure.IoT Build 0:6ae2f7bca550 10848
Azure.IoT Build 0:6ae2f7bca550 10849 int sasl_init_get_hostname(SASL_INIT_HANDLE sasl_init, const char** hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10850 {
AzureIoTClient 28:add19eb7defa 10851 int result;
AzureIoTClient 28:add19eb7defa 10852
AzureIoTClient 28:add19eb7defa 10853 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10854 {
AzureIoTClient 28:add19eb7defa 10855 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10856 }
AzureIoTClient 28:add19eb7defa 10857 else
AzureIoTClient 28:add19eb7defa 10858 {
AzureIoTClient 28:add19eb7defa 10859 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10860 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10861 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10862 {
AzureIoTClient 23:1111ee8bcba4 10863 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10864 }
AzureIoTClient 23:1111ee8bcba4 10865 else
AzureIoTClient 23:1111ee8bcba4 10866 {
AzureIoTClient 23:1111ee8bcba4 10867 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 10868 {
AzureIoTClient 28:add19eb7defa 10869 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10870 }
AzureIoTClient 28:add19eb7defa 10871 else
AzureIoTClient 28:add19eb7defa 10872 {
AzureIoTClient 28:add19eb7defa 10873 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 10874 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10875 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10876 {
AzureIoTClient 28:add19eb7defa 10877 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10878 }
AzureIoTClient 28:add19eb7defa 10879 else
AzureIoTClient 28:add19eb7defa 10880 {
AzureIoTClient 43:4c1e4e94cdd3 10881 int get_single_value_result = amqpvalue_get_string(item_value, hostname_value);
AzureIoTClient 43:4c1e4e94cdd3 10882 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 10883 {
AzureIoTClient 28:add19eb7defa 10884 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10885 }
AzureIoTClient 28:add19eb7defa 10886 else
AzureIoTClient 28:add19eb7defa 10887 {
AzureIoTClient 28:add19eb7defa 10888 result = 0;
AzureIoTClient 28:add19eb7defa 10889 }
AzureIoTClient 28:add19eb7defa 10890 }
AzureIoTClient 28:add19eb7defa 10891 }
AzureIoTClient 28:add19eb7defa 10892 }
AzureIoTClient 28:add19eb7defa 10893 }
AzureIoTClient 28:add19eb7defa 10894
AzureIoTClient 28:add19eb7defa 10895 return result;
Azure.IoT Build 0:6ae2f7bca550 10896 }
Azure.IoT Build 0:6ae2f7bca550 10897
Azure.IoT Build 0:6ae2f7bca550 10898 int sasl_init_set_hostname(SASL_INIT_HANDLE sasl_init, const char* hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10899 {
AzureIoTClient 28:add19eb7defa 10900 int result;
AzureIoTClient 28:add19eb7defa 10901
AzureIoTClient 28:add19eb7defa 10902 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10903 {
AzureIoTClient 28:add19eb7defa 10904 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10905 }
AzureIoTClient 28:add19eb7defa 10906 else
AzureIoTClient 28:add19eb7defa 10907 {
AzureIoTClient 28:add19eb7defa 10908 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10909 AMQP_VALUE hostname_amqp_value = amqpvalue_create_string(hostname_value);
AzureIoTClient 28:add19eb7defa 10910 if (hostname_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10911 {
AzureIoTClient 28:add19eb7defa 10912 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10913 }
AzureIoTClient 28:add19eb7defa 10914 else
AzureIoTClient 28:add19eb7defa 10915 {
AzureIoTClient 28:add19eb7defa 10916 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 2, hostname_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10917 {
AzureIoTClient 28:add19eb7defa 10918 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10919 }
AzureIoTClient 28:add19eb7defa 10920 else
AzureIoTClient 28:add19eb7defa 10921 {
AzureIoTClient 28:add19eb7defa 10922 result = 0;
AzureIoTClient 28:add19eb7defa 10923 }
AzureIoTClient 28:add19eb7defa 10924
AzureIoTClient 28:add19eb7defa 10925 amqpvalue_destroy(hostname_amqp_value);
AzureIoTClient 28:add19eb7defa 10926 }
AzureIoTClient 28:add19eb7defa 10927 }
AzureIoTClient 28:add19eb7defa 10928
AzureIoTClient 28:add19eb7defa 10929 return result;
Azure.IoT Build 0:6ae2f7bca550 10930 }
Azure.IoT Build 0:6ae2f7bca550 10931
Azure.IoT Build 0:6ae2f7bca550 10932
Azure.IoT Build 0:6ae2f7bca550 10933 /* sasl-challenge */
Azure.IoT Build 0:6ae2f7bca550 10934
Azure.IoT Build 0:6ae2f7bca550 10935 typedef struct SASL_CHALLENGE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10936 {
AzureIoTClient 28:add19eb7defa 10937 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10938 } SASL_CHALLENGE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10939
Azure.IoT Build 0:6ae2f7bca550 10940 static SASL_CHALLENGE_HANDLE sasl_challenge_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10941 {
AzureIoTClient 28:add19eb7defa 10942 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10943 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10944 {
AzureIoTClient 28:add19eb7defa 10945 sasl_challenge_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10946 }
AzureIoTClient 28:add19eb7defa 10947
AzureIoTClient 28:add19eb7defa 10948 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10949 }
Azure.IoT Build 0:6ae2f7bca550 10950
Azure.IoT Build 0:6ae2f7bca550 10951 SASL_CHALLENGE_HANDLE sasl_challenge_create(amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 10952 {
AzureIoTClient 28:add19eb7defa 10953 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10954 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10955 {
AzureIoTClient 28:add19eb7defa 10956 sasl_challenge_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(66);
AzureIoTClient 28:add19eb7defa 10957 if (sasl_challenge_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10958 {
AzureIoTClient 28:add19eb7defa 10959 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10960 sasl_challenge_instance = NULL;
AzureIoTClient 28:add19eb7defa 10961 }
AzureIoTClient 28:add19eb7defa 10962 else
AzureIoTClient 28:add19eb7defa 10963 {
AzureIoTClient 28:add19eb7defa 10964 AMQP_VALUE challenge_amqp_value;
AzureIoTClient 28:add19eb7defa 10965 int result = 0;
AzureIoTClient 28:add19eb7defa 10966
AzureIoTClient 28:add19eb7defa 10967 challenge_amqp_value = amqpvalue_create_binary(challenge_value);
AzureIoTClient 28:add19eb7defa 10968 if ((result == 0) && (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10969 {
AzureIoTClient 28:add19eb7defa 10970 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10971 }
AzureIoTClient 28:add19eb7defa 10972
AzureIoTClient 28:add19eb7defa 10973 amqpvalue_destroy(challenge_amqp_value);
AzureIoTClient 28:add19eb7defa 10974 }
AzureIoTClient 28:add19eb7defa 10975 }
AzureIoTClient 28:add19eb7defa 10976
AzureIoTClient 28:add19eb7defa 10977 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10978 }
Azure.IoT Build 0:6ae2f7bca550 10979
Azure.IoT Build 0:6ae2f7bca550 10980 SASL_CHALLENGE_HANDLE sasl_challenge_clone(SASL_CHALLENGE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10981 {
AzureIoTClient 28:add19eb7defa 10982 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10983 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10984 {
AzureIoTClient 28:add19eb7defa 10985 sasl_challenge_instance->composite_value = amqpvalue_clone(((SASL_CHALLENGE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10986 if (sasl_challenge_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10987 {
AzureIoTClient 28:add19eb7defa 10988 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10989 sasl_challenge_instance = NULL;
AzureIoTClient 28:add19eb7defa 10990 }
AzureIoTClient 28:add19eb7defa 10991 }
AzureIoTClient 28:add19eb7defa 10992
AzureIoTClient 28:add19eb7defa 10993 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10994 }
Azure.IoT Build 0:6ae2f7bca550 10995
Azure.IoT Build 0:6ae2f7bca550 10996 void sasl_challenge_destroy(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 10997 {
AzureIoTClient 28:add19eb7defa 10998 if (sasl_challenge != NULL)
AzureIoTClient 28:add19eb7defa 10999 {
AzureIoTClient 28:add19eb7defa 11000 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 11001 amqpvalue_destroy(sasl_challenge_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11002 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 11003 }
Azure.IoT Build 0:6ae2f7bca550 11004 }
Azure.IoT Build 0:6ae2f7bca550 11005
Azure.IoT Build 0:6ae2f7bca550 11006 AMQP_VALUE amqpvalue_create_sasl_challenge(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 11007 {
AzureIoTClient 28:add19eb7defa 11008 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11009
AzureIoTClient 28:add19eb7defa 11010 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11011 {
AzureIoTClient 28:add19eb7defa 11012 result = NULL;
AzureIoTClient 28:add19eb7defa 11013 }
AzureIoTClient 28:add19eb7defa 11014 else
AzureIoTClient 28:add19eb7defa 11015 {
AzureIoTClient 28:add19eb7defa 11016 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 11017 result = amqpvalue_clone(sasl_challenge_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11018 }
AzureIoTClient 28:add19eb7defa 11019
AzureIoTClient 28:add19eb7defa 11020 return result;
Azure.IoT Build 0:6ae2f7bca550 11021 }
Azure.IoT Build 0:6ae2f7bca550 11022
Azure.IoT Build 0:6ae2f7bca550 11023 bool is_sasl_challenge_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11024 {
AzureIoTClient 28:add19eb7defa 11025 bool result;
AzureIoTClient 28:add19eb7defa 11026
AzureIoTClient 28:add19eb7defa 11027 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11028 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11029 (descriptor_ulong == 66))
AzureIoTClient 28:add19eb7defa 11030 {
AzureIoTClient 28:add19eb7defa 11031 result = true;
AzureIoTClient 28:add19eb7defa 11032 }
AzureIoTClient 28:add19eb7defa 11033 else
AzureIoTClient 28:add19eb7defa 11034 {
AzureIoTClient 28:add19eb7defa 11035 result = false;
AzureIoTClient 28:add19eb7defa 11036 }
AzureIoTClient 28:add19eb7defa 11037
AzureIoTClient 28:add19eb7defa 11038 return result;
Azure.IoT Build 0:6ae2f7bca550 11039 }
Azure.IoT Build 0:6ae2f7bca550 11040
Azure.IoT Build 0:6ae2f7bca550 11041
Azure.IoT Build 0:6ae2f7bca550 11042 int amqpvalue_get_sasl_challenge(AMQP_VALUE value, SASL_CHALLENGE_HANDLE* sasl_challenge_handle)
Azure.IoT Build 0:6ae2f7bca550 11043 {
AzureIoTClient 28:add19eb7defa 11044 int result;
AzureIoTClient 28:add19eb7defa 11045 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge_create_internal();
AzureIoTClient 28:add19eb7defa 11046 *sasl_challenge_handle = sasl_challenge_instance;
AzureIoTClient 28:add19eb7defa 11047 if (*sasl_challenge_handle == NULL)
AzureIoTClient 28:add19eb7defa 11048 {
AzureIoTClient 28:add19eb7defa 11049 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11050 }
AzureIoTClient 28:add19eb7defa 11051 else
AzureIoTClient 28:add19eb7defa 11052 {
AzureIoTClient 28:add19eb7defa 11053 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11054 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11055 {
AzureIoTClient 28:add19eb7defa 11056 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11057 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11058 }
AzureIoTClient 28:add19eb7defa 11059 else
AzureIoTClient 28:add19eb7defa 11060 {
AzureIoTClient 23:1111ee8bcba4 11061 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11062 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11063 {
AzureIoTClient 23:1111ee8bcba4 11064 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11065 }
AzureIoTClient 23:1111ee8bcba4 11066 else
AzureIoTClient 23:1111ee8bcba4 11067 {
AzureIoTClient 28:add19eb7defa 11068 do
AzureIoTClient 28:add19eb7defa 11069 {
AzureIoTClient 28:add19eb7defa 11070 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11071 /* challenge */
AzureIoTClient 28:add19eb7defa 11072 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11073 {
AzureIoTClient 23:1111ee8bcba4 11074 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11075 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11076 {
AzureIoTClient 28:add19eb7defa 11077 {
AzureIoTClient 28:add19eb7defa 11078 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11079 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11080 break;
AzureIoTClient 28:add19eb7defa 11081 }
AzureIoTClient 28:add19eb7defa 11082 }
AzureIoTClient 28:add19eb7defa 11083 else
AzureIoTClient 28:add19eb7defa 11084 {
AzureIoTClient 28:add19eb7defa 11085 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11086 {
AzureIoTClient 28:add19eb7defa 11087 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11088 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11089 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11090 break;
AzureIoTClient 28:add19eb7defa 11091 }
AzureIoTClient 28:add19eb7defa 11092 else
AzureIoTClient 28:add19eb7defa 11093 {
AzureIoTClient 28:add19eb7defa 11094 amqp_binary challenge;
AzureIoTClient 28:add19eb7defa 11095 if (amqpvalue_get_binary(item_value, &challenge) != 0)
AzureIoTClient 28:add19eb7defa 11096 {
AzureIoTClient 28:add19eb7defa 11097 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11098 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11099 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11100 break;
AzureIoTClient 28:add19eb7defa 11101 }
AzureIoTClient 28:add19eb7defa 11102 }
AzureIoTClient 28:add19eb7defa 11103
AzureIoTClient 28:add19eb7defa 11104 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11105 }
AzureIoTClient 28:add19eb7defa 11106 }
AzureIoTClient 28:add19eb7defa 11107 else
AzureIoTClient 28:add19eb7defa 11108 {
AzureIoTClient 28:add19eb7defa 11109 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11110 }
AzureIoTClient 28:add19eb7defa 11111
AzureIoTClient 28:add19eb7defa 11112 sasl_challenge_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11113
AzureIoTClient 28:add19eb7defa 11114 result = 0;
AzureIoTClient 28:add19eb7defa 11115 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11116 }
AzureIoTClient 28:add19eb7defa 11117 }
AzureIoTClient 28:add19eb7defa 11118 }
AzureIoTClient 28:add19eb7defa 11119
AzureIoTClient 28:add19eb7defa 11120 return result;
Azure.IoT Build 0:6ae2f7bca550 11121 }
Azure.IoT Build 0:6ae2f7bca550 11122
Azure.IoT Build 0:6ae2f7bca550 11123 int sasl_challenge_get_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary* challenge_value)
Azure.IoT Build 0:6ae2f7bca550 11124 {
AzureIoTClient 28:add19eb7defa 11125 int result;
AzureIoTClient 28:add19eb7defa 11126
AzureIoTClient 28:add19eb7defa 11127 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11128 {
AzureIoTClient 28:add19eb7defa 11129 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11130 }
AzureIoTClient 28:add19eb7defa 11131 else
AzureIoTClient 28:add19eb7defa 11132 {
AzureIoTClient 28:add19eb7defa 11133 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11134 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 23:1111ee8bcba4 11135 if (amqpvalue_get_composite_item_count(sasl_challenge_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11136 {
AzureIoTClient 23:1111ee8bcba4 11137 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11138 }
AzureIoTClient 23:1111ee8bcba4 11139 else
AzureIoTClient 23:1111ee8bcba4 11140 {
AzureIoTClient 23:1111ee8bcba4 11141 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11142 {
AzureIoTClient 28:add19eb7defa 11143 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11144 }
AzureIoTClient 28:add19eb7defa 11145 else
AzureIoTClient 28:add19eb7defa 11146 {
AzureIoTClient 28:add19eb7defa 11147 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_challenge_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11148 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11149 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11150 {
AzureIoTClient 28:add19eb7defa 11151 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11152 }
AzureIoTClient 28:add19eb7defa 11153 else
AzureIoTClient 28:add19eb7defa 11154 {
AzureIoTClient 43:4c1e4e94cdd3 11155 int get_single_value_result = amqpvalue_get_binary(item_value, challenge_value);
AzureIoTClient 43:4c1e4e94cdd3 11156 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 11157 {
AzureIoTClient 28:add19eb7defa 11158 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11159 }
AzureIoTClient 28:add19eb7defa 11160 else
AzureIoTClient 28:add19eb7defa 11161 {
AzureIoTClient 28:add19eb7defa 11162 result = 0;
AzureIoTClient 28:add19eb7defa 11163 }
AzureIoTClient 28:add19eb7defa 11164 }
AzureIoTClient 28:add19eb7defa 11165 }
AzureIoTClient 28:add19eb7defa 11166 }
AzureIoTClient 28:add19eb7defa 11167 }
AzureIoTClient 28:add19eb7defa 11168
AzureIoTClient 28:add19eb7defa 11169 return result;
Azure.IoT Build 0:6ae2f7bca550 11170 }
Azure.IoT Build 0:6ae2f7bca550 11171
Azure.IoT Build 0:6ae2f7bca550 11172 int sasl_challenge_set_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 11173 {
AzureIoTClient 28:add19eb7defa 11174 int result;
AzureIoTClient 28:add19eb7defa 11175
AzureIoTClient 28:add19eb7defa 11176 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11177 {
AzureIoTClient 28:add19eb7defa 11178 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11179 }
AzureIoTClient 28:add19eb7defa 11180 else
AzureIoTClient 28:add19eb7defa 11181 {
AzureIoTClient 28:add19eb7defa 11182 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 11183 AMQP_VALUE challenge_amqp_value = amqpvalue_create_binary(challenge_value);
AzureIoTClient 28:add19eb7defa 11184 if (challenge_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11185 {
AzureIoTClient 28:add19eb7defa 11186 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11187 }
AzureIoTClient 28:add19eb7defa 11188 else
AzureIoTClient 28:add19eb7defa 11189 {
AzureIoTClient 28:add19eb7defa 11190 if (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11191 {
AzureIoTClient 28:add19eb7defa 11192 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11193 }
AzureIoTClient 28:add19eb7defa 11194 else
AzureIoTClient 28:add19eb7defa 11195 {
AzureIoTClient 28:add19eb7defa 11196 result = 0;
AzureIoTClient 28:add19eb7defa 11197 }
AzureIoTClient 28:add19eb7defa 11198
AzureIoTClient 28:add19eb7defa 11199 amqpvalue_destroy(challenge_amqp_value);
AzureIoTClient 28:add19eb7defa 11200 }
AzureIoTClient 28:add19eb7defa 11201 }
AzureIoTClient 28:add19eb7defa 11202
AzureIoTClient 28:add19eb7defa 11203 return result;
Azure.IoT Build 0:6ae2f7bca550 11204 }
Azure.IoT Build 0:6ae2f7bca550 11205
Azure.IoT Build 0:6ae2f7bca550 11206
Azure.IoT Build 0:6ae2f7bca550 11207 /* sasl-response */
Azure.IoT Build 0:6ae2f7bca550 11208
Azure.IoT Build 0:6ae2f7bca550 11209 typedef struct SASL_RESPONSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11210 {
AzureIoTClient 28:add19eb7defa 11211 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11212 } SASL_RESPONSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11213
Azure.IoT Build 0:6ae2f7bca550 11214 static SASL_RESPONSE_HANDLE sasl_response_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11215 {
AzureIoTClient 28:add19eb7defa 11216 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11217 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11218 {
AzureIoTClient 28:add19eb7defa 11219 sasl_response_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11220 }
AzureIoTClient 28:add19eb7defa 11221
AzureIoTClient 28:add19eb7defa 11222 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11223 }
Azure.IoT Build 0:6ae2f7bca550 11224
Azure.IoT Build 0:6ae2f7bca550 11225 SASL_RESPONSE_HANDLE sasl_response_create(amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 11226 {
AzureIoTClient 28:add19eb7defa 11227 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11228 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11229 {
AzureIoTClient 28:add19eb7defa 11230 sasl_response_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(67);
AzureIoTClient 28:add19eb7defa 11231 if (sasl_response_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11232 {
AzureIoTClient 28:add19eb7defa 11233 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11234 sasl_response_instance = NULL;
AzureIoTClient 28:add19eb7defa 11235 }
AzureIoTClient 28:add19eb7defa 11236 else
AzureIoTClient 28:add19eb7defa 11237 {
AzureIoTClient 28:add19eb7defa 11238 AMQP_VALUE response_amqp_value;
AzureIoTClient 28:add19eb7defa 11239 int result = 0;
AzureIoTClient 28:add19eb7defa 11240
AzureIoTClient 28:add19eb7defa 11241 response_amqp_value = amqpvalue_create_binary(response_value);
AzureIoTClient 28:add19eb7defa 11242 if ((result == 0) && (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 11243 {
AzureIoTClient 28:add19eb7defa 11244 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11245 }
AzureIoTClient 28:add19eb7defa 11246
AzureIoTClient 28:add19eb7defa 11247 amqpvalue_destroy(response_amqp_value);
AzureIoTClient 28:add19eb7defa 11248 }
AzureIoTClient 28:add19eb7defa 11249 }
AzureIoTClient 28:add19eb7defa 11250
AzureIoTClient 28:add19eb7defa 11251 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11252 }
Azure.IoT Build 0:6ae2f7bca550 11253
Azure.IoT Build 0:6ae2f7bca550 11254 SASL_RESPONSE_HANDLE sasl_response_clone(SASL_RESPONSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11255 {
AzureIoTClient 28:add19eb7defa 11256 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11257 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11258 {
AzureIoTClient 28:add19eb7defa 11259 sasl_response_instance->composite_value = amqpvalue_clone(((SASL_RESPONSE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11260 if (sasl_response_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11261 {
AzureIoTClient 28:add19eb7defa 11262 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11263 sasl_response_instance = NULL;
AzureIoTClient 28:add19eb7defa 11264 }
AzureIoTClient 28:add19eb7defa 11265 }
AzureIoTClient 28:add19eb7defa 11266
AzureIoTClient 28:add19eb7defa 11267 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11268 }
Azure.IoT Build 0:6ae2f7bca550 11269
Azure.IoT Build 0:6ae2f7bca550 11270 void sasl_response_destroy(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 11271 {
AzureIoTClient 28:add19eb7defa 11272 if (sasl_response != NULL)
AzureIoTClient 28:add19eb7defa 11273 {
AzureIoTClient 28:add19eb7defa 11274 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11275 amqpvalue_destroy(sasl_response_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11276 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11277 }
Azure.IoT Build 0:6ae2f7bca550 11278 }
Azure.IoT Build 0:6ae2f7bca550 11279
Azure.IoT Build 0:6ae2f7bca550 11280 AMQP_VALUE amqpvalue_create_sasl_response(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 11281 {
AzureIoTClient 28:add19eb7defa 11282 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11283
AzureIoTClient 28:add19eb7defa 11284 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11285 {
AzureIoTClient 28:add19eb7defa 11286 result = NULL;
AzureIoTClient 28:add19eb7defa 11287 }
AzureIoTClient 28:add19eb7defa 11288 else
AzureIoTClient 28:add19eb7defa 11289 {
AzureIoTClient 28:add19eb7defa 11290 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11291 result = amqpvalue_clone(sasl_response_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11292 }
AzureIoTClient 28:add19eb7defa 11293
AzureIoTClient 28:add19eb7defa 11294 return result;
Azure.IoT Build 0:6ae2f7bca550 11295 }
Azure.IoT Build 0:6ae2f7bca550 11296
Azure.IoT Build 0:6ae2f7bca550 11297 bool is_sasl_response_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11298 {
AzureIoTClient 28:add19eb7defa 11299 bool result;
AzureIoTClient 28:add19eb7defa 11300
AzureIoTClient 28:add19eb7defa 11301 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11302 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11303 (descriptor_ulong == 67))
AzureIoTClient 28:add19eb7defa 11304 {
AzureIoTClient 28:add19eb7defa 11305 result = true;
AzureIoTClient 28:add19eb7defa 11306 }
AzureIoTClient 28:add19eb7defa 11307 else
AzureIoTClient 28:add19eb7defa 11308 {
AzureIoTClient 28:add19eb7defa 11309 result = false;
AzureIoTClient 28:add19eb7defa 11310 }
AzureIoTClient 28:add19eb7defa 11311
AzureIoTClient 28:add19eb7defa 11312 return result;
Azure.IoT Build 0:6ae2f7bca550 11313 }
Azure.IoT Build 0:6ae2f7bca550 11314
Azure.IoT Build 0:6ae2f7bca550 11315
Azure.IoT Build 0:6ae2f7bca550 11316 int amqpvalue_get_sasl_response(AMQP_VALUE value, SASL_RESPONSE_HANDLE* sasl_response_handle)
Azure.IoT Build 0:6ae2f7bca550 11317 {
AzureIoTClient 28:add19eb7defa 11318 int result;
AzureIoTClient 28:add19eb7defa 11319 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response_create_internal();
AzureIoTClient 28:add19eb7defa 11320 *sasl_response_handle = sasl_response_instance;
AzureIoTClient 28:add19eb7defa 11321 if (*sasl_response_handle == NULL)
AzureIoTClient 28:add19eb7defa 11322 {
AzureIoTClient 28:add19eb7defa 11323 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11324 }
AzureIoTClient 28:add19eb7defa 11325 else
AzureIoTClient 28:add19eb7defa 11326 {
AzureIoTClient 28:add19eb7defa 11327 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11328 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11329 {
AzureIoTClient 28:add19eb7defa 11330 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11331 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11332 }
AzureIoTClient 28:add19eb7defa 11333 else
AzureIoTClient 28:add19eb7defa 11334 {
AzureIoTClient 23:1111ee8bcba4 11335 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11336 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11337 {
AzureIoTClient 23:1111ee8bcba4 11338 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11339 }
AzureIoTClient 23:1111ee8bcba4 11340 else
AzureIoTClient 23:1111ee8bcba4 11341 {
AzureIoTClient 28:add19eb7defa 11342 do
AzureIoTClient 28:add19eb7defa 11343 {
AzureIoTClient 28:add19eb7defa 11344 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11345 /* response */
AzureIoTClient 28:add19eb7defa 11346 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11347 {
AzureIoTClient 23:1111ee8bcba4 11348 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11349 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11350 {
AzureIoTClient 28:add19eb7defa 11351 {
AzureIoTClient 28:add19eb7defa 11352 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11353 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11354 break;
AzureIoTClient 28:add19eb7defa 11355 }
AzureIoTClient 28:add19eb7defa 11356 }
AzureIoTClient 28:add19eb7defa 11357 else
AzureIoTClient 28:add19eb7defa 11358 {
AzureIoTClient 28:add19eb7defa 11359 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11360 {
AzureIoTClient 28:add19eb7defa 11361 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11362 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11363 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11364 break;
AzureIoTClient 28:add19eb7defa 11365 }
AzureIoTClient 28:add19eb7defa 11366 else
AzureIoTClient 28:add19eb7defa 11367 {
AzureIoTClient 28:add19eb7defa 11368 amqp_binary response;
AzureIoTClient 28:add19eb7defa 11369 if (amqpvalue_get_binary(item_value, &response) != 0)
AzureIoTClient 28:add19eb7defa 11370 {
AzureIoTClient 28:add19eb7defa 11371 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11372 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11373 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11374 break;
AzureIoTClient 28:add19eb7defa 11375 }
AzureIoTClient 28:add19eb7defa 11376 }
AzureIoTClient 28:add19eb7defa 11377
AzureIoTClient 28:add19eb7defa 11378 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11379 }
AzureIoTClient 28:add19eb7defa 11380 }
AzureIoTClient 28:add19eb7defa 11381 else
AzureIoTClient 28:add19eb7defa 11382 {
AzureIoTClient 28:add19eb7defa 11383 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11384 }
AzureIoTClient 28:add19eb7defa 11385
AzureIoTClient 28:add19eb7defa 11386 sasl_response_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11387
AzureIoTClient 28:add19eb7defa 11388 result = 0;
AzureIoTClient 28:add19eb7defa 11389 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11390 }
AzureIoTClient 28:add19eb7defa 11391 }
AzureIoTClient 28:add19eb7defa 11392 }
AzureIoTClient 28:add19eb7defa 11393
AzureIoTClient 28:add19eb7defa 11394 return result;
Azure.IoT Build 0:6ae2f7bca550 11395 }
Azure.IoT Build 0:6ae2f7bca550 11396
Azure.IoT Build 0:6ae2f7bca550 11397 int sasl_response_get_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary* response_value)
Azure.IoT Build 0:6ae2f7bca550 11398 {
AzureIoTClient 28:add19eb7defa 11399 int result;
AzureIoTClient 28:add19eb7defa 11400
AzureIoTClient 28:add19eb7defa 11401 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11402 {
AzureIoTClient 28:add19eb7defa 11403 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11404 }
AzureIoTClient 28:add19eb7defa 11405 else
AzureIoTClient 28:add19eb7defa 11406 {
AzureIoTClient 28:add19eb7defa 11407 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11408 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 23:1111ee8bcba4 11409 if (amqpvalue_get_composite_item_count(sasl_response_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11410 {
AzureIoTClient 23:1111ee8bcba4 11411 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11412 }
AzureIoTClient 23:1111ee8bcba4 11413 else
AzureIoTClient 23:1111ee8bcba4 11414 {
AzureIoTClient 23:1111ee8bcba4 11415 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11416 {
AzureIoTClient 28:add19eb7defa 11417 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11418 }
AzureIoTClient 28:add19eb7defa 11419 else
AzureIoTClient 28:add19eb7defa 11420 {
AzureIoTClient 28:add19eb7defa 11421 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_response_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11422 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11423 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11424 {
AzureIoTClient 28:add19eb7defa 11425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11426 }
AzureIoTClient 28:add19eb7defa 11427 else
AzureIoTClient 28:add19eb7defa 11428 {
AzureIoTClient 43:4c1e4e94cdd3 11429 int get_single_value_result = amqpvalue_get_binary(item_value, response_value);
AzureIoTClient 43:4c1e4e94cdd3 11430 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 11431 {
AzureIoTClient 28:add19eb7defa 11432 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11433 }
AzureIoTClient 28:add19eb7defa 11434 else
AzureIoTClient 28:add19eb7defa 11435 {
AzureIoTClient 28:add19eb7defa 11436 result = 0;
AzureIoTClient 28:add19eb7defa 11437 }
AzureIoTClient 28:add19eb7defa 11438 }
AzureIoTClient 28:add19eb7defa 11439 }
AzureIoTClient 28:add19eb7defa 11440 }
AzureIoTClient 28:add19eb7defa 11441 }
AzureIoTClient 28:add19eb7defa 11442
AzureIoTClient 28:add19eb7defa 11443 return result;
Azure.IoT Build 0:6ae2f7bca550 11444 }
Azure.IoT Build 0:6ae2f7bca550 11445
Azure.IoT Build 0:6ae2f7bca550 11446 int sasl_response_set_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 11447 {
AzureIoTClient 28:add19eb7defa 11448 int result;
AzureIoTClient 28:add19eb7defa 11449
AzureIoTClient 28:add19eb7defa 11450 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11451 {
AzureIoTClient 28:add19eb7defa 11452 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11453 }
AzureIoTClient 28:add19eb7defa 11454 else
AzureIoTClient 28:add19eb7defa 11455 {
AzureIoTClient 28:add19eb7defa 11456 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11457 AMQP_VALUE response_amqp_value = amqpvalue_create_binary(response_value);
AzureIoTClient 28:add19eb7defa 11458 if (response_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11459 {
AzureIoTClient 28:add19eb7defa 11460 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11461 }
AzureIoTClient 28:add19eb7defa 11462 else
AzureIoTClient 28:add19eb7defa 11463 {
AzureIoTClient 28:add19eb7defa 11464 if (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11465 {
AzureIoTClient 28:add19eb7defa 11466 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11467 }
AzureIoTClient 28:add19eb7defa 11468 else
AzureIoTClient 28:add19eb7defa 11469 {
AzureIoTClient 28:add19eb7defa 11470 result = 0;
AzureIoTClient 28:add19eb7defa 11471 }
AzureIoTClient 28:add19eb7defa 11472
AzureIoTClient 28:add19eb7defa 11473 amqpvalue_destroy(response_amqp_value);
AzureIoTClient 28:add19eb7defa 11474 }
AzureIoTClient 28:add19eb7defa 11475 }
AzureIoTClient 28:add19eb7defa 11476
AzureIoTClient 28:add19eb7defa 11477 return result;
Azure.IoT Build 0:6ae2f7bca550 11478 }
Azure.IoT Build 0:6ae2f7bca550 11479
Azure.IoT Build 0:6ae2f7bca550 11480
Azure.IoT Build 0:6ae2f7bca550 11481 /* sasl-outcome */
Azure.IoT Build 0:6ae2f7bca550 11482
Azure.IoT Build 0:6ae2f7bca550 11483 typedef struct SASL_OUTCOME_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11484 {
AzureIoTClient 28:add19eb7defa 11485 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11486 } SASL_OUTCOME_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11487
Azure.IoT Build 0:6ae2f7bca550 11488 static SASL_OUTCOME_HANDLE sasl_outcome_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11489 {
AzureIoTClient 28:add19eb7defa 11490 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11491 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11492 {
AzureIoTClient 28:add19eb7defa 11493 sasl_outcome_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11494 }
AzureIoTClient 28:add19eb7defa 11495
AzureIoTClient 28:add19eb7defa 11496 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11497 }
Azure.IoT Build 0:6ae2f7bca550 11498
Azure.IoT Build 0:6ae2f7bca550 11499 SASL_OUTCOME_HANDLE sasl_outcome_create(sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11500 {
AzureIoTClient 28:add19eb7defa 11501 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11502 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11503 {
AzureIoTClient 28:add19eb7defa 11504 sasl_outcome_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(68);
AzureIoTClient 28:add19eb7defa 11505 if (sasl_outcome_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11506 {
AzureIoTClient 28:add19eb7defa 11507 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11508 sasl_outcome_instance = NULL;
AzureIoTClient 28:add19eb7defa 11509 }
AzureIoTClient 28:add19eb7defa 11510 else
AzureIoTClient 28:add19eb7defa 11511 {
AzureIoTClient 28:add19eb7defa 11512 AMQP_VALUE code_amqp_value;
AzureIoTClient 28:add19eb7defa 11513 int result = 0;
AzureIoTClient 28:add19eb7defa 11514
AzureIoTClient 28:add19eb7defa 11515 code_amqp_value = amqpvalue_create_sasl_code(code_value);
AzureIoTClient 28:add19eb7defa 11516 if ((result == 0) && (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 11517 {
AzureIoTClient 28:add19eb7defa 11518 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11519 }
AzureIoTClient 28:add19eb7defa 11520
AzureIoTClient 28:add19eb7defa 11521 amqpvalue_destroy(code_amqp_value);
AzureIoTClient 28:add19eb7defa 11522 }
AzureIoTClient 28:add19eb7defa 11523 }
AzureIoTClient 28:add19eb7defa 11524
AzureIoTClient 28:add19eb7defa 11525 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11526 }
Azure.IoT Build 0:6ae2f7bca550 11527
Azure.IoT Build 0:6ae2f7bca550 11528 SASL_OUTCOME_HANDLE sasl_outcome_clone(SASL_OUTCOME_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11529 {
AzureIoTClient 28:add19eb7defa 11530 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11531 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11532 {
AzureIoTClient 28:add19eb7defa 11533 sasl_outcome_instance->composite_value = amqpvalue_clone(((SASL_OUTCOME_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11534 if (sasl_outcome_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11535 {
AzureIoTClient 28:add19eb7defa 11536 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11537 sasl_outcome_instance = NULL;
AzureIoTClient 28:add19eb7defa 11538 }
AzureIoTClient 28:add19eb7defa 11539 }
AzureIoTClient 28:add19eb7defa 11540
AzureIoTClient 28:add19eb7defa 11541 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11542 }
Azure.IoT Build 0:6ae2f7bca550 11543
Azure.IoT Build 0:6ae2f7bca550 11544 void sasl_outcome_destroy(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 11545 {
AzureIoTClient 28:add19eb7defa 11546 if (sasl_outcome != NULL)
AzureIoTClient 28:add19eb7defa 11547 {
AzureIoTClient 28:add19eb7defa 11548 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11549 amqpvalue_destroy(sasl_outcome_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11550 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11551 }
Azure.IoT Build 0:6ae2f7bca550 11552 }
Azure.IoT Build 0:6ae2f7bca550 11553
Azure.IoT Build 0:6ae2f7bca550 11554 AMQP_VALUE amqpvalue_create_sasl_outcome(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 11555 {
AzureIoTClient 28:add19eb7defa 11556 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11557
AzureIoTClient 28:add19eb7defa 11558 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11559 {
AzureIoTClient 28:add19eb7defa 11560 result = NULL;
AzureIoTClient 28:add19eb7defa 11561 }
AzureIoTClient 28:add19eb7defa 11562 else
AzureIoTClient 28:add19eb7defa 11563 {
AzureIoTClient 28:add19eb7defa 11564 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11565 result = amqpvalue_clone(sasl_outcome_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11566 }
AzureIoTClient 28:add19eb7defa 11567
AzureIoTClient 28:add19eb7defa 11568 return result;
Azure.IoT Build 0:6ae2f7bca550 11569 }
Azure.IoT Build 0:6ae2f7bca550 11570
Azure.IoT Build 0:6ae2f7bca550 11571 bool is_sasl_outcome_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11572 {
AzureIoTClient 28:add19eb7defa 11573 bool result;
AzureIoTClient 28:add19eb7defa 11574
AzureIoTClient 28:add19eb7defa 11575 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11576 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11577 (descriptor_ulong == 68))
AzureIoTClient 28:add19eb7defa 11578 {
AzureIoTClient 28:add19eb7defa 11579 result = true;
AzureIoTClient 28:add19eb7defa 11580 }
AzureIoTClient 28:add19eb7defa 11581 else
AzureIoTClient 28:add19eb7defa 11582 {
AzureIoTClient 28:add19eb7defa 11583 result = false;
AzureIoTClient 28:add19eb7defa 11584 }
AzureIoTClient 28:add19eb7defa 11585
AzureIoTClient 28:add19eb7defa 11586 return result;
Azure.IoT Build 0:6ae2f7bca550 11587 }
Azure.IoT Build 0:6ae2f7bca550 11588
Azure.IoT Build 0:6ae2f7bca550 11589
Azure.IoT Build 0:6ae2f7bca550 11590 int amqpvalue_get_sasl_outcome(AMQP_VALUE value, SASL_OUTCOME_HANDLE* sasl_outcome_handle)
Azure.IoT Build 0:6ae2f7bca550 11591 {
AzureIoTClient 28:add19eb7defa 11592 int result;
AzureIoTClient 28:add19eb7defa 11593 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome_create_internal();
AzureIoTClient 28:add19eb7defa 11594 *sasl_outcome_handle = sasl_outcome_instance;
AzureIoTClient 28:add19eb7defa 11595 if (*sasl_outcome_handle == NULL)
AzureIoTClient 28:add19eb7defa 11596 {
AzureIoTClient 28:add19eb7defa 11597 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11598 }
AzureIoTClient 28:add19eb7defa 11599 else
AzureIoTClient 28:add19eb7defa 11600 {
AzureIoTClient 28:add19eb7defa 11601 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11602 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11603 {
AzureIoTClient 28:add19eb7defa 11604 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11605 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11606 }
AzureIoTClient 28:add19eb7defa 11607 else
AzureIoTClient 28:add19eb7defa 11608 {
AzureIoTClient 23:1111ee8bcba4 11609 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11610 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11611 {
AzureIoTClient 23:1111ee8bcba4 11612 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11613 }
AzureIoTClient 23:1111ee8bcba4 11614 else
AzureIoTClient 23:1111ee8bcba4 11615 {
AzureIoTClient 28:add19eb7defa 11616 do
AzureIoTClient 28:add19eb7defa 11617 {
AzureIoTClient 28:add19eb7defa 11618 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11619 /* code */
AzureIoTClient 28:add19eb7defa 11620 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11621 {
AzureIoTClient 23:1111ee8bcba4 11622 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11623 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11624 {
AzureIoTClient 28:add19eb7defa 11625 {
AzureIoTClient 28:add19eb7defa 11626 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11627 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11628 break;
AzureIoTClient 28:add19eb7defa 11629 }
AzureIoTClient 28:add19eb7defa 11630 }
AzureIoTClient 28:add19eb7defa 11631 else
AzureIoTClient 28:add19eb7defa 11632 {
AzureIoTClient 28:add19eb7defa 11633 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11634 {
AzureIoTClient 28:add19eb7defa 11635 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11636 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11638 break;
AzureIoTClient 28:add19eb7defa 11639 }
AzureIoTClient 28:add19eb7defa 11640 else
AzureIoTClient 28:add19eb7defa 11641 {
AzureIoTClient 28:add19eb7defa 11642 sasl_code code;
AzureIoTClient 28:add19eb7defa 11643 if (amqpvalue_get_sasl_code(item_value, &code) != 0)
AzureIoTClient 28:add19eb7defa 11644 {
AzureIoTClient 28:add19eb7defa 11645 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11646 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11647 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11648 break;
AzureIoTClient 28:add19eb7defa 11649 }
AzureIoTClient 28:add19eb7defa 11650 }
AzureIoTClient 28:add19eb7defa 11651
AzureIoTClient 28:add19eb7defa 11652 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11653 }
AzureIoTClient 28:add19eb7defa 11654 }
AzureIoTClient 28:add19eb7defa 11655 else
AzureIoTClient 28:add19eb7defa 11656 {
AzureIoTClient 28:add19eb7defa 11657 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11658 }
AzureIoTClient 28:add19eb7defa 11659 /* additional-data */
AzureIoTClient 28:add19eb7defa 11660 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 11661 {
AzureIoTClient 23:1111ee8bcba4 11662 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 11663 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11664 {
AzureIoTClient 28:add19eb7defa 11665 /* do nothing */
AzureIoTClient 28:add19eb7defa 11666 }
AzureIoTClient 28:add19eb7defa 11667 else
AzureIoTClient 28:add19eb7defa 11668 {
AzureIoTClient 28:add19eb7defa 11669 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11670 {
AzureIoTClient 28:add19eb7defa 11671 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 11672 }
AzureIoTClient 28:add19eb7defa 11673 else
AzureIoTClient 28:add19eb7defa 11674 {
AzureIoTClient 28:add19eb7defa 11675 amqp_binary additional_data;
AzureIoTClient 28:add19eb7defa 11676 if (amqpvalue_get_binary(item_value, &additional_data) != 0)
AzureIoTClient 28:add19eb7defa 11677 {
AzureIoTClient 28:add19eb7defa 11678 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11679 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11680 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11681 break;
AzureIoTClient 28:add19eb7defa 11682 }
AzureIoTClient 28:add19eb7defa 11683 }
AzureIoTClient 28:add19eb7defa 11684
AzureIoTClient 28:add19eb7defa 11685 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11686 }
AzureIoTClient 28:add19eb7defa 11687 }
AzureIoTClient 28:add19eb7defa 11688
AzureIoTClient 28:add19eb7defa 11689 sasl_outcome_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11690
AzureIoTClient 28:add19eb7defa 11691 result = 0;
AzureIoTClient 28:add19eb7defa 11692 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11693 }
AzureIoTClient 28:add19eb7defa 11694 }
AzureIoTClient 28:add19eb7defa 11695 }
AzureIoTClient 28:add19eb7defa 11696
AzureIoTClient 28:add19eb7defa 11697 return result;
Azure.IoT Build 0:6ae2f7bca550 11698 }
Azure.IoT Build 0:6ae2f7bca550 11699
Azure.IoT Build 0:6ae2f7bca550 11700 int sasl_outcome_get_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code* code_value)
Azure.IoT Build 0:6ae2f7bca550 11701 {
AzureIoTClient 28:add19eb7defa 11702 int result;
AzureIoTClient 28:add19eb7defa 11703
AzureIoTClient 28:add19eb7defa 11704 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11705 {
AzureIoTClient 28:add19eb7defa 11706 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11707 }
AzureIoTClient 28:add19eb7defa 11708 else
AzureIoTClient 28:add19eb7defa 11709 {
AzureIoTClient 28:add19eb7defa 11710 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11711 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11712 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11713 {
AzureIoTClient 23:1111ee8bcba4 11714 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11715 }
AzureIoTClient 23:1111ee8bcba4 11716 else
AzureIoTClient 23:1111ee8bcba4 11717 {
AzureIoTClient 23:1111ee8bcba4 11718 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11719 {
AzureIoTClient 28:add19eb7defa 11720 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11721 }
AzureIoTClient 28:add19eb7defa 11722 else
AzureIoTClient 28:add19eb7defa 11723 {
AzureIoTClient 28:add19eb7defa 11724 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11725 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11726 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11727 {
AzureIoTClient 28:add19eb7defa 11728 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11729 }
AzureIoTClient 28:add19eb7defa 11730 else
AzureIoTClient 28:add19eb7defa 11731 {
AzureIoTClient 43:4c1e4e94cdd3 11732 int get_single_value_result = amqpvalue_get_sasl_code(item_value, code_value);
AzureIoTClient 43:4c1e4e94cdd3 11733 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 11734 {
AzureIoTClient 28:add19eb7defa 11735 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11736 }
AzureIoTClient 28:add19eb7defa 11737 else
AzureIoTClient 28:add19eb7defa 11738 {
AzureIoTClient 28:add19eb7defa 11739 result = 0;
AzureIoTClient 28:add19eb7defa 11740 }
AzureIoTClient 28:add19eb7defa 11741 }
AzureIoTClient 28:add19eb7defa 11742 }
AzureIoTClient 28:add19eb7defa 11743 }
AzureIoTClient 28:add19eb7defa 11744 }
AzureIoTClient 28:add19eb7defa 11745
AzureIoTClient 28:add19eb7defa 11746 return result;
Azure.IoT Build 0:6ae2f7bca550 11747 }
Azure.IoT Build 0:6ae2f7bca550 11748
Azure.IoT Build 0:6ae2f7bca550 11749 int sasl_outcome_set_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11750 {
AzureIoTClient 28:add19eb7defa 11751 int result;
AzureIoTClient 28:add19eb7defa 11752
AzureIoTClient 28:add19eb7defa 11753 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11754 {
AzureIoTClient 28:add19eb7defa 11755 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11756 }
AzureIoTClient 28:add19eb7defa 11757 else
AzureIoTClient 28:add19eb7defa 11758 {
AzureIoTClient 28:add19eb7defa 11759 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11760 AMQP_VALUE code_amqp_value = amqpvalue_create_sasl_code(code_value);
AzureIoTClient 28:add19eb7defa 11761 if (code_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11762 {
AzureIoTClient 28:add19eb7defa 11763 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11764 }
AzureIoTClient 28:add19eb7defa 11765 else
AzureIoTClient 28:add19eb7defa 11766 {
AzureIoTClient 28:add19eb7defa 11767 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11768 {
AzureIoTClient 28:add19eb7defa 11769 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11770 }
AzureIoTClient 28:add19eb7defa 11771 else
AzureIoTClient 28:add19eb7defa 11772 {
AzureIoTClient 28:add19eb7defa 11773 result = 0;
AzureIoTClient 28:add19eb7defa 11774 }
AzureIoTClient 28:add19eb7defa 11775
AzureIoTClient 28:add19eb7defa 11776 amqpvalue_destroy(code_amqp_value);
AzureIoTClient 28:add19eb7defa 11777 }
AzureIoTClient 28:add19eb7defa 11778 }
AzureIoTClient 28:add19eb7defa 11779
AzureIoTClient 28:add19eb7defa 11780 return result;
Azure.IoT Build 0:6ae2f7bca550 11781 }
Azure.IoT Build 0:6ae2f7bca550 11782
Azure.IoT Build 0:6ae2f7bca550 11783 int sasl_outcome_get_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary* additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11784 {
AzureIoTClient 28:add19eb7defa 11785 int result;
AzureIoTClient 28:add19eb7defa 11786
AzureIoTClient 28:add19eb7defa 11787 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11788 {
AzureIoTClient 28:add19eb7defa 11789 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11790 }
AzureIoTClient 28:add19eb7defa 11791 else
AzureIoTClient 28:add19eb7defa 11792 {
AzureIoTClient 28:add19eb7defa 11793 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11794 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11795 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11796 {
AzureIoTClient 23:1111ee8bcba4 11797 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11798 }
AzureIoTClient 23:1111ee8bcba4 11799 else
AzureIoTClient 23:1111ee8bcba4 11800 {
AzureIoTClient 23:1111ee8bcba4 11801 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 11802 {
AzureIoTClient 28:add19eb7defa 11803 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11804 }
AzureIoTClient 28:add19eb7defa 11805 else
AzureIoTClient 28:add19eb7defa 11806 {
AzureIoTClient 28:add19eb7defa 11807 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 11808 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11809 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11810 {
AzureIoTClient 28:add19eb7defa 11811 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11812 }
AzureIoTClient 28:add19eb7defa 11813 else
AzureIoTClient 28:add19eb7defa 11814 {
AzureIoTClient 43:4c1e4e94cdd3 11815 int get_single_value_result = amqpvalue_get_binary(item_value, additional_data_value);
AzureIoTClient 43:4c1e4e94cdd3 11816 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 11817 {
AzureIoTClient 28:add19eb7defa 11818 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11819 }
AzureIoTClient 28:add19eb7defa 11820 else
AzureIoTClient 28:add19eb7defa 11821 {
AzureIoTClient 28:add19eb7defa 11822 result = 0;
AzureIoTClient 28:add19eb7defa 11823 }
AzureIoTClient 28:add19eb7defa 11824 }
AzureIoTClient 28:add19eb7defa 11825 }
AzureIoTClient 28:add19eb7defa 11826 }
AzureIoTClient 28:add19eb7defa 11827 }
AzureIoTClient 28:add19eb7defa 11828
AzureIoTClient 28:add19eb7defa 11829 return result;
Azure.IoT Build 0:6ae2f7bca550 11830 }
Azure.IoT Build 0:6ae2f7bca550 11831
Azure.IoT Build 0:6ae2f7bca550 11832 int sasl_outcome_set_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11833 {
AzureIoTClient 28:add19eb7defa 11834 int result;
AzureIoTClient 28:add19eb7defa 11835
AzureIoTClient 28:add19eb7defa 11836 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11837 {
AzureIoTClient 28:add19eb7defa 11838 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11839 }
AzureIoTClient 28:add19eb7defa 11840 else
AzureIoTClient 28:add19eb7defa 11841 {
AzureIoTClient 28:add19eb7defa 11842 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11843 AMQP_VALUE additional_data_amqp_value = amqpvalue_create_binary(additional_data_value);
AzureIoTClient 28:add19eb7defa 11844 if (additional_data_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11845 {
AzureIoTClient 28:add19eb7defa 11846 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11847 }
AzureIoTClient 28:add19eb7defa 11848 else
AzureIoTClient 28:add19eb7defa 11849 {
AzureIoTClient 28:add19eb7defa 11850 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 1, additional_data_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11851 {
AzureIoTClient 28:add19eb7defa 11852 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11853 }
AzureIoTClient 28:add19eb7defa 11854 else
AzureIoTClient 28:add19eb7defa 11855 {
AzureIoTClient 28:add19eb7defa 11856 result = 0;
AzureIoTClient 28:add19eb7defa 11857 }
AzureIoTClient 28:add19eb7defa 11858
AzureIoTClient 28:add19eb7defa 11859 amqpvalue_destroy(additional_data_amqp_value);
AzureIoTClient 28:add19eb7defa 11860 }
AzureIoTClient 28:add19eb7defa 11861 }
AzureIoTClient 28:add19eb7defa 11862
AzureIoTClient 28:add19eb7defa 11863 return result;
Azure.IoT Build 0:6ae2f7bca550 11864 }
Azure.IoT Build 0:6ae2f7bca550 11865
Azure.IoT Build 0:6ae2f7bca550 11866
Azure.IoT Build 0:6ae2f7bca550 11867 /* terminus-durability */
Azure.IoT Build 0:6ae2f7bca550 11868
Azure.IoT Build 0:6ae2f7bca550 11869 AMQP_VALUE amqpvalue_create_terminus_durability(terminus_durability value)
Azure.IoT Build 0:6ae2f7bca550 11870 {
AzureIoTClient 28:add19eb7defa 11871 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 11872 }
Azure.IoT Build 0:6ae2f7bca550 11873
Azure.IoT Build 0:6ae2f7bca550 11874 /* terminus-expiry-policy */
Azure.IoT Build 0:6ae2f7bca550 11875
Azure.IoT Build 0:6ae2f7bca550 11876 AMQP_VALUE amqpvalue_create_terminus_expiry_policy(terminus_expiry_policy value)
Azure.IoT Build 0:6ae2f7bca550 11877 {
AzureIoTClient 28:add19eb7defa 11878 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 11879 }
Azure.IoT Build 0:6ae2f7bca550 11880
Azure.IoT Build 0:6ae2f7bca550 11881 /* node-properties */
Azure.IoT Build 0:6ae2f7bca550 11882
Azure.IoT Build 0:6ae2f7bca550 11883 AMQP_VALUE amqpvalue_create_node_properties(node_properties value)
Azure.IoT Build 0:6ae2f7bca550 11884 {
AzureIoTClient 28:add19eb7defa 11885 return amqpvalue_create_fields(value);
Azure.IoT Build 0:6ae2f7bca550 11886 }
Azure.IoT Build 0:6ae2f7bca550 11887
Azure.IoT Build 0:6ae2f7bca550 11888 /* filter-set */
Azure.IoT Build 0:6ae2f7bca550 11889
Azure.IoT Build 0:6ae2f7bca550 11890 AMQP_VALUE amqpvalue_create_filter_set(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 11891 {
AzureIoTClient 28:add19eb7defa 11892 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 11893 }
Azure.IoT Build 0:6ae2f7bca550 11894
Azure.IoT Build 0:6ae2f7bca550 11895 /* source */
Azure.IoT Build 0:6ae2f7bca550 11896
Azure.IoT Build 0:6ae2f7bca550 11897 typedef struct SOURCE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11898 {
AzureIoTClient 28:add19eb7defa 11899 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11900 } SOURCE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11901
Azure.IoT Build 0:6ae2f7bca550 11902 static SOURCE_HANDLE source_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11903 {
AzureIoTClient 28:add19eb7defa 11904 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11905 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11906 {
AzureIoTClient 28:add19eb7defa 11907 source_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11908 }
AzureIoTClient 28:add19eb7defa 11909
AzureIoTClient 28:add19eb7defa 11910 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11911 }
Azure.IoT Build 0:6ae2f7bca550 11912
Azure.IoT Build 0:6ae2f7bca550 11913 SOURCE_HANDLE source_create(void)
Azure.IoT Build 0:6ae2f7bca550 11914 {
AzureIoTClient 28:add19eb7defa 11915 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11916 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11917 {
AzureIoTClient 28:add19eb7defa 11918 source_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(40);
AzureIoTClient 28:add19eb7defa 11919 if (source_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11920 {
AzureIoTClient 28:add19eb7defa 11921 free(source_instance);
AzureIoTClient 28:add19eb7defa 11922 source_instance = NULL;
AzureIoTClient 28:add19eb7defa 11923 }
AzureIoTClient 28:add19eb7defa 11924 }
AzureIoTClient 28:add19eb7defa 11925
AzureIoTClient 28:add19eb7defa 11926 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11927 }
Azure.IoT Build 0:6ae2f7bca550 11928
Azure.IoT Build 0:6ae2f7bca550 11929 SOURCE_HANDLE source_clone(SOURCE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11930 {
AzureIoTClient 28:add19eb7defa 11931 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11932 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11933 {
AzureIoTClient 28:add19eb7defa 11934 source_instance->composite_value = amqpvalue_clone(((SOURCE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11935 if (source_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11936 {
AzureIoTClient 28:add19eb7defa 11937 free(source_instance);
AzureIoTClient 28:add19eb7defa 11938 source_instance = NULL;
AzureIoTClient 28:add19eb7defa 11939 }
AzureIoTClient 28:add19eb7defa 11940 }
AzureIoTClient 28:add19eb7defa 11941
AzureIoTClient 28:add19eb7defa 11942 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11943 }
Azure.IoT Build 0:6ae2f7bca550 11944
Azure.IoT Build 0:6ae2f7bca550 11945 void source_destroy(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11946 {
AzureIoTClient 28:add19eb7defa 11947 if (source != NULL)
AzureIoTClient 28:add19eb7defa 11948 {
AzureIoTClient 28:add19eb7defa 11949 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 11950 amqpvalue_destroy(source_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11951 free(source_instance);
AzureIoTClient 28:add19eb7defa 11952 }
Azure.IoT Build 0:6ae2f7bca550 11953 }
Azure.IoT Build 0:6ae2f7bca550 11954
Azure.IoT Build 0:6ae2f7bca550 11955 AMQP_VALUE amqpvalue_create_source(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11956 {
AzureIoTClient 28:add19eb7defa 11957 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11958
AzureIoTClient 28:add19eb7defa 11959 if (source == NULL)
AzureIoTClient 28:add19eb7defa 11960 {
AzureIoTClient 28:add19eb7defa 11961 result = NULL;
AzureIoTClient 28:add19eb7defa 11962 }
AzureIoTClient 28:add19eb7defa 11963 else
AzureIoTClient 28:add19eb7defa 11964 {
AzureIoTClient 28:add19eb7defa 11965 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 11966 result = amqpvalue_clone(source_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11967 }
AzureIoTClient 28:add19eb7defa 11968
AzureIoTClient 28:add19eb7defa 11969 return result;
Azure.IoT Build 0:6ae2f7bca550 11970 }
Azure.IoT Build 0:6ae2f7bca550 11971
Azure.IoT Build 0:6ae2f7bca550 11972 bool is_source_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11973 {
AzureIoTClient 28:add19eb7defa 11974 bool result;
AzureIoTClient 28:add19eb7defa 11975
AzureIoTClient 28:add19eb7defa 11976 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11977 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11978 (descriptor_ulong == 40))
AzureIoTClient 28:add19eb7defa 11979 {
AzureIoTClient 28:add19eb7defa 11980 result = true;
AzureIoTClient 28:add19eb7defa 11981 }
AzureIoTClient 28:add19eb7defa 11982 else
AzureIoTClient 28:add19eb7defa 11983 {
AzureIoTClient 28:add19eb7defa 11984 result = false;
AzureIoTClient 28:add19eb7defa 11985 }
AzureIoTClient 28:add19eb7defa 11986
AzureIoTClient 28:add19eb7defa 11987 return result;
Azure.IoT Build 0:6ae2f7bca550 11988 }
Azure.IoT Build 0:6ae2f7bca550 11989
Azure.IoT Build 0:6ae2f7bca550 11990
Azure.IoT Build 0:6ae2f7bca550 11991 int amqpvalue_get_source(AMQP_VALUE value, SOURCE_HANDLE* source_handle)
Azure.IoT Build 0:6ae2f7bca550 11992 {
AzureIoTClient 28:add19eb7defa 11993 int result;
AzureIoTClient 28:add19eb7defa 11994 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source_create_internal();
AzureIoTClient 28:add19eb7defa 11995 *source_handle = source_instance;
AzureIoTClient 28:add19eb7defa 11996 if (*source_handle == NULL)
AzureIoTClient 28:add19eb7defa 11997 {
AzureIoTClient 28:add19eb7defa 11998 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11999 }
AzureIoTClient 28:add19eb7defa 12000 else
AzureIoTClient 28:add19eb7defa 12001 {
AzureIoTClient 28:add19eb7defa 12002 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 12003 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 12004 {
AzureIoTClient 28:add19eb7defa 12005 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12006 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12007 }
AzureIoTClient 28:add19eb7defa 12008 else
AzureIoTClient 28:add19eb7defa 12009 {
AzureIoTClient 23:1111ee8bcba4 12010 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 12011 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12012 {
AzureIoTClient 23:1111ee8bcba4 12013 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12014 }
AzureIoTClient 23:1111ee8bcba4 12015 else
AzureIoTClient 23:1111ee8bcba4 12016 {
AzureIoTClient 28:add19eb7defa 12017 do
AzureIoTClient 28:add19eb7defa 12018 {
AzureIoTClient 28:add19eb7defa 12019 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 12020 /* address */
AzureIoTClient 28:add19eb7defa 12021 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 12022 {
AzureIoTClient 23:1111ee8bcba4 12023 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 12024 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12025 {
AzureIoTClient 28:add19eb7defa 12026 /* do nothing */
AzureIoTClient 28:add19eb7defa 12027 }
AzureIoTClient 28:add19eb7defa 12028 else
AzureIoTClient 28:add19eb7defa 12029 {
AzureIoTClient 28:add19eb7defa 12030 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12031 }
AzureIoTClient 28:add19eb7defa 12032 }
AzureIoTClient 28:add19eb7defa 12033 /* durable */
AzureIoTClient 28:add19eb7defa 12034 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 12035 {
AzureIoTClient 23:1111ee8bcba4 12036 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 12037 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12038 {
AzureIoTClient 28:add19eb7defa 12039 /* do nothing */
AzureIoTClient 28:add19eb7defa 12040 }
AzureIoTClient 28:add19eb7defa 12041 else
AzureIoTClient 28:add19eb7defa 12042 {
AzureIoTClient 28:add19eb7defa 12043 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12044 {
AzureIoTClient 28:add19eb7defa 12045 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12046 }
AzureIoTClient 28:add19eb7defa 12047 else
AzureIoTClient 28:add19eb7defa 12048 {
AzureIoTClient 28:add19eb7defa 12049 terminus_durability durable;
AzureIoTClient 28:add19eb7defa 12050 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 12051 {
AzureIoTClient 28:add19eb7defa 12052 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12053 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12054 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12055 break;
AzureIoTClient 28:add19eb7defa 12056 }
AzureIoTClient 28:add19eb7defa 12057 }
AzureIoTClient 28:add19eb7defa 12058
AzureIoTClient 28:add19eb7defa 12059 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12060 }
AzureIoTClient 28:add19eb7defa 12061 }
AzureIoTClient 28:add19eb7defa 12062 /* expiry-policy */
AzureIoTClient 28:add19eb7defa 12063 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 12064 {
AzureIoTClient 23:1111ee8bcba4 12065 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 12066 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12067 {
AzureIoTClient 28:add19eb7defa 12068 /* do nothing */
AzureIoTClient 28:add19eb7defa 12069 }
AzureIoTClient 28:add19eb7defa 12070 else
AzureIoTClient 28:add19eb7defa 12071 {
AzureIoTClient 28:add19eb7defa 12072 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12073 {
AzureIoTClient 28:add19eb7defa 12074 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12075 }
AzureIoTClient 28:add19eb7defa 12076 else
AzureIoTClient 28:add19eb7defa 12077 {
AzureIoTClient 28:add19eb7defa 12078 terminus_expiry_policy expiry_policy;
AzureIoTClient 28:add19eb7defa 12079 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 28:add19eb7defa 12080 {
AzureIoTClient 28:add19eb7defa 12081 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12082 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12083 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12084 break;
AzureIoTClient 28:add19eb7defa 12085 }
AzureIoTClient 28:add19eb7defa 12086 }
AzureIoTClient 28:add19eb7defa 12087
AzureIoTClient 28:add19eb7defa 12088 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12089 }
AzureIoTClient 28:add19eb7defa 12090 }
AzureIoTClient 28:add19eb7defa 12091 /* timeout */
AzureIoTClient 28:add19eb7defa 12092 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 12093 {
AzureIoTClient 23:1111ee8bcba4 12094 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 12095 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12096 {
AzureIoTClient 28:add19eb7defa 12097 /* do nothing */
AzureIoTClient 28:add19eb7defa 12098 }
AzureIoTClient 28:add19eb7defa 12099 else
AzureIoTClient 28:add19eb7defa 12100 {
AzureIoTClient 28:add19eb7defa 12101 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12102 {
AzureIoTClient 28:add19eb7defa 12103 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12104 }
AzureIoTClient 28:add19eb7defa 12105 else
AzureIoTClient 28:add19eb7defa 12106 {
AzureIoTClient 28:add19eb7defa 12107 seconds timeout;
AzureIoTClient 28:add19eb7defa 12108 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 28:add19eb7defa 12109 {
AzureIoTClient 28:add19eb7defa 12110 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12111 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12112 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12113 break;
AzureIoTClient 28:add19eb7defa 12114 }
AzureIoTClient 28:add19eb7defa 12115 }
AzureIoTClient 28:add19eb7defa 12116
AzureIoTClient 28:add19eb7defa 12117 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12118 }
AzureIoTClient 28:add19eb7defa 12119 }
AzureIoTClient 28:add19eb7defa 12120 /* dynamic */
AzureIoTClient 28:add19eb7defa 12121 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 12122 {
AzureIoTClient 23:1111ee8bcba4 12123 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 12124 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12125 {
AzureIoTClient 28:add19eb7defa 12126 /* do nothing */
AzureIoTClient 28:add19eb7defa 12127 }
AzureIoTClient 28:add19eb7defa 12128 else
AzureIoTClient 28:add19eb7defa 12129 {
AzureIoTClient 28:add19eb7defa 12130 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12131 {
AzureIoTClient 28:add19eb7defa 12132 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12133 }
AzureIoTClient 28:add19eb7defa 12134 else
AzureIoTClient 28:add19eb7defa 12135 {
AzureIoTClient 28:add19eb7defa 12136 bool dynamic;
AzureIoTClient 28:add19eb7defa 12137 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 28:add19eb7defa 12138 {
AzureIoTClient 28:add19eb7defa 12139 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12140 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12141 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12142 break;
AzureIoTClient 28:add19eb7defa 12143 }
AzureIoTClient 28:add19eb7defa 12144 }
AzureIoTClient 28:add19eb7defa 12145
AzureIoTClient 28:add19eb7defa 12146 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12147 }
AzureIoTClient 28:add19eb7defa 12148 }
AzureIoTClient 28:add19eb7defa 12149 /* dynamic-node-properties */
AzureIoTClient 28:add19eb7defa 12150 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 12151 {
AzureIoTClient 23:1111ee8bcba4 12152 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 12153 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12154 {
AzureIoTClient 28:add19eb7defa 12155 /* do nothing */
AzureIoTClient 28:add19eb7defa 12156 }
AzureIoTClient 28:add19eb7defa 12157 else
AzureIoTClient 28:add19eb7defa 12158 {
AzureIoTClient 28:add19eb7defa 12159 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12160 {
AzureIoTClient 28:add19eb7defa 12161 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12162 }
AzureIoTClient 28:add19eb7defa 12163 else
AzureIoTClient 28:add19eb7defa 12164 {
AzureIoTClient 28:add19eb7defa 12165 node_properties dynamic_node_properties;
AzureIoTClient 28:add19eb7defa 12166 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 28:add19eb7defa 12167 {
AzureIoTClient 28:add19eb7defa 12168 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12169 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12170 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12171 break;
AzureIoTClient 28:add19eb7defa 12172 }
AzureIoTClient 28:add19eb7defa 12173 }
AzureIoTClient 28:add19eb7defa 12174
AzureIoTClient 28:add19eb7defa 12175 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12176 }
AzureIoTClient 28:add19eb7defa 12177 }
AzureIoTClient 28:add19eb7defa 12178 /* distribution-mode */
AzureIoTClient 28:add19eb7defa 12179 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 12180 {
AzureIoTClient 23:1111ee8bcba4 12181 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 12182 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12183 {
AzureIoTClient 28:add19eb7defa 12184 /* do nothing */
AzureIoTClient 28:add19eb7defa 12185 }
AzureIoTClient 28:add19eb7defa 12186 else
AzureIoTClient 28:add19eb7defa 12187 {
AzureIoTClient 28:add19eb7defa 12188 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12189 {
AzureIoTClient 28:add19eb7defa 12190 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12191 }
AzureIoTClient 28:add19eb7defa 12192 else
AzureIoTClient 28:add19eb7defa 12193 {
AzureIoTClient 28:add19eb7defa 12194 const char* distribution_mode;
AzureIoTClient 28:add19eb7defa 12195 if (amqpvalue_get_symbol(item_value, &distribution_mode) != 0)
AzureIoTClient 28:add19eb7defa 12196 {
AzureIoTClient 28:add19eb7defa 12197 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12198 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12199 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12200 break;
AzureIoTClient 28:add19eb7defa 12201 }
AzureIoTClient 28:add19eb7defa 12202 }
AzureIoTClient 28:add19eb7defa 12203
AzureIoTClient 28:add19eb7defa 12204 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12205 }
AzureIoTClient 28:add19eb7defa 12206 }
AzureIoTClient 28:add19eb7defa 12207 /* filter */
AzureIoTClient 28:add19eb7defa 12208 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 12209 {
AzureIoTClient 23:1111ee8bcba4 12210 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 12211 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12212 {
AzureIoTClient 28:add19eb7defa 12213 /* do nothing */
AzureIoTClient 28:add19eb7defa 12214 }
AzureIoTClient 28:add19eb7defa 12215 else
AzureIoTClient 28:add19eb7defa 12216 {
AzureIoTClient 28:add19eb7defa 12217 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12218 {
AzureIoTClient 28:add19eb7defa 12219 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12220 }
AzureIoTClient 28:add19eb7defa 12221 else
AzureIoTClient 28:add19eb7defa 12222 {
AzureIoTClient 28:add19eb7defa 12223 filter_set filter;
AzureIoTClient 28:add19eb7defa 12224 if (amqpvalue_get_filter_set(item_value, &filter) != 0)
AzureIoTClient 28:add19eb7defa 12225 {
AzureIoTClient 28:add19eb7defa 12226 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12227 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12228 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12229 break;
AzureIoTClient 28:add19eb7defa 12230 }
AzureIoTClient 28:add19eb7defa 12231 }
AzureIoTClient 28:add19eb7defa 12232
AzureIoTClient 28:add19eb7defa 12233 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12234 }
AzureIoTClient 28:add19eb7defa 12235 }
AzureIoTClient 28:add19eb7defa 12236 /* default-outcome */
AzureIoTClient 28:add19eb7defa 12237 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 12238 {
AzureIoTClient 23:1111ee8bcba4 12239 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 12240 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12241 {
AzureIoTClient 28:add19eb7defa 12242 /* do nothing */
AzureIoTClient 28:add19eb7defa 12243 }
AzureIoTClient 28:add19eb7defa 12244 else
AzureIoTClient 28:add19eb7defa 12245 {
AzureIoTClient 28:add19eb7defa 12246 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12247 }
AzureIoTClient 28:add19eb7defa 12248 }
AzureIoTClient 28:add19eb7defa 12249 /* outcomes */
AzureIoTClient 28:add19eb7defa 12250 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 12251 {
AzureIoTClient 23:1111ee8bcba4 12252 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 12253 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12254 {
AzureIoTClient 28:add19eb7defa 12255 /* do nothing */
AzureIoTClient 28:add19eb7defa 12256 }
AzureIoTClient 28:add19eb7defa 12257 else
AzureIoTClient 28:add19eb7defa 12258 {
AzureIoTClient 28:add19eb7defa 12259 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12260 {
AzureIoTClient 28:add19eb7defa 12261 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12262 }
AzureIoTClient 28:add19eb7defa 12263 else
AzureIoTClient 28:add19eb7defa 12264 {
AzureIoTClient 28:add19eb7defa 12265 const char* outcomes = NULL;
AzureIoTClient 28:add19eb7defa 12266 AMQP_VALUE outcomes_array;
AzureIoTClient 28:add19eb7defa 12267 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &outcomes_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 12268 (amqpvalue_get_symbol(item_value, &outcomes) != 0))
AzureIoTClient 28:add19eb7defa 12269 {
AzureIoTClient 28:add19eb7defa 12270 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12271 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12272 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12273 break;
AzureIoTClient 28:add19eb7defa 12274 }
AzureIoTClient 28:add19eb7defa 12275 }
AzureIoTClient 28:add19eb7defa 12276
AzureIoTClient 28:add19eb7defa 12277 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12278 }
AzureIoTClient 28:add19eb7defa 12279 }
AzureIoTClient 28:add19eb7defa 12280 /* capabilities */
AzureIoTClient 28:add19eb7defa 12281 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 12282 {
AzureIoTClient 23:1111ee8bcba4 12283 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 12284 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12285 {
AzureIoTClient 28:add19eb7defa 12286 /* do nothing */
AzureIoTClient 28:add19eb7defa 12287 }
AzureIoTClient 28:add19eb7defa 12288 else
AzureIoTClient 28:add19eb7defa 12289 {
AzureIoTClient 28:add19eb7defa 12290 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12291 {
AzureIoTClient 28:add19eb7defa 12292 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12293 }
AzureIoTClient 28:add19eb7defa 12294 else
AzureIoTClient 28:add19eb7defa 12295 {
AzureIoTClient 28:add19eb7defa 12296 const char* capabilities = NULL;
AzureIoTClient 28:add19eb7defa 12297 AMQP_VALUE capabilities_array;
AzureIoTClient 28:add19eb7defa 12298 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 12299 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 28:add19eb7defa 12300 {
AzureIoTClient 28:add19eb7defa 12301 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12302 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12303 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12304 break;
AzureIoTClient 28:add19eb7defa 12305 }
AzureIoTClient 28:add19eb7defa 12306 }
AzureIoTClient 28:add19eb7defa 12307
AzureIoTClient 28:add19eb7defa 12308 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12309 }
AzureIoTClient 28:add19eb7defa 12310 }
AzureIoTClient 28:add19eb7defa 12311
AzureIoTClient 28:add19eb7defa 12312 source_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 12313
AzureIoTClient 28:add19eb7defa 12314 result = 0;
AzureIoTClient 28:add19eb7defa 12315 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 12316 }
AzureIoTClient 28:add19eb7defa 12317 }
AzureIoTClient 28:add19eb7defa 12318 }
AzureIoTClient 28:add19eb7defa 12319
AzureIoTClient 28:add19eb7defa 12320 return result;
Azure.IoT Build 0:6ae2f7bca550 12321 }
Azure.IoT Build 0:6ae2f7bca550 12322
Azure.IoT Build 0:6ae2f7bca550 12323 int source_get_address(SOURCE_HANDLE source, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 12324 {
AzureIoTClient 28:add19eb7defa 12325 int result;
AzureIoTClient 28:add19eb7defa 12326
AzureIoTClient 28:add19eb7defa 12327 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12328 {
AzureIoTClient 28:add19eb7defa 12329 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12330 }
AzureIoTClient 28:add19eb7defa 12331 else
AzureIoTClient 28:add19eb7defa 12332 {
AzureIoTClient 28:add19eb7defa 12333 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12334 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12335 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12336 {
AzureIoTClient 23:1111ee8bcba4 12337 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12338 }
AzureIoTClient 23:1111ee8bcba4 12339 else
AzureIoTClient 23:1111ee8bcba4 12340 {
AzureIoTClient 23:1111ee8bcba4 12341 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 12342 {
AzureIoTClient 28:add19eb7defa 12343 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12344 }
AzureIoTClient 28:add19eb7defa 12345 else
AzureIoTClient 28:add19eb7defa 12346 {
AzureIoTClient 28:add19eb7defa 12347 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 12348 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12349 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12350 {
AzureIoTClient 28:add19eb7defa 12351 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12352 }
AzureIoTClient 28:add19eb7defa 12353 else
AzureIoTClient 28:add19eb7defa 12354 {
AzureIoTClient 28:add19eb7defa 12355 *address_value = item_value;
AzureIoTClient 28:add19eb7defa 12356 result = 0;
AzureIoTClient 28:add19eb7defa 12357 }
AzureIoTClient 28:add19eb7defa 12358 }
AzureIoTClient 28:add19eb7defa 12359 }
AzureIoTClient 28:add19eb7defa 12360 }
AzureIoTClient 28:add19eb7defa 12361
AzureIoTClient 28:add19eb7defa 12362 return result;
Azure.IoT Build 0:6ae2f7bca550 12363 }
Azure.IoT Build 0:6ae2f7bca550 12364
Azure.IoT Build 0:6ae2f7bca550 12365 int source_set_address(SOURCE_HANDLE source, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 12366 {
AzureIoTClient 28:add19eb7defa 12367 int result;
AzureIoTClient 28:add19eb7defa 12368
AzureIoTClient 28:add19eb7defa 12369 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12370 {
AzureIoTClient 28:add19eb7defa 12371 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12372 }
AzureIoTClient 28:add19eb7defa 12373 else
AzureIoTClient 28:add19eb7defa 12374 {
AzureIoTClient 28:add19eb7defa 12375 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12376 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 12377 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12378 {
AzureIoTClient 23:1111ee8bcba4 12379 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 12380 }
AzureIoTClient 23:1111ee8bcba4 12381 else
AzureIoTClient 23:1111ee8bcba4 12382 {
AzureIoTClient 23:1111ee8bcba4 12383 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 12384 }
AzureIoTClient 28:add19eb7defa 12385 if (address_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12386 {
AzureIoTClient 28:add19eb7defa 12387 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12388 }
AzureIoTClient 28:add19eb7defa 12389 else
AzureIoTClient 28:add19eb7defa 12390 {
AzureIoTClient 28:add19eb7defa 12391 if (amqpvalue_set_composite_item(source_instance->composite_value, 0, address_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12392 {
AzureIoTClient 28:add19eb7defa 12393 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12394 }
AzureIoTClient 28:add19eb7defa 12395 else
AzureIoTClient 28:add19eb7defa 12396 {
AzureIoTClient 28:add19eb7defa 12397 result = 0;
AzureIoTClient 28:add19eb7defa 12398 }
AzureIoTClient 28:add19eb7defa 12399
AzureIoTClient 28:add19eb7defa 12400 amqpvalue_destroy(address_amqp_value);
AzureIoTClient 28:add19eb7defa 12401 }
AzureIoTClient 28:add19eb7defa 12402 }
AzureIoTClient 28:add19eb7defa 12403
AzureIoTClient 28:add19eb7defa 12404 return result;
Azure.IoT Build 0:6ae2f7bca550 12405 }
Azure.IoT Build 0:6ae2f7bca550 12406
Azure.IoT Build 0:6ae2f7bca550 12407 int source_get_durable(SOURCE_HANDLE source, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 12408 {
AzureIoTClient 28:add19eb7defa 12409 int result;
AzureIoTClient 28:add19eb7defa 12410
AzureIoTClient 28:add19eb7defa 12411 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12412 {
AzureIoTClient 28:add19eb7defa 12413 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12414 }
AzureIoTClient 28:add19eb7defa 12415 else
AzureIoTClient 28:add19eb7defa 12416 {
AzureIoTClient 28:add19eb7defa 12417 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12418 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12419 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12420 {
AzureIoTClient 23:1111ee8bcba4 12421 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12422 }
AzureIoTClient 23:1111ee8bcba4 12423 else
AzureIoTClient 23:1111ee8bcba4 12424 {
AzureIoTClient 23:1111ee8bcba4 12425 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 12426 {
AzureIoTClient 23:1111ee8bcba4 12427 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 12428 result = 0;
AzureIoTClient 23:1111ee8bcba4 12429 }
AzureIoTClient 23:1111ee8bcba4 12430 else
AzureIoTClient 23:1111ee8bcba4 12431 {
AzureIoTClient 28:add19eb7defa 12432 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 12433 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12434 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12435 {
AzureIoTClient 16:22a72cf8e416 12436 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 12437 result = 0;
AzureIoTClient 28:add19eb7defa 12438 }
AzureIoTClient 28:add19eb7defa 12439 else
AzureIoTClient 28:add19eb7defa 12440 {
AzureIoTClient 43:4c1e4e94cdd3 12441 int get_single_value_result = amqpvalue_get_terminus_durability(item_value, durable_value);
AzureIoTClient 43:4c1e4e94cdd3 12442 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 12443 {
AzureIoTClient 23:1111ee8bcba4 12444 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12445 {
AzureIoTClient 28:add19eb7defa 12446 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12447 }
AzureIoTClient 23:1111ee8bcba4 12448 else
AzureIoTClient 23:1111ee8bcba4 12449 {
AzureIoTClient 23:1111ee8bcba4 12450 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 12451 result = 0;
AzureIoTClient 23:1111ee8bcba4 12452 }
AzureIoTClient 28:add19eb7defa 12453 }
AzureIoTClient 28:add19eb7defa 12454 else
AzureIoTClient 28:add19eb7defa 12455 {
AzureIoTClient 28:add19eb7defa 12456 result = 0;
AzureIoTClient 28:add19eb7defa 12457 }
AzureIoTClient 28:add19eb7defa 12458 }
AzureIoTClient 28:add19eb7defa 12459 }
AzureIoTClient 28:add19eb7defa 12460 }
AzureIoTClient 28:add19eb7defa 12461 }
AzureIoTClient 28:add19eb7defa 12462
AzureIoTClient 28:add19eb7defa 12463 return result;
Azure.IoT Build 0:6ae2f7bca550 12464 }
Azure.IoT Build 0:6ae2f7bca550 12465
Azure.IoT Build 0:6ae2f7bca550 12466 int source_set_durable(SOURCE_HANDLE source, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 12467 {
AzureIoTClient 28:add19eb7defa 12468 int result;
AzureIoTClient 28:add19eb7defa 12469
AzureIoTClient 28:add19eb7defa 12470 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12471 {
AzureIoTClient 28:add19eb7defa 12472 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12473 }
AzureIoTClient 28:add19eb7defa 12474 else
AzureIoTClient 28:add19eb7defa 12475 {
AzureIoTClient 28:add19eb7defa 12476 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12477 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
AzureIoTClient 28:add19eb7defa 12478 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12479 {
AzureIoTClient 28:add19eb7defa 12480 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12481 }
AzureIoTClient 28:add19eb7defa 12482 else
AzureIoTClient 28:add19eb7defa 12483 {
AzureIoTClient 28:add19eb7defa 12484 if (amqpvalue_set_composite_item(source_instance->composite_value, 1, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12485 {
AzureIoTClient 28:add19eb7defa 12486 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12487 }
AzureIoTClient 28:add19eb7defa 12488 else
AzureIoTClient 28:add19eb7defa 12489 {
AzureIoTClient 28:add19eb7defa 12490 result = 0;
AzureIoTClient 28:add19eb7defa 12491 }
AzureIoTClient 28:add19eb7defa 12492
AzureIoTClient 28:add19eb7defa 12493 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 12494 }
AzureIoTClient 28:add19eb7defa 12495 }
AzureIoTClient 28:add19eb7defa 12496
AzureIoTClient 28:add19eb7defa 12497 return result;
Azure.IoT Build 0:6ae2f7bca550 12498 }
Azure.IoT Build 0:6ae2f7bca550 12499
Azure.IoT Build 0:6ae2f7bca550 12500 int source_get_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 12501 {
AzureIoTClient 28:add19eb7defa 12502 int result;
AzureIoTClient 28:add19eb7defa 12503
AzureIoTClient 28:add19eb7defa 12504 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12505 {
AzureIoTClient 28:add19eb7defa 12506 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12507 }
AzureIoTClient 28:add19eb7defa 12508 else
AzureIoTClient 28:add19eb7defa 12509 {
AzureIoTClient 28:add19eb7defa 12510 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12511 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12512 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12513 {
AzureIoTClient 23:1111ee8bcba4 12514 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12515 }
AzureIoTClient 23:1111ee8bcba4 12516 else
AzureIoTClient 23:1111ee8bcba4 12517 {
AzureIoTClient 23:1111ee8bcba4 12518 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 12519 {
AzureIoTClient 23:1111ee8bcba4 12520 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 12521 result = 0;
AzureIoTClient 23:1111ee8bcba4 12522 }
AzureIoTClient 23:1111ee8bcba4 12523 else
AzureIoTClient 23:1111ee8bcba4 12524 {
AzureIoTClient 28:add19eb7defa 12525 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 12526 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12527 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12528 {
AzureIoTClient 16:22a72cf8e416 12529 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 12530 result = 0;
AzureIoTClient 28:add19eb7defa 12531 }
AzureIoTClient 28:add19eb7defa 12532 else
AzureIoTClient 28:add19eb7defa 12533 {
AzureIoTClient 43:4c1e4e94cdd3 12534 int get_single_value_result = amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value);
AzureIoTClient 43:4c1e4e94cdd3 12535 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 12536 {
AzureIoTClient 23:1111ee8bcba4 12537 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12538 {
AzureIoTClient 28:add19eb7defa 12539 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12540 }
AzureIoTClient 23:1111ee8bcba4 12541 else
AzureIoTClient 23:1111ee8bcba4 12542 {
AzureIoTClient 23:1111ee8bcba4 12543 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 12544 result = 0;
AzureIoTClient 23:1111ee8bcba4 12545 }
AzureIoTClient 28:add19eb7defa 12546 }
AzureIoTClient 28:add19eb7defa 12547 else
AzureIoTClient 28:add19eb7defa 12548 {
AzureIoTClient 28:add19eb7defa 12549 result = 0;
AzureIoTClient 28:add19eb7defa 12550 }
AzureIoTClient 28:add19eb7defa 12551 }
AzureIoTClient 28:add19eb7defa 12552 }
AzureIoTClient 28:add19eb7defa 12553 }
AzureIoTClient 28:add19eb7defa 12554 }
AzureIoTClient 28:add19eb7defa 12555
AzureIoTClient 28:add19eb7defa 12556 return result;
Azure.IoT Build 0:6ae2f7bca550 12557 }
Azure.IoT Build 0:6ae2f7bca550 12558
Azure.IoT Build 0:6ae2f7bca550 12559 int source_set_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 12560 {
AzureIoTClient 28:add19eb7defa 12561 int result;
AzureIoTClient 28:add19eb7defa 12562
AzureIoTClient 28:add19eb7defa 12563 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12564 {
AzureIoTClient 28:add19eb7defa 12565 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12566 }
AzureIoTClient 28:add19eb7defa 12567 else
AzureIoTClient 28:add19eb7defa 12568 {
AzureIoTClient 28:add19eb7defa 12569 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12570 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
AzureIoTClient 28:add19eb7defa 12571 if (expiry_policy_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12572 {
AzureIoTClient 28:add19eb7defa 12573 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12574 }
AzureIoTClient 28:add19eb7defa 12575 else
AzureIoTClient 28:add19eb7defa 12576 {
AzureIoTClient 28:add19eb7defa 12577 if (amqpvalue_set_composite_item(source_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12578 {
AzureIoTClient 28:add19eb7defa 12579 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12580 }
AzureIoTClient 28:add19eb7defa 12581 else
AzureIoTClient 28:add19eb7defa 12582 {
AzureIoTClient 28:add19eb7defa 12583 result = 0;
AzureIoTClient 28:add19eb7defa 12584 }
AzureIoTClient 28:add19eb7defa 12585
AzureIoTClient 28:add19eb7defa 12586 amqpvalue_destroy(expiry_policy_amqp_value);
AzureIoTClient 28:add19eb7defa 12587 }
AzureIoTClient 28:add19eb7defa 12588 }
AzureIoTClient 28:add19eb7defa 12589
AzureIoTClient 28:add19eb7defa 12590 return result;
Azure.IoT Build 0:6ae2f7bca550 12591 }
Azure.IoT Build 0:6ae2f7bca550 12592
Azure.IoT Build 0:6ae2f7bca550 12593 int source_get_timeout(SOURCE_HANDLE source, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12594 {
AzureIoTClient 28:add19eb7defa 12595 int result;
AzureIoTClient 28:add19eb7defa 12596
AzureIoTClient 28:add19eb7defa 12597 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12598 {
AzureIoTClient 28:add19eb7defa 12599 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12600 }
AzureIoTClient 28:add19eb7defa 12601 else
AzureIoTClient 28:add19eb7defa 12602 {
AzureIoTClient 28:add19eb7defa 12603 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12604 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12605 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12606 {
AzureIoTClient 23:1111ee8bcba4 12607 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12608 }
AzureIoTClient 23:1111ee8bcba4 12609 else
AzureIoTClient 23:1111ee8bcba4 12610 {
AzureIoTClient 23:1111ee8bcba4 12611 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 12612 {
AzureIoTClient 28:add19eb7defa 12613 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 12614 result = 0;
AzureIoTClient 28:add19eb7defa 12615 }
AzureIoTClient 28:add19eb7defa 12616 else
AzureIoTClient 28:add19eb7defa 12617 {
AzureIoTClient 28:add19eb7defa 12618 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 12619 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12620 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12621 {
AzureIoTClient 28:add19eb7defa 12622 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 12623 result = 0;
AzureIoTClient 28:add19eb7defa 12624 }
AzureIoTClient 28:add19eb7defa 12625 else
AzureIoTClient 28:add19eb7defa 12626 {
AzureIoTClient 43:4c1e4e94cdd3 12627 int get_single_value_result = amqpvalue_get_seconds(item_value, timeout_value);
AzureIoTClient 43:4c1e4e94cdd3 12628 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 12629 {
AzureIoTClient 23:1111ee8bcba4 12630 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12631 {
AzureIoTClient 28:add19eb7defa 12632 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12633 }
AzureIoTClient 28:add19eb7defa 12634 else
AzureIoTClient 28:add19eb7defa 12635 {
AzureIoTClient 28:add19eb7defa 12636 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 12637 result = 0;
AzureIoTClient 23:1111ee8bcba4 12638 }
AzureIoTClient 28:add19eb7defa 12639 }
AzureIoTClient 28:add19eb7defa 12640 else
AzureIoTClient 28:add19eb7defa 12641 {
AzureIoTClient 28:add19eb7defa 12642 result = 0;
AzureIoTClient 28:add19eb7defa 12643 }
AzureIoTClient 28:add19eb7defa 12644 }
AzureIoTClient 28:add19eb7defa 12645 }
AzureIoTClient 28:add19eb7defa 12646 }
AzureIoTClient 28:add19eb7defa 12647 }
AzureIoTClient 28:add19eb7defa 12648
AzureIoTClient 28:add19eb7defa 12649 return result;
Azure.IoT Build 0:6ae2f7bca550 12650 }
Azure.IoT Build 0:6ae2f7bca550 12651
Azure.IoT Build 0:6ae2f7bca550 12652 int source_set_timeout(SOURCE_HANDLE source, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12653 {
AzureIoTClient 28:add19eb7defa 12654 int result;
AzureIoTClient 28:add19eb7defa 12655
AzureIoTClient 28:add19eb7defa 12656 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12657 {
AzureIoTClient 28:add19eb7defa 12658 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12659 }
AzureIoTClient 28:add19eb7defa 12660 else
AzureIoTClient 28:add19eb7defa 12661 {
AzureIoTClient 28:add19eb7defa 12662 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12663 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
AzureIoTClient 28:add19eb7defa 12664 if (timeout_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12665 {
AzureIoTClient 28:add19eb7defa 12666 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12667 }
AzureIoTClient 28:add19eb7defa 12668 else
AzureIoTClient 28:add19eb7defa 12669 {
AzureIoTClient 28:add19eb7defa 12670 if (amqpvalue_set_composite_item(source_instance->composite_value, 3, timeout_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12671 {
AzureIoTClient 28:add19eb7defa 12672 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12673 }
AzureIoTClient 28:add19eb7defa 12674 else
AzureIoTClient 28:add19eb7defa 12675 {
AzureIoTClient 28:add19eb7defa 12676 result = 0;
AzureIoTClient 28:add19eb7defa 12677 }
AzureIoTClient 28:add19eb7defa 12678
AzureIoTClient 28:add19eb7defa 12679 amqpvalue_destroy(timeout_amqp_value);
AzureIoTClient 28:add19eb7defa 12680 }
AzureIoTClient 28:add19eb7defa 12681 }
AzureIoTClient 28:add19eb7defa 12682
AzureIoTClient 28:add19eb7defa 12683 return result;
Azure.IoT Build 0:6ae2f7bca550 12684 }
Azure.IoT Build 0:6ae2f7bca550 12685
Azure.IoT Build 0:6ae2f7bca550 12686 int source_get_dynamic(SOURCE_HANDLE source, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12687 {
AzureIoTClient 28:add19eb7defa 12688 int result;
AzureIoTClient 28:add19eb7defa 12689
AzureIoTClient 28:add19eb7defa 12690 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12691 {
AzureIoTClient 28:add19eb7defa 12692 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12693 }
AzureIoTClient 28:add19eb7defa 12694 else
AzureIoTClient 28:add19eb7defa 12695 {
AzureIoTClient 28:add19eb7defa 12696 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12697 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12698 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12699 {
AzureIoTClient 23:1111ee8bcba4 12700 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12701 }
AzureIoTClient 23:1111ee8bcba4 12702 else
AzureIoTClient 23:1111ee8bcba4 12703 {
AzureIoTClient 23:1111ee8bcba4 12704 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 12705 {
AzureIoTClient 28:add19eb7defa 12706 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 12707 result = 0;
AzureIoTClient 28:add19eb7defa 12708 }
AzureIoTClient 28:add19eb7defa 12709 else
AzureIoTClient 28:add19eb7defa 12710 {
AzureIoTClient 28:add19eb7defa 12711 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 12712 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12713 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12714 {
AzureIoTClient 28:add19eb7defa 12715 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 12716 result = 0;
AzureIoTClient 28:add19eb7defa 12717 }
AzureIoTClient 28:add19eb7defa 12718 else
AzureIoTClient 28:add19eb7defa 12719 {
AzureIoTClient 43:4c1e4e94cdd3 12720 int get_single_value_result = amqpvalue_get_boolean(item_value, dynamic_value);
AzureIoTClient 43:4c1e4e94cdd3 12721 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 12722 {
AzureIoTClient 23:1111ee8bcba4 12723 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12724 {
AzureIoTClient 28:add19eb7defa 12725 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12726 }
AzureIoTClient 28:add19eb7defa 12727 else
AzureIoTClient 28:add19eb7defa 12728 {
AzureIoTClient 28:add19eb7defa 12729 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 12730 result = 0;
AzureIoTClient 23:1111ee8bcba4 12731 }
AzureIoTClient 28:add19eb7defa 12732 }
AzureIoTClient 28:add19eb7defa 12733 else
AzureIoTClient 28:add19eb7defa 12734 {
AzureIoTClient 28:add19eb7defa 12735 result = 0;
AzureIoTClient 28:add19eb7defa 12736 }
AzureIoTClient 28:add19eb7defa 12737 }
AzureIoTClient 28:add19eb7defa 12738 }
AzureIoTClient 28:add19eb7defa 12739 }
AzureIoTClient 28:add19eb7defa 12740 }
AzureIoTClient 28:add19eb7defa 12741
AzureIoTClient 28:add19eb7defa 12742 return result;
Azure.IoT Build 0:6ae2f7bca550 12743 }
Azure.IoT Build 0:6ae2f7bca550 12744
Azure.IoT Build 0:6ae2f7bca550 12745 int source_set_dynamic(SOURCE_HANDLE source, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12746 {
AzureIoTClient 28:add19eb7defa 12747 int result;
AzureIoTClient 28:add19eb7defa 12748
AzureIoTClient 28:add19eb7defa 12749 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12750 {
AzureIoTClient 28:add19eb7defa 12751 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12752 }
AzureIoTClient 28:add19eb7defa 12753 else
AzureIoTClient 28:add19eb7defa 12754 {
AzureIoTClient 28:add19eb7defa 12755 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12756 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
AzureIoTClient 28:add19eb7defa 12757 if (dynamic_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12758 {
AzureIoTClient 28:add19eb7defa 12759 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12760 }
AzureIoTClient 28:add19eb7defa 12761 else
AzureIoTClient 28:add19eb7defa 12762 {
AzureIoTClient 28:add19eb7defa 12763 if (amqpvalue_set_composite_item(source_instance->composite_value, 4, dynamic_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12764 {
AzureIoTClient 28:add19eb7defa 12765 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12766 }
AzureIoTClient 28:add19eb7defa 12767 else
AzureIoTClient 28:add19eb7defa 12768 {
AzureIoTClient 28:add19eb7defa 12769 result = 0;
AzureIoTClient 28:add19eb7defa 12770 }
AzureIoTClient 28:add19eb7defa 12771
AzureIoTClient 28:add19eb7defa 12772 amqpvalue_destroy(dynamic_amqp_value);
AzureIoTClient 28:add19eb7defa 12773 }
AzureIoTClient 28:add19eb7defa 12774 }
AzureIoTClient 28:add19eb7defa 12775
AzureIoTClient 28:add19eb7defa 12776 return result;
Azure.IoT Build 0:6ae2f7bca550 12777 }
Azure.IoT Build 0:6ae2f7bca550 12778
Azure.IoT Build 0:6ae2f7bca550 12779 int source_get_dynamic_node_properties(SOURCE_HANDLE source, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12780 {
AzureIoTClient 28:add19eb7defa 12781 int result;
AzureIoTClient 28:add19eb7defa 12782
AzureIoTClient 28:add19eb7defa 12783 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12784 {
AzureIoTClient 28:add19eb7defa 12785 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12786 }
AzureIoTClient 28:add19eb7defa 12787 else
AzureIoTClient 28:add19eb7defa 12788 {
AzureIoTClient 28:add19eb7defa 12789 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12790 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12791 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12792 {
AzureIoTClient 23:1111ee8bcba4 12793 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12794 }
AzureIoTClient 23:1111ee8bcba4 12795 else
AzureIoTClient 23:1111ee8bcba4 12796 {
AzureIoTClient 23:1111ee8bcba4 12797 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 12798 {
AzureIoTClient 28:add19eb7defa 12799 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12800 }
AzureIoTClient 28:add19eb7defa 12801 else
AzureIoTClient 28:add19eb7defa 12802 {
AzureIoTClient 28:add19eb7defa 12803 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 12804 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12805 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12806 {
AzureIoTClient 28:add19eb7defa 12807 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12808 }
AzureIoTClient 28:add19eb7defa 12809 else
AzureIoTClient 28:add19eb7defa 12810 {
AzureIoTClient 43:4c1e4e94cdd3 12811 int get_single_value_result = amqpvalue_get_node_properties(item_value, dynamic_node_properties_value);
AzureIoTClient 43:4c1e4e94cdd3 12812 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 12813 {
AzureIoTClient 28:add19eb7defa 12814 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12815 }
AzureIoTClient 28:add19eb7defa 12816 else
AzureIoTClient 28:add19eb7defa 12817 {
AzureIoTClient 28:add19eb7defa 12818 result = 0;
AzureIoTClient 28:add19eb7defa 12819 }
AzureIoTClient 28:add19eb7defa 12820 }
AzureIoTClient 28:add19eb7defa 12821 }
AzureIoTClient 28:add19eb7defa 12822 }
AzureIoTClient 28:add19eb7defa 12823 }
AzureIoTClient 28:add19eb7defa 12824
AzureIoTClient 28:add19eb7defa 12825 return result;
Azure.IoT Build 0:6ae2f7bca550 12826 }
Azure.IoT Build 0:6ae2f7bca550 12827
Azure.IoT Build 0:6ae2f7bca550 12828 int source_set_dynamic_node_properties(SOURCE_HANDLE source, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12829 {
AzureIoTClient 28:add19eb7defa 12830 int result;
AzureIoTClient 28:add19eb7defa 12831
AzureIoTClient 28:add19eb7defa 12832 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12833 {
AzureIoTClient 28:add19eb7defa 12834 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12835 }
AzureIoTClient 28:add19eb7defa 12836 else
AzureIoTClient 28:add19eb7defa 12837 {
AzureIoTClient 28:add19eb7defa 12838 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12839 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
AzureIoTClient 28:add19eb7defa 12840 if (dynamic_node_properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12841 {
AzureIoTClient 28:add19eb7defa 12842 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12843 }
AzureIoTClient 28:add19eb7defa 12844 else
AzureIoTClient 28:add19eb7defa 12845 {
AzureIoTClient 28:add19eb7defa 12846 if (amqpvalue_set_composite_item(source_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12847 {
AzureIoTClient 28:add19eb7defa 12848 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12849 }
AzureIoTClient 28:add19eb7defa 12850 else
AzureIoTClient 28:add19eb7defa 12851 {
AzureIoTClient 28:add19eb7defa 12852 result = 0;
AzureIoTClient 28:add19eb7defa 12853 }
AzureIoTClient 28:add19eb7defa 12854
AzureIoTClient 28:add19eb7defa 12855 amqpvalue_destroy(dynamic_node_properties_amqp_value);
AzureIoTClient 28:add19eb7defa 12856 }
AzureIoTClient 28:add19eb7defa 12857 }
AzureIoTClient 28:add19eb7defa 12858
AzureIoTClient 28:add19eb7defa 12859 return result;
Azure.IoT Build 0:6ae2f7bca550 12860 }
Azure.IoT Build 0:6ae2f7bca550 12861
Azure.IoT Build 0:6ae2f7bca550 12862 int source_get_distribution_mode(SOURCE_HANDLE source, const char** distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12863 {
AzureIoTClient 28:add19eb7defa 12864 int result;
AzureIoTClient 28:add19eb7defa 12865
AzureIoTClient 28:add19eb7defa 12866 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12867 {
AzureIoTClient 28:add19eb7defa 12868 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12869 }
AzureIoTClient 28:add19eb7defa 12870 else
AzureIoTClient 28:add19eb7defa 12871 {
AzureIoTClient 28:add19eb7defa 12872 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12873 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12874 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12875 {
AzureIoTClient 23:1111ee8bcba4 12876 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12877 }
AzureIoTClient 23:1111ee8bcba4 12878 else
AzureIoTClient 23:1111ee8bcba4 12879 {
AzureIoTClient 23:1111ee8bcba4 12880 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 12881 {
AzureIoTClient 28:add19eb7defa 12882 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12883 }
AzureIoTClient 28:add19eb7defa 12884 else
AzureIoTClient 28:add19eb7defa 12885 {
AzureIoTClient 28:add19eb7defa 12886 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 12887 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12888 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12889 {
AzureIoTClient 28:add19eb7defa 12890 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12891 }
AzureIoTClient 28:add19eb7defa 12892 else
AzureIoTClient 28:add19eb7defa 12893 {
AzureIoTClient 43:4c1e4e94cdd3 12894 int get_single_value_result = amqpvalue_get_symbol(item_value, distribution_mode_value);
AzureIoTClient 43:4c1e4e94cdd3 12895 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 12896 {
AzureIoTClient 28:add19eb7defa 12897 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12898 }
AzureIoTClient 28:add19eb7defa 12899 else
AzureIoTClient 28:add19eb7defa 12900 {
AzureIoTClient 28:add19eb7defa 12901 result = 0;
AzureIoTClient 28:add19eb7defa 12902 }
AzureIoTClient 28:add19eb7defa 12903 }
AzureIoTClient 28:add19eb7defa 12904 }
AzureIoTClient 28:add19eb7defa 12905 }
AzureIoTClient 28:add19eb7defa 12906 }
AzureIoTClient 28:add19eb7defa 12907
AzureIoTClient 28:add19eb7defa 12908 return result;
Azure.IoT Build 0:6ae2f7bca550 12909 }
Azure.IoT Build 0:6ae2f7bca550 12910
Azure.IoT Build 0:6ae2f7bca550 12911 int source_set_distribution_mode(SOURCE_HANDLE source, const char* distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12912 {
AzureIoTClient 28:add19eb7defa 12913 int result;
AzureIoTClient 28:add19eb7defa 12914
AzureIoTClient 28:add19eb7defa 12915 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12916 {
AzureIoTClient 28:add19eb7defa 12917 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12918 }
AzureIoTClient 28:add19eb7defa 12919 else
AzureIoTClient 28:add19eb7defa 12920 {
AzureIoTClient 28:add19eb7defa 12921 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12922 AMQP_VALUE distribution_mode_amqp_value = amqpvalue_create_symbol(distribution_mode_value);
AzureIoTClient 28:add19eb7defa 12923 if (distribution_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12924 {
AzureIoTClient 28:add19eb7defa 12925 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12926 }
AzureIoTClient 28:add19eb7defa 12927 else
AzureIoTClient 28:add19eb7defa 12928 {
AzureIoTClient 28:add19eb7defa 12929 if (amqpvalue_set_composite_item(source_instance->composite_value, 6, distribution_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12930 {
AzureIoTClient 28:add19eb7defa 12931 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12932 }
AzureIoTClient 28:add19eb7defa 12933 else
AzureIoTClient 28:add19eb7defa 12934 {
AzureIoTClient 28:add19eb7defa 12935 result = 0;
AzureIoTClient 28:add19eb7defa 12936 }
AzureIoTClient 28:add19eb7defa 12937
AzureIoTClient 28:add19eb7defa 12938 amqpvalue_destroy(distribution_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 12939 }
AzureIoTClient 28:add19eb7defa 12940 }
AzureIoTClient 28:add19eb7defa 12941
AzureIoTClient 28:add19eb7defa 12942 return result;
Azure.IoT Build 0:6ae2f7bca550 12943 }
Azure.IoT Build 0:6ae2f7bca550 12944
Azure.IoT Build 0:6ae2f7bca550 12945 int source_get_filter(SOURCE_HANDLE source, filter_set* filter_value)
Azure.IoT Build 0:6ae2f7bca550 12946 {
AzureIoTClient 28:add19eb7defa 12947 int result;
AzureIoTClient 28:add19eb7defa 12948
AzureIoTClient 28:add19eb7defa 12949 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12950 {
AzureIoTClient 28:add19eb7defa 12951 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12952 }
AzureIoTClient 28:add19eb7defa 12953 else
AzureIoTClient 28:add19eb7defa 12954 {
AzureIoTClient 28:add19eb7defa 12955 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12956 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12957 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12958 {
AzureIoTClient 23:1111ee8bcba4 12959 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12960 }
AzureIoTClient 23:1111ee8bcba4 12961 else
AzureIoTClient 23:1111ee8bcba4 12962 {
AzureIoTClient 23:1111ee8bcba4 12963 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 12964 {
AzureIoTClient 28:add19eb7defa 12965 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12966 }
AzureIoTClient 28:add19eb7defa 12967 else
AzureIoTClient 28:add19eb7defa 12968 {
AzureIoTClient 28:add19eb7defa 12969 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 12970 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12971 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12972 {
AzureIoTClient 28:add19eb7defa 12973 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12974 }
AzureIoTClient 28:add19eb7defa 12975 else
AzureIoTClient 28:add19eb7defa 12976 {
AzureIoTClient 43:4c1e4e94cdd3 12977 int get_single_value_result = amqpvalue_get_filter_set(item_value, filter_value);
AzureIoTClient 43:4c1e4e94cdd3 12978 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 12979 {
AzureIoTClient 28:add19eb7defa 12980 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12981 }
AzureIoTClient 28:add19eb7defa 12982 else
AzureIoTClient 28:add19eb7defa 12983 {
AzureIoTClient 28:add19eb7defa 12984 result = 0;
AzureIoTClient 28:add19eb7defa 12985 }
AzureIoTClient 28:add19eb7defa 12986 }
AzureIoTClient 28:add19eb7defa 12987 }
AzureIoTClient 28:add19eb7defa 12988 }
AzureIoTClient 28:add19eb7defa 12989 }
AzureIoTClient 28:add19eb7defa 12990
AzureIoTClient 28:add19eb7defa 12991 return result;
Azure.IoT Build 0:6ae2f7bca550 12992 }
Azure.IoT Build 0:6ae2f7bca550 12993
Azure.IoT Build 0:6ae2f7bca550 12994 int source_set_filter(SOURCE_HANDLE source, filter_set filter_value)
Azure.IoT Build 0:6ae2f7bca550 12995 {
AzureIoTClient 28:add19eb7defa 12996 int result;
AzureIoTClient 28:add19eb7defa 12997
AzureIoTClient 28:add19eb7defa 12998 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12999 {
AzureIoTClient 28:add19eb7defa 13000 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13001 }
AzureIoTClient 28:add19eb7defa 13002 else
AzureIoTClient 28:add19eb7defa 13003 {
AzureIoTClient 28:add19eb7defa 13004 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13005 AMQP_VALUE filter_amqp_value = amqpvalue_create_filter_set(filter_value);
AzureIoTClient 28:add19eb7defa 13006 if (filter_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13007 {
AzureIoTClient 28:add19eb7defa 13008 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13009 }
AzureIoTClient 28:add19eb7defa 13010 else
AzureIoTClient 28:add19eb7defa 13011 {
AzureIoTClient 28:add19eb7defa 13012 if (amqpvalue_set_composite_item(source_instance->composite_value, 7, filter_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13013 {
AzureIoTClient 28:add19eb7defa 13014 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13015 }
AzureIoTClient 28:add19eb7defa 13016 else
AzureIoTClient 28:add19eb7defa 13017 {
AzureIoTClient 28:add19eb7defa 13018 result = 0;
AzureIoTClient 28:add19eb7defa 13019 }
AzureIoTClient 28:add19eb7defa 13020
AzureIoTClient 28:add19eb7defa 13021 amqpvalue_destroy(filter_amqp_value);
AzureIoTClient 28:add19eb7defa 13022 }
AzureIoTClient 28:add19eb7defa 13023 }
AzureIoTClient 28:add19eb7defa 13024
AzureIoTClient 28:add19eb7defa 13025 return result;
Azure.IoT Build 0:6ae2f7bca550 13026 }
Azure.IoT Build 0:6ae2f7bca550 13027
Azure.IoT Build 0:6ae2f7bca550 13028 int source_get_default_outcome(SOURCE_HANDLE source, AMQP_VALUE* default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 13029 {
AzureIoTClient 28:add19eb7defa 13030 int result;
AzureIoTClient 28:add19eb7defa 13031
AzureIoTClient 28:add19eb7defa 13032 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13033 {
AzureIoTClient 28:add19eb7defa 13034 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13035 }
AzureIoTClient 28:add19eb7defa 13036 else
AzureIoTClient 28:add19eb7defa 13037 {
AzureIoTClient 28:add19eb7defa 13038 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13039 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13040 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13041 {
AzureIoTClient 23:1111ee8bcba4 13042 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13043 }
AzureIoTClient 23:1111ee8bcba4 13044 else
AzureIoTClient 23:1111ee8bcba4 13045 {
AzureIoTClient 23:1111ee8bcba4 13046 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 13047 {
AzureIoTClient 28:add19eb7defa 13048 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13049 }
AzureIoTClient 28:add19eb7defa 13050 else
AzureIoTClient 28:add19eb7defa 13051 {
AzureIoTClient 28:add19eb7defa 13052 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 13053 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13054 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13055 {
AzureIoTClient 28:add19eb7defa 13056 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13057 }
AzureIoTClient 28:add19eb7defa 13058 else
AzureIoTClient 28:add19eb7defa 13059 {
AzureIoTClient 28:add19eb7defa 13060 *default_outcome_value = item_value;
AzureIoTClient 28:add19eb7defa 13061 result = 0;
AzureIoTClient 28:add19eb7defa 13062 }
AzureIoTClient 28:add19eb7defa 13063 }
AzureIoTClient 28:add19eb7defa 13064 }
AzureIoTClient 28:add19eb7defa 13065 }
AzureIoTClient 28:add19eb7defa 13066
AzureIoTClient 28:add19eb7defa 13067 return result;
Azure.IoT Build 0:6ae2f7bca550 13068 }
Azure.IoT Build 0:6ae2f7bca550 13069
Azure.IoT Build 0:6ae2f7bca550 13070 int source_set_default_outcome(SOURCE_HANDLE source, AMQP_VALUE default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 13071 {
AzureIoTClient 28:add19eb7defa 13072 int result;
AzureIoTClient 28:add19eb7defa 13073
AzureIoTClient 28:add19eb7defa 13074 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13075 {
AzureIoTClient 28:add19eb7defa 13076 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13077 }
AzureIoTClient 28:add19eb7defa 13078 else
AzureIoTClient 28:add19eb7defa 13079 {
AzureIoTClient 28:add19eb7defa 13080 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13081 AMQP_VALUE default_outcome_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13082 if (default_outcome_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13083 {
AzureIoTClient 23:1111ee8bcba4 13084 default_outcome_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13085 }
AzureIoTClient 23:1111ee8bcba4 13086 else
AzureIoTClient 23:1111ee8bcba4 13087 {
AzureIoTClient 23:1111ee8bcba4 13088 default_outcome_amqp_value = amqpvalue_clone(default_outcome_value);
AzureIoTClient 23:1111ee8bcba4 13089 }
AzureIoTClient 28:add19eb7defa 13090 if (default_outcome_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13091 {
AzureIoTClient 28:add19eb7defa 13092 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13093 }
AzureIoTClient 28:add19eb7defa 13094 else
AzureIoTClient 28:add19eb7defa 13095 {
AzureIoTClient 28:add19eb7defa 13096 if (amqpvalue_set_composite_item(source_instance->composite_value, 8, default_outcome_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13097 {
AzureIoTClient 28:add19eb7defa 13098 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13099 }
AzureIoTClient 28:add19eb7defa 13100 else
AzureIoTClient 28:add19eb7defa 13101 {
AzureIoTClient 28:add19eb7defa 13102 result = 0;
AzureIoTClient 28:add19eb7defa 13103 }
AzureIoTClient 28:add19eb7defa 13104
AzureIoTClient 28:add19eb7defa 13105 amqpvalue_destroy(default_outcome_amqp_value);
AzureIoTClient 28:add19eb7defa 13106 }
AzureIoTClient 28:add19eb7defa 13107 }
AzureIoTClient 28:add19eb7defa 13108
AzureIoTClient 28:add19eb7defa 13109 return result;
Azure.IoT Build 0:6ae2f7bca550 13110 }
Azure.IoT Build 0:6ae2f7bca550 13111
Azure.IoT Build 0:6ae2f7bca550 13112 int source_get_outcomes(SOURCE_HANDLE source, AMQP_VALUE* outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 13113 {
AzureIoTClient 28:add19eb7defa 13114 int result;
AzureIoTClient 28:add19eb7defa 13115
AzureIoTClient 28:add19eb7defa 13116 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13117 {
AzureIoTClient 28:add19eb7defa 13118 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13119 }
AzureIoTClient 28:add19eb7defa 13120 else
AzureIoTClient 28:add19eb7defa 13121 {
AzureIoTClient 28:add19eb7defa 13122 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13123 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13124 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13125 {
AzureIoTClient 23:1111ee8bcba4 13126 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13127 }
AzureIoTClient 23:1111ee8bcba4 13128 else
AzureIoTClient 23:1111ee8bcba4 13129 {
AzureIoTClient 23:1111ee8bcba4 13130 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 13131 {
AzureIoTClient 28:add19eb7defa 13132 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13133 }
AzureIoTClient 28:add19eb7defa 13134 else
AzureIoTClient 28:add19eb7defa 13135 {
AzureIoTClient 28:add19eb7defa 13136 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 13137 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13138 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13139 {
AzureIoTClient 28:add19eb7defa 13140 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13141 }
AzureIoTClient 28:add19eb7defa 13142 else
AzureIoTClient 28:add19eb7defa 13143 {
AzureIoTClient 28:add19eb7defa 13144 const char* outcomes_single_value;
AzureIoTClient 28:add19eb7defa 13145 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13146 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13147 {
AzureIoTClient 28:add19eb7defa 13148 get_single_value_result = amqpvalue_get_symbol(item_value, &outcomes_single_value);
AzureIoTClient 28:add19eb7defa 13149 }
AzureIoTClient 28:add19eb7defa 13150 else
AzureIoTClient 28:add19eb7defa 13151 {
AzureIoTClient 28:add19eb7defa 13152 (void)memset((void*)&outcomes_single_value, 0, sizeof(outcomes_single_value));
AzureIoTClient 28:add19eb7defa 13153 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 13154 }
AzureIoTClient 28:add19eb7defa 13155
AzureIoTClient 28:add19eb7defa 13156 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, outcomes_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 13157 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 13158 {
AzureIoTClient 28:add19eb7defa 13159 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13160 }
AzureIoTClient 28:add19eb7defa 13161 else
AzureIoTClient 28:add19eb7defa 13162 {
AzureIoTClient 28:add19eb7defa 13163 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13164 {
AzureIoTClient 28:add19eb7defa 13165 *outcomes_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 13166 if (*outcomes_value == NULL)
AzureIoTClient 28:add19eb7defa 13167 {
AzureIoTClient 28:add19eb7defa 13168 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13169 }
AzureIoTClient 28:add19eb7defa 13170 else
AzureIoTClient 28:add19eb7defa 13171 {
AzureIoTClient 28:add19eb7defa 13172 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(outcomes_single_value);
AzureIoTClient 28:add19eb7defa 13173 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13174 {
AzureIoTClient 28:add19eb7defa 13175 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13176 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13177 }
AzureIoTClient 28:add19eb7defa 13178 else
AzureIoTClient 28:add19eb7defa 13179 {
AzureIoTClient 28:add19eb7defa 13180 if (amqpvalue_add_array_item(*outcomes_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13181 {
AzureIoTClient 28:add19eb7defa 13182 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13183 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 13184 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13185 }
AzureIoTClient 28:add19eb7defa 13186 else
AzureIoTClient 28:add19eb7defa 13187 {
AzureIoTClient 29:4a11413cf217 13188 if (amqpvalue_set_composite_item(source_instance->composite_value, 9, *outcomes_value) != 0)
AzureIoTClient 29:4a11413cf217 13189 {
AzureIoTClient 29:4a11413cf217 13190 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 29:4a11413cf217 13191 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 13192 }
AzureIoTClient 29:4a11413cf217 13193 else
AzureIoTClient 29:4a11413cf217 13194 {
AzureIoTClient 29:4a11413cf217 13195 result = 0;
AzureIoTClient 29:4a11413cf217 13196 }
AzureIoTClient 28:add19eb7defa 13197 }
AzureIoTClient 29:4a11413cf217 13198
AzureIoTClient 29:4a11413cf217 13199 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 13200 }
AzureIoTClient 29:4a11413cf217 13201 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13202 }
AzureIoTClient 28:add19eb7defa 13203 }
AzureIoTClient 28:add19eb7defa 13204 else
AzureIoTClient 28:add19eb7defa 13205 {
AzureIoTClient 28:add19eb7defa 13206 result = 0;
AzureIoTClient 28:add19eb7defa 13207 }
AzureIoTClient 28:add19eb7defa 13208 }
AzureIoTClient 28:add19eb7defa 13209 }
AzureIoTClient 28:add19eb7defa 13210 }
AzureIoTClient 28:add19eb7defa 13211 }
AzureIoTClient 28:add19eb7defa 13212 }
AzureIoTClient 28:add19eb7defa 13213
AzureIoTClient 28:add19eb7defa 13214 return result;
Azure.IoT Build 0:6ae2f7bca550 13215 }
Azure.IoT Build 0:6ae2f7bca550 13216
Azure.IoT Build 0:6ae2f7bca550 13217 int source_set_outcomes(SOURCE_HANDLE source, AMQP_VALUE outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 13218 {
AzureIoTClient 28:add19eb7defa 13219 int result;
AzureIoTClient 28:add19eb7defa 13220
AzureIoTClient 28:add19eb7defa 13221 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13222 {
AzureIoTClient 28:add19eb7defa 13223 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13224 }
AzureIoTClient 28:add19eb7defa 13225 else
AzureIoTClient 28:add19eb7defa 13226 {
AzureIoTClient 28:add19eb7defa 13227 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13228 AMQP_VALUE outcomes_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13229 if (outcomes_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13230 {
AzureIoTClient 23:1111ee8bcba4 13231 outcomes_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13232 }
AzureIoTClient 23:1111ee8bcba4 13233 else
AzureIoTClient 23:1111ee8bcba4 13234 {
AzureIoTClient 23:1111ee8bcba4 13235 outcomes_amqp_value = amqpvalue_clone(outcomes_value);
AzureIoTClient 23:1111ee8bcba4 13236 }
AzureIoTClient 28:add19eb7defa 13237 if (outcomes_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13238 {
AzureIoTClient 28:add19eb7defa 13239 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13240 }
AzureIoTClient 28:add19eb7defa 13241 else
AzureIoTClient 28:add19eb7defa 13242 {
AzureIoTClient 28:add19eb7defa 13243 if (amqpvalue_set_composite_item(source_instance->composite_value, 9, outcomes_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13244 {
AzureIoTClient 28:add19eb7defa 13245 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13246 }
AzureIoTClient 28:add19eb7defa 13247 else
AzureIoTClient 28:add19eb7defa 13248 {
AzureIoTClient 28:add19eb7defa 13249 result = 0;
AzureIoTClient 28:add19eb7defa 13250 }
AzureIoTClient 28:add19eb7defa 13251
AzureIoTClient 28:add19eb7defa 13252 amqpvalue_destroy(outcomes_amqp_value);
AzureIoTClient 28:add19eb7defa 13253 }
AzureIoTClient 28:add19eb7defa 13254 }
AzureIoTClient 28:add19eb7defa 13255
AzureIoTClient 28:add19eb7defa 13256 return result;
Azure.IoT Build 0:6ae2f7bca550 13257 }
Azure.IoT Build 0:6ae2f7bca550 13258
Azure.IoT Build 0:6ae2f7bca550 13259 int source_get_capabilities(SOURCE_HANDLE source, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13260 {
AzureIoTClient 28:add19eb7defa 13261 int result;
AzureIoTClient 28:add19eb7defa 13262
AzureIoTClient 28:add19eb7defa 13263 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13264 {
AzureIoTClient 28:add19eb7defa 13265 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13266 }
AzureIoTClient 28:add19eb7defa 13267 else
AzureIoTClient 28:add19eb7defa 13268 {
AzureIoTClient 28:add19eb7defa 13269 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13270 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13271 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13272 {
AzureIoTClient 23:1111ee8bcba4 13273 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13274 }
AzureIoTClient 23:1111ee8bcba4 13275 else
AzureIoTClient 23:1111ee8bcba4 13276 {
AzureIoTClient 23:1111ee8bcba4 13277 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 13278 {
AzureIoTClient 28:add19eb7defa 13279 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13280 }
AzureIoTClient 28:add19eb7defa 13281 else
AzureIoTClient 28:add19eb7defa 13282 {
AzureIoTClient 28:add19eb7defa 13283 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 13284 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13285 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13286 {
AzureIoTClient 28:add19eb7defa 13287 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13288 }
AzureIoTClient 28:add19eb7defa 13289 else
AzureIoTClient 28:add19eb7defa 13290 {
AzureIoTClient 28:add19eb7defa 13291 const char* capabilities_single_value;
AzureIoTClient 28:add19eb7defa 13292 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13293 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13294 {
AzureIoTClient 28:add19eb7defa 13295 get_single_value_result = amqpvalue_get_symbol(item_value, &capabilities_single_value);
AzureIoTClient 28:add19eb7defa 13296 }
AzureIoTClient 28:add19eb7defa 13297 else
AzureIoTClient 28:add19eb7defa 13298 {
AzureIoTClient 28:add19eb7defa 13299 (void)memset((void*)&capabilities_single_value, 0, sizeof(capabilities_single_value));
AzureIoTClient 28:add19eb7defa 13300 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 13301 }
AzureIoTClient 28:add19eb7defa 13302
AzureIoTClient 28:add19eb7defa 13303 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 13304 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 13305 {
AzureIoTClient 28:add19eb7defa 13306 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13307 }
AzureIoTClient 28:add19eb7defa 13308 else
AzureIoTClient 28:add19eb7defa 13309 {
AzureIoTClient 28:add19eb7defa 13310 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13311 {
AzureIoTClient 28:add19eb7defa 13312 *capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 13313 if (*capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 13314 {
AzureIoTClient 28:add19eb7defa 13315 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13316 }
AzureIoTClient 28:add19eb7defa 13317 else
AzureIoTClient 28:add19eb7defa 13318 {
AzureIoTClient 28:add19eb7defa 13319 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(capabilities_single_value);
AzureIoTClient 28:add19eb7defa 13320 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13321 {
AzureIoTClient 28:add19eb7defa 13322 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13323 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13324 }
AzureIoTClient 28:add19eb7defa 13325 else
AzureIoTClient 28:add19eb7defa 13326 {
AzureIoTClient 28:add19eb7defa 13327 if (amqpvalue_add_array_item(*capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13328 {
AzureIoTClient 28:add19eb7defa 13329 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13330 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 13331 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13332 }
AzureIoTClient 28:add19eb7defa 13333 else
AzureIoTClient 28:add19eb7defa 13334 {
AzureIoTClient 29:4a11413cf217 13335 if (amqpvalue_set_composite_item(source_instance->composite_value, 10, *capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 13336 {
AzureIoTClient 29:4a11413cf217 13337 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 29:4a11413cf217 13338 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 13339 }
AzureIoTClient 29:4a11413cf217 13340 else
AzureIoTClient 29:4a11413cf217 13341 {
AzureIoTClient 29:4a11413cf217 13342 result = 0;
AzureIoTClient 29:4a11413cf217 13343 }
AzureIoTClient 28:add19eb7defa 13344 }
AzureIoTClient 29:4a11413cf217 13345
AzureIoTClient 29:4a11413cf217 13346 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 13347 }
AzureIoTClient 29:4a11413cf217 13348 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13349 }
AzureIoTClient 28:add19eb7defa 13350 }
AzureIoTClient 28:add19eb7defa 13351 else
AzureIoTClient 28:add19eb7defa 13352 {
AzureIoTClient 28:add19eb7defa 13353 result = 0;
AzureIoTClient 28:add19eb7defa 13354 }
AzureIoTClient 28:add19eb7defa 13355 }
AzureIoTClient 28:add19eb7defa 13356 }
AzureIoTClient 28:add19eb7defa 13357 }
AzureIoTClient 28:add19eb7defa 13358 }
AzureIoTClient 28:add19eb7defa 13359 }
AzureIoTClient 28:add19eb7defa 13360
AzureIoTClient 28:add19eb7defa 13361 return result;
Azure.IoT Build 0:6ae2f7bca550 13362 }
Azure.IoT Build 0:6ae2f7bca550 13363
Azure.IoT Build 0:6ae2f7bca550 13364 int source_set_capabilities(SOURCE_HANDLE source, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13365 {
AzureIoTClient 28:add19eb7defa 13366 int result;
AzureIoTClient 28:add19eb7defa 13367
AzureIoTClient 28:add19eb7defa 13368 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13369 {
AzureIoTClient 28:add19eb7defa 13370 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13371 }
AzureIoTClient 28:add19eb7defa 13372 else
AzureIoTClient 28:add19eb7defa 13373 {
AzureIoTClient 28:add19eb7defa 13374 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13375 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13376 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13377 {
AzureIoTClient 23:1111ee8bcba4 13378 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13379 }
AzureIoTClient 23:1111ee8bcba4 13380 else
AzureIoTClient 23:1111ee8bcba4 13381 {
AzureIoTClient 23:1111ee8bcba4 13382 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 13383 }
AzureIoTClient 28:add19eb7defa 13384 if (capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13385 {
AzureIoTClient 28:add19eb7defa 13386 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13387 }
AzureIoTClient 28:add19eb7defa 13388 else
AzureIoTClient 28:add19eb7defa 13389 {
AzureIoTClient 28:add19eb7defa 13390 if (amqpvalue_set_composite_item(source_instance->composite_value, 10, capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13391 {
AzureIoTClient 28:add19eb7defa 13392 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13393 }
AzureIoTClient 28:add19eb7defa 13394 else
AzureIoTClient 28:add19eb7defa 13395 {
AzureIoTClient 28:add19eb7defa 13396 result = 0;
AzureIoTClient 28:add19eb7defa 13397 }
AzureIoTClient 28:add19eb7defa 13398
AzureIoTClient 28:add19eb7defa 13399 amqpvalue_destroy(capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 13400 }
AzureIoTClient 28:add19eb7defa 13401 }
AzureIoTClient 28:add19eb7defa 13402
AzureIoTClient 28:add19eb7defa 13403 return result;
Azure.IoT Build 0:6ae2f7bca550 13404 }
Azure.IoT Build 0:6ae2f7bca550 13405
Azure.IoT Build 0:6ae2f7bca550 13406
Azure.IoT Build 0:6ae2f7bca550 13407 /* target */
Azure.IoT Build 0:6ae2f7bca550 13408
Azure.IoT Build 0:6ae2f7bca550 13409 typedef struct TARGET_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 13410 {
AzureIoTClient 28:add19eb7defa 13411 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 13412 } TARGET_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 13413
Azure.IoT Build 0:6ae2f7bca550 13414 static TARGET_HANDLE target_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 13415 {
AzureIoTClient 28:add19eb7defa 13416 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13417 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13418 {
AzureIoTClient 28:add19eb7defa 13419 target_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 13420 }
AzureIoTClient 28:add19eb7defa 13421
AzureIoTClient 28:add19eb7defa 13422 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13423 }
Azure.IoT Build 0:6ae2f7bca550 13424
Azure.IoT Build 0:6ae2f7bca550 13425 TARGET_HANDLE target_create(void)
Azure.IoT Build 0:6ae2f7bca550 13426 {
AzureIoTClient 28:add19eb7defa 13427 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13428 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13429 {
AzureIoTClient 28:add19eb7defa 13430 target_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(41);
AzureIoTClient 28:add19eb7defa 13431 if (target_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 13432 {
AzureIoTClient 28:add19eb7defa 13433 free(target_instance);
AzureIoTClient 28:add19eb7defa 13434 target_instance = NULL;
AzureIoTClient 28:add19eb7defa 13435 }
AzureIoTClient 28:add19eb7defa 13436 }
AzureIoTClient 28:add19eb7defa 13437
AzureIoTClient 28:add19eb7defa 13438 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13439 }
Azure.IoT Build 0:6ae2f7bca550 13440
Azure.IoT Build 0:6ae2f7bca550 13441 TARGET_HANDLE target_clone(TARGET_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 13442 {
AzureIoTClient 28:add19eb7defa 13443 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13444 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13445 {
AzureIoTClient 28:add19eb7defa 13446 target_instance->composite_value = amqpvalue_clone(((TARGET_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 13447 if (target_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 13448 {
AzureIoTClient 28:add19eb7defa 13449 free(target_instance);
AzureIoTClient 28:add19eb7defa 13450 target_instance = NULL;
AzureIoTClient 28:add19eb7defa 13451 }
AzureIoTClient 28:add19eb7defa 13452 }
AzureIoTClient 28:add19eb7defa 13453
AzureIoTClient 28:add19eb7defa 13454 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13455 }
Azure.IoT Build 0:6ae2f7bca550 13456
Azure.IoT Build 0:6ae2f7bca550 13457 void target_destroy(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 13458 {
AzureIoTClient 28:add19eb7defa 13459 if (target != NULL)
AzureIoTClient 28:add19eb7defa 13460 {
AzureIoTClient 28:add19eb7defa 13461 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13462 amqpvalue_destroy(target_instance->composite_value);
AzureIoTClient 28:add19eb7defa 13463 free(target_instance);
AzureIoTClient 28:add19eb7defa 13464 }
Azure.IoT Build 0:6ae2f7bca550 13465 }
Azure.IoT Build 0:6ae2f7bca550 13466
Azure.IoT Build 0:6ae2f7bca550 13467 AMQP_VALUE amqpvalue_create_target(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 13468 {
AzureIoTClient 28:add19eb7defa 13469 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 13470
AzureIoTClient 28:add19eb7defa 13471 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13472 {
AzureIoTClient 28:add19eb7defa 13473 result = NULL;
AzureIoTClient 28:add19eb7defa 13474 }
AzureIoTClient 28:add19eb7defa 13475 else
AzureIoTClient 28:add19eb7defa 13476 {
AzureIoTClient 28:add19eb7defa 13477 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13478 result = amqpvalue_clone(target_instance->composite_value);
AzureIoTClient 28:add19eb7defa 13479 }
AzureIoTClient 28:add19eb7defa 13480
AzureIoTClient 28:add19eb7defa 13481 return result;
Azure.IoT Build 0:6ae2f7bca550 13482 }
Azure.IoT Build 0:6ae2f7bca550 13483
Azure.IoT Build 0:6ae2f7bca550 13484 bool is_target_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 13485 {
AzureIoTClient 28:add19eb7defa 13486 bool result;
AzureIoTClient 28:add19eb7defa 13487
AzureIoTClient 28:add19eb7defa 13488 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 13489 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 13490 (descriptor_ulong == 41))
AzureIoTClient 28:add19eb7defa 13491 {
AzureIoTClient 28:add19eb7defa 13492 result = true;
AzureIoTClient 28:add19eb7defa 13493 }
AzureIoTClient 28:add19eb7defa 13494 else
AzureIoTClient 28:add19eb7defa 13495 {
AzureIoTClient 28:add19eb7defa 13496 result = false;
AzureIoTClient 28:add19eb7defa 13497 }
AzureIoTClient 28:add19eb7defa 13498
AzureIoTClient 28:add19eb7defa 13499 return result;
Azure.IoT Build 0:6ae2f7bca550 13500 }
Azure.IoT Build 0:6ae2f7bca550 13501
Azure.IoT Build 0:6ae2f7bca550 13502
Azure.IoT Build 0:6ae2f7bca550 13503 int amqpvalue_get_target(AMQP_VALUE value, TARGET_HANDLE* target_handle)
Azure.IoT Build 0:6ae2f7bca550 13504 {
AzureIoTClient 28:add19eb7defa 13505 int result;
AzureIoTClient 28:add19eb7defa 13506 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target_create_internal();
AzureIoTClient 28:add19eb7defa 13507 *target_handle = target_instance;
AzureIoTClient 28:add19eb7defa 13508 if (*target_handle == NULL)
AzureIoTClient 28:add19eb7defa 13509 {
AzureIoTClient 28:add19eb7defa 13510 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13511 }
AzureIoTClient 28:add19eb7defa 13512 else
AzureIoTClient 28:add19eb7defa 13513 {
AzureIoTClient 28:add19eb7defa 13514 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 13515 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 13516 {
AzureIoTClient 28:add19eb7defa 13517 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13518 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13519 }
AzureIoTClient 28:add19eb7defa 13520 else
AzureIoTClient 28:add19eb7defa 13521 {
AzureIoTClient 23:1111ee8bcba4 13522 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 13523 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13524 {
AzureIoTClient 23:1111ee8bcba4 13525 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13526 }
AzureIoTClient 23:1111ee8bcba4 13527 else
AzureIoTClient 23:1111ee8bcba4 13528 {
AzureIoTClient 28:add19eb7defa 13529 do
AzureIoTClient 28:add19eb7defa 13530 {
AzureIoTClient 28:add19eb7defa 13531 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 13532 /* address */
AzureIoTClient 28:add19eb7defa 13533 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 13534 {
AzureIoTClient 23:1111ee8bcba4 13535 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 13536 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13537 {
AzureIoTClient 28:add19eb7defa 13538 /* do nothing */
AzureIoTClient 28:add19eb7defa 13539 }
AzureIoTClient 28:add19eb7defa 13540 else
AzureIoTClient 28:add19eb7defa 13541 {
AzureIoTClient 28:add19eb7defa 13542 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13543 }
AzureIoTClient 28:add19eb7defa 13544 }
AzureIoTClient 28:add19eb7defa 13545 /* durable */
AzureIoTClient 28:add19eb7defa 13546 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 13547 {
AzureIoTClient 23:1111ee8bcba4 13548 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 13549 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13550 {
AzureIoTClient 28:add19eb7defa 13551 /* do nothing */
AzureIoTClient 28:add19eb7defa 13552 }
AzureIoTClient 28:add19eb7defa 13553 else
AzureIoTClient 28:add19eb7defa 13554 {
AzureIoTClient 28:add19eb7defa 13555 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13556 {
AzureIoTClient 28:add19eb7defa 13557 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13558 }
AzureIoTClient 28:add19eb7defa 13559 else
AzureIoTClient 28:add19eb7defa 13560 {
AzureIoTClient 28:add19eb7defa 13561 terminus_durability durable;
AzureIoTClient 28:add19eb7defa 13562 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 13563 {
AzureIoTClient 28:add19eb7defa 13564 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13565 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13566 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13567 break;
AzureIoTClient 28:add19eb7defa 13568 }
AzureIoTClient 28:add19eb7defa 13569 }
AzureIoTClient 28:add19eb7defa 13570
AzureIoTClient 28:add19eb7defa 13571 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13572 }
AzureIoTClient 28:add19eb7defa 13573 }
AzureIoTClient 28:add19eb7defa 13574 /* expiry-policy */
AzureIoTClient 28:add19eb7defa 13575 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 13576 {
AzureIoTClient 23:1111ee8bcba4 13577 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 13578 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13579 {
AzureIoTClient 28:add19eb7defa 13580 /* do nothing */
AzureIoTClient 28:add19eb7defa 13581 }
AzureIoTClient 28:add19eb7defa 13582 else
AzureIoTClient 28:add19eb7defa 13583 {
AzureIoTClient 28:add19eb7defa 13584 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13585 {
AzureIoTClient 28:add19eb7defa 13586 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13587 }
AzureIoTClient 28:add19eb7defa 13588 else
AzureIoTClient 28:add19eb7defa 13589 {
AzureIoTClient 28:add19eb7defa 13590 terminus_expiry_policy expiry_policy;
AzureIoTClient 28:add19eb7defa 13591 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 28:add19eb7defa 13592 {
AzureIoTClient 28:add19eb7defa 13593 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13594 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13595 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13596 break;
AzureIoTClient 28:add19eb7defa 13597 }
AzureIoTClient 28:add19eb7defa 13598 }
AzureIoTClient 28:add19eb7defa 13599
AzureIoTClient 28:add19eb7defa 13600 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13601 }
AzureIoTClient 28:add19eb7defa 13602 }
AzureIoTClient 28:add19eb7defa 13603 /* timeout */
AzureIoTClient 28:add19eb7defa 13604 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 13605 {
AzureIoTClient 23:1111ee8bcba4 13606 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 13607 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13608 {
AzureIoTClient 28:add19eb7defa 13609 /* do nothing */
AzureIoTClient 28:add19eb7defa 13610 }
AzureIoTClient 28:add19eb7defa 13611 else
AzureIoTClient 28:add19eb7defa 13612 {
AzureIoTClient 28:add19eb7defa 13613 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13614 {
AzureIoTClient 28:add19eb7defa 13615 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13616 }
AzureIoTClient 28:add19eb7defa 13617 else
AzureIoTClient 28:add19eb7defa 13618 {
AzureIoTClient 28:add19eb7defa 13619 seconds timeout;
AzureIoTClient 28:add19eb7defa 13620 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 28:add19eb7defa 13621 {
AzureIoTClient 28:add19eb7defa 13622 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13623 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13624 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13625 break;
AzureIoTClient 28:add19eb7defa 13626 }
AzureIoTClient 28:add19eb7defa 13627 }
AzureIoTClient 28:add19eb7defa 13628
AzureIoTClient 28:add19eb7defa 13629 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13630 }
AzureIoTClient 28:add19eb7defa 13631 }
AzureIoTClient 28:add19eb7defa 13632 /* dynamic */
AzureIoTClient 28:add19eb7defa 13633 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 13634 {
AzureIoTClient 23:1111ee8bcba4 13635 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 13636 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13637 {
AzureIoTClient 28:add19eb7defa 13638 /* do nothing */
AzureIoTClient 28:add19eb7defa 13639 }
AzureIoTClient 28:add19eb7defa 13640 else
AzureIoTClient 28:add19eb7defa 13641 {
AzureIoTClient 28:add19eb7defa 13642 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13643 {
AzureIoTClient 28:add19eb7defa 13644 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13645 }
AzureIoTClient 28:add19eb7defa 13646 else
AzureIoTClient 28:add19eb7defa 13647 {
AzureIoTClient 28:add19eb7defa 13648 bool dynamic;
AzureIoTClient 28:add19eb7defa 13649 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 28:add19eb7defa 13650 {
AzureIoTClient 28:add19eb7defa 13651 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13652 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13653 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13654 break;
AzureIoTClient 28:add19eb7defa 13655 }
AzureIoTClient 28:add19eb7defa 13656 }
AzureIoTClient 28:add19eb7defa 13657
AzureIoTClient 28:add19eb7defa 13658 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13659 }
AzureIoTClient 28:add19eb7defa 13660 }
AzureIoTClient 28:add19eb7defa 13661 /* dynamic-node-properties */
AzureIoTClient 28:add19eb7defa 13662 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 13663 {
AzureIoTClient 23:1111ee8bcba4 13664 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 13665 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13666 {
AzureIoTClient 28:add19eb7defa 13667 /* do nothing */
AzureIoTClient 28:add19eb7defa 13668 }
AzureIoTClient 28:add19eb7defa 13669 else
AzureIoTClient 28:add19eb7defa 13670 {
AzureIoTClient 28:add19eb7defa 13671 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13672 {
AzureIoTClient 28:add19eb7defa 13673 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13674 }
AzureIoTClient 28:add19eb7defa 13675 else
AzureIoTClient 28:add19eb7defa 13676 {
AzureIoTClient 28:add19eb7defa 13677 node_properties dynamic_node_properties;
AzureIoTClient 28:add19eb7defa 13678 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 28:add19eb7defa 13679 {
AzureIoTClient 28:add19eb7defa 13680 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13681 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13682 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13683 break;
AzureIoTClient 28:add19eb7defa 13684 }
AzureIoTClient 28:add19eb7defa 13685 }
AzureIoTClient 28:add19eb7defa 13686
AzureIoTClient 28:add19eb7defa 13687 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13688 }
AzureIoTClient 28:add19eb7defa 13689 }
AzureIoTClient 28:add19eb7defa 13690 /* capabilities */
AzureIoTClient 28:add19eb7defa 13691 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 13692 {
AzureIoTClient 23:1111ee8bcba4 13693 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 13694 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13695 {
AzureIoTClient 28:add19eb7defa 13696 /* do nothing */
AzureIoTClient 28:add19eb7defa 13697 }
AzureIoTClient 28:add19eb7defa 13698 else
AzureIoTClient 28:add19eb7defa 13699 {
AzureIoTClient 28:add19eb7defa 13700 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13701 {
AzureIoTClient 28:add19eb7defa 13702 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13703 }
AzureIoTClient 28:add19eb7defa 13704 else
AzureIoTClient 28:add19eb7defa 13705 {
AzureIoTClient 28:add19eb7defa 13706 const char* capabilities = NULL;
AzureIoTClient 28:add19eb7defa 13707 AMQP_VALUE capabilities_array;
AzureIoTClient 28:add19eb7defa 13708 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 13709 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 28:add19eb7defa 13710 {
AzureIoTClient 28:add19eb7defa 13711 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13712 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13713 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13714 break;
AzureIoTClient 28:add19eb7defa 13715 }
AzureIoTClient 28:add19eb7defa 13716 }
AzureIoTClient 28:add19eb7defa 13717
AzureIoTClient 28:add19eb7defa 13718 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13719 }
AzureIoTClient 28:add19eb7defa 13720 }
AzureIoTClient 28:add19eb7defa 13721
AzureIoTClient 28:add19eb7defa 13722 target_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 13723
AzureIoTClient 28:add19eb7defa 13724 result = 0;
AzureIoTClient 28:add19eb7defa 13725 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 13726 }
AzureIoTClient 28:add19eb7defa 13727 }
AzureIoTClient 28:add19eb7defa 13728 }
AzureIoTClient 28:add19eb7defa 13729
AzureIoTClient 28:add19eb7defa 13730 return result;
Azure.IoT Build 0:6ae2f7bca550 13731 }
Azure.IoT Build 0:6ae2f7bca550 13732
Azure.IoT Build 0:6ae2f7bca550 13733 int target_get_address(TARGET_HANDLE target, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 13734 {
AzureIoTClient 28:add19eb7defa 13735 int result;
AzureIoTClient 28:add19eb7defa 13736
AzureIoTClient 28:add19eb7defa 13737 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13738 {
AzureIoTClient 28:add19eb7defa 13739 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13740 }
AzureIoTClient 28:add19eb7defa 13741 else
AzureIoTClient 28:add19eb7defa 13742 {
AzureIoTClient 28:add19eb7defa 13743 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13744 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13745 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13746 {
AzureIoTClient 23:1111ee8bcba4 13747 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13748 }
AzureIoTClient 23:1111ee8bcba4 13749 else
AzureIoTClient 23:1111ee8bcba4 13750 {
AzureIoTClient 23:1111ee8bcba4 13751 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 13752 {
AzureIoTClient 28:add19eb7defa 13753 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13754 }
AzureIoTClient 28:add19eb7defa 13755 else
AzureIoTClient 28:add19eb7defa 13756 {
AzureIoTClient 28:add19eb7defa 13757 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 13758 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13759 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13760 {
AzureIoTClient 28:add19eb7defa 13761 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13762 }
AzureIoTClient 28:add19eb7defa 13763 else
AzureIoTClient 28:add19eb7defa 13764 {
AzureIoTClient 28:add19eb7defa 13765 *address_value = item_value;
AzureIoTClient 28:add19eb7defa 13766 result = 0;
AzureIoTClient 28:add19eb7defa 13767 }
AzureIoTClient 28:add19eb7defa 13768 }
AzureIoTClient 28:add19eb7defa 13769 }
AzureIoTClient 28:add19eb7defa 13770 }
AzureIoTClient 28:add19eb7defa 13771
AzureIoTClient 28:add19eb7defa 13772 return result;
Azure.IoT Build 0:6ae2f7bca550 13773 }
Azure.IoT Build 0:6ae2f7bca550 13774
Azure.IoT Build 0:6ae2f7bca550 13775 int target_set_address(TARGET_HANDLE target, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 13776 {
AzureIoTClient 28:add19eb7defa 13777 int result;
AzureIoTClient 28:add19eb7defa 13778
AzureIoTClient 28:add19eb7defa 13779 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13780 {
AzureIoTClient 28:add19eb7defa 13781 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13782 }
AzureIoTClient 28:add19eb7defa 13783 else
AzureIoTClient 28:add19eb7defa 13784 {
AzureIoTClient 28:add19eb7defa 13785 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13786 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13787 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13788 {
AzureIoTClient 23:1111ee8bcba4 13789 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13790 }
AzureIoTClient 23:1111ee8bcba4 13791 else
AzureIoTClient 23:1111ee8bcba4 13792 {
AzureIoTClient 23:1111ee8bcba4 13793 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 13794 }
AzureIoTClient 28:add19eb7defa 13795 if (address_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13796 {
AzureIoTClient 28:add19eb7defa 13797 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13798 }
AzureIoTClient 28:add19eb7defa 13799 else
AzureIoTClient 28:add19eb7defa 13800 {
AzureIoTClient 28:add19eb7defa 13801 if (amqpvalue_set_composite_item(target_instance->composite_value, 0, address_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13802 {
AzureIoTClient 28:add19eb7defa 13803 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13804 }
AzureIoTClient 28:add19eb7defa 13805 else
AzureIoTClient 28:add19eb7defa 13806 {
AzureIoTClient 28:add19eb7defa 13807 result = 0;
AzureIoTClient 28:add19eb7defa 13808 }
AzureIoTClient 28:add19eb7defa 13809
AzureIoTClient 28:add19eb7defa 13810 amqpvalue_destroy(address_amqp_value);
AzureIoTClient 28:add19eb7defa 13811 }
AzureIoTClient 28:add19eb7defa 13812 }
AzureIoTClient 28:add19eb7defa 13813
AzureIoTClient 28:add19eb7defa 13814 return result;
Azure.IoT Build 0:6ae2f7bca550 13815 }
Azure.IoT Build 0:6ae2f7bca550 13816
Azure.IoT Build 0:6ae2f7bca550 13817 int target_get_durable(TARGET_HANDLE target, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 13818 {
AzureIoTClient 28:add19eb7defa 13819 int result;
AzureIoTClient 28:add19eb7defa 13820
AzureIoTClient 28:add19eb7defa 13821 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13822 {
AzureIoTClient 28:add19eb7defa 13823 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13824 }
AzureIoTClient 28:add19eb7defa 13825 else
AzureIoTClient 28:add19eb7defa 13826 {
AzureIoTClient 28:add19eb7defa 13827 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13828 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13829 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13830 {
AzureIoTClient 23:1111ee8bcba4 13831 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13832 }
AzureIoTClient 23:1111ee8bcba4 13833 else
AzureIoTClient 23:1111ee8bcba4 13834 {
AzureIoTClient 23:1111ee8bcba4 13835 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 13836 {
AzureIoTClient 23:1111ee8bcba4 13837 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13838 result = 0;
AzureIoTClient 23:1111ee8bcba4 13839 }
AzureIoTClient 23:1111ee8bcba4 13840 else
AzureIoTClient 23:1111ee8bcba4 13841 {
AzureIoTClient 28:add19eb7defa 13842 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 13843 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13844 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13845 {
AzureIoTClient 16:22a72cf8e416 13846 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 13847 result = 0;
AzureIoTClient 28:add19eb7defa 13848 }
AzureIoTClient 28:add19eb7defa 13849 else
AzureIoTClient 28:add19eb7defa 13850 {
AzureIoTClient 43:4c1e4e94cdd3 13851 int get_single_value_result = amqpvalue_get_terminus_durability(item_value, durable_value);
AzureIoTClient 43:4c1e4e94cdd3 13852 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 13853 {
AzureIoTClient 23:1111ee8bcba4 13854 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13855 {
AzureIoTClient 28:add19eb7defa 13856 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13857 }
AzureIoTClient 23:1111ee8bcba4 13858 else
AzureIoTClient 23:1111ee8bcba4 13859 {
AzureIoTClient 23:1111ee8bcba4 13860 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13861 result = 0;
AzureIoTClient 23:1111ee8bcba4 13862 }
AzureIoTClient 28:add19eb7defa 13863 }
AzureIoTClient 28:add19eb7defa 13864 else
AzureIoTClient 28:add19eb7defa 13865 {
AzureIoTClient 28:add19eb7defa 13866 result = 0;
AzureIoTClient 28:add19eb7defa 13867 }
AzureIoTClient 28:add19eb7defa 13868 }
AzureIoTClient 28:add19eb7defa 13869 }
AzureIoTClient 28:add19eb7defa 13870 }
AzureIoTClient 28:add19eb7defa 13871 }
AzureIoTClient 28:add19eb7defa 13872
AzureIoTClient 28:add19eb7defa 13873 return result;
Azure.IoT Build 0:6ae2f7bca550 13874 }
Azure.IoT Build 0:6ae2f7bca550 13875
Azure.IoT Build 0:6ae2f7bca550 13876 int target_set_durable(TARGET_HANDLE target, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 13877 {
AzureIoTClient 28:add19eb7defa 13878 int result;
AzureIoTClient 28:add19eb7defa 13879
AzureIoTClient 28:add19eb7defa 13880 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13881 {
AzureIoTClient 28:add19eb7defa 13882 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13883 }
AzureIoTClient 28:add19eb7defa 13884 else
AzureIoTClient 28:add19eb7defa 13885 {
AzureIoTClient 28:add19eb7defa 13886 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13887 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
AzureIoTClient 28:add19eb7defa 13888 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13889 {
AzureIoTClient 28:add19eb7defa 13890 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13891 }
AzureIoTClient 28:add19eb7defa 13892 else
AzureIoTClient 28:add19eb7defa 13893 {
AzureIoTClient 28:add19eb7defa 13894 if (amqpvalue_set_composite_item(target_instance->composite_value, 1, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13895 {
AzureIoTClient 28:add19eb7defa 13896 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13897 }
AzureIoTClient 28:add19eb7defa 13898 else
AzureIoTClient 28:add19eb7defa 13899 {
AzureIoTClient 28:add19eb7defa 13900 result = 0;
AzureIoTClient 28:add19eb7defa 13901 }
AzureIoTClient 28:add19eb7defa 13902
AzureIoTClient 28:add19eb7defa 13903 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 13904 }
AzureIoTClient 28:add19eb7defa 13905 }
AzureIoTClient 28:add19eb7defa 13906
AzureIoTClient 28:add19eb7defa 13907 return result;
Azure.IoT Build 0:6ae2f7bca550 13908 }
Azure.IoT Build 0:6ae2f7bca550 13909
Azure.IoT Build 0:6ae2f7bca550 13910 int target_get_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13911 {
AzureIoTClient 28:add19eb7defa 13912 int result;
AzureIoTClient 28:add19eb7defa 13913
AzureIoTClient 28:add19eb7defa 13914 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13915 {
AzureIoTClient 28:add19eb7defa 13916 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13917 }
AzureIoTClient 28:add19eb7defa 13918 else
AzureIoTClient 28:add19eb7defa 13919 {
AzureIoTClient 28:add19eb7defa 13920 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13921 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13922 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13923 {
AzureIoTClient 23:1111ee8bcba4 13924 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13925 }
AzureIoTClient 23:1111ee8bcba4 13926 else
AzureIoTClient 23:1111ee8bcba4 13927 {
AzureIoTClient 23:1111ee8bcba4 13928 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 13929 {
AzureIoTClient 23:1111ee8bcba4 13930 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13931 result = 0;
AzureIoTClient 23:1111ee8bcba4 13932 }
AzureIoTClient 23:1111ee8bcba4 13933 else
AzureIoTClient 23:1111ee8bcba4 13934 {
AzureIoTClient 28:add19eb7defa 13935 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 13936 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13937 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13938 {
AzureIoTClient 16:22a72cf8e416 13939 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 13940 result = 0;
AzureIoTClient 28:add19eb7defa 13941 }
AzureIoTClient 28:add19eb7defa 13942 else
AzureIoTClient 28:add19eb7defa 13943 {
AzureIoTClient 43:4c1e4e94cdd3 13944 int get_single_value_result = amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value);
AzureIoTClient 43:4c1e4e94cdd3 13945 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 13946 {
AzureIoTClient 23:1111ee8bcba4 13947 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13948 {
AzureIoTClient 28:add19eb7defa 13949 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13950 }
AzureIoTClient 23:1111ee8bcba4 13951 else
AzureIoTClient 23:1111ee8bcba4 13952 {
AzureIoTClient 23:1111ee8bcba4 13953 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13954 result = 0;
AzureIoTClient 23:1111ee8bcba4 13955 }
AzureIoTClient 28:add19eb7defa 13956 }
AzureIoTClient 28:add19eb7defa 13957 else
AzureIoTClient 28:add19eb7defa 13958 {
AzureIoTClient 28:add19eb7defa 13959 result = 0;
AzureIoTClient 28:add19eb7defa 13960 }
AzureIoTClient 28:add19eb7defa 13961 }
AzureIoTClient 28:add19eb7defa 13962 }
AzureIoTClient 28:add19eb7defa 13963 }
AzureIoTClient 28:add19eb7defa 13964 }
AzureIoTClient 28:add19eb7defa 13965
AzureIoTClient 28:add19eb7defa 13966 return result;
Azure.IoT Build 0:6ae2f7bca550 13967 }
Azure.IoT Build 0:6ae2f7bca550 13968
Azure.IoT Build 0:6ae2f7bca550 13969 int target_set_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13970 {
AzureIoTClient 28:add19eb7defa 13971 int result;
AzureIoTClient 28:add19eb7defa 13972
AzureIoTClient 28:add19eb7defa 13973 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13974 {
AzureIoTClient 28:add19eb7defa 13975 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13976 }
AzureIoTClient 28:add19eb7defa 13977 else
AzureIoTClient 28:add19eb7defa 13978 {
AzureIoTClient 28:add19eb7defa 13979 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13980 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
AzureIoTClient 28:add19eb7defa 13981 if (expiry_policy_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13982 {
AzureIoTClient 28:add19eb7defa 13983 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13984 }
AzureIoTClient 28:add19eb7defa 13985 else
AzureIoTClient 28:add19eb7defa 13986 {
AzureIoTClient 28:add19eb7defa 13987 if (amqpvalue_set_composite_item(target_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13988 {
AzureIoTClient 28:add19eb7defa 13989 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13990 }
AzureIoTClient 28:add19eb7defa 13991 else
AzureIoTClient 28:add19eb7defa 13992 {
AzureIoTClient 28:add19eb7defa 13993 result = 0;
AzureIoTClient 28:add19eb7defa 13994 }
AzureIoTClient 28:add19eb7defa 13995
AzureIoTClient 28:add19eb7defa 13996 amqpvalue_destroy(expiry_policy_amqp_value);
AzureIoTClient 28:add19eb7defa 13997 }
AzureIoTClient 28:add19eb7defa 13998 }
AzureIoTClient 28:add19eb7defa 13999
AzureIoTClient 28:add19eb7defa 14000 return result;
Azure.IoT Build 0:6ae2f7bca550 14001 }
Azure.IoT Build 0:6ae2f7bca550 14002
Azure.IoT Build 0:6ae2f7bca550 14003 int target_get_timeout(TARGET_HANDLE target, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 14004 {
AzureIoTClient 28:add19eb7defa 14005 int result;
AzureIoTClient 28:add19eb7defa 14006
AzureIoTClient 28:add19eb7defa 14007 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14008 {
AzureIoTClient 28:add19eb7defa 14009 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14010 }
AzureIoTClient 28:add19eb7defa 14011 else
AzureIoTClient 28:add19eb7defa 14012 {
AzureIoTClient 28:add19eb7defa 14013 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14014 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14015 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14016 {
AzureIoTClient 23:1111ee8bcba4 14017 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14018 }
AzureIoTClient 23:1111ee8bcba4 14019 else
AzureIoTClient 23:1111ee8bcba4 14020 {
AzureIoTClient 23:1111ee8bcba4 14021 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 14022 {
AzureIoTClient 28:add19eb7defa 14023 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 14024 result = 0;
AzureIoTClient 28:add19eb7defa 14025 }
AzureIoTClient 28:add19eb7defa 14026 else
AzureIoTClient 28:add19eb7defa 14027 {
AzureIoTClient 28:add19eb7defa 14028 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 14029 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14030 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14031 {
AzureIoTClient 28:add19eb7defa 14032 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 14033 result = 0;
AzureIoTClient 28:add19eb7defa 14034 }
AzureIoTClient 28:add19eb7defa 14035 else
AzureIoTClient 28:add19eb7defa 14036 {
AzureIoTClient 43:4c1e4e94cdd3 14037 int get_single_value_result = amqpvalue_get_seconds(item_value, timeout_value);
AzureIoTClient 43:4c1e4e94cdd3 14038 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 14039 {
AzureIoTClient 23:1111ee8bcba4 14040 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14041 {
AzureIoTClient 28:add19eb7defa 14042 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14043 }
AzureIoTClient 28:add19eb7defa 14044 else
AzureIoTClient 28:add19eb7defa 14045 {
AzureIoTClient 28:add19eb7defa 14046 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 14047 result = 0;
AzureIoTClient 23:1111ee8bcba4 14048 }
AzureIoTClient 28:add19eb7defa 14049 }
AzureIoTClient 28:add19eb7defa 14050 else
AzureIoTClient 28:add19eb7defa 14051 {
AzureIoTClient 28:add19eb7defa 14052 result = 0;
AzureIoTClient 28:add19eb7defa 14053 }
AzureIoTClient 28:add19eb7defa 14054 }
AzureIoTClient 28:add19eb7defa 14055 }
AzureIoTClient 28:add19eb7defa 14056 }
AzureIoTClient 28:add19eb7defa 14057 }
AzureIoTClient 28:add19eb7defa 14058
AzureIoTClient 28:add19eb7defa 14059 return result;
Azure.IoT Build 0:6ae2f7bca550 14060 }
Azure.IoT Build 0:6ae2f7bca550 14061
Azure.IoT Build 0:6ae2f7bca550 14062 int target_set_timeout(TARGET_HANDLE target, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 14063 {
AzureIoTClient 28:add19eb7defa 14064 int result;
AzureIoTClient 28:add19eb7defa 14065
AzureIoTClient 28:add19eb7defa 14066 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14067 {
AzureIoTClient 28:add19eb7defa 14068 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14069 }
AzureIoTClient 28:add19eb7defa 14070 else
AzureIoTClient 28:add19eb7defa 14071 {
AzureIoTClient 28:add19eb7defa 14072 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14073 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
AzureIoTClient 28:add19eb7defa 14074 if (timeout_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14075 {
AzureIoTClient 28:add19eb7defa 14076 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14077 }
AzureIoTClient 28:add19eb7defa 14078 else
AzureIoTClient 28:add19eb7defa 14079 {
AzureIoTClient 28:add19eb7defa 14080 if (amqpvalue_set_composite_item(target_instance->composite_value, 3, timeout_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14081 {
AzureIoTClient 28:add19eb7defa 14082 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14083 }
AzureIoTClient 28:add19eb7defa 14084 else
AzureIoTClient 28:add19eb7defa 14085 {
AzureIoTClient 28:add19eb7defa 14086 result = 0;
AzureIoTClient 28:add19eb7defa 14087 }
AzureIoTClient 28:add19eb7defa 14088
AzureIoTClient 28:add19eb7defa 14089 amqpvalue_destroy(timeout_amqp_value);
AzureIoTClient 28:add19eb7defa 14090 }
AzureIoTClient 28:add19eb7defa 14091 }
AzureIoTClient 28:add19eb7defa 14092
AzureIoTClient 28:add19eb7defa 14093 return result;
Azure.IoT Build 0:6ae2f7bca550 14094 }
Azure.IoT Build 0:6ae2f7bca550 14095
Azure.IoT Build 0:6ae2f7bca550 14096 int target_get_dynamic(TARGET_HANDLE target, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 14097 {
AzureIoTClient 28:add19eb7defa 14098 int result;
AzureIoTClient 28:add19eb7defa 14099
AzureIoTClient 28:add19eb7defa 14100 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14101 {
AzureIoTClient 28:add19eb7defa 14102 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14103 }
AzureIoTClient 28:add19eb7defa 14104 else
AzureIoTClient 28:add19eb7defa 14105 {
AzureIoTClient 28:add19eb7defa 14106 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14107 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14108 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14109 {
AzureIoTClient 23:1111ee8bcba4 14110 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14111 }
AzureIoTClient 23:1111ee8bcba4 14112 else
AzureIoTClient 23:1111ee8bcba4 14113 {
AzureIoTClient 23:1111ee8bcba4 14114 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 14115 {
AzureIoTClient 28:add19eb7defa 14116 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 14117 result = 0;
AzureIoTClient 28:add19eb7defa 14118 }
AzureIoTClient 28:add19eb7defa 14119 else
AzureIoTClient 28:add19eb7defa 14120 {
AzureIoTClient 28:add19eb7defa 14121 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 14122 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14123 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14124 {
AzureIoTClient 28:add19eb7defa 14125 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 14126 result = 0;
AzureIoTClient 28:add19eb7defa 14127 }
AzureIoTClient 28:add19eb7defa 14128 else
AzureIoTClient 28:add19eb7defa 14129 {
AzureIoTClient 43:4c1e4e94cdd3 14130 int get_single_value_result = amqpvalue_get_boolean(item_value, dynamic_value);
AzureIoTClient 43:4c1e4e94cdd3 14131 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 14132 {
AzureIoTClient 23:1111ee8bcba4 14133 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14134 {
AzureIoTClient 28:add19eb7defa 14135 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14136 }
AzureIoTClient 28:add19eb7defa 14137 else
AzureIoTClient 28:add19eb7defa 14138 {
AzureIoTClient 28:add19eb7defa 14139 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 14140 result = 0;
AzureIoTClient 23:1111ee8bcba4 14141 }
AzureIoTClient 28:add19eb7defa 14142 }
AzureIoTClient 28:add19eb7defa 14143 else
AzureIoTClient 28:add19eb7defa 14144 {
AzureIoTClient 28:add19eb7defa 14145 result = 0;
AzureIoTClient 28:add19eb7defa 14146 }
AzureIoTClient 28:add19eb7defa 14147 }
AzureIoTClient 28:add19eb7defa 14148 }
AzureIoTClient 28:add19eb7defa 14149 }
AzureIoTClient 28:add19eb7defa 14150 }
AzureIoTClient 28:add19eb7defa 14151
AzureIoTClient 28:add19eb7defa 14152 return result;
Azure.IoT Build 0:6ae2f7bca550 14153 }
Azure.IoT Build 0:6ae2f7bca550 14154
Azure.IoT Build 0:6ae2f7bca550 14155 int target_set_dynamic(TARGET_HANDLE target, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 14156 {
AzureIoTClient 28:add19eb7defa 14157 int result;
AzureIoTClient 28:add19eb7defa 14158
AzureIoTClient 28:add19eb7defa 14159 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14160 {
AzureIoTClient 28:add19eb7defa 14161 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14162 }
AzureIoTClient 28:add19eb7defa 14163 else
AzureIoTClient 28:add19eb7defa 14164 {
AzureIoTClient 28:add19eb7defa 14165 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14166 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
AzureIoTClient 28:add19eb7defa 14167 if (dynamic_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14168 {
AzureIoTClient 28:add19eb7defa 14169 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14170 }
AzureIoTClient 28:add19eb7defa 14171 else
AzureIoTClient 28:add19eb7defa 14172 {
AzureIoTClient 28:add19eb7defa 14173 if (amqpvalue_set_composite_item(target_instance->composite_value, 4, dynamic_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14174 {
AzureIoTClient 28:add19eb7defa 14175 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14176 }
AzureIoTClient 28:add19eb7defa 14177 else
AzureIoTClient 28:add19eb7defa 14178 {
AzureIoTClient 28:add19eb7defa 14179 result = 0;
AzureIoTClient 28:add19eb7defa 14180 }
AzureIoTClient 28:add19eb7defa 14181
AzureIoTClient 28:add19eb7defa 14182 amqpvalue_destroy(dynamic_amqp_value);
AzureIoTClient 28:add19eb7defa 14183 }
AzureIoTClient 28:add19eb7defa 14184 }
AzureIoTClient 28:add19eb7defa 14185
AzureIoTClient 28:add19eb7defa 14186 return result;
Azure.IoT Build 0:6ae2f7bca550 14187 }
Azure.IoT Build 0:6ae2f7bca550 14188
Azure.IoT Build 0:6ae2f7bca550 14189 int target_get_dynamic_node_properties(TARGET_HANDLE target, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 14190 {
AzureIoTClient 28:add19eb7defa 14191 int result;
AzureIoTClient 28:add19eb7defa 14192
AzureIoTClient 28:add19eb7defa 14193 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14194 {
AzureIoTClient 28:add19eb7defa 14195 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14196 }
AzureIoTClient 28:add19eb7defa 14197 else
AzureIoTClient 28:add19eb7defa 14198 {
AzureIoTClient 28:add19eb7defa 14199 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14200 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14201 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14202 {
AzureIoTClient 23:1111ee8bcba4 14203 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14204 }
AzureIoTClient 23:1111ee8bcba4 14205 else
AzureIoTClient 23:1111ee8bcba4 14206 {
AzureIoTClient 23:1111ee8bcba4 14207 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 14208 {
AzureIoTClient 28:add19eb7defa 14209 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14210 }
AzureIoTClient 28:add19eb7defa 14211 else
AzureIoTClient 28:add19eb7defa 14212 {
AzureIoTClient 28:add19eb7defa 14213 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 14214 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14215 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14216 {
AzureIoTClient 28:add19eb7defa 14217 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14218 }
AzureIoTClient 28:add19eb7defa 14219 else
AzureIoTClient 28:add19eb7defa 14220 {
AzureIoTClient 43:4c1e4e94cdd3 14221 int get_single_value_result = amqpvalue_get_node_properties(item_value, dynamic_node_properties_value);
AzureIoTClient 43:4c1e4e94cdd3 14222 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 14223 {
AzureIoTClient 28:add19eb7defa 14224 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14225 }
AzureIoTClient 28:add19eb7defa 14226 else
AzureIoTClient 28:add19eb7defa 14227 {
AzureIoTClient 28:add19eb7defa 14228 result = 0;
AzureIoTClient 28:add19eb7defa 14229 }
AzureIoTClient 28:add19eb7defa 14230 }
AzureIoTClient 28:add19eb7defa 14231 }
AzureIoTClient 28:add19eb7defa 14232 }
AzureIoTClient 28:add19eb7defa 14233 }
AzureIoTClient 28:add19eb7defa 14234
AzureIoTClient 28:add19eb7defa 14235 return result;
Azure.IoT Build 0:6ae2f7bca550 14236 }
Azure.IoT Build 0:6ae2f7bca550 14237
Azure.IoT Build 0:6ae2f7bca550 14238 int target_set_dynamic_node_properties(TARGET_HANDLE target, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 14239 {
AzureIoTClient 28:add19eb7defa 14240 int result;
AzureIoTClient 28:add19eb7defa 14241
AzureIoTClient 28:add19eb7defa 14242 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14243 {
AzureIoTClient 28:add19eb7defa 14244 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14245 }
AzureIoTClient 28:add19eb7defa 14246 else
AzureIoTClient 28:add19eb7defa 14247 {
AzureIoTClient 28:add19eb7defa 14248 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14249 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
AzureIoTClient 28:add19eb7defa 14250 if (dynamic_node_properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14251 {
AzureIoTClient 28:add19eb7defa 14252 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14253 }
AzureIoTClient 28:add19eb7defa 14254 else
AzureIoTClient 28:add19eb7defa 14255 {
AzureIoTClient 28:add19eb7defa 14256 if (amqpvalue_set_composite_item(target_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14257 {
AzureIoTClient 28:add19eb7defa 14258 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14259 }
AzureIoTClient 28:add19eb7defa 14260 else
AzureIoTClient 28:add19eb7defa 14261 {
AzureIoTClient 28:add19eb7defa 14262 result = 0;
AzureIoTClient 28:add19eb7defa 14263 }
AzureIoTClient 28:add19eb7defa 14264
AzureIoTClient 28:add19eb7defa 14265 amqpvalue_destroy(dynamic_node_properties_amqp_value);
AzureIoTClient 28:add19eb7defa 14266 }
AzureIoTClient 28:add19eb7defa 14267 }
AzureIoTClient 28:add19eb7defa 14268
AzureIoTClient 28:add19eb7defa 14269 return result;
Azure.IoT Build 0:6ae2f7bca550 14270 }
Azure.IoT Build 0:6ae2f7bca550 14271
Azure.IoT Build 0:6ae2f7bca550 14272 int target_get_capabilities(TARGET_HANDLE target, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 14273 {
AzureIoTClient 28:add19eb7defa 14274 int result;
AzureIoTClient 28:add19eb7defa 14275
AzureIoTClient 28:add19eb7defa 14276 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14277 {
AzureIoTClient 28:add19eb7defa 14278 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14279 }
AzureIoTClient 28:add19eb7defa 14280 else
AzureIoTClient 28:add19eb7defa 14281 {
AzureIoTClient 28:add19eb7defa 14282 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14283 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14284 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14285 {
AzureIoTClient 23:1111ee8bcba4 14286 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14287 }
AzureIoTClient 23:1111ee8bcba4 14288 else
AzureIoTClient 23:1111ee8bcba4 14289 {
AzureIoTClient 23:1111ee8bcba4 14290 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 14291 {
AzureIoTClient 28:add19eb7defa 14292 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14293 }
AzureIoTClient 28:add19eb7defa 14294 else
AzureIoTClient 28:add19eb7defa 14295 {
AzureIoTClient 28:add19eb7defa 14296 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 14297 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14298 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14299 {
AzureIoTClient 28:add19eb7defa 14300 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14301 }
AzureIoTClient 28:add19eb7defa 14302 else
AzureIoTClient 28:add19eb7defa 14303 {
AzureIoTClient 28:add19eb7defa 14304 const char* capabilities_single_value;
AzureIoTClient 28:add19eb7defa 14305 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14306 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 14307 {
AzureIoTClient 28:add19eb7defa 14308 get_single_value_result = amqpvalue_get_symbol(item_value, &capabilities_single_value);
AzureIoTClient 28:add19eb7defa 14309 }
AzureIoTClient 28:add19eb7defa 14310 else
AzureIoTClient 28:add19eb7defa 14311 {
AzureIoTClient 28:add19eb7defa 14312 (void)memset((void*)&capabilities_single_value, 0, sizeof(capabilities_single_value));
AzureIoTClient 28:add19eb7defa 14313 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 14314 }
AzureIoTClient 28:add19eb7defa 14315
AzureIoTClient 28:add19eb7defa 14316 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 14317 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 14318 {
AzureIoTClient 28:add19eb7defa 14319 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14320 }
AzureIoTClient 28:add19eb7defa 14321 else
AzureIoTClient 28:add19eb7defa 14322 {
AzureIoTClient 28:add19eb7defa 14323 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 14324 {
AzureIoTClient 28:add19eb7defa 14325 *capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 14326 if (*capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 14327 {
AzureIoTClient 28:add19eb7defa 14328 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14329 }
AzureIoTClient 28:add19eb7defa 14330 else
AzureIoTClient 28:add19eb7defa 14331 {
AzureIoTClient 28:add19eb7defa 14332 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(capabilities_single_value);
AzureIoTClient 28:add19eb7defa 14333 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14334 {
AzureIoTClient 28:add19eb7defa 14335 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14336 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14337 }
AzureIoTClient 28:add19eb7defa 14338 else
AzureIoTClient 28:add19eb7defa 14339 {
AzureIoTClient 28:add19eb7defa 14340 if (amqpvalue_add_array_item(*capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14341 {
AzureIoTClient 28:add19eb7defa 14342 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14343 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 14344 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14345 }
AzureIoTClient 28:add19eb7defa 14346 else
AzureIoTClient 28:add19eb7defa 14347 {
AzureIoTClient 29:4a11413cf217 14348 if (amqpvalue_set_composite_item(target_instance->composite_value, 6, *capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 14349 {
AzureIoTClient 29:4a11413cf217 14350 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 29:4a11413cf217 14351 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 14352 }
AzureIoTClient 29:4a11413cf217 14353 else
AzureIoTClient 29:4a11413cf217 14354 {
AzureIoTClient 29:4a11413cf217 14355 result = 0;
AzureIoTClient 29:4a11413cf217 14356 }
AzureIoTClient 28:add19eb7defa 14357 }
AzureIoTClient 29:4a11413cf217 14358
AzureIoTClient 29:4a11413cf217 14359 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 14360 }
AzureIoTClient 29:4a11413cf217 14361 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14362 }
AzureIoTClient 28:add19eb7defa 14363 }
AzureIoTClient 28:add19eb7defa 14364 else
AzureIoTClient 28:add19eb7defa 14365 {
AzureIoTClient 28:add19eb7defa 14366 result = 0;
AzureIoTClient 28:add19eb7defa 14367 }
AzureIoTClient 28:add19eb7defa 14368 }
AzureIoTClient 28:add19eb7defa 14369 }
AzureIoTClient 28:add19eb7defa 14370 }
AzureIoTClient 28:add19eb7defa 14371 }
AzureIoTClient 28:add19eb7defa 14372 }
AzureIoTClient 28:add19eb7defa 14373
AzureIoTClient 28:add19eb7defa 14374 return result;
Azure.IoT Build 0:6ae2f7bca550 14375 }
Azure.IoT Build 0:6ae2f7bca550 14376
Azure.IoT Build 0:6ae2f7bca550 14377 int target_set_capabilities(TARGET_HANDLE target, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 14378 {
AzureIoTClient 28:add19eb7defa 14379 int result;
AzureIoTClient 28:add19eb7defa 14380
AzureIoTClient 28:add19eb7defa 14381 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14382 {
AzureIoTClient 28:add19eb7defa 14383 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14384 }
AzureIoTClient 28:add19eb7defa 14385 else
AzureIoTClient 28:add19eb7defa 14386 {
AzureIoTClient 28:add19eb7defa 14387 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14388 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 14389 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14390 {
AzureIoTClient 23:1111ee8bcba4 14391 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 14392 }
AzureIoTClient 23:1111ee8bcba4 14393 else
AzureIoTClient 23:1111ee8bcba4 14394 {
AzureIoTClient 23:1111ee8bcba4 14395 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 14396 }
AzureIoTClient 28:add19eb7defa 14397 if (capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14398 {
AzureIoTClient 28:add19eb7defa 14399 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14400 }
AzureIoTClient 28:add19eb7defa 14401 else
AzureIoTClient 28:add19eb7defa 14402 {
AzureIoTClient 28:add19eb7defa 14403 if (amqpvalue_set_composite_item(target_instance->composite_value, 6, capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14404 {
AzureIoTClient 28:add19eb7defa 14405 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14406 }
AzureIoTClient 28:add19eb7defa 14407 else
AzureIoTClient 28:add19eb7defa 14408 {
AzureIoTClient 28:add19eb7defa 14409 result = 0;
AzureIoTClient 28:add19eb7defa 14410 }
AzureIoTClient 28:add19eb7defa 14411
AzureIoTClient 28:add19eb7defa 14412 amqpvalue_destroy(capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 14413 }
AzureIoTClient 28:add19eb7defa 14414 }
AzureIoTClient 28:add19eb7defa 14415
AzureIoTClient 28:add19eb7defa 14416 return result;
Azure.IoT Build 0:6ae2f7bca550 14417 }
Azure.IoT Build 0:6ae2f7bca550 14418
Azure.IoT Build 0:6ae2f7bca550 14419
Azure.IoT Build 0:6ae2f7bca550 14420 /* annotations */
Azure.IoT Build 0:6ae2f7bca550 14421
Azure.IoT Build 0:6ae2f7bca550 14422 AMQP_VALUE amqpvalue_create_annotations(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 14423 {
AzureIoTClient 28:add19eb7defa 14424 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 14425 }
Azure.IoT Build 0:6ae2f7bca550 14426
Azure.IoT Build 0:6ae2f7bca550 14427 /* message-id-ulong */
Azure.IoT Build 0:6ae2f7bca550 14428
Azure.IoT Build 0:6ae2f7bca550 14429 AMQP_VALUE amqpvalue_create_message_id_ulong(message_id_ulong value)
Azure.IoT Build 0:6ae2f7bca550 14430 {
AzureIoTClient 28:add19eb7defa 14431 return amqpvalue_create_ulong(value);
Azure.IoT Build 0:6ae2f7bca550 14432 }
Azure.IoT Build 0:6ae2f7bca550 14433
Azure.IoT Build 0:6ae2f7bca550 14434 /* message-id-uuid */
Azure.IoT Build 0:6ae2f7bca550 14435
Azure.IoT Build 0:6ae2f7bca550 14436 AMQP_VALUE amqpvalue_create_message_id_uuid(message_id_uuid value)
Azure.IoT Build 0:6ae2f7bca550 14437 {
AzureIoTClient 28:add19eb7defa 14438 return amqpvalue_create_uuid(value);
Azure.IoT Build 0:6ae2f7bca550 14439 }
Azure.IoT Build 0:6ae2f7bca550 14440
Azure.IoT Build 0:6ae2f7bca550 14441 /* message-id-binary */
Azure.IoT Build 0:6ae2f7bca550 14442
Azure.IoT Build 0:6ae2f7bca550 14443 AMQP_VALUE amqpvalue_create_message_id_binary(message_id_binary value)
Azure.IoT Build 0:6ae2f7bca550 14444 {
AzureIoTClient 28:add19eb7defa 14445 return amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 14446 }
Azure.IoT Build 0:6ae2f7bca550 14447
Azure.IoT Build 0:6ae2f7bca550 14448 /* message-id-string */
Azure.IoT Build 0:6ae2f7bca550 14449
Azure.IoT Build 0:6ae2f7bca550 14450 AMQP_VALUE amqpvalue_create_message_id_string(message_id_string value)
Azure.IoT Build 0:6ae2f7bca550 14451 {
AzureIoTClient 28:add19eb7defa 14452 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 14453 }
Azure.IoT Build 0:6ae2f7bca550 14454
Azure.IoT Build 0:6ae2f7bca550 14455 /* address-string */
Azure.IoT Build 0:6ae2f7bca550 14456
Azure.IoT Build 0:6ae2f7bca550 14457 AMQP_VALUE amqpvalue_create_address_string(address_string value)
Azure.IoT Build 0:6ae2f7bca550 14458 {
AzureIoTClient 28:add19eb7defa 14459 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 14460 }
Azure.IoT Build 0:6ae2f7bca550 14461
Azure.IoT Build 0:6ae2f7bca550 14462 /* header */
Azure.IoT Build 0:6ae2f7bca550 14463
Azure.IoT Build 0:6ae2f7bca550 14464 typedef struct HEADER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 14465 {
AzureIoTClient 28:add19eb7defa 14466 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 14467 } HEADER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 14468
Azure.IoT Build 0:6ae2f7bca550 14469 static HEADER_HANDLE header_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 14470 {
AzureIoTClient 28:add19eb7defa 14471 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14472 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14473 {
AzureIoTClient 28:add19eb7defa 14474 header_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 14475 }
AzureIoTClient 28:add19eb7defa 14476
AzureIoTClient 28:add19eb7defa 14477 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14478 }
Azure.IoT Build 0:6ae2f7bca550 14479
Azure.IoT Build 0:6ae2f7bca550 14480 HEADER_HANDLE header_create(void)
Azure.IoT Build 0:6ae2f7bca550 14481 {
AzureIoTClient 28:add19eb7defa 14482 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14483 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14484 {
AzureIoTClient 28:add19eb7defa 14485 header_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(112);
AzureIoTClient 28:add19eb7defa 14486 if (header_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 14487 {
AzureIoTClient 28:add19eb7defa 14488 free(header_instance);
AzureIoTClient 28:add19eb7defa 14489 header_instance = NULL;
AzureIoTClient 28:add19eb7defa 14490 }
AzureIoTClient 28:add19eb7defa 14491 }
AzureIoTClient 28:add19eb7defa 14492
AzureIoTClient 28:add19eb7defa 14493 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14494 }
Azure.IoT Build 0:6ae2f7bca550 14495
Azure.IoT Build 0:6ae2f7bca550 14496 HEADER_HANDLE header_clone(HEADER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 14497 {
AzureIoTClient 28:add19eb7defa 14498 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14499 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14500 {
AzureIoTClient 28:add19eb7defa 14501 header_instance->composite_value = amqpvalue_clone(((HEADER_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 14502 if (header_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 14503 {
AzureIoTClient 28:add19eb7defa 14504 free(header_instance);
AzureIoTClient 28:add19eb7defa 14505 header_instance = NULL;
AzureIoTClient 28:add19eb7defa 14506 }
AzureIoTClient 28:add19eb7defa 14507 }
AzureIoTClient 28:add19eb7defa 14508
AzureIoTClient 28:add19eb7defa 14509 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14510 }
Azure.IoT Build 0:6ae2f7bca550 14511
Azure.IoT Build 0:6ae2f7bca550 14512 void header_destroy(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 14513 {
AzureIoTClient 28:add19eb7defa 14514 if (header != NULL)
AzureIoTClient 28:add19eb7defa 14515 {
AzureIoTClient 28:add19eb7defa 14516 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14517 amqpvalue_destroy(header_instance->composite_value);
AzureIoTClient 28:add19eb7defa 14518 free(header_instance);
AzureIoTClient 28:add19eb7defa 14519 }
Azure.IoT Build 0:6ae2f7bca550 14520 }
Azure.IoT Build 0:6ae2f7bca550 14521
Azure.IoT Build 0:6ae2f7bca550 14522 AMQP_VALUE amqpvalue_create_header(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 14523 {
AzureIoTClient 28:add19eb7defa 14524 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 14525
AzureIoTClient 28:add19eb7defa 14526 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14527 {
AzureIoTClient 28:add19eb7defa 14528 result = NULL;
AzureIoTClient 28:add19eb7defa 14529 }
AzureIoTClient 28:add19eb7defa 14530 else
AzureIoTClient 28:add19eb7defa 14531 {
AzureIoTClient 28:add19eb7defa 14532 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14533 result = amqpvalue_clone(header_instance->composite_value);
AzureIoTClient 28:add19eb7defa 14534 }
AzureIoTClient 28:add19eb7defa 14535
AzureIoTClient 28:add19eb7defa 14536 return result;
Azure.IoT Build 0:6ae2f7bca550 14537 }
Azure.IoT Build 0:6ae2f7bca550 14538
Azure.IoT Build 0:6ae2f7bca550 14539 bool is_header_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14540 {
AzureIoTClient 28:add19eb7defa 14541 bool result;
AzureIoTClient 28:add19eb7defa 14542
AzureIoTClient 28:add19eb7defa 14543 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 14544 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 14545 (descriptor_ulong == 112))
AzureIoTClient 28:add19eb7defa 14546 {
AzureIoTClient 28:add19eb7defa 14547 result = true;
AzureIoTClient 28:add19eb7defa 14548 }
AzureIoTClient 28:add19eb7defa 14549 else
AzureIoTClient 28:add19eb7defa 14550 {
AzureIoTClient 28:add19eb7defa 14551 result = false;
AzureIoTClient 28:add19eb7defa 14552 }
AzureIoTClient 28:add19eb7defa 14553
AzureIoTClient 28:add19eb7defa 14554 return result;
Azure.IoT Build 0:6ae2f7bca550 14555 }
Azure.IoT Build 0:6ae2f7bca550 14556
Azure.IoT Build 0:6ae2f7bca550 14557
Azure.IoT Build 0:6ae2f7bca550 14558 int amqpvalue_get_header(AMQP_VALUE value, HEADER_HANDLE* header_handle)
Azure.IoT Build 0:6ae2f7bca550 14559 {
AzureIoTClient 28:add19eb7defa 14560 int result;
AzureIoTClient 28:add19eb7defa 14561 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header_create_internal();
AzureIoTClient 28:add19eb7defa 14562 *header_handle = header_instance;
AzureIoTClient 28:add19eb7defa 14563 if (*header_handle == NULL)
AzureIoTClient 28:add19eb7defa 14564 {
AzureIoTClient 28:add19eb7defa 14565 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14566 }
AzureIoTClient 28:add19eb7defa 14567 else
AzureIoTClient 28:add19eb7defa 14568 {
AzureIoTClient 28:add19eb7defa 14569 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 14570 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 14571 {
AzureIoTClient 28:add19eb7defa 14572 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14573 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14574 }
AzureIoTClient 28:add19eb7defa 14575 else
AzureIoTClient 28:add19eb7defa 14576 {
AzureIoTClient 23:1111ee8bcba4 14577 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 14578 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14579 {
AzureIoTClient 23:1111ee8bcba4 14580 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14581 }
AzureIoTClient 23:1111ee8bcba4 14582 else
AzureIoTClient 23:1111ee8bcba4 14583 {
AzureIoTClient 28:add19eb7defa 14584 do
AzureIoTClient 28:add19eb7defa 14585 {
AzureIoTClient 28:add19eb7defa 14586 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 14587 /* durable */
AzureIoTClient 28:add19eb7defa 14588 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 14589 {
AzureIoTClient 23:1111ee8bcba4 14590 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 14591 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14592 {
AzureIoTClient 28:add19eb7defa 14593 /* do nothing */
AzureIoTClient 28:add19eb7defa 14594 }
AzureIoTClient 28:add19eb7defa 14595 else
AzureIoTClient 28:add19eb7defa 14596 {
AzureIoTClient 28:add19eb7defa 14597 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14598 {
AzureIoTClient 28:add19eb7defa 14599 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14600 }
AzureIoTClient 28:add19eb7defa 14601 else
AzureIoTClient 28:add19eb7defa 14602 {
AzureIoTClient 28:add19eb7defa 14603 bool durable;
AzureIoTClient 28:add19eb7defa 14604 if (amqpvalue_get_boolean(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 14605 {
AzureIoTClient 28:add19eb7defa 14606 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14607 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14608 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14609 break;
AzureIoTClient 28:add19eb7defa 14610 }
AzureIoTClient 28:add19eb7defa 14611 }
AzureIoTClient 28:add19eb7defa 14612
AzureIoTClient 28:add19eb7defa 14613 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14614 }
AzureIoTClient 28:add19eb7defa 14615 }
AzureIoTClient 28:add19eb7defa 14616 /* priority */
AzureIoTClient 28:add19eb7defa 14617 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 14618 {
AzureIoTClient 23:1111ee8bcba4 14619 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 14620 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14621 {
AzureIoTClient 28:add19eb7defa 14622 /* do nothing */
AzureIoTClient 28:add19eb7defa 14623 }
AzureIoTClient 28:add19eb7defa 14624 else
AzureIoTClient 28:add19eb7defa 14625 {
AzureIoTClient 28:add19eb7defa 14626 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14627 {
AzureIoTClient 28:add19eb7defa 14628 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14629 }
AzureIoTClient 28:add19eb7defa 14630 else
AzureIoTClient 28:add19eb7defa 14631 {
AzureIoTClient 28:add19eb7defa 14632 uint8_t priority;
AzureIoTClient 28:add19eb7defa 14633 if (amqpvalue_get_ubyte(item_value, &priority) != 0)
AzureIoTClient 28:add19eb7defa 14634 {
AzureIoTClient 28:add19eb7defa 14635 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14636 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14638 break;
AzureIoTClient 28:add19eb7defa 14639 }
AzureIoTClient 28:add19eb7defa 14640 }
AzureIoTClient 28:add19eb7defa 14641
AzureIoTClient 28:add19eb7defa 14642 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14643 }
AzureIoTClient 28:add19eb7defa 14644 }
AzureIoTClient 28:add19eb7defa 14645 /* ttl */
AzureIoTClient 28:add19eb7defa 14646 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 14647 {
AzureIoTClient 23:1111ee8bcba4 14648 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 14649 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14650 {
AzureIoTClient 28:add19eb7defa 14651 /* do nothing */
AzureIoTClient 28:add19eb7defa 14652 }
AzureIoTClient 28:add19eb7defa 14653 else
AzureIoTClient 28:add19eb7defa 14654 {
AzureIoTClient 28:add19eb7defa 14655 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14656 {
AzureIoTClient 28:add19eb7defa 14657 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14658 }
AzureIoTClient 28:add19eb7defa 14659 else
AzureIoTClient 28:add19eb7defa 14660 {
AzureIoTClient 28:add19eb7defa 14661 milliseconds ttl;
AzureIoTClient 28:add19eb7defa 14662 if (amqpvalue_get_milliseconds(item_value, &ttl) != 0)
AzureIoTClient 28:add19eb7defa 14663 {
AzureIoTClient 28:add19eb7defa 14664 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14665 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14666 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14667 break;
AzureIoTClient 28:add19eb7defa 14668 }
AzureIoTClient 28:add19eb7defa 14669 }
AzureIoTClient 28:add19eb7defa 14670
AzureIoTClient 28:add19eb7defa 14671 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14672 }
AzureIoTClient 28:add19eb7defa 14673 }
AzureIoTClient 28:add19eb7defa 14674 /* first-acquirer */
AzureIoTClient 28:add19eb7defa 14675 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 14676 {
AzureIoTClient 23:1111ee8bcba4 14677 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 14678 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14679 {
AzureIoTClient 28:add19eb7defa 14680 /* do nothing */
AzureIoTClient 28:add19eb7defa 14681 }
AzureIoTClient 28:add19eb7defa 14682 else
AzureIoTClient 28:add19eb7defa 14683 {
AzureIoTClient 28:add19eb7defa 14684 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14685 {
AzureIoTClient 28:add19eb7defa 14686 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14687 }
AzureIoTClient 28:add19eb7defa 14688 else
AzureIoTClient 28:add19eb7defa 14689 {
AzureIoTClient 28:add19eb7defa 14690 bool first_acquirer;
AzureIoTClient 28:add19eb7defa 14691 if (amqpvalue_get_boolean(item_value, &first_acquirer) != 0)
AzureIoTClient 28:add19eb7defa 14692 {
AzureIoTClient 28:add19eb7defa 14693 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14694 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14695 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14696 break;
AzureIoTClient 28:add19eb7defa 14697 }
AzureIoTClient 28:add19eb7defa 14698 }
AzureIoTClient 28:add19eb7defa 14699
AzureIoTClient 28:add19eb7defa 14700 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14701 }
AzureIoTClient 28:add19eb7defa 14702 }
AzureIoTClient 28:add19eb7defa 14703 /* delivery-count */
AzureIoTClient 28:add19eb7defa 14704 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 14705 {
AzureIoTClient 23:1111ee8bcba4 14706 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 14707 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14708 {
AzureIoTClient 28:add19eb7defa 14709 /* do nothing */
AzureIoTClient 28:add19eb7defa 14710 }
AzureIoTClient 28:add19eb7defa 14711 else
AzureIoTClient 28:add19eb7defa 14712 {
AzureIoTClient 28:add19eb7defa 14713 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14714 {
AzureIoTClient 28:add19eb7defa 14715 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14716 }
AzureIoTClient 28:add19eb7defa 14717 else
AzureIoTClient 28:add19eb7defa 14718 {
AzureIoTClient 28:add19eb7defa 14719 uint32_t delivery_count;
AzureIoTClient 28:add19eb7defa 14720 if (amqpvalue_get_uint(item_value, &delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 14721 {
AzureIoTClient 28:add19eb7defa 14722 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14723 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14724 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14725 break;
AzureIoTClient 28:add19eb7defa 14726 }
AzureIoTClient 28:add19eb7defa 14727 }
AzureIoTClient 28:add19eb7defa 14728
AzureIoTClient 28:add19eb7defa 14729 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14730 }
AzureIoTClient 28:add19eb7defa 14731 }
AzureIoTClient 28:add19eb7defa 14732
AzureIoTClient 28:add19eb7defa 14733 header_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 14734
AzureIoTClient 28:add19eb7defa 14735 result = 0;
AzureIoTClient 28:add19eb7defa 14736 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 14737 }
AzureIoTClient 28:add19eb7defa 14738 }
AzureIoTClient 28:add19eb7defa 14739 }
AzureIoTClient 28:add19eb7defa 14740
AzureIoTClient 28:add19eb7defa 14741 return result;
Azure.IoT Build 0:6ae2f7bca550 14742 }
Azure.IoT Build 0:6ae2f7bca550 14743
Azure.IoT Build 0:6ae2f7bca550 14744 int header_get_durable(HEADER_HANDLE header, bool* durable_value)
Azure.IoT Build 0:6ae2f7bca550 14745 {
AzureIoTClient 28:add19eb7defa 14746 int result;
AzureIoTClient 28:add19eb7defa 14747
AzureIoTClient 28:add19eb7defa 14748 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14749 {
AzureIoTClient 28:add19eb7defa 14750 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14751 }
AzureIoTClient 28:add19eb7defa 14752 else
AzureIoTClient 28:add19eb7defa 14753 {
AzureIoTClient 28:add19eb7defa 14754 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14755 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14756 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14757 {
AzureIoTClient 23:1111ee8bcba4 14758 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14759 }
AzureIoTClient 23:1111ee8bcba4 14760 else
AzureIoTClient 23:1111ee8bcba4 14761 {
AzureIoTClient 23:1111ee8bcba4 14762 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 14763 {
AzureIoTClient 28:add19eb7defa 14764 *durable_value = false;
AzureIoTClient 28:add19eb7defa 14765 result = 0;
AzureIoTClient 28:add19eb7defa 14766 }
AzureIoTClient 28:add19eb7defa 14767 else
AzureIoTClient 28:add19eb7defa 14768 {
AzureIoTClient 28:add19eb7defa 14769 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 14770 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14771 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14772 {
AzureIoTClient 28:add19eb7defa 14773 *durable_value = false;
AzureIoTClient 28:add19eb7defa 14774 result = 0;
AzureIoTClient 28:add19eb7defa 14775 }
AzureIoTClient 28:add19eb7defa 14776 else
AzureIoTClient 28:add19eb7defa 14777 {
AzureIoTClient 43:4c1e4e94cdd3 14778 int get_single_value_result = amqpvalue_get_boolean(item_value, durable_value);
AzureIoTClient 43:4c1e4e94cdd3 14779 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 14780 {
AzureIoTClient 23:1111ee8bcba4 14781 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14782 {
AzureIoTClient 28:add19eb7defa 14783 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14784 }
AzureIoTClient 28:add19eb7defa 14785 else
AzureIoTClient 28:add19eb7defa 14786 {
AzureIoTClient 28:add19eb7defa 14787 *durable_value = false;
AzureIoTClient 23:1111ee8bcba4 14788 result = 0;
AzureIoTClient 23:1111ee8bcba4 14789 }
AzureIoTClient 28:add19eb7defa 14790 }
AzureIoTClient 28:add19eb7defa 14791 else
AzureIoTClient 28:add19eb7defa 14792 {
AzureIoTClient 28:add19eb7defa 14793 result = 0;
AzureIoTClient 28:add19eb7defa 14794 }
AzureIoTClient 28:add19eb7defa 14795 }
AzureIoTClient 28:add19eb7defa 14796 }
AzureIoTClient 28:add19eb7defa 14797 }
AzureIoTClient 28:add19eb7defa 14798 }
AzureIoTClient 28:add19eb7defa 14799
AzureIoTClient 28:add19eb7defa 14800 return result;
Azure.IoT Build 0:6ae2f7bca550 14801 }
Azure.IoT Build 0:6ae2f7bca550 14802
Azure.IoT Build 0:6ae2f7bca550 14803 int header_set_durable(HEADER_HANDLE header, bool durable_value)
Azure.IoT Build 0:6ae2f7bca550 14804 {
AzureIoTClient 28:add19eb7defa 14805 int result;
AzureIoTClient 28:add19eb7defa 14806
AzureIoTClient 28:add19eb7defa 14807 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14808 {
AzureIoTClient 28:add19eb7defa 14809 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14810 }
AzureIoTClient 28:add19eb7defa 14811 else
AzureIoTClient 28:add19eb7defa 14812 {
AzureIoTClient 28:add19eb7defa 14813 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14814 AMQP_VALUE durable_amqp_value = amqpvalue_create_boolean(durable_value);
AzureIoTClient 28:add19eb7defa 14815 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14816 {
AzureIoTClient 28:add19eb7defa 14817 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14818 }
AzureIoTClient 28:add19eb7defa 14819 else
AzureIoTClient 28:add19eb7defa 14820 {
AzureIoTClient 28:add19eb7defa 14821 if (amqpvalue_set_composite_item(header_instance->composite_value, 0, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14822 {
AzureIoTClient 28:add19eb7defa 14823 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14824 }
AzureIoTClient 28:add19eb7defa 14825 else
AzureIoTClient 28:add19eb7defa 14826 {
AzureIoTClient 28:add19eb7defa 14827 result = 0;
AzureIoTClient 28:add19eb7defa 14828 }
AzureIoTClient 28:add19eb7defa 14829
AzureIoTClient 28:add19eb7defa 14830 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 14831 }
AzureIoTClient 28:add19eb7defa 14832 }
AzureIoTClient 28:add19eb7defa 14833
AzureIoTClient 28:add19eb7defa 14834 return result;
Azure.IoT Build 0:6ae2f7bca550 14835 }
Azure.IoT Build 0:6ae2f7bca550 14836
Azure.IoT Build 0:6ae2f7bca550 14837 int header_get_priority(HEADER_HANDLE header, uint8_t* priority_value)
Azure.IoT Build 0:6ae2f7bca550 14838 {
AzureIoTClient 28:add19eb7defa 14839 int result;
AzureIoTClient 28:add19eb7defa 14840
AzureIoTClient 28:add19eb7defa 14841 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14842 {
AzureIoTClient 28:add19eb7defa 14843 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14844 }
AzureIoTClient 28:add19eb7defa 14845 else
AzureIoTClient 28:add19eb7defa 14846 {
AzureIoTClient 28:add19eb7defa 14847 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14848 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14849 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14850 {
AzureIoTClient 23:1111ee8bcba4 14851 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14852 }
AzureIoTClient 23:1111ee8bcba4 14853 else
AzureIoTClient 23:1111ee8bcba4 14854 {
AzureIoTClient 23:1111ee8bcba4 14855 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 14856 {
AzureIoTClient 28:add19eb7defa 14857 *priority_value = 4;
AzureIoTClient 28:add19eb7defa 14858 result = 0;
AzureIoTClient 28:add19eb7defa 14859 }
AzureIoTClient 28:add19eb7defa 14860 else
AzureIoTClient 28:add19eb7defa 14861 {
AzureIoTClient 28:add19eb7defa 14862 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 14863 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14864 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14865 {
AzureIoTClient 28:add19eb7defa 14866 *priority_value = 4;
AzureIoTClient 28:add19eb7defa 14867 result = 0;
AzureIoTClient 28:add19eb7defa 14868 }
AzureIoTClient 28:add19eb7defa 14869 else
AzureIoTClient 28:add19eb7defa 14870 {
AzureIoTClient 43:4c1e4e94cdd3 14871 int get_single_value_result = amqpvalue_get_ubyte(item_value, priority_value);
AzureIoTClient 43:4c1e4e94cdd3 14872 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 14873 {
AzureIoTClient 23:1111ee8bcba4 14874 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14875 {
AzureIoTClient 28:add19eb7defa 14876 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14877 }
AzureIoTClient 28:add19eb7defa 14878 else
AzureIoTClient 28:add19eb7defa 14879 {
AzureIoTClient 28:add19eb7defa 14880 *priority_value = 4;
AzureIoTClient 23:1111ee8bcba4 14881 result = 0;
AzureIoTClient 23:1111ee8bcba4 14882 }
AzureIoTClient 28:add19eb7defa 14883 }
AzureIoTClient 28:add19eb7defa 14884 else
AzureIoTClient 28:add19eb7defa 14885 {
AzureIoTClient 28:add19eb7defa 14886 result = 0;
AzureIoTClient 28:add19eb7defa 14887 }
AzureIoTClient 28:add19eb7defa 14888 }
AzureIoTClient 28:add19eb7defa 14889 }
AzureIoTClient 28:add19eb7defa 14890 }
AzureIoTClient 28:add19eb7defa 14891 }
AzureIoTClient 28:add19eb7defa 14892
AzureIoTClient 28:add19eb7defa 14893 return result;
Azure.IoT Build 0:6ae2f7bca550 14894 }
Azure.IoT Build 0:6ae2f7bca550 14895
Azure.IoT Build 0:6ae2f7bca550 14896 int header_set_priority(HEADER_HANDLE header, uint8_t priority_value)
Azure.IoT Build 0:6ae2f7bca550 14897 {
AzureIoTClient 28:add19eb7defa 14898 int result;
AzureIoTClient 28:add19eb7defa 14899
AzureIoTClient 28:add19eb7defa 14900 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14901 {
AzureIoTClient 28:add19eb7defa 14902 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14903 }
AzureIoTClient 28:add19eb7defa 14904 else
AzureIoTClient 28:add19eb7defa 14905 {
AzureIoTClient 28:add19eb7defa 14906 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14907 AMQP_VALUE priority_amqp_value = amqpvalue_create_ubyte(priority_value);
AzureIoTClient 28:add19eb7defa 14908 if (priority_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14909 {
AzureIoTClient 28:add19eb7defa 14910 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14911 }
AzureIoTClient 28:add19eb7defa 14912 else
AzureIoTClient 28:add19eb7defa 14913 {
AzureIoTClient 28:add19eb7defa 14914 if (amqpvalue_set_composite_item(header_instance->composite_value, 1, priority_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14915 {
AzureIoTClient 28:add19eb7defa 14916 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14917 }
AzureIoTClient 28:add19eb7defa 14918 else
AzureIoTClient 28:add19eb7defa 14919 {
AzureIoTClient 28:add19eb7defa 14920 result = 0;
AzureIoTClient 28:add19eb7defa 14921 }
AzureIoTClient 28:add19eb7defa 14922
AzureIoTClient 28:add19eb7defa 14923 amqpvalue_destroy(priority_amqp_value);
AzureIoTClient 28:add19eb7defa 14924 }
AzureIoTClient 28:add19eb7defa 14925 }
AzureIoTClient 28:add19eb7defa 14926
AzureIoTClient 28:add19eb7defa 14927 return result;
Azure.IoT Build 0:6ae2f7bca550 14928 }
Azure.IoT Build 0:6ae2f7bca550 14929
Azure.IoT Build 0:6ae2f7bca550 14930 int header_get_ttl(HEADER_HANDLE header, milliseconds* ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14931 {
AzureIoTClient 28:add19eb7defa 14932 int result;
AzureIoTClient 28:add19eb7defa 14933
AzureIoTClient 28:add19eb7defa 14934 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14935 {
AzureIoTClient 28:add19eb7defa 14936 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14937 }
AzureIoTClient 28:add19eb7defa 14938 else
AzureIoTClient 28:add19eb7defa 14939 {
AzureIoTClient 28:add19eb7defa 14940 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14941 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14942 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14943 {
AzureIoTClient 23:1111ee8bcba4 14944 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14945 }
AzureIoTClient 23:1111ee8bcba4 14946 else
AzureIoTClient 23:1111ee8bcba4 14947 {
AzureIoTClient 23:1111ee8bcba4 14948 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 14949 {
AzureIoTClient 28:add19eb7defa 14950 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14951 }
AzureIoTClient 28:add19eb7defa 14952 else
AzureIoTClient 28:add19eb7defa 14953 {
AzureIoTClient 28:add19eb7defa 14954 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 14955 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14956 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14957 {
AzureIoTClient 28:add19eb7defa 14958 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14959 }
AzureIoTClient 28:add19eb7defa 14960 else
AzureIoTClient 28:add19eb7defa 14961 {
AzureIoTClient 43:4c1e4e94cdd3 14962 int get_single_value_result = amqpvalue_get_milliseconds(item_value, ttl_value);
AzureIoTClient 43:4c1e4e94cdd3 14963 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 14964 {
AzureIoTClient 28:add19eb7defa 14965 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14966 }
AzureIoTClient 28:add19eb7defa 14967 else
AzureIoTClient 28:add19eb7defa 14968 {
AzureIoTClient 28:add19eb7defa 14969 result = 0;
AzureIoTClient 28:add19eb7defa 14970 }
AzureIoTClient 28:add19eb7defa 14971 }
AzureIoTClient 28:add19eb7defa 14972 }
AzureIoTClient 28:add19eb7defa 14973 }
AzureIoTClient 28:add19eb7defa 14974 }
AzureIoTClient 28:add19eb7defa 14975
AzureIoTClient 28:add19eb7defa 14976 return result;
Azure.IoT Build 0:6ae2f7bca550 14977 }
Azure.IoT Build 0:6ae2f7bca550 14978
Azure.IoT Build 0:6ae2f7bca550 14979 int header_set_ttl(HEADER_HANDLE header, milliseconds ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14980 {
AzureIoTClient 28:add19eb7defa 14981 int result;
AzureIoTClient 28:add19eb7defa 14982
AzureIoTClient 28:add19eb7defa 14983 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14984 {
AzureIoTClient 28:add19eb7defa 14985 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14986 }
AzureIoTClient 28:add19eb7defa 14987 else
AzureIoTClient 28:add19eb7defa 14988 {
AzureIoTClient 28:add19eb7defa 14989 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14990 AMQP_VALUE ttl_amqp_value = amqpvalue_create_milliseconds(ttl_value);
AzureIoTClient 28:add19eb7defa 14991 if (ttl_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14992 {
AzureIoTClient 28:add19eb7defa 14993 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14994 }
AzureIoTClient 28:add19eb7defa 14995 else
AzureIoTClient 28:add19eb7defa 14996 {
AzureIoTClient 28:add19eb7defa 14997 if (amqpvalue_set_composite_item(header_instance->composite_value, 2, ttl_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14998 {
AzureIoTClient 28:add19eb7defa 14999 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15000 }
AzureIoTClient 28:add19eb7defa 15001 else
AzureIoTClient 28:add19eb7defa 15002 {
AzureIoTClient 28:add19eb7defa 15003 result = 0;
AzureIoTClient 28:add19eb7defa 15004 }
AzureIoTClient 28:add19eb7defa 15005
AzureIoTClient 28:add19eb7defa 15006 amqpvalue_destroy(ttl_amqp_value);
AzureIoTClient 28:add19eb7defa 15007 }
AzureIoTClient 28:add19eb7defa 15008 }
AzureIoTClient 28:add19eb7defa 15009
AzureIoTClient 28:add19eb7defa 15010 return result;
Azure.IoT Build 0:6ae2f7bca550 15011 }
Azure.IoT Build 0:6ae2f7bca550 15012
Azure.IoT Build 0:6ae2f7bca550 15013 int header_get_first_acquirer(HEADER_HANDLE header, bool* first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 15014 {
AzureIoTClient 28:add19eb7defa 15015 int result;
AzureIoTClient 28:add19eb7defa 15016
AzureIoTClient 28:add19eb7defa 15017 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15018 {
AzureIoTClient 28:add19eb7defa 15019 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15020 }
AzureIoTClient 28:add19eb7defa 15021 else
AzureIoTClient 28:add19eb7defa 15022 {
AzureIoTClient 28:add19eb7defa 15023 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15024 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 15025 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15026 {
AzureIoTClient 23:1111ee8bcba4 15027 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15028 }
AzureIoTClient 23:1111ee8bcba4 15029 else
AzureIoTClient 23:1111ee8bcba4 15030 {
AzureIoTClient 23:1111ee8bcba4 15031 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 15032 {
AzureIoTClient 28:add19eb7defa 15033 *first_acquirer_value = false;
AzureIoTClient 28:add19eb7defa 15034 result = 0;
AzureIoTClient 28:add19eb7defa 15035 }
AzureIoTClient 28:add19eb7defa 15036 else
AzureIoTClient 28:add19eb7defa 15037 {
AzureIoTClient 28:add19eb7defa 15038 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 15039 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 15040 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 15041 {
AzureIoTClient 28:add19eb7defa 15042 *first_acquirer_value = false;
AzureIoTClient 28:add19eb7defa 15043 result = 0;
AzureIoTClient 28:add19eb7defa 15044 }
AzureIoTClient 28:add19eb7defa 15045 else
AzureIoTClient 28:add19eb7defa 15046 {
AzureIoTClient 43:4c1e4e94cdd3 15047 int get_single_value_result = amqpvalue_get_boolean(item_value, first_acquirer_value);
AzureIoTClient 43:4c1e4e94cdd3 15048 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 15049 {
AzureIoTClient 23:1111ee8bcba4 15050 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 15051 {
AzureIoTClient 28:add19eb7defa 15052 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15053 }
AzureIoTClient 28:add19eb7defa 15054 else
AzureIoTClient 28:add19eb7defa 15055 {
AzureIoTClient 28:add19eb7defa 15056 *first_acquirer_value = false;
AzureIoTClient 23:1111ee8bcba4 15057 result = 0;
AzureIoTClient 23:1111ee8bcba4 15058 }
AzureIoTClient 28:add19eb7defa 15059 }
AzureIoTClient 28:add19eb7defa 15060 else
AzureIoTClient 28:add19eb7defa 15061 {
AzureIoTClient 28:add19eb7defa 15062 result = 0;
AzureIoTClient 28:add19eb7defa 15063 }
AzureIoTClient 28:add19eb7defa 15064 }
AzureIoTClient 28:add19eb7defa 15065 }
AzureIoTClient 28:add19eb7defa 15066 }
AzureIoTClient 28:add19eb7defa 15067 }
AzureIoTClient 28:add19eb7defa 15068
AzureIoTClient 28:add19eb7defa 15069 return result;
Azure.IoT Build 0:6ae2f7bca550 15070 }
Azure.IoT Build 0:6ae2f7bca550 15071
Azure.IoT Build 0:6ae2f7bca550 15072 int header_set_first_acquirer(HEADER_HANDLE header, bool first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 15073 {
AzureIoTClient 28:add19eb7defa 15074 int result;
AzureIoTClient 28:add19eb7defa 15075
AzureIoTClient 28:add19eb7defa 15076 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15077 {
AzureIoTClient 28:add19eb7defa 15078 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15079 }
AzureIoTClient 28:add19eb7defa 15080 else
AzureIoTClient 28:add19eb7defa 15081 {
AzureIoTClient 28:add19eb7defa 15082 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 15083 AMQP_VALUE first_acquirer_amqp_value = amqpvalue_create_boolean(first_acquirer_value);
AzureIoTClient 28:add19eb7defa 15084 if (first_acquirer_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15085 {
AzureIoTClient 28:add19eb7defa 15086 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15087 }
AzureIoTClient 28:add19eb7defa 15088 else
AzureIoTClient 28:add19eb7defa 15089 {
AzureIoTClient 28:add19eb7defa 15090 if (amqpvalue_set_composite_item(header_instance->composite_value, 3, first_acquirer_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 15091 {
AzureIoTClient 28:add19eb7defa 15092 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15093 }
AzureIoTClient 28:add19eb7defa 15094 else
AzureIoTClient 28:add19eb7defa 15095 {
AzureIoTClient 28:add19eb7defa 15096 result = 0;
AzureIoTClient 28:add19eb7defa 15097 }
AzureIoTClient 28:add19eb7defa 15098
AzureIoTClient 28:add19eb7defa 15099 amqpvalue_destroy(first_acquirer_amqp_value);
AzureIoTClient 28:add19eb7defa 15100 }
AzureIoTClient 28:add19eb7defa 15101 }
AzureIoTClient 28:add19eb7defa 15102
AzureIoTClient 28:add19eb7defa 15103 return result;
Azure.IoT Build 0:6ae2f7bca550 15104 }
Azure.IoT Build 0:6ae2f7bca550 15105
Azure.IoT Build 0:6ae2f7bca550 15106 int header_get_delivery_count(HEADER_HANDLE header, uint32_t* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 15107 {
AzureIoTClient 28:add19eb7defa 15108 int result;
AzureIoTClient 28:add19eb7defa 15109
AzureIoTClient 28:add19eb7defa 15110 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15111 {
AzureIoTClient 28:add19eb7defa 15112 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15113 }
AzureIoTClient 28:add19eb7defa 15114 else
AzureIoTClient 28:add19eb7defa 15115 {
AzureIoTClient 28:add19eb7defa 15116 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15117 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 15118 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15119 {
AzureIoTClient 23:1111ee8bcba4 15120 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15121 }
AzureIoTClient 23:1111ee8bcba4 15122 else
AzureIoTClient 23:1111ee8bcba4 15123 {
AzureIoTClient 23:1111ee8bcba4 15124 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 15125 {
AzureIoTClient 28:add19eb7defa 15126 *delivery_count_value = 0;
AzureIoTClient 28:add19eb7defa 15127 result = 0;
AzureIoTClient 28:add19eb7defa 15128 }
AzureIoTClient 28:add19eb7defa 15129 else
AzureIoTClient 28:add19eb7defa 15130 {
AzureIoTClient 28:add19eb7defa 15131 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 15132 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 15133 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 15134 {
AzureIoTClient 28:add19eb7defa 15135 *delivery_count_value = 0;
AzureIoTClient 28:add19eb7defa 15136 result = 0;
AzureIoTClient 28:add19eb7defa 15137 }
AzureIoTClient 28:add19eb7defa 15138 else
AzureIoTClient 28:add19eb7defa 15139 {
AzureIoTClient 43:4c1e4e94cdd3 15140 int get_single_value_result = amqpvalue_get_uint(item_value, delivery_count_value);
AzureIoTClient 43:4c1e4e94cdd3 15141 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 15142 {
AzureIoTClient 23:1111ee8bcba4 15143 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 15144 {
AzureIoTClient 28:add19eb7defa 15145 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15146 }
AzureIoTClient 28:add19eb7defa 15147 else
AzureIoTClient 28:add19eb7defa 15148 {
AzureIoTClient 28:add19eb7defa 15149 *delivery_count_value = 0;
AzureIoTClient 23:1111ee8bcba4 15150 result = 0;
AzureIoTClient 23:1111ee8bcba4 15151 }
AzureIoTClient 28:add19eb7defa 15152 }
AzureIoTClient 28:add19eb7defa 15153 else
AzureIoTClient 28:add19eb7defa 15154 {
AzureIoTClient 28:add19eb7defa 15155 result = 0;
AzureIoTClient 28:add19eb7defa 15156 }
AzureIoTClient 28:add19eb7defa 15157 }
AzureIoTClient 28:add19eb7defa 15158 }
AzureIoTClient 28:add19eb7defa 15159 }
AzureIoTClient 28:add19eb7defa 15160 }
AzureIoTClient 28:add19eb7defa 15161
AzureIoTClient 28:add19eb7defa 15162 return result;
Azure.IoT Build 0:6ae2f7bca550 15163 }
Azure.IoT Build 0:6ae2f7bca550 15164
Azure.IoT Build 0:6ae2f7bca550 15165 int header_set_delivery_count(HEADER_HANDLE header, uint32_t delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 15166 {
AzureIoTClient 28:add19eb7defa 15167 int result;
AzureIoTClient 28:add19eb7defa 15168
AzureIoTClient 28:add19eb7defa 15169 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15170 {
AzureIoTClient 28:add19eb7defa 15171 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15172 }
AzureIoTClient 28:add19eb7defa 15173 else
AzureIoTClient 28:add19eb7defa 15174 {
AzureIoTClient 28:add19eb7defa 15175 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 15176 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_uint(delivery_count_value);
AzureIoTClient 28:add19eb7defa 15177 if (delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15178 {
AzureIoTClient 28:add19eb7defa 15179 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15180 }
AzureIoTClient 28:add19eb7defa 15181 else
AzureIoTClient 28:add19eb7defa 15182 {
AzureIoTClient 28:add19eb7defa 15183 if (amqpvalue_set_composite_item(header_instance->composite_value, 4, delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 15184 {
AzureIoTClient 28:add19eb7defa 15185 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15186 }
AzureIoTClient 28:add19eb7defa 15187 else
AzureIoTClient 28:add19eb7defa 15188 {
AzureIoTClient 28:add19eb7defa 15189 result = 0;
AzureIoTClient 28:add19eb7defa 15190 }
AzureIoTClient 28:add19eb7defa 15191
AzureIoTClient 28:add19eb7defa 15192 amqpvalue_destroy(delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 15193 }
AzureIoTClient 28:add19eb7defa 15194 }
AzureIoTClient 28:add19eb7defa 15195
AzureIoTClient 28:add19eb7defa 15196 return result;
Azure.IoT Build 0:6ae2f7bca550 15197 }
Azure.IoT Build 0:6ae2f7bca550 15198
Azure.IoT Build 0:6ae2f7bca550 15199
Azure.IoT Build 0:6ae2f7bca550 15200 /* delivery-annotations */
Azure.IoT Build 0:6ae2f7bca550 15201
Azure.IoT Build 0:6ae2f7bca550 15202 AMQP_VALUE amqpvalue_create_delivery_annotations(delivery_annotations value)
Azure.IoT Build 0:6ae2f7bca550 15203 {
AzureIoTClient 28:add19eb7defa 15204 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15205 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15206 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15207 {
AzureIoTClient 28:add19eb7defa 15208 result = NULL;
AzureIoTClient 28:add19eb7defa 15209 }
AzureIoTClient 28:add19eb7defa 15210 else
AzureIoTClient 28:add19eb7defa 15211 {
AzureIoTClient 28:add19eb7defa 15212 AMQP_VALUE descriptor = amqpvalue_create_ulong(113);
AzureIoTClient 28:add19eb7defa 15213 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15214 {
AzureIoTClient 28:add19eb7defa 15215 result = NULL;
AzureIoTClient 28:add19eb7defa 15216 }
AzureIoTClient 28:add19eb7defa 15217 else
AzureIoTClient 28:add19eb7defa 15218 {
AzureIoTClient 28:add19eb7defa 15219 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15220
AzureIoTClient 28:add19eb7defa 15221 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15222 }
AzureIoTClient 28:add19eb7defa 15223
AzureIoTClient 28:add19eb7defa 15224 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15225 }
AzureIoTClient 28:add19eb7defa 15226
AzureIoTClient 28:add19eb7defa 15227 return result;
Azure.IoT Build 0:6ae2f7bca550 15228 }
Azure.IoT Build 0:6ae2f7bca550 15229
Azure.IoT Build 0:6ae2f7bca550 15230 bool is_delivery_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15231 {
AzureIoTClient 28:add19eb7defa 15232 bool result;
AzureIoTClient 28:add19eb7defa 15233
AzureIoTClient 28:add19eb7defa 15234 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15235 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15236 (descriptor_ulong == 113))
AzureIoTClient 28:add19eb7defa 15237 {
AzureIoTClient 28:add19eb7defa 15238 result = true;
AzureIoTClient 28:add19eb7defa 15239 }
AzureIoTClient 28:add19eb7defa 15240 else
AzureIoTClient 28:add19eb7defa 15241 {
AzureIoTClient 28:add19eb7defa 15242 result = false;
AzureIoTClient 28:add19eb7defa 15243 }
AzureIoTClient 28:add19eb7defa 15244
AzureIoTClient 28:add19eb7defa 15245 return result;
Azure.IoT Build 0:6ae2f7bca550 15246 }
Azure.IoT Build 0:6ae2f7bca550 15247
Azure.IoT Build 0:6ae2f7bca550 15248 /* message-annotations */
Azure.IoT Build 0:6ae2f7bca550 15249
Azure.IoT Build 0:6ae2f7bca550 15250 AMQP_VALUE amqpvalue_create_message_annotations(message_annotations value)
Azure.IoT Build 0:6ae2f7bca550 15251 {
AzureIoTClient 28:add19eb7defa 15252 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15253 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15254 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15255 {
AzureIoTClient 28:add19eb7defa 15256 result = NULL;
AzureIoTClient 28:add19eb7defa 15257 }
AzureIoTClient 28:add19eb7defa 15258 else
AzureIoTClient 28:add19eb7defa 15259 {
AzureIoTClient 28:add19eb7defa 15260 AMQP_VALUE descriptor = amqpvalue_create_ulong(114);
AzureIoTClient 28:add19eb7defa 15261 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15262 {
AzureIoTClient 28:add19eb7defa 15263 result = NULL;
AzureIoTClient 28:add19eb7defa 15264 }
AzureIoTClient 28:add19eb7defa 15265 else
AzureIoTClient 28:add19eb7defa 15266 {
AzureIoTClient 28:add19eb7defa 15267 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15268
AzureIoTClient 28:add19eb7defa 15269 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15270 }
AzureIoTClient 28:add19eb7defa 15271
AzureIoTClient 28:add19eb7defa 15272 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15273 }
AzureIoTClient 28:add19eb7defa 15274
AzureIoTClient 28:add19eb7defa 15275 return result;
Azure.IoT Build 0:6ae2f7bca550 15276 }
Azure.IoT Build 0:6ae2f7bca550 15277
Azure.IoT Build 0:6ae2f7bca550 15278 bool is_message_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15279 {
AzureIoTClient 28:add19eb7defa 15280 bool result;
AzureIoTClient 28:add19eb7defa 15281
AzureIoTClient 28:add19eb7defa 15282 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15283 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15284 (descriptor_ulong == 114))
AzureIoTClient 28:add19eb7defa 15285 {
AzureIoTClient 28:add19eb7defa 15286 result = true;
AzureIoTClient 28:add19eb7defa 15287 }
AzureIoTClient 28:add19eb7defa 15288 else
AzureIoTClient 28:add19eb7defa 15289 {
AzureIoTClient 28:add19eb7defa 15290 result = false;
AzureIoTClient 28:add19eb7defa 15291 }
AzureIoTClient 28:add19eb7defa 15292
AzureIoTClient 28:add19eb7defa 15293 return result;
Azure.IoT Build 0:6ae2f7bca550 15294 }
Azure.IoT Build 0:6ae2f7bca550 15295
Azure.IoT Build 0:6ae2f7bca550 15296 /* application-properties */
Azure.IoT Build 0:6ae2f7bca550 15297
Azure.IoT Build 0:6ae2f7bca550 15298 AMQP_VALUE amqpvalue_create_application_properties(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15299 {
AzureIoTClient 28:add19eb7defa 15300 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15301 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15302 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15303 {
AzureIoTClient 28:add19eb7defa 15304 result = NULL;
AzureIoTClient 28:add19eb7defa 15305 }
AzureIoTClient 28:add19eb7defa 15306 else
AzureIoTClient 28:add19eb7defa 15307 {
AzureIoTClient 28:add19eb7defa 15308 AMQP_VALUE descriptor = amqpvalue_create_ulong(116);
AzureIoTClient 28:add19eb7defa 15309 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15310 {
AzureIoTClient 28:add19eb7defa 15311 result = NULL;
AzureIoTClient 28:add19eb7defa 15312 }
AzureIoTClient 28:add19eb7defa 15313 else
AzureIoTClient 28:add19eb7defa 15314 {
AzureIoTClient 28:add19eb7defa 15315 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15316
AzureIoTClient 28:add19eb7defa 15317 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15318 }
AzureIoTClient 28:add19eb7defa 15319
AzureIoTClient 28:add19eb7defa 15320 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15321 }
AzureIoTClient 28:add19eb7defa 15322
AzureIoTClient 28:add19eb7defa 15323 return result;
Azure.IoT Build 0:6ae2f7bca550 15324 }
Azure.IoT Build 0:6ae2f7bca550 15325
Azure.IoT Build 0:6ae2f7bca550 15326 bool is_application_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15327 {
AzureIoTClient 28:add19eb7defa 15328 bool result;
AzureIoTClient 28:add19eb7defa 15329
AzureIoTClient 28:add19eb7defa 15330 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15331 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15332 (descriptor_ulong == 116))
AzureIoTClient 28:add19eb7defa 15333 {
AzureIoTClient 28:add19eb7defa 15334 result = true;
AzureIoTClient 28:add19eb7defa 15335 }
AzureIoTClient 28:add19eb7defa 15336 else
AzureIoTClient 28:add19eb7defa 15337 {
AzureIoTClient 28:add19eb7defa 15338 result = false;
AzureIoTClient 28:add19eb7defa 15339 }
AzureIoTClient 28:add19eb7defa 15340
AzureIoTClient 28:add19eb7defa 15341 return result;
Azure.IoT Build 0:6ae2f7bca550 15342 }
Azure.IoT Build 0:6ae2f7bca550 15343
Azure.IoT Build 0:6ae2f7bca550 15344 /* data */
Azure.IoT Build 0:6ae2f7bca550 15345
Azure.IoT Build 0:6ae2f7bca550 15346 AMQP_VALUE amqpvalue_create_data(data value)
Azure.IoT Build 0:6ae2f7bca550 15347 {
AzureIoTClient 28:add19eb7defa 15348 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15349 AMQP_VALUE described_value = amqpvalue_create_binary(value);
AzureIoTClient 28:add19eb7defa 15350 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15351 {
AzureIoTClient 28:add19eb7defa 15352 result = NULL;
AzureIoTClient 28:add19eb7defa 15353 }
AzureIoTClient 28:add19eb7defa 15354 else
AzureIoTClient 28:add19eb7defa 15355 {
AzureIoTClient 28:add19eb7defa 15356 AMQP_VALUE descriptor = amqpvalue_create_ulong(117);
AzureIoTClient 28:add19eb7defa 15357 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15358 {
AzureIoTClient 28:add19eb7defa 15359 result = NULL;
AzureIoTClient 28:add19eb7defa 15360 }
AzureIoTClient 28:add19eb7defa 15361 else
AzureIoTClient 28:add19eb7defa 15362 {
AzureIoTClient 28:add19eb7defa 15363 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15364
AzureIoTClient 28:add19eb7defa 15365 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15366 }
AzureIoTClient 28:add19eb7defa 15367
AzureIoTClient 28:add19eb7defa 15368 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15369 }
AzureIoTClient 28:add19eb7defa 15370
AzureIoTClient 28:add19eb7defa 15371 return result;
Azure.IoT Build 0:6ae2f7bca550 15372 }
Azure.IoT Build 0:6ae2f7bca550 15373
Azure.IoT Build 0:6ae2f7bca550 15374 bool is_data_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15375 {
AzureIoTClient 28:add19eb7defa 15376 bool result;
AzureIoTClient 28:add19eb7defa 15377
AzureIoTClient 28:add19eb7defa 15378 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15379 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15380 (descriptor_ulong == 117))
AzureIoTClient 28:add19eb7defa 15381 {
AzureIoTClient 28:add19eb7defa 15382 result = true;
AzureIoTClient 28:add19eb7defa 15383 }
AzureIoTClient 28:add19eb7defa 15384 else
AzureIoTClient 28:add19eb7defa 15385 {
AzureIoTClient 28:add19eb7defa 15386 result = false;
AzureIoTClient 28:add19eb7defa 15387 }
AzureIoTClient 28:add19eb7defa 15388
AzureIoTClient 28:add19eb7defa 15389 return result;
Azure.IoT Build 0:6ae2f7bca550 15390 }
Azure.IoT Build 0:6ae2f7bca550 15391
Azure.IoT Build 0:6ae2f7bca550 15392 /* amqp-sequence */
Azure.IoT Build 0:6ae2f7bca550 15393
Azure.IoT Build 0:6ae2f7bca550 15394 AMQP_VALUE amqpvalue_create_amqp_sequence(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15395 {
AzureIoTClient 28:add19eb7defa 15396 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15397 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15398 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15399 {
AzureIoTClient 28:add19eb7defa 15400 result = NULL;
AzureIoTClient 28:add19eb7defa 15401 }
AzureIoTClient 28:add19eb7defa 15402 else
AzureIoTClient 28:add19eb7defa 15403 {
AzureIoTClient 28:add19eb7defa 15404 AMQP_VALUE descriptor = amqpvalue_create_ulong(118);
AzureIoTClient 28:add19eb7defa 15405 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15406 {
AzureIoTClient 28:add19eb7defa 15407 result = NULL;
AzureIoTClient 28:add19eb7defa 15408 }
AzureIoTClient 28:add19eb7defa 15409 else
AzureIoTClient 28:add19eb7defa 15410 {
AzureIoTClient 28:add19eb7defa 15411 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15412
AzureIoTClient 28:add19eb7defa 15413 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15414 }
AzureIoTClient 28:add19eb7defa 15415
AzureIoTClient 28:add19eb7defa 15416 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15417 }
AzureIoTClient 28:add19eb7defa 15418
AzureIoTClient 28:add19eb7defa 15419 return result;
Azure.IoT Build 0:6ae2f7bca550 15420 }
Azure.IoT Build 0:6ae2f7bca550 15421
Azure.IoT Build 0:6ae2f7bca550 15422 bool is_amqp_sequence_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15423 {
AzureIoTClient 28:add19eb7defa 15424 bool result;
AzureIoTClient 28:add19eb7defa 15425
AzureIoTClient 28:add19eb7defa 15426 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15427 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15428 (descriptor_ulong == 118))
AzureIoTClient 28:add19eb7defa 15429 {
AzureIoTClient 28:add19eb7defa 15430 result = true;
AzureIoTClient 28:add19eb7defa 15431 }
AzureIoTClient 28:add19eb7defa 15432 else
AzureIoTClient 28:add19eb7defa 15433 {
AzureIoTClient 28:add19eb7defa 15434 result = false;
AzureIoTClient 28:add19eb7defa 15435 }
AzureIoTClient 28:add19eb7defa 15436
AzureIoTClient 28:add19eb7defa 15437 return result;
Azure.IoT Build 0:6ae2f7bca550 15438 }
Azure.IoT Build 0:6ae2f7bca550 15439
Azure.IoT Build 0:6ae2f7bca550 15440 /* amqp-value */
Azure.IoT Build 0:6ae2f7bca550 15441
Azure.IoT Build 0:6ae2f7bca550 15442 AMQP_VALUE amqpvalue_create_amqp_value(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15443 {
AzureIoTClient 28:add19eb7defa 15444 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15445 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15446 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15447 {
AzureIoTClient 28:add19eb7defa 15448 result = NULL;
AzureIoTClient 28:add19eb7defa 15449 }
AzureIoTClient 28:add19eb7defa 15450 else
AzureIoTClient 28:add19eb7defa 15451 {
AzureIoTClient 28:add19eb7defa 15452 AMQP_VALUE descriptor = amqpvalue_create_ulong(119);
AzureIoTClient 28:add19eb7defa 15453 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15454 {
AzureIoTClient 28:add19eb7defa 15455 result = NULL;
AzureIoTClient 28:add19eb7defa 15456 }
AzureIoTClient 28:add19eb7defa 15457 else
AzureIoTClient 28:add19eb7defa 15458 {
AzureIoTClient 28:add19eb7defa 15459 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15460
AzureIoTClient 28:add19eb7defa 15461 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15462 }
AzureIoTClient 28:add19eb7defa 15463
AzureIoTClient 28:add19eb7defa 15464 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15465 }
AzureIoTClient 28:add19eb7defa 15466
AzureIoTClient 28:add19eb7defa 15467 return result;
Azure.IoT Build 0:6ae2f7bca550 15468 }
Azure.IoT Build 0:6ae2f7bca550 15469
Azure.IoT Build 0:6ae2f7bca550 15470 bool is_amqp_value_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15471 {
AzureIoTClient 28:add19eb7defa 15472 bool result;
AzureIoTClient 28:add19eb7defa 15473
AzureIoTClient 28:add19eb7defa 15474 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15475 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15476 (descriptor_ulong == 119))
AzureIoTClient 28:add19eb7defa 15477 {
AzureIoTClient 28:add19eb7defa 15478 result = true;
AzureIoTClient 28:add19eb7defa 15479 }
AzureIoTClient 28:add19eb7defa 15480 else
AzureIoTClient 28:add19eb7defa 15481 {
AzureIoTClient 28:add19eb7defa 15482 result = false;
AzureIoTClient 28:add19eb7defa 15483 }
AzureIoTClient 28:add19eb7defa 15484
AzureIoTClient 28:add19eb7defa 15485 return result;
Azure.IoT Build 0:6ae2f7bca550 15486 }
Azure.IoT Build 0:6ae2f7bca550 15487
Azure.IoT Build 0:6ae2f7bca550 15488 /* footer */
Azure.IoT Build 0:6ae2f7bca550 15489
Azure.IoT Build 0:6ae2f7bca550 15490 AMQP_VALUE amqpvalue_create_footer(footer value)
Azure.IoT Build 0:6ae2f7bca550 15491 {
AzureIoTClient 28:add19eb7defa 15492 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15493 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15494 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15495 {
AzureIoTClient 28:add19eb7defa 15496 result = NULL;
AzureIoTClient 28:add19eb7defa 15497 }
AzureIoTClient 28:add19eb7defa 15498 else
AzureIoTClient 28:add19eb7defa 15499 {
AzureIoTClient 28:add19eb7defa 15500 AMQP_VALUE descriptor = amqpvalue_create_ulong(120);
AzureIoTClient 28:add19eb7defa 15501 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15502 {
AzureIoTClient 28:add19eb7defa 15503 result = NULL;
AzureIoTClient 28:add19eb7defa 15504 }
AzureIoTClient 28:add19eb7defa 15505 else
AzureIoTClient 28:add19eb7defa 15506 {
AzureIoTClient 28:add19eb7defa 15507 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15508
AzureIoTClient 28:add19eb7defa 15509 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15510 }
AzureIoTClient 28:add19eb7defa 15511
AzureIoTClient 28:add19eb7defa 15512 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15513 }
AzureIoTClient 28:add19eb7defa 15514
AzureIoTClient 28:add19eb7defa 15515 return result;
Azure.IoT Build 0:6ae2f7bca550 15516 }
Azure.IoT Build 0:6ae2f7bca550 15517
Azure.IoT Build 0:6ae2f7bca550 15518 bool is_footer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15519 {
AzureIoTClient 28:add19eb7defa 15520 bool result;
AzureIoTClient 28:add19eb7defa 15521
AzureIoTClient 28:add19eb7defa 15522 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15523 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15524 (descriptor_ulong == 120))
AzureIoTClient 28:add19eb7defa 15525 {
AzureIoTClient 28:add19eb7defa 15526 result = true;
AzureIoTClient 28:add19eb7defa 15527 }
AzureIoTClient 28:add19eb7defa 15528 else
AzureIoTClient 28:add19eb7defa 15529 {
AzureIoTClient 28:add19eb7defa 15530 result = false;
AzureIoTClient 28:add19eb7defa 15531 }
AzureIoTClient 28:add19eb7defa 15532
AzureIoTClient 28:add19eb7defa 15533 return result;
Azure.IoT Build 0:6ae2f7bca550 15534 }
Azure.IoT Build 0:6ae2f7bca550 15535
Azure.IoT Build 0:6ae2f7bca550 15536 /* properties */
Azure.IoT Build 0:6ae2f7bca550 15537
Azure.IoT Build 0:6ae2f7bca550 15538 typedef struct PROPERTIES_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 15539 {
AzureIoTClient 28:add19eb7defa 15540 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 15541 } PROPERTIES_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 15542
Azure.IoT Build 0:6ae2f7bca550 15543 static PROPERTIES_HANDLE properties_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 15544 {
AzureIoTClient 28:add19eb7defa 15545 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15546 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15547 {
AzureIoTClient 28:add19eb7defa 15548 properties_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 15549 }
AzureIoTClient 28:add19eb7defa 15550
AzureIoTClient 28:add19eb7defa 15551 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15552 }
Azure.IoT Build 0:6ae2f7bca550 15553
Azure.IoT Build 0:6ae2f7bca550 15554 PROPERTIES_HANDLE properties_create(void)
Azure.IoT Build 0:6ae2f7bca550 15555 {
AzureIoTClient 28:add19eb7defa 15556 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15557 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15558 {
AzureIoTClient 28:add19eb7defa 15559 properties_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(115);
AzureIoTClient 28:add19eb7defa 15560 if (properties_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 15561 {
AzureIoTClient 28:add19eb7defa 15562 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15563 properties_instance = NULL;
AzureIoTClient 28:add19eb7defa 15564 }
AzureIoTClient 28:add19eb7defa 15565 }
AzureIoTClient 28:add19eb7defa 15566
AzureIoTClient 28:add19eb7defa 15567 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15568 }
Azure.IoT Build 0:6ae2f7bca550 15569
Azure.IoT Build 0:6ae2f7bca550 15570 PROPERTIES_HANDLE properties_clone(PROPERTIES_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 15571 {
AzureIoTClient 28:add19eb7defa 15572 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15573 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15574 {
AzureIoTClient 28:add19eb7defa 15575 properties_instance->composite_value = amqpvalue_clone(((PROPERTIES_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 15576 if (properties_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 15577 {
AzureIoTClient 28:add19eb7defa 15578 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15579 properties_instance = NULL;
AzureIoTClient 28:add19eb7defa 15580 }
AzureIoTClient 28:add19eb7defa 15581 }
AzureIoTClient 28:add19eb7defa 15582
AzureIoTClient 28:add19eb7defa 15583 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15584 }
Azure.IoT Build 0:6ae2f7bca550 15585
Azure.IoT Build 0:6ae2f7bca550 15586 void properties_destroy(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 15587 {
AzureIoTClient 28:add19eb7defa 15588 if (properties != NULL)
AzureIoTClient 28:add19eb7defa 15589 {
AzureIoTClient 28:add19eb7defa 15590 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15591 amqpvalue_destroy(properties_instance->composite_value);
AzureIoTClient 28:add19eb7defa 15592 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15593 }
Azure.IoT Build 0:6ae2f7bca550 15594 }
Azure.IoT Build 0:6ae2f7bca550 15595
Azure.IoT Build 0:6ae2f7bca550 15596 AMQP_VALUE amqpvalue_create_properties(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 15597 {
AzureIoTClient 28:add19eb7defa 15598 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15599
AzureIoTClient 28:add19eb7defa 15600 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15601 {
AzureIoTClient 28:add19eb7defa 15602 result = NULL;
AzureIoTClient 28:add19eb7defa 15603 }
AzureIoTClient 28:add19eb7defa 15604 else
AzureIoTClient 28:add19eb7defa 15605 {
AzureIoTClient 28:add19eb7defa 15606 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15607 result = amqpvalue_clone(properties_instance->composite_value);
AzureIoTClient 28:add19eb7defa 15608 }
AzureIoTClient 28:add19eb7defa 15609
AzureIoTClient 28:add19eb7defa 15610 return result;
Azure.IoT Build 0:6ae2f7bca550 15611 }
Azure.IoT Build 0:6ae2f7bca550 15612
Azure.IoT Build 0:6ae2f7bca550 15613 bool is_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15614 {
AzureIoTClient 28:add19eb7defa 15615 bool result;
AzureIoTClient 28:add19eb7defa 15616
AzureIoTClient 28:add19eb7defa 15617 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15618 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15619 (descriptor_ulong == 115))
AzureIoTClient 28:add19eb7defa 15620 {
AzureIoTClient 28:add19eb7defa 15621 result = true;
AzureIoTClient 28:add19eb7defa 15622 }
AzureIoTClient 28:add19eb7defa 15623 else
AzureIoTClient 28:add19eb7defa 15624 {
AzureIoTClient 28:add19eb7defa 15625 result = false;
AzureIoTClient 28:add19eb7defa 15626 }
AzureIoTClient 28:add19eb7defa 15627
AzureIoTClient 28:add19eb7defa 15628 return result;
Azure.IoT Build 0:6ae2f7bca550 15629 }
Azure.IoT Build 0:6ae2f7bca550 15630
Azure.IoT Build 0:6ae2f7bca550 15631
Azure.IoT Build 0:6ae2f7bca550 15632 int amqpvalue_get_properties(AMQP_VALUE value, PROPERTIES_HANDLE* properties_handle)
Azure.IoT Build 0:6ae2f7bca550 15633 {
AzureIoTClient 28:add19eb7defa 15634 int result;
AzureIoTClient 28:add19eb7defa 15635 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties_create_internal();
AzureIoTClient 28:add19eb7defa 15636 *properties_handle = properties_instance;
AzureIoTClient 28:add19eb7defa 15637 if (*properties_handle == NULL)
AzureIoTClient 28:add19eb7defa 15638 {
AzureIoTClient 28:add19eb7defa 15639 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15640 }
AzureIoTClient 28:add19eb7defa 15641 else
AzureIoTClient 28:add19eb7defa 15642 {
AzureIoTClient 28:add19eb7defa 15643 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 15644 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 15645 {
AzureIoTClient 28:add19eb7defa 15646 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15647 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15648 }
AzureIoTClient 28:add19eb7defa 15649 else
AzureIoTClient 28:add19eb7defa 15650 {
AzureIoTClient 23:1111ee8bcba4 15651 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 15652 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15653 {
AzureIoTClient 23:1111ee8bcba4 15654 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15655 }
AzureIoTClient 23:1111ee8bcba4 15656 else
AzureIoTClient 23:1111ee8bcba4 15657 {
AzureIoTClient 28:add19eb7defa 15658 do
AzureIoTClient 28:add19eb7defa 15659 {
AzureIoTClient 28:add19eb7defa 15660 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 15661 /* message-id */
AzureIoTClient 28:add19eb7defa 15662 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 15663 {
AzureIoTClient 23:1111ee8bcba4 15664 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 15665 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15666 {
AzureIoTClient 28:add19eb7defa 15667 /* do nothing */
AzureIoTClient 28:add19eb7defa 15668 }
AzureIoTClient 28:add19eb7defa 15669 else
AzureIoTClient 28:add19eb7defa 15670 {
AzureIoTClient 28:add19eb7defa 15671 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15672 }
AzureIoTClient 28:add19eb7defa 15673 }
AzureIoTClient 28:add19eb7defa 15674 /* user-id */
AzureIoTClient 28:add19eb7defa 15675 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 15676 {
AzureIoTClient 23:1111ee8bcba4 15677 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 15678 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15679 {
AzureIoTClient 28:add19eb7defa 15680 /* do nothing */
AzureIoTClient 28:add19eb7defa 15681 }
AzureIoTClient 28:add19eb7defa 15682 else
AzureIoTClient 28:add19eb7defa 15683 {
AzureIoTClient 28:add19eb7defa 15684 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15685 {
AzureIoTClient 28:add19eb7defa 15686 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15687 }
AzureIoTClient 28:add19eb7defa 15688 else
AzureIoTClient 28:add19eb7defa 15689 {
AzureIoTClient 28:add19eb7defa 15690 amqp_binary user_id;
AzureIoTClient 28:add19eb7defa 15691 if (amqpvalue_get_binary(item_value, &user_id) != 0)
AzureIoTClient 28:add19eb7defa 15692 {
AzureIoTClient 28:add19eb7defa 15693 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15694 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15695 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15696 break;
AzureIoTClient 28:add19eb7defa 15697 }
AzureIoTClient 28:add19eb7defa 15698 }
AzureIoTClient 28:add19eb7defa 15699
AzureIoTClient 28:add19eb7defa 15700 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15701 }
AzureIoTClient 28:add19eb7defa 15702 }
AzureIoTClient 28:add19eb7defa 15703 /* to */
AzureIoTClient 28:add19eb7defa 15704 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 15705 {
AzureIoTClient 23:1111ee8bcba4 15706 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 15707 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15708 {
AzureIoTClient 28:add19eb7defa 15709 /* do nothing */
AzureIoTClient 28:add19eb7defa 15710 }
AzureIoTClient 28:add19eb7defa 15711 else
AzureIoTClient 28:add19eb7defa 15712 {
AzureIoTClient 28:add19eb7defa 15713 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15714 }
AzureIoTClient 28:add19eb7defa 15715 }
AzureIoTClient 28:add19eb7defa 15716 /* subject */
AzureIoTClient 28:add19eb7defa 15717 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 15718 {
AzureIoTClient 23:1111ee8bcba4 15719 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 15720 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15721 {
AzureIoTClient 28:add19eb7defa 15722 /* do nothing */
AzureIoTClient 28:add19eb7defa 15723 }
AzureIoTClient 28:add19eb7defa 15724 else
AzureIoTClient 28:add19eb7defa 15725 {
AzureIoTClient 28:add19eb7defa 15726 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15727 {
AzureIoTClient 28:add19eb7defa 15728 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15729 }
AzureIoTClient 28:add19eb7defa 15730 else
AzureIoTClient 28:add19eb7defa 15731 {
AzureIoTClient 28:add19eb7defa 15732 const char* subject;
AzureIoTClient 28:add19eb7defa 15733 if (amqpvalue_get_string(item_value, &subject) != 0)
AzureIoTClient 28:add19eb7defa 15734 {
AzureIoTClient 28:add19eb7defa 15735 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15736 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15737 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15738 break;
AzureIoTClient 28:add19eb7defa 15739 }
AzureIoTClient 28:add19eb7defa 15740 }
AzureIoTClient 28:add19eb7defa 15741
AzureIoTClient 28:add19eb7defa 15742 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15743 }
AzureIoTClient 28:add19eb7defa 15744 }
AzureIoTClient 28:add19eb7defa 15745 /* reply-to */
AzureIoTClient 28:add19eb7defa 15746 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 15747 {
AzureIoTClient 23:1111ee8bcba4 15748 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 15749 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15750 {
AzureIoTClient 28:add19eb7defa 15751 /* do nothing */
AzureIoTClient 28:add19eb7defa 15752 }
AzureIoTClient 28:add19eb7defa 15753 else
AzureIoTClient 28:add19eb7defa 15754 {
AzureIoTClient 28:add19eb7defa 15755 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15756 }
AzureIoTClient 28:add19eb7defa 15757 }
AzureIoTClient 28:add19eb7defa 15758 /* correlation-id */
AzureIoTClient 28:add19eb7defa 15759 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 15760 {
AzureIoTClient 23:1111ee8bcba4 15761 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 15762 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15763 {
AzureIoTClient 28:add19eb7defa 15764 /* do nothing */
AzureIoTClient 28:add19eb7defa 15765 }
AzureIoTClient 28:add19eb7defa 15766 else
AzureIoTClient 28:add19eb7defa 15767 {
AzureIoTClient 28:add19eb7defa 15768 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15769 }
AzureIoTClient 28:add19eb7defa 15770 }
AzureIoTClient 28:add19eb7defa 15771 /* content-type */
AzureIoTClient 28:add19eb7defa 15772 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 15773 {
AzureIoTClient 23:1111ee8bcba4 15774 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 15775 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15776 {
AzureIoTClient 28:add19eb7defa 15777 /* do nothing */
AzureIoTClient 28:add19eb7defa 15778 }
AzureIoTClient 28:add19eb7defa 15779 else
AzureIoTClient 28:add19eb7defa 15780 {
AzureIoTClient 28:add19eb7defa 15781 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15782 {
AzureIoTClient 28:add19eb7defa 15783 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15784 }
AzureIoTClient 28:add19eb7defa 15785 else
AzureIoTClient 28:add19eb7defa 15786 {
AzureIoTClient 28:add19eb7defa 15787 const char* content_type;
AzureIoTClient 28:add19eb7defa 15788 if (amqpvalue_get_symbol(item_value, &content_type) != 0)
AzureIoTClient 28:add19eb7defa 15789 {
AzureIoTClient 28:add19eb7defa 15790 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15791 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15792 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15793 break;
AzureIoTClient 28:add19eb7defa 15794 }
AzureIoTClient 28:add19eb7defa 15795 }
AzureIoTClient 28:add19eb7defa 15796
AzureIoTClient 28:add19eb7defa 15797 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15798 }
AzureIoTClient 28:add19eb7defa 15799 }
AzureIoTClient 28:add19eb7defa 15800 /* content-encoding */
AzureIoTClient 28:add19eb7defa 15801 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 15802 {
AzureIoTClient 23:1111ee8bcba4 15803 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 15804 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15805 {
AzureIoTClient 28:add19eb7defa 15806 /* do nothing */
AzureIoTClient 28:add19eb7defa 15807 }
AzureIoTClient 28:add19eb7defa 15808 else
AzureIoTClient 28:add19eb7defa 15809 {
AzureIoTClient 28:add19eb7defa 15810 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15811 {
AzureIoTClient 28:add19eb7defa 15812 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15813 }
AzureIoTClient 28:add19eb7defa 15814 else
AzureIoTClient 28:add19eb7defa 15815 {
AzureIoTClient 28:add19eb7defa 15816 const char* content_encoding;
AzureIoTClient 28:add19eb7defa 15817 if (amqpvalue_get_symbol(item_value, &content_encoding) != 0)
AzureIoTClient 28:add19eb7defa 15818 {
AzureIoTClient 28:add19eb7defa 15819 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15820 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15821 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15822 break;
AzureIoTClient 28:add19eb7defa 15823 }
AzureIoTClient 28:add19eb7defa 15824 }
AzureIoTClient 28:add19eb7defa 15825
AzureIoTClient 28:add19eb7defa 15826 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15827 }
AzureIoTClient 28:add19eb7defa 15828 }
AzureIoTClient 28:add19eb7defa 15829 /* absolute-expiry-time */
AzureIoTClient 28:add19eb7defa 15830 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 15831 {
AzureIoTClient 23:1111ee8bcba4 15832 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 15833 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15834 {
AzureIoTClient 28:add19eb7defa 15835 /* do nothing */
AzureIoTClient 28:add19eb7defa 15836 }
AzureIoTClient 28:add19eb7defa 15837 else
AzureIoTClient 28:add19eb7defa 15838 {
AzureIoTClient 28:add19eb7defa 15839 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15840 {
AzureIoTClient 28:add19eb7defa 15841 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15842 }
AzureIoTClient 28:add19eb7defa 15843 else
AzureIoTClient 28:add19eb7defa 15844 {
AzureIoTClient 28:add19eb7defa 15845 timestamp absolute_expiry_time;
AzureIoTClient 28:add19eb7defa 15846 if (amqpvalue_get_timestamp(item_value, &absolute_expiry_time) != 0)
AzureIoTClient 28:add19eb7defa 15847 {
AzureIoTClient 28:add19eb7defa 15848 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15849 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15850 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15851 break;
AzureIoTClient 28:add19eb7defa 15852 }
AzureIoTClient 28:add19eb7defa 15853 }
AzureIoTClient 28:add19eb7defa 15854
AzureIoTClient 28:add19eb7defa 15855 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15856 }
AzureIoTClient 28:add19eb7defa 15857 }
AzureIoTClient 28:add19eb7defa 15858 /* creation-time */
AzureIoTClient 28:add19eb7defa 15859 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 15860 {
AzureIoTClient 23:1111ee8bcba4 15861 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 15862 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15863 {
AzureIoTClient 28:add19eb7defa 15864 /* do nothing */
AzureIoTClient 28:add19eb7defa 15865 }
AzureIoTClient 28:add19eb7defa 15866 else
AzureIoTClient 28:add19eb7defa 15867 {
AzureIoTClient 28:add19eb7defa 15868 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15869 {
AzureIoTClient 28:add19eb7defa 15870 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15871 }
AzureIoTClient 28:add19eb7defa 15872 else
AzureIoTClient 28:add19eb7defa 15873 {
AzureIoTClient 28:add19eb7defa 15874 timestamp creation_time;
AzureIoTClient 28:add19eb7defa 15875 if (amqpvalue_get_timestamp(item_value, &creation_time) != 0)
AzureIoTClient 28:add19eb7defa 15876 {
AzureIoTClient 28:add19eb7defa 15877 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15878 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15879 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15880 break;
AzureIoTClient 28:add19eb7defa 15881 }
AzureIoTClient 28:add19eb7defa 15882 }
AzureIoTClient 28:add19eb7defa 15883
AzureIoTClient 28:add19eb7defa 15884 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15885 }
AzureIoTClient 28:add19eb7defa 15886 }
AzureIoTClient 28:add19eb7defa 15887 /* group-id */
AzureIoTClient 28:add19eb7defa 15888 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 15889 {
AzureIoTClient 23:1111ee8bcba4 15890 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 15891 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15892 {
AzureIoTClient 28:add19eb7defa 15893 /* do nothing */
AzureIoTClient 28:add19eb7defa 15894 }
AzureIoTClient 28:add19eb7defa 15895 else
AzureIoTClient 28:add19eb7defa 15896 {
AzureIoTClient 28:add19eb7defa 15897 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15898 {
AzureIoTClient 28:add19eb7defa 15899 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15900 }
AzureIoTClient 28:add19eb7defa 15901 else
AzureIoTClient 28:add19eb7defa 15902 {
AzureIoTClient 28:add19eb7defa 15903 const char* group_id;
AzureIoTClient 28:add19eb7defa 15904 if (amqpvalue_get_string(item_value, &group_id) != 0)
AzureIoTClient 28:add19eb7defa 15905 {
AzureIoTClient 28:add19eb7defa 15906 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15907 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15908 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15909 break;
AzureIoTClient 28:add19eb7defa 15910 }
AzureIoTClient 28:add19eb7defa 15911 }
AzureIoTClient 28:add19eb7defa 15912
AzureIoTClient 28:add19eb7defa 15913 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15914 }
AzureIoTClient 28:add19eb7defa 15915 }
AzureIoTClient 28:add19eb7defa 15916 /* group-sequence */
AzureIoTClient 28:add19eb7defa 15917 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 15918 {
AzureIoTClient 23:1111ee8bcba4 15919 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 28:add19eb7defa 15920 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15921 {
AzureIoTClient 28:add19eb7defa 15922 /* do nothing */
AzureIoTClient 28:add19eb7defa 15923 }
AzureIoTClient 28:add19eb7defa 15924 else
AzureIoTClient 28:add19eb7defa 15925 {
AzureIoTClient 28:add19eb7defa 15926 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15927 {
AzureIoTClient 28:add19eb7defa 15928 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15929 }
AzureIoTClient 28:add19eb7defa 15930 else
AzureIoTClient 28:add19eb7defa 15931 {
AzureIoTClient 28:add19eb7defa 15932 sequence_no group_sequence;
AzureIoTClient 28:add19eb7defa 15933 if (amqpvalue_get_sequence_no(item_value, &group_sequence) != 0)
AzureIoTClient 28:add19eb7defa 15934 {
AzureIoTClient 28:add19eb7defa 15935 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15936 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15937 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15938 break;
AzureIoTClient 28:add19eb7defa 15939 }
AzureIoTClient 28:add19eb7defa 15940 }
AzureIoTClient 28:add19eb7defa 15941
AzureIoTClient 28:add19eb7defa 15942 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15943 }
AzureIoTClient 28:add19eb7defa 15944 }
AzureIoTClient 28:add19eb7defa 15945 /* reply-to-group-id */
AzureIoTClient 28:add19eb7defa 15946 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 15947 {
AzureIoTClient 23:1111ee8bcba4 15948 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 28:add19eb7defa 15949 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15950 {
AzureIoTClient 28:add19eb7defa 15951 /* do nothing */
AzureIoTClient 28:add19eb7defa 15952 }
AzureIoTClient 28:add19eb7defa 15953 else
AzureIoTClient 28:add19eb7defa 15954 {
AzureIoTClient 28:add19eb7defa 15955 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15956 {
AzureIoTClient 28:add19eb7defa 15957 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15958 }
AzureIoTClient 28:add19eb7defa 15959 else
AzureIoTClient 28:add19eb7defa 15960 {
AzureIoTClient 28:add19eb7defa 15961 const char* reply_to_group_id;
AzureIoTClient 28:add19eb7defa 15962 if (amqpvalue_get_string(item_value, &reply_to_group_id) != 0)
AzureIoTClient 28:add19eb7defa 15963 {
AzureIoTClient 28:add19eb7defa 15964 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15965 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15966 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15967 break;
AzureIoTClient 28:add19eb7defa 15968 }
AzureIoTClient 28:add19eb7defa 15969 }
AzureIoTClient 28:add19eb7defa 15970
AzureIoTClient 28:add19eb7defa 15971 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15972 }
AzureIoTClient 28:add19eb7defa 15973 }
AzureIoTClient 28:add19eb7defa 15974
AzureIoTClient 28:add19eb7defa 15975 properties_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15976
AzureIoTClient 28:add19eb7defa 15977 result = 0;
AzureIoTClient 28:add19eb7defa 15978 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 15979 }
AzureIoTClient 28:add19eb7defa 15980 }
AzureIoTClient 28:add19eb7defa 15981 }
AzureIoTClient 28:add19eb7defa 15982
AzureIoTClient 28:add19eb7defa 15983 return result;
Azure.IoT Build 0:6ae2f7bca550 15984 }
Azure.IoT Build 0:6ae2f7bca550 15985
Azure.IoT Build 0:6ae2f7bca550 15986 int properties_get_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE* message_id_value)
Azure.IoT Build 0:6ae2f7bca550 15987 {
AzureIoTClient 28:add19eb7defa 15988 int result;
AzureIoTClient 28:add19eb7defa 15989
AzureIoTClient 28:add19eb7defa 15990 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15991 {
AzureIoTClient 28:add19eb7defa 15992 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15993 }
AzureIoTClient 28:add19eb7defa 15994 else
AzureIoTClient 28:add19eb7defa 15995 {
AzureIoTClient 28:add19eb7defa 15996 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15997 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15998 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15999 {
AzureIoTClient 23:1111ee8bcba4 16000 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16001 }
AzureIoTClient 23:1111ee8bcba4 16002 else
AzureIoTClient 23:1111ee8bcba4 16003 {
AzureIoTClient 23:1111ee8bcba4 16004 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 16005 {
AzureIoTClient 28:add19eb7defa 16006 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16007 }
AzureIoTClient 28:add19eb7defa 16008 else
AzureIoTClient 28:add19eb7defa 16009 {
AzureIoTClient 28:add19eb7defa 16010 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 16011 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16012 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16013 {
AzureIoTClient 28:add19eb7defa 16014 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16015 }
AzureIoTClient 28:add19eb7defa 16016 else
AzureIoTClient 28:add19eb7defa 16017 {
AzureIoTClient 28:add19eb7defa 16018 *message_id_value = item_value;
AzureIoTClient 28:add19eb7defa 16019 result = 0;
AzureIoTClient 28:add19eb7defa 16020 }
AzureIoTClient 28:add19eb7defa 16021 }
AzureIoTClient 28:add19eb7defa 16022 }
AzureIoTClient 28:add19eb7defa 16023 }
AzureIoTClient 28:add19eb7defa 16024
AzureIoTClient 28:add19eb7defa 16025 return result;
Azure.IoT Build 0:6ae2f7bca550 16026 }
Azure.IoT Build 0:6ae2f7bca550 16027
Azure.IoT Build 0:6ae2f7bca550 16028 int properties_set_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE message_id_value)
Azure.IoT Build 0:6ae2f7bca550 16029 {
AzureIoTClient 28:add19eb7defa 16030 int result;
AzureIoTClient 28:add19eb7defa 16031
AzureIoTClient 28:add19eb7defa 16032 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16033 {
AzureIoTClient 28:add19eb7defa 16034 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16035 }
AzureIoTClient 28:add19eb7defa 16036 else
AzureIoTClient 28:add19eb7defa 16037 {
AzureIoTClient 28:add19eb7defa 16038 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16039 AMQP_VALUE message_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16040 if (message_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16041 {
AzureIoTClient 23:1111ee8bcba4 16042 message_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16043 }
AzureIoTClient 23:1111ee8bcba4 16044 else
AzureIoTClient 23:1111ee8bcba4 16045 {
AzureIoTClient 23:1111ee8bcba4 16046 message_id_amqp_value = amqpvalue_clone(message_id_value);
AzureIoTClient 23:1111ee8bcba4 16047 }
AzureIoTClient 28:add19eb7defa 16048 if (message_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16049 {
AzureIoTClient 28:add19eb7defa 16050 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16051 }
AzureIoTClient 28:add19eb7defa 16052 else
AzureIoTClient 28:add19eb7defa 16053 {
AzureIoTClient 28:add19eb7defa 16054 if (amqpvalue_set_composite_item(properties_instance->composite_value, 0, message_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16055 {
AzureIoTClient 28:add19eb7defa 16056 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16057 }
AzureIoTClient 28:add19eb7defa 16058 else
AzureIoTClient 28:add19eb7defa 16059 {
AzureIoTClient 28:add19eb7defa 16060 result = 0;
AzureIoTClient 28:add19eb7defa 16061 }
AzureIoTClient 28:add19eb7defa 16062
AzureIoTClient 28:add19eb7defa 16063 amqpvalue_destroy(message_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16064 }
AzureIoTClient 28:add19eb7defa 16065 }
AzureIoTClient 28:add19eb7defa 16066
AzureIoTClient 28:add19eb7defa 16067 return result;
Azure.IoT Build 0:6ae2f7bca550 16068 }
Azure.IoT Build 0:6ae2f7bca550 16069
Azure.IoT Build 0:6ae2f7bca550 16070 int properties_get_user_id(PROPERTIES_HANDLE properties, amqp_binary* user_id_value)
Azure.IoT Build 0:6ae2f7bca550 16071 {
AzureIoTClient 28:add19eb7defa 16072 int result;
AzureIoTClient 28:add19eb7defa 16073
AzureIoTClient 28:add19eb7defa 16074 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16075 {
AzureIoTClient 28:add19eb7defa 16076 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16077 }
AzureIoTClient 28:add19eb7defa 16078 else
AzureIoTClient 28:add19eb7defa 16079 {
AzureIoTClient 28:add19eb7defa 16080 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16081 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16082 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16083 {
AzureIoTClient 23:1111ee8bcba4 16084 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16085 }
AzureIoTClient 23:1111ee8bcba4 16086 else
AzureIoTClient 23:1111ee8bcba4 16087 {
AzureIoTClient 23:1111ee8bcba4 16088 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 16089 {
AzureIoTClient 28:add19eb7defa 16090 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16091 }
AzureIoTClient 28:add19eb7defa 16092 else
AzureIoTClient 28:add19eb7defa 16093 {
AzureIoTClient 28:add19eb7defa 16094 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 16095 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16096 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16097 {
AzureIoTClient 28:add19eb7defa 16098 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16099 }
AzureIoTClient 28:add19eb7defa 16100 else
AzureIoTClient 28:add19eb7defa 16101 {
AzureIoTClient 43:4c1e4e94cdd3 16102 int get_single_value_result = amqpvalue_get_binary(item_value, user_id_value);
AzureIoTClient 43:4c1e4e94cdd3 16103 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 16104 {
AzureIoTClient 28:add19eb7defa 16105 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16106 }
AzureIoTClient 28:add19eb7defa 16107 else
AzureIoTClient 28:add19eb7defa 16108 {
AzureIoTClient 28:add19eb7defa 16109 result = 0;
AzureIoTClient 28:add19eb7defa 16110 }
AzureIoTClient 28:add19eb7defa 16111 }
AzureIoTClient 28:add19eb7defa 16112 }
AzureIoTClient 28:add19eb7defa 16113 }
AzureIoTClient 28:add19eb7defa 16114 }
AzureIoTClient 28:add19eb7defa 16115
AzureIoTClient 28:add19eb7defa 16116 return result;
Azure.IoT Build 0:6ae2f7bca550 16117 }
Azure.IoT Build 0:6ae2f7bca550 16118
Azure.IoT Build 0:6ae2f7bca550 16119 int properties_set_user_id(PROPERTIES_HANDLE properties, amqp_binary user_id_value)
Azure.IoT Build 0:6ae2f7bca550 16120 {
AzureIoTClient 28:add19eb7defa 16121 int result;
AzureIoTClient 28:add19eb7defa 16122
AzureIoTClient 28:add19eb7defa 16123 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16124 {
AzureIoTClient 28:add19eb7defa 16125 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16126 }
AzureIoTClient 28:add19eb7defa 16127 else
AzureIoTClient 28:add19eb7defa 16128 {
AzureIoTClient 28:add19eb7defa 16129 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16130 AMQP_VALUE user_id_amqp_value = amqpvalue_create_binary(user_id_value);
AzureIoTClient 28:add19eb7defa 16131 if (user_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16132 {
AzureIoTClient 28:add19eb7defa 16133 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16134 }
AzureIoTClient 28:add19eb7defa 16135 else
AzureIoTClient 28:add19eb7defa 16136 {
AzureIoTClient 28:add19eb7defa 16137 if (amqpvalue_set_composite_item(properties_instance->composite_value, 1, user_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16138 {
AzureIoTClient 28:add19eb7defa 16139 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16140 }
AzureIoTClient 28:add19eb7defa 16141 else
AzureIoTClient 28:add19eb7defa 16142 {
AzureIoTClient 28:add19eb7defa 16143 result = 0;
AzureIoTClient 28:add19eb7defa 16144 }
AzureIoTClient 28:add19eb7defa 16145
AzureIoTClient 28:add19eb7defa 16146 amqpvalue_destroy(user_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16147 }
AzureIoTClient 28:add19eb7defa 16148 }
AzureIoTClient 28:add19eb7defa 16149
AzureIoTClient 28:add19eb7defa 16150 return result;
Azure.IoT Build 0:6ae2f7bca550 16151 }
Azure.IoT Build 0:6ae2f7bca550 16152
Azure.IoT Build 0:6ae2f7bca550 16153 int properties_get_to(PROPERTIES_HANDLE properties, AMQP_VALUE* to_value)
Azure.IoT Build 0:6ae2f7bca550 16154 {
AzureIoTClient 28:add19eb7defa 16155 int result;
AzureIoTClient 28:add19eb7defa 16156
AzureIoTClient 28:add19eb7defa 16157 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16158 {
AzureIoTClient 28:add19eb7defa 16159 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16160 }
AzureIoTClient 28:add19eb7defa 16161 else
AzureIoTClient 28:add19eb7defa 16162 {
AzureIoTClient 28:add19eb7defa 16163 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16164 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16165 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16166 {
AzureIoTClient 23:1111ee8bcba4 16167 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16168 }
AzureIoTClient 23:1111ee8bcba4 16169 else
AzureIoTClient 23:1111ee8bcba4 16170 {
AzureIoTClient 23:1111ee8bcba4 16171 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 16172 {
AzureIoTClient 28:add19eb7defa 16173 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16174 }
AzureIoTClient 28:add19eb7defa 16175 else
AzureIoTClient 28:add19eb7defa 16176 {
AzureIoTClient 28:add19eb7defa 16177 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 16178 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16179 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16180 {
AzureIoTClient 28:add19eb7defa 16181 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16182 }
AzureIoTClient 28:add19eb7defa 16183 else
AzureIoTClient 28:add19eb7defa 16184 {
AzureIoTClient 28:add19eb7defa 16185 *to_value = item_value;
AzureIoTClient 28:add19eb7defa 16186 result = 0;
AzureIoTClient 28:add19eb7defa 16187 }
AzureIoTClient 28:add19eb7defa 16188 }
AzureIoTClient 28:add19eb7defa 16189 }
AzureIoTClient 28:add19eb7defa 16190 }
AzureIoTClient 28:add19eb7defa 16191
AzureIoTClient 28:add19eb7defa 16192 return result;
Azure.IoT Build 0:6ae2f7bca550 16193 }
Azure.IoT Build 0:6ae2f7bca550 16194
Azure.IoT Build 0:6ae2f7bca550 16195 int properties_set_to(PROPERTIES_HANDLE properties, AMQP_VALUE to_value)
Azure.IoT Build 0:6ae2f7bca550 16196 {
AzureIoTClient 28:add19eb7defa 16197 int result;
AzureIoTClient 28:add19eb7defa 16198
AzureIoTClient 28:add19eb7defa 16199 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16200 {
AzureIoTClient 28:add19eb7defa 16201 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16202 }
AzureIoTClient 28:add19eb7defa 16203 else
AzureIoTClient 28:add19eb7defa 16204 {
AzureIoTClient 28:add19eb7defa 16205 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16206 AMQP_VALUE to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16207 if (to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16208 {
AzureIoTClient 23:1111ee8bcba4 16209 to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16210 }
AzureIoTClient 23:1111ee8bcba4 16211 else
AzureIoTClient 23:1111ee8bcba4 16212 {
AzureIoTClient 23:1111ee8bcba4 16213 to_amqp_value = amqpvalue_clone(to_value);
AzureIoTClient 23:1111ee8bcba4 16214 }
AzureIoTClient 28:add19eb7defa 16215 if (to_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16216 {
AzureIoTClient 28:add19eb7defa 16217 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16218 }
AzureIoTClient 28:add19eb7defa 16219 else
AzureIoTClient 28:add19eb7defa 16220 {
AzureIoTClient 28:add19eb7defa 16221 if (amqpvalue_set_composite_item(properties_instance->composite_value, 2, to_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16222 {
AzureIoTClient 28:add19eb7defa 16223 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16224 }
AzureIoTClient 28:add19eb7defa 16225 else
AzureIoTClient 28:add19eb7defa 16226 {
AzureIoTClient 28:add19eb7defa 16227 result = 0;
AzureIoTClient 28:add19eb7defa 16228 }
AzureIoTClient 28:add19eb7defa 16229
AzureIoTClient 28:add19eb7defa 16230 amqpvalue_destroy(to_amqp_value);
AzureIoTClient 28:add19eb7defa 16231 }
AzureIoTClient 28:add19eb7defa 16232 }
AzureIoTClient 28:add19eb7defa 16233
AzureIoTClient 28:add19eb7defa 16234 return result;
Azure.IoT Build 0:6ae2f7bca550 16235 }
Azure.IoT Build 0:6ae2f7bca550 16236
Azure.IoT Build 0:6ae2f7bca550 16237 int properties_get_subject(PROPERTIES_HANDLE properties, const char** subject_value)
Azure.IoT Build 0:6ae2f7bca550 16238 {
AzureIoTClient 28:add19eb7defa 16239 int result;
AzureIoTClient 28:add19eb7defa 16240
AzureIoTClient 28:add19eb7defa 16241 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16242 {
AzureIoTClient 28:add19eb7defa 16243 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16244 }
AzureIoTClient 28:add19eb7defa 16245 else
AzureIoTClient 28:add19eb7defa 16246 {
AzureIoTClient 28:add19eb7defa 16247 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16248 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16249 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16250 {
AzureIoTClient 23:1111ee8bcba4 16251 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16252 }
AzureIoTClient 23:1111ee8bcba4 16253 else
AzureIoTClient 23:1111ee8bcba4 16254 {
AzureIoTClient 23:1111ee8bcba4 16255 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 16256 {
AzureIoTClient 28:add19eb7defa 16257 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16258 }
AzureIoTClient 28:add19eb7defa 16259 else
AzureIoTClient 28:add19eb7defa 16260 {
AzureIoTClient 28:add19eb7defa 16261 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 16262 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16263 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16264 {
AzureIoTClient 28:add19eb7defa 16265 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16266 }
AzureIoTClient 28:add19eb7defa 16267 else
AzureIoTClient 28:add19eb7defa 16268 {
AzureIoTClient 43:4c1e4e94cdd3 16269 int get_single_value_result = amqpvalue_get_string(item_value, subject_value);
AzureIoTClient 43:4c1e4e94cdd3 16270 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 16271 {
AzureIoTClient 28:add19eb7defa 16272 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16273 }
AzureIoTClient 28:add19eb7defa 16274 else
AzureIoTClient 28:add19eb7defa 16275 {
AzureIoTClient 28:add19eb7defa 16276 result = 0;
AzureIoTClient 28:add19eb7defa 16277 }
AzureIoTClient 28:add19eb7defa 16278 }
AzureIoTClient 28:add19eb7defa 16279 }
AzureIoTClient 28:add19eb7defa 16280 }
AzureIoTClient 28:add19eb7defa 16281 }
AzureIoTClient 28:add19eb7defa 16282
AzureIoTClient 28:add19eb7defa 16283 return result;
Azure.IoT Build 0:6ae2f7bca550 16284 }
Azure.IoT Build 0:6ae2f7bca550 16285
Azure.IoT Build 0:6ae2f7bca550 16286 int properties_set_subject(PROPERTIES_HANDLE properties, const char* subject_value)
Azure.IoT Build 0:6ae2f7bca550 16287 {
AzureIoTClient 28:add19eb7defa 16288 int result;
AzureIoTClient 28:add19eb7defa 16289
AzureIoTClient 28:add19eb7defa 16290 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16291 {
AzureIoTClient 28:add19eb7defa 16292 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16293 }
AzureIoTClient 28:add19eb7defa 16294 else
AzureIoTClient 28:add19eb7defa 16295 {
AzureIoTClient 28:add19eb7defa 16296 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16297 AMQP_VALUE subject_amqp_value = amqpvalue_create_string(subject_value);
AzureIoTClient 28:add19eb7defa 16298 if (subject_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16299 {
AzureIoTClient 28:add19eb7defa 16300 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16301 }
AzureIoTClient 28:add19eb7defa 16302 else
AzureIoTClient 28:add19eb7defa 16303 {
AzureIoTClient 28:add19eb7defa 16304 if (amqpvalue_set_composite_item(properties_instance->composite_value, 3, subject_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16305 {
AzureIoTClient 28:add19eb7defa 16306 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16307 }
AzureIoTClient 28:add19eb7defa 16308 else
AzureIoTClient 28:add19eb7defa 16309 {
AzureIoTClient 28:add19eb7defa 16310 result = 0;
AzureIoTClient 28:add19eb7defa 16311 }
AzureIoTClient 28:add19eb7defa 16312
AzureIoTClient 28:add19eb7defa 16313 amqpvalue_destroy(subject_amqp_value);
AzureIoTClient 28:add19eb7defa 16314 }
AzureIoTClient 28:add19eb7defa 16315 }
AzureIoTClient 28:add19eb7defa 16316
AzureIoTClient 28:add19eb7defa 16317 return result;
Azure.IoT Build 0:6ae2f7bca550 16318 }
Azure.IoT Build 0:6ae2f7bca550 16319
Azure.IoT Build 0:6ae2f7bca550 16320 int properties_get_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE* reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 16321 {
AzureIoTClient 28:add19eb7defa 16322 int result;
AzureIoTClient 28:add19eb7defa 16323
AzureIoTClient 28:add19eb7defa 16324 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16325 {
AzureIoTClient 28:add19eb7defa 16326 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16327 }
AzureIoTClient 28:add19eb7defa 16328 else
AzureIoTClient 28:add19eb7defa 16329 {
AzureIoTClient 28:add19eb7defa 16330 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16331 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16332 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16333 {
AzureIoTClient 23:1111ee8bcba4 16334 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16335 }
AzureIoTClient 23:1111ee8bcba4 16336 else
AzureIoTClient 23:1111ee8bcba4 16337 {
AzureIoTClient 23:1111ee8bcba4 16338 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 16339 {
AzureIoTClient 28:add19eb7defa 16340 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16341 }
AzureIoTClient 28:add19eb7defa 16342 else
AzureIoTClient 28:add19eb7defa 16343 {
AzureIoTClient 28:add19eb7defa 16344 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 16345 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16346 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16347 {
AzureIoTClient 28:add19eb7defa 16348 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16349 }
AzureIoTClient 28:add19eb7defa 16350 else
AzureIoTClient 28:add19eb7defa 16351 {
AzureIoTClient 28:add19eb7defa 16352 *reply_to_value = item_value;
AzureIoTClient 28:add19eb7defa 16353 result = 0;
AzureIoTClient 28:add19eb7defa 16354 }
AzureIoTClient 28:add19eb7defa 16355 }
AzureIoTClient 28:add19eb7defa 16356 }
AzureIoTClient 28:add19eb7defa 16357 }
AzureIoTClient 28:add19eb7defa 16358
AzureIoTClient 28:add19eb7defa 16359 return result;
Azure.IoT Build 0:6ae2f7bca550 16360 }
Azure.IoT Build 0:6ae2f7bca550 16361
Azure.IoT Build 0:6ae2f7bca550 16362 int properties_set_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 16363 {
AzureIoTClient 28:add19eb7defa 16364 int result;
AzureIoTClient 28:add19eb7defa 16365
AzureIoTClient 28:add19eb7defa 16366 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16367 {
AzureIoTClient 28:add19eb7defa 16368 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16369 }
AzureIoTClient 28:add19eb7defa 16370 else
AzureIoTClient 28:add19eb7defa 16371 {
AzureIoTClient 28:add19eb7defa 16372 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16373 AMQP_VALUE reply_to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16374 if (reply_to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16375 {
AzureIoTClient 23:1111ee8bcba4 16376 reply_to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16377 }
AzureIoTClient 23:1111ee8bcba4 16378 else
AzureIoTClient 23:1111ee8bcba4 16379 {
AzureIoTClient 23:1111ee8bcba4 16380 reply_to_amqp_value = amqpvalue_clone(reply_to_value);
AzureIoTClient 23:1111ee8bcba4 16381 }
AzureIoTClient 28:add19eb7defa 16382 if (reply_to_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16383 {
AzureIoTClient 28:add19eb7defa 16384 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16385 }
AzureIoTClient 28:add19eb7defa 16386 else
AzureIoTClient 28:add19eb7defa 16387 {
AzureIoTClient 28:add19eb7defa 16388 if (amqpvalue_set_composite_item(properties_instance->composite_value, 4, reply_to_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16389 {
AzureIoTClient 28:add19eb7defa 16390 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16391 }
AzureIoTClient 28:add19eb7defa 16392 else
AzureIoTClient 28:add19eb7defa 16393 {
AzureIoTClient 28:add19eb7defa 16394 result = 0;
AzureIoTClient 28:add19eb7defa 16395 }
AzureIoTClient 28:add19eb7defa 16396
AzureIoTClient 28:add19eb7defa 16397 amqpvalue_destroy(reply_to_amqp_value);
AzureIoTClient 28:add19eb7defa 16398 }
AzureIoTClient 28:add19eb7defa 16399 }
AzureIoTClient 28:add19eb7defa 16400
AzureIoTClient 28:add19eb7defa 16401 return result;
Azure.IoT Build 0:6ae2f7bca550 16402 }
Azure.IoT Build 0:6ae2f7bca550 16403
Azure.IoT Build 0:6ae2f7bca550 16404 int properties_get_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE* correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 16405 {
AzureIoTClient 28:add19eb7defa 16406 int result;
AzureIoTClient 28:add19eb7defa 16407
AzureIoTClient 28:add19eb7defa 16408 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16409 {
AzureIoTClient 28:add19eb7defa 16410 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16411 }
AzureIoTClient 28:add19eb7defa 16412 else
AzureIoTClient 28:add19eb7defa 16413 {
AzureIoTClient 28:add19eb7defa 16414 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16415 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16416 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16417 {
AzureIoTClient 23:1111ee8bcba4 16418 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16419 }
AzureIoTClient 23:1111ee8bcba4 16420 else
AzureIoTClient 23:1111ee8bcba4 16421 {
AzureIoTClient 23:1111ee8bcba4 16422 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 16423 {
AzureIoTClient 28:add19eb7defa 16424 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16425 }
AzureIoTClient 28:add19eb7defa 16426 else
AzureIoTClient 28:add19eb7defa 16427 {
AzureIoTClient 28:add19eb7defa 16428 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 16429 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16430 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16431 {
AzureIoTClient 28:add19eb7defa 16432 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16433 }
AzureIoTClient 28:add19eb7defa 16434 else
AzureIoTClient 28:add19eb7defa 16435 {
AzureIoTClient 28:add19eb7defa 16436 *correlation_id_value = item_value;
AzureIoTClient 28:add19eb7defa 16437 result = 0;
AzureIoTClient 28:add19eb7defa 16438 }
AzureIoTClient 28:add19eb7defa 16439 }
AzureIoTClient 28:add19eb7defa 16440 }
AzureIoTClient 28:add19eb7defa 16441 }
AzureIoTClient 28:add19eb7defa 16442
AzureIoTClient 28:add19eb7defa 16443 return result;
Azure.IoT Build 0:6ae2f7bca550 16444 }
Azure.IoT Build 0:6ae2f7bca550 16445
Azure.IoT Build 0:6ae2f7bca550 16446 int properties_set_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 16447 {
AzureIoTClient 28:add19eb7defa 16448 int result;
AzureIoTClient 28:add19eb7defa 16449
AzureIoTClient 28:add19eb7defa 16450 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16451 {
AzureIoTClient 28:add19eb7defa 16452 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16453 }
AzureIoTClient 28:add19eb7defa 16454 else
AzureIoTClient 28:add19eb7defa 16455 {
AzureIoTClient 28:add19eb7defa 16456 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16457 AMQP_VALUE correlation_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16458 if (correlation_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16459 {
AzureIoTClient 23:1111ee8bcba4 16460 correlation_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16461 }
AzureIoTClient 23:1111ee8bcba4 16462 else
AzureIoTClient 23:1111ee8bcba4 16463 {
AzureIoTClient 23:1111ee8bcba4 16464 correlation_id_amqp_value = amqpvalue_clone(correlation_id_value);
AzureIoTClient 23:1111ee8bcba4 16465 }
AzureIoTClient 28:add19eb7defa 16466 if (correlation_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16467 {
AzureIoTClient 28:add19eb7defa 16468 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16469 }
AzureIoTClient 28:add19eb7defa 16470 else
AzureIoTClient 28:add19eb7defa 16471 {
AzureIoTClient 28:add19eb7defa 16472 if (amqpvalue_set_composite_item(properties_instance->composite_value, 5, correlation_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16473 {
AzureIoTClient 28:add19eb7defa 16474 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16475 }
AzureIoTClient 28:add19eb7defa 16476 else
AzureIoTClient 28:add19eb7defa 16477 {
AzureIoTClient 28:add19eb7defa 16478 result = 0;
AzureIoTClient 28:add19eb7defa 16479 }
AzureIoTClient 28:add19eb7defa 16480
AzureIoTClient 28:add19eb7defa 16481 amqpvalue_destroy(correlation_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16482 }
AzureIoTClient 28:add19eb7defa 16483 }
AzureIoTClient 28:add19eb7defa 16484
AzureIoTClient 28:add19eb7defa 16485 return result;
Azure.IoT Build 0:6ae2f7bca550 16486 }
Azure.IoT Build 0:6ae2f7bca550 16487
Azure.IoT Build 0:6ae2f7bca550 16488 int properties_get_content_type(PROPERTIES_HANDLE properties, const char** content_type_value)
Azure.IoT Build 0:6ae2f7bca550 16489 {
AzureIoTClient 28:add19eb7defa 16490 int result;
AzureIoTClient 28:add19eb7defa 16491
AzureIoTClient 28:add19eb7defa 16492 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16493 {
AzureIoTClient 28:add19eb7defa 16494 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16495 }
AzureIoTClient 28:add19eb7defa 16496 else
AzureIoTClient 28:add19eb7defa 16497 {
AzureIoTClient 28:add19eb7defa 16498 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16499 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16500 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16501 {
AzureIoTClient 23:1111ee8bcba4 16502 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16503 }
AzureIoTClient 23:1111ee8bcba4 16504 else
AzureIoTClient 23:1111ee8bcba4 16505 {
AzureIoTClient 23:1111ee8bcba4 16506 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 16507 {
AzureIoTClient 28:add19eb7defa 16508 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16509 }
AzureIoTClient 28:add19eb7defa 16510 else
AzureIoTClient 28:add19eb7defa 16511 {
AzureIoTClient 28:add19eb7defa 16512 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 16513 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16514 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16515 {
AzureIoTClient 28:add19eb7defa 16516 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16517 }
AzureIoTClient 28:add19eb7defa 16518 else
AzureIoTClient 28:add19eb7defa 16519 {
AzureIoTClient 43:4c1e4e94cdd3 16520 int get_single_value_result = amqpvalue_get_symbol(item_value, content_type_value);
AzureIoTClient 43:4c1e4e94cdd3 16521 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 16522 {
AzureIoTClient 28:add19eb7defa 16523 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16524 }
AzureIoTClient 28:add19eb7defa 16525 else
AzureIoTClient 28:add19eb7defa 16526 {
AzureIoTClient 28:add19eb7defa 16527 result = 0;
AzureIoTClient 28:add19eb7defa 16528 }
AzureIoTClient 28:add19eb7defa 16529 }
AzureIoTClient 28:add19eb7defa 16530 }
AzureIoTClient 28:add19eb7defa 16531 }
AzureIoTClient 28:add19eb7defa 16532 }
AzureIoTClient 28:add19eb7defa 16533
AzureIoTClient 28:add19eb7defa 16534 return result;
Azure.IoT Build 0:6ae2f7bca550 16535 }
Azure.IoT Build 0:6ae2f7bca550 16536
Azure.IoT Build 0:6ae2f7bca550 16537 int properties_set_content_type(PROPERTIES_HANDLE properties, const char* content_type_value)
Azure.IoT Build 0:6ae2f7bca550 16538 {
AzureIoTClient 28:add19eb7defa 16539 int result;
AzureIoTClient 28:add19eb7defa 16540
AzureIoTClient 28:add19eb7defa 16541 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16542 {
AzureIoTClient 28:add19eb7defa 16543 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16544 }
AzureIoTClient 28:add19eb7defa 16545 else
AzureIoTClient 28:add19eb7defa 16546 {
AzureIoTClient 28:add19eb7defa 16547 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16548 AMQP_VALUE content_type_amqp_value = amqpvalue_create_symbol(content_type_value);
AzureIoTClient 28:add19eb7defa 16549 if (content_type_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16550 {
AzureIoTClient 28:add19eb7defa 16551 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16552 }
AzureIoTClient 28:add19eb7defa 16553 else
AzureIoTClient 28:add19eb7defa 16554 {
AzureIoTClient 28:add19eb7defa 16555 if (amqpvalue_set_composite_item(properties_instance->composite_value, 6, content_type_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16556 {
AzureIoTClient 28:add19eb7defa 16557 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16558 }
AzureIoTClient 28:add19eb7defa 16559 else
AzureIoTClient 28:add19eb7defa 16560 {
AzureIoTClient 28:add19eb7defa 16561 result = 0;
AzureIoTClient 28:add19eb7defa 16562 }
AzureIoTClient 28:add19eb7defa 16563
AzureIoTClient 28:add19eb7defa 16564 amqpvalue_destroy(content_type_amqp_value);
AzureIoTClient 28:add19eb7defa 16565 }
AzureIoTClient 28:add19eb7defa 16566 }
AzureIoTClient 28:add19eb7defa 16567
AzureIoTClient 28:add19eb7defa 16568 return result;
Azure.IoT Build 0:6ae2f7bca550 16569 }
Azure.IoT Build 0:6ae2f7bca550 16570
Azure.IoT Build 0:6ae2f7bca550 16571 int properties_get_content_encoding(PROPERTIES_HANDLE properties, const char** content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 16572 {
AzureIoTClient 28:add19eb7defa 16573 int result;
AzureIoTClient 28:add19eb7defa 16574
AzureIoTClient 28:add19eb7defa 16575 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16576 {
AzureIoTClient 28:add19eb7defa 16577 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16578 }
AzureIoTClient 28:add19eb7defa 16579 else
AzureIoTClient 28:add19eb7defa 16580 {
AzureIoTClient 28:add19eb7defa 16581 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16582 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16583 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16584 {
AzureIoTClient 23:1111ee8bcba4 16585 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16586 }
AzureIoTClient 23:1111ee8bcba4 16587 else
AzureIoTClient 23:1111ee8bcba4 16588 {
AzureIoTClient 23:1111ee8bcba4 16589 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 16590 {
AzureIoTClient 28:add19eb7defa 16591 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16592 }
AzureIoTClient 28:add19eb7defa 16593 else
AzureIoTClient 28:add19eb7defa 16594 {
AzureIoTClient 28:add19eb7defa 16595 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 16596 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16597 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16598 {
AzureIoTClient 28:add19eb7defa 16599 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16600 }
AzureIoTClient 28:add19eb7defa 16601 else
AzureIoTClient 28:add19eb7defa 16602 {
AzureIoTClient 43:4c1e4e94cdd3 16603 int get_single_value_result = amqpvalue_get_symbol(item_value, content_encoding_value);
AzureIoTClient 43:4c1e4e94cdd3 16604 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 16605 {
AzureIoTClient 28:add19eb7defa 16606 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16607 }
AzureIoTClient 28:add19eb7defa 16608 else
AzureIoTClient 28:add19eb7defa 16609 {
AzureIoTClient 28:add19eb7defa 16610 result = 0;
AzureIoTClient 28:add19eb7defa 16611 }
AzureIoTClient 28:add19eb7defa 16612 }
AzureIoTClient 28:add19eb7defa 16613 }
AzureIoTClient 28:add19eb7defa 16614 }
AzureIoTClient 28:add19eb7defa 16615 }
AzureIoTClient 28:add19eb7defa 16616
AzureIoTClient 28:add19eb7defa 16617 return result;
Azure.IoT Build 0:6ae2f7bca550 16618 }
Azure.IoT Build 0:6ae2f7bca550 16619
Azure.IoT Build 0:6ae2f7bca550 16620 int properties_set_content_encoding(PROPERTIES_HANDLE properties, const char* content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 16621 {
AzureIoTClient 28:add19eb7defa 16622 int result;
AzureIoTClient 28:add19eb7defa 16623
AzureIoTClient 28:add19eb7defa 16624 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16625 {
AzureIoTClient 28:add19eb7defa 16626 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16627 }
AzureIoTClient 28:add19eb7defa 16628 else
AzureIoTClient 28:add19eb7defa 16629 {
AzureIoTClient 28:add19eb7defa 16630 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16631 AMQP_VALUE content_encoding_amqp_value = amqpvalue_create_symbol(content_encoding_value);
AzureIoTClient 28:add19eb7defa 16632 if (content_encoding_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16633 {
AzureIoTClient 28:add19eb7defa 16634 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16635 }
AzureIoTClient 28:add19eb7defa 16636 else
AzureIoTClient 28:add19eb7defa 16637 {
AzureIoTClient 28:add19eb7defa 16638 if (amqpvalue_set_composite_item(properties_instance->composite_value, 7, content_encoding_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16639 {
AzureIoTClient 28:add19eb7defa 16640 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16641 }
AzureIoTClient 28:add19eb7defa 16642 else
AzureIoTClient 28:add19eb7defa 16643 {
AzureIoTClient 28:add19eb7defa 16644 result = 0;
AzureIoTClient 28:add19eb7defa 16645 }
AzureIoTClient 28:add19eb7defa 16646
AzureIoTClient 28:add19eb7defa 16647 amqpvalue_destroy(content_encoding_amqp_value);
AzureIoTClient 28:add19eb7defa 16648 }
AzureIoTClient 28:add19eb7defa 16649 }
AzureIoTClient 28:add19eb7defa 16650
AzureIoTClient 28:add19eb7defa 16651 return result;
Azure.IoT Build 0:6ae2f7bca550 16652 }
Azure.IoT Build 0:6ae2f7bca550 16653
Azure.IoT Build 0:6ae2f7bca550 16654 int properties_get_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp* absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 16655 {
AzureIoTClient 28:add19eb7defa 16656 int result;
AzureIoTClient 28:add19eb7defa 16657
AzureIoTClient 28:add19eb7defa 16658 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16659 {
AzureIoTClient 28:add19eb7defa 16660 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16661 }
AzureIoTClient 28:add19eb7defa 16662 else
AzureIoTClient 28:add19eb7defa 16663 {
AzureIoTClient 28:add19eb7defa 16664 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16665 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16666 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16667 {
AzureIoTClient 23:1111ee8bcba4 16668 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16669 }
AzureIoTClient 23:1111ee8bcba4 16670 else
AzureIoTClient 23:1111ee8bcba4 16671 {
AzureIoTClient 23:1111ee8bcba4 16672 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 16673 {
AzureIoTClient 28:add19eb7defa 16674 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16675 }
AzureIoTClient 28:add19eb7defa 16676 else
AzureIoTClient 28:add19eb7defa 16677 {
AzureIoTClient 28:add19eb7defa 16678 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 16679 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16680 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16681 {
AzureIoTClient 28:add19eb7defa 16682 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16683 }
AzureIoTClient 28:add19eb7defa 16684 else
AzureIoTClient 28:add19eb7defa 16685 {
AzureIoTClient 43:4c1e4e94cdd3 16686 int get_single_value_result = amqpvalue_get_timestamp(item_value, absolute_expiry_time_value);
AzureIoTClient 43:4c1e4e94cdd3 16687 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 16688 {
AzureIoTClient 28:add19eb7defa 16689 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16690 }
AzureIoTClient 28:add19eb7defa 16691 else
AzureIoTClient 28:add19eb7defa 16692 {
AzureIoTClient 28:add19eb7defa 16693 result = 0;
AzureIoTClient 28:add19eb7defa 16694 }
AzureIoTClient 28:add19eb7defa 16695 }
AzureIoTClient 28:add19eb7defa 16696 }
AzureIoTClient 28:add19eb7defa 16697 }
AzureIoTClient 28:add19eb7defa 16698 }
AzureIoTClient 28:add19eb7defa 16699
AzureIoTClient 28:add19eb7defa 16700 return result;
Azure.IoT Build 0:6ae2f7bca550 16701 }
Azure.IoT Build 0:6ae2f7bca550 16702
Azure.IoT Build 0:6ae2f7bca550 16703 int properties_set_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 16704 {
AzureIoTClient 28:add19eb7defa 16705 int result;
AzureIoTClient 28:add19eb7defa 16706
AzureIoTClient 28:add19eb7defa 16707 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16708 {
AzureIoTClient 28:add19eb7defa 16709 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16710 }
AzureIoTClient 28:add19eb7defa 16711 else
AzureIoTClient 28:add19eb7defa 16712 {
AzureIoTClient 28:add19eb7defa 16713 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16714 AMQP_VALUE absolute_expiry_time_amqp_value = amqpvalue_create_timestamp(absolute_expiry_time_value);
AzureIoTClient 28:add19eb7defa 16715 if (absolute_expiry_time_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16716 {
AzureIoTClient 28:add19eb7defa 16717 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16718 }
AzureIoTClient 28:add19eb7defa 16719 else
AzureIoTClient 28:add19eb7defa 16720 {
AzureIoTClient 28:add19eb7defa 16721 if (amqpvalue_set_composite_item(properties_instance->composite_value, 8, absolute_expiry_time_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16722 {
AzureIoTClient 28:add19eb7defa 16723 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16724 }
AzureIoTClient 28:add19eb7defa 16725 else
AzureIoTClient 28:add19eb7defa 16726 {
AzureIoTClient 28:add19eb7defa 16727 result = 0;
AzureIoTClient 28:add19eb7defa 16728 }
AzureIoTClient 28:add19eb7defa 16729
AzureIoTClient 28:add19eb7defa 16730 amqpvalue_destroy(absolute_expiry_time_amqp_value);
AzureIoTClient 28:add19eb7defa 16731 }
AzureIoTClient 28:add19eb7defa 16732 }
AzureIoTClient 28:add19eb7defa 16733
AzureIoTClient 28:add19eb7defa 16734 return result;
Azure.IoT Build 0:6ae2f7bca550 16735 }
Azure.IoT Build 0:6ae2f7bca550 16736
Azure.IoT Build 0:6ae2f7bca550 16737 int properties_get_creation_time(PROPERTIES_HANDLE properties, timestamp* creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16738 {
AzureIoTClient 28:add19eb7defa 16739 int result;
AzureIoTClient 28:add19eb7defa 16740
AzureIoTClient 28:add19eb7defa 16741 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16742 {
AzureIoTClient 28:add19eb7defa 16743 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16744 }
AzureIoTClient 28:add19eb7defa 16745 else
AzureIoTClient 28:add19eb7defa 16746 {
AzureIoTClient 28:add19eb7defa 16747 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16748 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16749 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16750 {
AzureIoTClient 23:1111ee8bcba4 16751 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16752 }
AzureIoTClient 23:1111ee8bcba4 16753 else
AzureIoTClient 23:1111ee8bcba4 16754 {
AzureIoTClient 23:1111ee8bcba4 16755 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 16756 {
AzureIoTClient 28:add19eb7defa 16757 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16758 }
AzureIoTClient 28:add19eb7defa 16759 else
AzureIoTClient 28:add19eb7defa 16760 {
AzureIoTClient 28:add19eb7defa 16761 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 16762 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16763 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16764 {
AzureIoTClient 28:add19eb7defa 16765 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16766 }
AzureIoTClient 28:add19eb7defa 16767 else
AzureIoTClient 28:add19eb7defa 16768 {
AzureIoTClient 43:4c1e4e94cdd3 16769 int get_single_value_result = amqpvalue_get_timestamp(item_value, creation_time_value);
AzureIoTClient 43:4c1e4e94cdd3 16770 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 16771 {
AzureIoTClient 28:add19eb7defa 16772 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16773 }
AzureIoTClient 28:add19eb7defa 16774 else
AzureIoTClient 28:add19eb7defa 16775 {
AzureIoTClient 28:add19eb7defa 16776 result = 0;
AzureIoTClient 28:add19eb7defa 16777 }
AzureIoTClient 28:add19eb7defa 16778 }
AzureIoTClient 28:add19eb7defa 16779 }
AzureIoTClient 28:add19eb7defa 16780 }
AzureIoTClient 28:add19eb7defa 16781 }
AzureIoTClient 28:add19eb7defa 16782
AzureIoTClient 28:add19eb7defa 16783 return result;
Azure.IoT Build 0:6ae2f7bca550 16784 }
Azure.IoT Build 0:6ae2f7bca550 16785
Azure.IoT Build 0:6ae2f7bca550 16786 int properties_set_creation_time(PROPERTIES_HANDLE properties, timestamp creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16787 {
AzureIoTClient 28:add19eb7defa 16788 int result;
AzureIoTClient 28:add19eb7defa 16789
AzureIoTClient 28:add19eb7defa 16790 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16791 {
AzureIoTClient 28:add19eb7defa 16792 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16793 }
AzureIoTClient 28:add19eb7defa 16794 else
AzureIoTClient 28:add19eb7defa 16795 {
AzureIoTClient 28:add19eb7defa 16796 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16797 AMQP_VALUE creation_time_amqp_value = amqpvalue_create_timestamp(creation_time_value);
AzureIoTClient 28:add19eb7defa 16798 if (creation_time_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16799 {
AzureIoTClient 28:add19eb7defa 16800 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16801 }
AzureIoTClient 28:add19eb7defa 16802 else
AzureIoTClient 28:add19eb7defa 16803 {
AzureIoTClient 28:add19eb7defa 16804 if (amqpvalue_set_composite_item(properties_instance->composite_value, 9, creation_time_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16805 {
AzureIoTClient 28:add19eb7defa 16806 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16807 }
AzureIoTClient 28:add19eb7defa 16808 else
AzureIoTClient 28:add19eb7defa 16809 {
AzureIoTClient 28:add19eb7defa 16810 result = 0;
AzureIoTClient 28:add19eb7defa 16811 }
AzureIoTClient 28:add19eb7defa 16812
AzureIoTClient 28:add19eb7defa 16813 amqpvalue_destroy(creation_time_amqp_value);
AzureIoTClient 28:add19eb7defa 16814 }
AzureIoTClient 28:add19eb7defa 16815 }
AzureIoTClient 28:add19eb7defa 16816
AzureIoTClient 28:add19eb7defa 16817 return result;
Azure.IoT Build 0:6ae2f7bca550 16818 }
Azure.IoT Build 0:6ae2f7bca550 16819
Azure.IoT Build 0:6ae2f7bca550 16820 int properties_get_group_id(PROPERTIES_HANDLE properties, const char** group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16821 {
AzureIoTClient 28:add19eb7defa 16822 int result;
AzureIoTClient 28:add19eb7defa 16823
AzureIoTClient 28:add19eb7defa 16824 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16825 {
AzureIoTClient 28:add19eb7defa 16826 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16827 }
AzureIoTClient 28:add19eb7defa 16828 else
AzureIoTClient 28:add19eb7defa 16829 {
AzureIoTClient 28:add19eb7defa 16830 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16831 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16832 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16833 {
AzureIoTClient 23:1111ee8bcba4 16834 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16835 }
AzureIoTClient 23:1111ee8bcba4 16836 else
AzureIoTClient 23:1111ee8bcba4 16837 {
AzureIoTClient 23:1111ee8bcba4 16838 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 16839 {
AzureIoTClient 28:add19eb7defa 16840 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16841 }
AzureIoTClient 28:add19eb7defa 16842 else
AzureIoTClient 28:add19eb7defa 16843 {
AzureIoTClient 28:add19eb7defa 16844 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 16845 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16846 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16847 {
AzureIoTClient 28:add19eb7defa 16848 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16849 }
AzureIoTClient 28:add19eb7defa 16850 else
AzureIoTClient 28:add19eb7defa 16851 {
AzureIoTClient 43:4c1e4e94cdd3 16852 int get_single_value_result = amqpvalue_get_string(item_value, group_id_value);
AzureIoTClient 43:4c1e4e94cdd3 16853 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 16854 {
AzureIoTClient 28:add19eb7defa 16855 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16856 }
AzureIoTClient 28:add19eb7defa 16857 else
AzureIoTClient 28:add19eb7defa 16858 {
AzureIoTClient 28:add19eb7defa 16859 result = 0;
AzureIoTClient 28:add19eb7defa 16860 }
AzureIoTClient 28:add19eb7defa 16861 }
AzureIoTClient 28:add19eb7defa 16862 }
AzureIoTClient 28:add19eb7defa 16863 }
AzureIoTClient 28:add19eb7defa 16864 }
AzureIoTClient 28:add19eb7defa 16865
AzureIoTClient 28:add19eb7defa 16866 return result;
Azure.IoT Build 0:6ae2f7bca550 16867 }
Azure.IoT Build 0:6ae2f7bca550 16868
Azure.IoT Build 0:6ae2f7bca550 16869 int properties_set_group_id(PROPERTIES_HANDLE properties, const char* group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16870 {
AzureIoTClient 28:add19eb7defa 16871 int result;
AzureIoTClient 28:add19eb7defa 16872
AzureIoTClient 28:add19eb7defa 16873 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16874 {
AzureIoTClient 28:add19eb7defa 16875 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16876 }
AzureIoTClient 28:add19eb7defa 16877 else
AzureIoTClient 28:add19eb7defa 16878 {
AzureIoTClient 28:add19eb7defa 16879 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16880 AMQP_VALUE group_id_amqp_value = amqpvalue_create_string(group_id_value);
AzureIoTClient 28:add19eb7defa 16881 if (group_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16882 {
AzureIoTClient 28:add19eb7defa 16883 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16884 }
AzureIoTClient 28:add19eb7defa 16885 else
AzureIoTClient 28:add19eb7defa 16886 {
AzureIoTClient 28:add19eb7defa 16887 if (amqpvalue_set_composite_item(properties_instance->composite_value, 10, group_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16888 {
AzureIoTClient 28:add19eb7defa 16889 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16890 }
AzureIoTClient 28:add19eb7defa 16891 else
AzureIoTClient 28:add19eb7defa 16892 {
AzureIoTClient 28:add19eb7defa 16893 result = 0;
AzureIoTClient 28:add19eb7defa 16894 }
AzureIoTClient 28:add19eb7defa 16895
AzureIoTClient 28:add19eb7defa 16896 amqpvalue_destroy(group_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16897 }
AzureIoTClient 28:add19eb7defa 16898 }
AzureIoTClient 28:add19eb7defa 16899
AzureIoTClient 28:add19eb7defa 16900 return result;
Azure.IoT Build 0:6ae2f7bca550 16901 }
Azure.IoT Build 0:6ae2f7bca550 16902
Azure.IoT Build 0:6ae2f7bca550 16903 int properties_get_group_sequence(PROPERTIES_HANDLE properties, sequence_no* group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16904 {
AzureIoTClient 28:add19eb7defa 16905 int result;
AzureIoTClient 28:add19eb7defa 16906
AzureIoTClient 28:add19eb7defa 16907 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16908 {
AzureIoTClient 28:add19eb7defa 16909 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16910 }
AzureIoTClient 28:add19eb7defa 16911 else
AzureIoTClient 28:add19eb7defa 16912 {
AzureIoTClient 28:add19eb7defa 16913 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16914 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16915 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16916 {
AzureIoTClient 23:1111ee8bcba4 16917 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16918 }
AzureIoTClient 23:1111ee8bcba4 16919 else
AzureIoTClient 23:1111ee8bcba4 16920 {
AzureIoTClient 23:1111ee8bcba4 16921 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 16922 {
AzureIoTClient 28:add19eb7defa 16923 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16924 }
AzureIoTClient 28:add19eb7defa 16925 else
AzureIoTClient 28:add19eb7defa 16926 {
AzureIoTClient 28:add19eb7defa 16927 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 11);
AzureIoTClient 28:add19eb7defa 16928 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16929 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16930 {
AzureIoTClient 28:add19eb7defa 16931 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16932 }
AzureIoTClient 28:add19eb7defa 16933 else
AzureIoTClient 28:add19eb7defa 16934 {
AzureIoTClient 43:4c1e4e94cdd3 16935 int get_single_value_result = amqpvalue_get_sequence_no(item_value, group_sequence_value);
AzureIoTClient 43:4c1e4e94cdd3 16936 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 16937 {
AzureIoTClient 28:add19eb7defa 16938 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16939 }
AzureIoTClient 28:add19eb7defa 16940 else
AzureIoTClient 28:add19eb7defa 16941 {
AzureIoTClient 28:add19eb7defa 16942 result = 0;
AzureIoTClient 28:add19eb7defa 16943 }
AzureIoTClient 28:add19eb7defa 16944 }
AzureIoTClient 28:add19eb7defa 16945 }
AzureIoTClient 28:add19eb7defa 16946 }
AzureIoTClient 28:add19eb7defa 16947 }
AzureIoTClient 28:add19eb7defa 16948
AzureIoTClient 28:add19eb7defa 16949 return result;
Azure.IoT Build 0:6ae2f7bca550 16950 }
Azure.IoT Build 0:6ae2f7bca550 16951
Azure.IoT Build 0:6ae2f7bca550 16952 int properties_set_group_sequence(PROPERTIES_HANDLE properties, sequence_no group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16953 {
AzureIoTClient 28:add19eb7defa 16954 int result;
AzureIoTClient 28:add19eb7defa 16955
AzureIoTClient 28:add19eb7defa 16956 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16957 {
AzureIoTClient 28:add19eb7defa 16958 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16959 }
AzureIoTClient 28:add19eb7defa 16960 else
AzureIoTClient 28:add19eb7defa 16961 {
AzureIoTClient 28:add19eb7defa 16962 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16963 AMQP_VALUE group_sequence_amqp_value = amqpvalue_create_sequence_no(group_sequence_value);
AzureIoTClient 28:add19eb7defa 16964 if (group_sequence_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16965 {
AzureIoTClient 28:add19eb7defa 16966 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16967 }
AzureIoTClient 28:add19eb7defa 16968 else
AzureIoTClient 28:add19eb7defa 16969 {
AzureIoTClient 28:add19eb7defa 16970 if (amqpvalue_set_composite_item(properties_instance->composite_value, 11, group_sequence_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16971 {
AzureIoTClient 28:add19eb7defa 16972 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16973 }
AzureIoTClient 28:add19eb7defa 16974 else
AzureIoTClient 28:add19eb7defa 16975 {
AzureIoTClient 28:add19eb7defa 16976 result = 0;
AzureIoTClient 28:add19eb7defa 16977 }
AzureIoTClient 28:add19eb7defa 16978
AzureIoTClient 28:add19eb7defa 16979 amqpvalue_destroy(group_sequence_amqp_value);
AzureIoTClient 28:add19eb7defa 16980 }
AzureIoTClient 28:add19eb7defa 16981 }
AzureIoTClient 28:add19eb7defa 16982
AzureIoTClient 28:add19eb7defa 16983 return result;
Azure.IoT Build 0:6ae2f7bca550 16984 }
Azure.IoT Build 0:6ae2f7bca550 16985
Azure.IoT Build 0:6ae2f7bca550 16986 int properties_get_reply_to_group_id(PROPERTIES_HANDLE properties, const char** reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16987 {
AzureIoTClient 28:add19eb7defa 16988 int result;
AzureIoTClient 28:add19eb7defa 16989
AzureIoTClient 28:add19eb7defa 16990 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16991 {
AzureIoTClient 28:add19eb7defa 16992 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16993 }
AzureIoTClient 28:add19eb7defa 16994 else
AzureIoTClient 28:add19eb7defa 16995 {
AzureIoTClient 28:add19eb7defa 16996 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16997 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16998 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16999 {
AzureIoTClient 23:1111ee8bcba4 17000 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17001 }
AzureIoTClient 23:1111ee8bcba4 17002 else
AzureIoTClient 23:1111ee8bcba4 17003 {
AzureIoTClient 23:1111ee8bcba4 17004 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 17005 {
AzureIoTClient 28:add19eb7defa 17006 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17007 }
AzureIoTClient 28:add19eb7defa 17008 else
AzureIoTClient 28:add19eb7defa 17009 {
AzureIoTClient 28:add19eb7defa 17010 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 12);
AzureIoTClient 28:add19eb7defa 17011 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17012 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17013 {
AzureIoTClient 28:add19eb7defa 17014 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17015 }
AzureIoTClient 28:add19eb7defa 17016 else
AzureIoTClient 28:add19eb7defa 17017 {
AzureIoTClient 43:4c1e4e94cdd3 17018 int get_single_value_result = amqpvalue_get_string(item_value, reply_to_group_id_value);
AzureIoTClient 43:4c1e4e94cdd3 17019 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 17020 {
AzureIoTClient 28:add19eb7defa 17021 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17022 }
AzureIoTClient 28:add19eb7defa 17023 else
AzureIoTClient 28:add19eb7defa 17024 {
AzureIoTClient 28:add19eb7defa 17025 result = 0;
AzureIoTClient 28:add19eb7defa 17026 }
AzureIoTClient 28:add19eb7defa 17027 }
AzureIoTClient 28:add19eb7defa 17028 }
AzureIoTClient 28:add19eb7defa 17029 }
AzureIoTClient 28:add19eb7defa 17030 }
AzureIoTClient 28:add19eb7defa 17031
AzureIoTClient 28:add19eb7defa 17032 return result;
Azure.IoT Build 0:6ae2f7bca550 17033 }
Azure.IoT Build 0:6ae2f7bca550 17034
Azure.IoT Build 0:6ae2f7bca550 17035 int properties_set_reply_to_group_id(PROPERTIES_HANDLE properties, const char* reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 17036 {
AzureIoTClient 28:add19eb7defa 17037 int result;
AzureIoTClient 28:add19eb7defa 17038
AzureIoTClient 28:add19eb7defa 17039 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 17040 {
AzureIoTClient 28:add19eb7defa 17041 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17042 }
AzureIoTClient 28:add19eb7defa 17043 else
AzureIoTClient 28:add19eb7defa 17044 {
AzureIoTClient 28:add19eb7defa 17045 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 17046 AMQP_VALUE reply_to_group_id_amqp_value = amqpvalue_create_string(reply_to_group_id_value);
AzureIoTClient 28:add19eb7defa 17047 if (reply_to_group_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17048 {
AzureIoTClient 28:add19eb7defa 17049 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17050 }
AzureIoTClient 28:add19eb7defa 17051 else
AzureIoTClient 28:add19eb7defa 17052 {
AzureIoTClient 28:add19eb7defa 17053 if (amqpvalue_set_composite_item(properties_instance->composite_value, 12, reply_to_group_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17054 {
AzureIoTClient 28:add19eb7defa 17055 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17056 }
AzureIoTClient 28:add19eb7defa 17057 else
AzureIoTClient 28:add19eb7defa 17058 {
AzureIoTClient 28:add19eb7defa 17059 result = 0;
AzureIoTClient 28:add19eb7defa 17060 }
AzureIoTClient 28:add19eb7defa 17061
AzureIoTClient 28:add19eb7defa 17062 amqpvalue_destroy(reply_to_group_id_amqp_value);
AzureIoTClient 28:add19eb7defa 17063 }
AzureIoTClient 28:add19eb7defa 17064 }
AzureIoTClient 28:add19eb7defa 17065
AzureIoTClient 28:add19eb7defa 17066 return result;
Azure.IoT Build 0:6ae2f7bca550 17067 }
Azure.IoT Build 0:6ae2f7bca550 17068
Azure.IoT Build 0:6ae2f7bca550 17069
Azure.IoT Build 0:6ae2f7bca550 17070 /* received */
Azure.IoT Build 0:6ae2f7bca550 17071
Azure.IoT Build 0:6ae2f7bca550 17072 typedef struct RECEIVED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17073 {
AzureIoTClient 28:add19eb7defa 17074 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17075 } RECEIVED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17076
Azure.IoT Build 0:6ae2f7bca550 17077 static RECEIVED_HANDLE received_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17078 {
AzureIoTClient 28:add19eb7defa 17079 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17080 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17081 {
AzureIoTClient 28:add19eb7defa 17082 received_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17083 }
AzureIoTClient 28:add19eb7defa 17084
AzureIoTClient 28:add19eb7defa 17085 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17086 }
Azure.IoT Build 0:6ae2f7bca550 17087
Azure.IoT Build 0:6ae2f7bca550 17088 RECEIVED_HANDLE received_create(uint32_t section_number_value, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17089 {
AzureIoTClient 28:add19eb7defa 17090 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17091 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17092 {
AzureIoTClient 28:add19eb7defa 17093 received_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(35);
AzureIoTClient 28:add19eb7defa 17094 if (received_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17095 {
AzureIoTClient 28:add19eb7defa 17096 free(received_instance);
AzureIoTClient 28:add19eb7defa 17097 received_instance = NULL;
AzureIoTClient 28:add19eb7defa 17098 }
AzureIoTClient 28:add19eb7defa 17099 else
AzureIoTClient 28:add19eb7defa 17100 {
AzureIoTClient 28:add19eb7defa 17101 AMQP_VALUE section_number_amqp_value;
AzureIoTClient 28:add19eb7defa 17102 AMQP_VALUE section_offset_amqp_value;
AzureIoTClient 28:add19eb7defa 17103 int result = 0;
AzureIoTClient 28:add19eb7defa 17104
AzureIoTClient 28:add19eb7defa 17105 section_number_amqp_value = amqpvalue_create_uint(section_number_value);
AzureIoTClient 28:add19eb7defa 17106 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 17107 {
AzureIoTClient 28:add19eb7defa 17108 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17109 }
AzureIoTClient 28:add19eb7defa 17110 section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
AzureIoTClient 28:add19eb7defa 17111 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 17112 {
AzureIoTClient 28:add19eb7defa 17113 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17114 }
AzureIoTClient 28:add19eb7defa 17115
AzureIoTClient 28:add19eb7defa 17116 amqpvalue_destroy(section_number_amqp_value);
AzureIoTClient 28:add19eb7defa 17117 amqpvalue_destroy(section_offset_amqp_value);
AzureIoTClient 28:add19eb7defa 17118 }
AzureIoTClient 28:add19eb7defa 17119 }
AzureIoTClient 28:add19eb7defa 17120
AzureIoTClient 28:add19eb7defa 17121 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17122 }
Azure.IoT Build 0:6ae2f7bca550 17123
Azure.IoT Build 0:6ae2f7bca550 17124 RECEIVED_HANDLE received_clone(RECEIVED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17125 {
AzureIoTClient 28:add19eb7defa 17126 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17127 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17128 {
AzureIoTClient 28:add19eb7defa 17129 received_instance->composite_value = amqpvalue_clone(((RECEIVED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17130 if (received_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17131 {
AzureIoTClient 28:add19eb7defa 17132 free(received_instance);
AzureIoTClient 28:add19eb7defa 17133 received_instance = NULL;
AzureIoTClient 28:add19eb7defa 17134 }
AzureIoTClient 28:add19eb7defa 17135 }
AzureIoTClient 28:add19eb7defa 17136
AzureIoTClient 28:add19eb7defa 17137 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17138 }
Azure.IoT Build 0:6ae2f7bca550 17139
Azure.IoT Build 0:6ae2f7bca550 17140 void received_destroy(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 17141 {
AzureIoTClient 28:add19eb7defa 17142 if (received != NULL)
AzureIoTClient 28:add19eb7defa 17143 {
AzureIoTClient 28:add19eb7defa 17144 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17145 amqpvalue_destroy(received_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17146 free(received_instance);
AzureIoTClient 28:add19eb7defa 17147 }
Azure.IoT Build 0:6ae2f7bca550 17148 }
Azure.IoT Build 0:6ae2f7bca550 17149
Azure.IoT Build 0:6ae2f7bca550 17150 AMQP_VALUE amqpvalue_create_received(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 17151 {
AzureIoTClient 28:add19eb7defa 17152 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17153
AzureIoTClient 28:add19eb7defa 17154 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17155 {
AzureIoTClient 28:add19eb7defa 17156 result = NULL;
AzureIoTClient 28:add19eb7defa 17157 }
AzureIoTClient 28:add19eb7defa 17158 else
AzureIoTClient 28:add19eb7defa 17159 {
AzureIoTClient 28:add19eb7defa 17160 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17161 result = amqpvalue_clone(received_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17162 }
AzureIoTClient 28:add19eb7defa 17163
AzureIoTClient 28:add19eb7defa 17164 return result;
Azure.IoT Build 0:6ae2f7bca550 17165 }
Azure.IoT Build 0:6ae2f7bca550 17166
Azure.IoT Build 0:6ae2f7bca550 17167 bool is_received_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17168 {
AzureIoTClient 28:add19eb7defa 17169 bool result;
AzureIoTClient 28:add19eb7defa 17170
AzureIoTClient 28:add19eb7defa 17171 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17172 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17173 (descriptor_ulong == 35))
AzureIoTClient 28:add19eb7defa 17174 {
AzureIoTClient 28:add19eb7defa 17175 result = true;
AzureIoTClient 28:add19eb7defa 17176 }
AzureIoTClient 28:add19eb7defa 17177 else
AzureIoTClient 28:add19eb7defa 17178 {
AzureIoTClient 28:add19eb7defa 17179 result = false;
AzureIoTClient 28:add19eb7defa 17180 }
AzureIoTClient 28:add19eb7defa 17181
AzureIoTClient 28:add19eb7defa 17182 return result;
Azure.IoT Build 0:6ae2f7bca550 17183 }
Azure.IoT Build 0:6ae2f7bca550 17184
Azure.IoT Build 0:6ae2f7bca550 17185
Azure.IoT Build 0:6ae2f7bca550 17186 int amqpvalue_get_received(AMQP_VALUE value, RECEIVED_HANDLE* received_handle)
Azure.IoT Build 0:6ae2f7bca550 17187 {
AzureIoTClient 28:add19eb7defa 17188 int result;
AzureIoTClient 28:add19eb7defa 17189 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received_create_internal();
AzureIoTClient 28:add19eb7defa 17190 *received_handle = received_instance;
AzureIoTClient 28:add19eb7defa 17191 if (*received_handle == NULL)
AzureIoTClient 28:add19eb7defa 17192 {
AzureIoTClient 28:add19eb7defa 17193 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17194 }
AzureIoTClient 28:add19eb7defa 17195 else
AzureIoTClient 28:add19eb7defa 17196 {
AzureIoTClient 28:add19eb7defa 17197 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17198 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17199 {
AzureIoTClient 28:add19eb7defa 17200 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17201 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17202 }
AzureIoTClient 28:add19eb7defa 17203 else
AzureIoTClient 28:add19eb7defa 17204 {
AzureIoTClient 23:1111ee8bcba4 17205 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17206 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17207 {
AzureIoTClient 23:1111ee8bcba4 17208 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17209 }
AzureIoTClient 23:1111ee8bcba4 17210 else
AzureIoTClient 23:1111ee8bcba4 17211 {
AzureIoTClient 28:add19eb7defa 17212 do
AzureIoTClient 28:add19eb7defa 17213 {
AzureIoTClient 28:add19eb7defa 17214 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17215 /* section-number */
AzureIoTClient 28:add19eb7defa 17216 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17217 {
AzureIoTClient 23:1111ee8bcba4 17218 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17219 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17220 {
AzureIoTClient 28:add19eb7defa 17221 {
AzureIoTClient 28:add19eb7defa 17222 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17223 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17224 break;
AzureIoTClient 28:add19eb7defa 17225 }
AzureIoTClient 28:add19eb7defa 17226 }
AzureIoTClient 28:add19eb7defa 17227 else
AzureIoTClient 28:add19eb7defa 17228 {
AzureIoTClient 28:add19eb7defa 17229 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17230 {
AzureIoTClient 28:add19eb7defa 17231 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17232 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17233 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17234 break;
AzureIoTClient 28:add19eb7defa 17235 }
AzureIoTClient 28:add19eb7defa 17236 else
AzureIoTClient 28:add19eb7defa 17237 {
AzureIoTClient 28:add19eb7defa 17238 uint32_t section_number;
AzureIoTClient 28:add19eb7defa 17239 if (amqpvalue_get_uint(item_value, &section_number) != 0)
AzureIoTClient 28:add19eb7defa 17240 {
AzureIoTClient 28:add19eb7defa 17241 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17242 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17243 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17244 break;
AzureIoTClient 28:add19eb7defa 17245 }
AzureIoTClient 28:add19eb7defa 17246 }
AzureIoTClient 28:add19eb7defa 17247
AzureIoTClient 28:add19eb7defa 17248 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17249 }
AzureIoTClient 28:add19eb7defa 17250 }
AzureIoTClient 28:add19eb7defa 17251 else
AzureIoTClient 28:add19eb7defa 17252 {
AzureIoTClient 28:add19eb7defa 17253 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17254 }
AzureIoTClient 28:add19eb7defa 17255 /* section-offset */
AzureIoTClient 28:add19eb7defa 17256 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 17257 {
AzureIoTClient 23:1111ee8bcba4 17258 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 17259 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17260 {
AzureIoTClient 28:add19eb7defa 17261 {
AzureIoTClient 28:add19eb7defa 17262 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17263 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17264 break;
AzureIoTClient 28:add19eb7defa 17265 }
AzureIoTClient 28:add19eb7defa 17266 }
AzureIoTClient 28:add19eb7defa 17267 else
AzureIoTClient 28:add19eb7defa 17268 {
AzureIoTClient 28:add19eb7defa 17269 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17270 {
AzureIoTClient 28:add19eb7defa 17271 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17272 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17273 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17274 break;
AzureIoTClient 28:add19eb7defa 17275 }
AzureIoTClient 28:add19eb7defa 17276 else
AzureIoTClient 28:add19eb7defa 17277 {
AzureIoTClient 28:add19eb7defa 17278 uint64_t section_offset;
AzureIoTClient 28:add19eb7defa 17279 if (amqpvalue_get_ulong(item_value, &section_offset) != 0)
AzureIoTClient 28:add19eb7defa 17280 {
AzureIoTClient 28:add19eb7defa 17281 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17282 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17283 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17284 break;
AzureIoTClient 28:add19eb7defa 17285 }
AzureIoTClient 28:add19eb7defa 17286 }
AzureIoTClient 28:add19eb7defa 17287
AzureIoTClient 28:add19eb7defa 17288 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17289 }
AzureIoTClient 28:add19eb7defa 17290 }
AzureIoTClient 28:add19eb7defa 17291 else
AzureIoTClient 28:add19eb7defa 17292 {
AzureIoTClient 28:add19eb7defa 17293 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17294 }
AzureIoTClient 28:add19eb7defa 17295
AzureIoTClient 28:add19eb7defa 17296 received_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17297
AzureIoTClient 28:add19eb7defa 17298 result = 0;
AzureIoTClient 28:add19eb7defa 17299 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17300 }
AzureIoTClient 28:add19eb7defa 17301 }
AzureIoTClient 28:add19eb7defa 17302 }
AzureIoTClient 28:add19eb7defa 17303
AzureIoTClient 28:add19eb7defa 17304 return result;
Azure.IoT Build 0:6ae2f7bca550 17305 }
Azure.IoT Build 0:6ae2f7bca550 17306
Azure.IoT Build 0:6ae2f7bca550 17307 int received_get_section_number(RECEIVED_HANDLE received, uint32_t* section_number_value)
Azure.IoT Build 0:6ae2f7bca550 17308 {
AzureIoTClient 28:add19eb7defa 17309 int result;
AzureIoTClient 28:add19eb7defa 17310
AzureIoTClient 28:add19eb7defa 17311 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17312 {
AzureIoTClient 28:add19eb7defa 17313 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17314 }
AzureIoTClient 28:add19eb7defa 17315 else
AzureIoTClient 28:add19eb7defa 17316 {
AzureIoTClient 28:add19eb7defa 17317 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17318 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 17319 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17320 {
AzureIoTClient 23:1111ee8bcba4 17321 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17322 }
AzureIoTClient 23:1111ee8bcba4 17323 else
AzureIoTClient 23:1111ee8bcba4 17324 {
AzureIoTClient 23:1111ee8bcba4 17325 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17326 {
AzureIoTClient 28:add19eb7defa 17327 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17328 }
AzureIoTClient 28:add19eb7defa 17329 else
AzureIoTClient 28:add19eb7defa 17330 {
AzureIoTClient 28:add19eb7defa 17331 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 17332 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17333 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17334 {
AzureIoTClient 28:add19eb7defa 17335 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17336 }
AzureIoTClient 28:add19eb7defa 17337 else
AzureIoTClient 28:add19eb7defa 17338 {
AzureIoTClient 43:4c1e4e94cdd3 17339 int get_single_value_result = amqpvalue_get_uint(item_value, section_number_value);
AzureIoTClient 43:4c1e4e94cdd3 17340 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 17341 {
AzureIoTClient 28:add19eb7defa 17342 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17343 }
AzureIoTClient 28:add19eb7defa 17344 else
AzureIoTClient 28:add19eb7defa 17345 {
AzureIoTClient 28:add19eb7defa 17346 result = 0;
AzureIoTClient 28:add19eb7defa 17347 }
AzureIoTClient 28:add19eb7defa 17348 }
AzureIoTClient 28:add19eb7defa 17349 }
AzureIoTClient 28:add19eb7defa 17350 }
AzureIoTClient 28:add19eb7defa 17351 }
AzureIoTClient 28:add19eb7defa 17352
AzureIoTClient 28:add19eb7defa 17353 return result;
Azure.IoT Build 0:6ae2f7bca550 17354 }
Azure.IoT Build 0:6ae2f7bca550 17355
Azure.IoT Build 0:6ae2f7bca550 17356 int received_set_section_number(RECEIVED_HANDLE received, uint32_t section_number_value)
Azure.IoT Build 0:6ae2f7bca550 17357 {
AzureIoTClient 28:add19eb7defa 17358 int result;
AzureIoTClient 28:add19eb7defa 17359
AzureIoTClient 28:add19eb7defa 17360 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17361 {
AzureIoTClient 28:add19eb7defa 17362 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17363 }
AzureIoTClient 28:add19eb7defa 17364 else
AzureIoTClient 28:add19eb7defa 17365 {
AzureIoTClient 28:add19eb7defa 17366 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17367 AMQP_VALUE section_number_amqp_value = amqpvalue_create_uint(section_number_value);
AzureIoTClient 28:add19eb7defa 17368 if (section_number_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17369 {
AzureIoTClient 28:add19eb7defa 17370 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17371 }
AzureIoTClient 28:add19eb7defa 17372 else
AzureIoTClient 28:add19eb7defa 17373 {
AzureIoTClient 28:add19eb7defa 17374 if (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17375 {
AzureIoTClient 28:add19eb7defa 17376 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17377 }
AzureIoTClient 28:add19eb7defa 17378 else
AzureIoTClient 28:add19eb7defa 17379 {
AzureIoTClient 28:add19eb7defa 17380 result = 0;
AzureIoTClient 28:add19eb7defa 17381 }
AzureIoTClient 28:add19eb7defa 17382
AzureIoTClient 28:add19eb7defa 17383 amqpvalue_destroy(section_number_amqp_value);
AzureIoTClient 28:add19eb7defa 17384 }
AzureIoTClient 28:add19eb7defa 17385 }
AzureIoTClient 28:add19eb7defa 17386
AzureIoTClient 28:add19eb7defa 17387 return result;
Azure.IoT Build 0:6ae2f7bca550 17388 }
Azure.IoT Build 0:6ae2f7bca550 17389
Azure.IoT Build 0:6ae2f7bca550 17390 int received_get_section_offset(RECEIVED_HANDLE received, uint64_t* section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17391 {
AzureIoTClient 28:add19eb7defa 17392 int result;
AzureIoTClient 28:add19eb7defa 17393
AzureIoTClient 28:add19eb7defa 17394 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17395 {
AzureIoTClient 28:add19eb7defa 17396 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17397 }
AzureIoTClient 28:add19eb7defa 17398 else
AzureIoTClient 28:add19eb7defa 17399 {
AzureIoTClient 28:add19eb7defa 17400 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17401 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 17402 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17403 {
AzureIoTClient 23:1111ee8bcba4 17404 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17405 }
AzureIoTClient 23:1111ee8bcba4 17406 else
AzureIoTClient 23:1111ee8bcba4 17407 {
AzureIoTClient 23:1111ee8bcba4 17408 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 17409 {
AzureIoTClient 28:add19eb7defa 17410 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17411 }
AzureIoTClient 28:add19eb7defa 17412 else
AzureIoTClient 28:add19eb7defa 17413 {
AzureIoTClient 28:add19eb7defa 17414 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 17415 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17416 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17417 {
AzureIoTClient 28:add19eb7defa 17418 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17419 }
AzureIoTClient 28:add19eb7defa 17420 else
AzureIoTClient 28:add19eb7defa 17421 {
AzureIoTClient 43:4c1e4e94cdd3 17422 int get_single_value_result = amqpvalue_get_ulong(item_value, section_offset_value);
AzureIoTClient 43:4c1e4e94cdd3 17423 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 17424 {
AzureIoTClient 28:add19eb7defa 17425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17426 }
AzureIoTClient 28:add19eb7defa 17427 else
AzureIoTClient 28:add19eb7defa 17428 {
AzureIoTClient 28:add19eb7defa 17429 result = 0;
AzureIoTClient 28:add19eb7defa 17430 }
AzureIoTClient 28:add19eb7defa 17431 }
AzureIoTClient 28:add19eb7defa 17432 }
AzureIoTClient 28:add19eb7defa 17433 }
AzureIoTClient 28:add19eb7defa 17434 }
AzureIoTClient 28:add19eb7defa 17435
AzureIoTClient 28:add19eb7defa 17436 return result;
Azure.IoT Build 0:6ae2f7bca550 17437 }
Azure.IoT Build 0:6ae2f7bca550 17438
Azure.IoT Build 0:6ae2f7bca550 17439 int received_set_section_offset(RECEIVED_HANDLE received, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17440 {
AzureIoTClient 28:add19eb7defa 17441 int result;
AzureIoTClient 28:add19eb7defa 17442
AzureIoTClient 28:add19eb7defa 17443 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17444 {
AzureIoTClient 28:add19eb7defa 17445 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17446 }
AzureIoTClient 28:add19eb7defa 17447 else
AzureIoTClient 28:add19eb7defa 17448 {
AzureIoTClient 28:add19eb7defa 17449 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17450 AMQP_VALUE section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
AzureIoTClient 28:add19eb7defa 17451 if (section_offset_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17452 {
AzureIoTClient 28:add19eb7defa 17453 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17454 }
AzureIoTClient 28:add19eb7defa 17455 else
AzureIoTClient 28:add19eb7defa 17456 {
AzureIoTClient 28:add19eb7defa 17457 if (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17458 {
AzureIoTClient 28:add19eb7defa 17459 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17460 }
AzureIoTClient 28:add19eb7defa 17461 else
AzureIoTClient 28:add19eb7defa 17462 {
AzureIoTClient 28:add19eb7defa 17463 result = 0;
AzureIoTClient 28:add19eb7defa 17464 }
AzureIoTClient 28:add19eb7defa 17465
AzureIoTClient 28:add19eb7defa 17466 amqpvalue_destroy(section_offset_amqp_value);
AzureIoTClient 28:add19eb7defa 17467 }
AzureIoTClient 28:add19eb7defa 17468 }
AzureIoTClient 28:add19eb7defa 17469
AzureIoTClient 28:add19eb7defa 17470 return result;
Azure.IoT Build 0:6ae2f7bca550 17471 }
Azure.IoT Build 0:6ae2f7bca550 17472
Azure.IoT Build 0:6ae2f7bca550 17473
Azure.IoT Build 0:6ae2f7bca550 17474 /* accepted */
Azure.IoT Build 0:6ae2f7bca550 17475
Azure.IoT Build 0:6ae2f7bca550 17476 typedef struct ACCEPTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17477 {
AzureIoTClient 28:add19eb7defa 17478 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17479 } ACCEPTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17480
Azure.IoT Build 0:6ae2f7bca550 17481 static ACCEPTED_HANDLE accepted_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17482 {
AzureIoTClient 28:add19eb7defa 17483 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17484 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17485 {
AzureIoTClient 28:add19eb7defa 17486 accepted_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17487 }
AzureIoTClient 28:add19eb7defa 17488
AzureIoTClient 28:add19eb7defa 17489 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17490 }
Azure.IoT Build 0:6ae2f7bca550 17491
Azure.IoT Build 0:6ae2f7bca550 17492 ACCEPTED_HANDLE accepted_create(void)
Azure.IoT Build 0:6ae2f7bca550 17493 {
AzureIoTClient 28:add19eb7defa 17494 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17495 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17496 {
AzureIoTClient 28:add19eb7defa 17497 accepted_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(36);
AzureIoTClient 28:add19eb7defa 17498 if (accepted_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17499 {
AzureIoTClient 28:add19eb7defa 17500 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17501 accepted_instance = NULL;
AzureIoTClient 28:add19eb7defa 17502 }
AzureIoTClient 28:add19eb7defa 17503 }
AzureIoTClient 28:add19eb7defa 17504
AzureIoTClient 28:add19eb7defa 17505 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17506 }
Azure.IoT Build 0:6ae2f7bca550 17507
Azure.IoT Build 0:6ae2f7bca550 17508 ACCEPTED_HANDLE accepted_clone(ACCEPTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17509 {
AzureIoTClient 28:add19eb7defa 17510 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17511 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17512 {
AzureIoTClient 28:add19eb7defa 17513 accepted_instance->composite_value = amqpvalue_clone(((ACCEPTED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17514 if (accepted_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17515 {
AzureIoTClient 28:add19eb7defa 17516 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17517 accepted_instance = NULL;
AzureIoTClient 28:add19eb7defa 17518 }
AzureIoTClient 28:add19eb7defa 17519 }
AzureIoTClient 28:add19eb7defa 17520
AzureIoTClient 28:add19eb7defa 17521 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17522 }
Azure.IoT Build 0:6ae2f7bca550 17523
Azure.IoT Build 0:6ae2f7bca550 17524 void accepted_destroy(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 17525 {
AzureIoTClient 28:add19eb7defa 17526 if (accepted != NULL)
AzureIoTClient 28:add19eb7defa 17527 {
AzureIoTClient 28:add19eb7defa 17528 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
AzureIoTClient 28:add19eb7defa 17529 amqpvalue_destroy(accepted_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17530 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17531 }
Azure.IoT Build 0:6ae2f7bca550 17532 }
Azure.IoT Build 0:6ae2f7bca550 17533
Azure.IoT Build 0:6ae2f7bca550 17534 AMQP_VALUE amqpvalue_create_accepted(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 17535 {
AzureIoTClient 28:add19eb7defa 17536 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17537
AzureIoTClient 28:add19eb7defa 17538 if (accepted == NULL)
AzureIoTClient 28:add19eb7defa 17539 {
AzureIoTClient 28:add19eb7defa 17540 result = NULL;
AzureIoTClient 28:add19eb7defa 17541 }
AzureIoTClient 28:add19eb7defa 17542 else
AzureIoTClient 28:add19eb7defa 17543 {
AzureIoTClient 28:add19eb7defa 17544 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
AzureIoTClient 28:add19eb7defa 17545 result = amqpvalue_clone(accepted_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17546 }
AzureIoTClient 28:add19eb7defa 17547
AzureIoTClient 28:add19eb7defa 17548 return result;
Azure.IoT Build 0:6ae2f7bca550 17549 }
Azure.IoT Build 0:6ae2f7bca550 17550
Azure.IoT Build 0:6ae2f7bca550 17551 bool is_accepted_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17552 {
AzureIoTClient 28:add19eb7defa 17553 bool result;
AzureIoTClient 28:add19eb7defa 17554
AzureIoTClient 28:add19eb7defa 17555 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17556 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17557 (descriptor_ulong == 36))
AzureIoTClient 28:add19eb7defa 17558 {
AzureIoTClient 28:add19eb7defa 17559 result = true;
AzureIoTClient 28:add19eb7defa 17560 }
AzureIoTClient 28:add19eb7defa 17561 else
AzureIoTClient 28:add19eb7defa 17562 {
AzureIoTClient 28:add19eb7defa 17563 result = false;
AzureIoTClient 28:add19eb7defa 17564 }
AzureIoTClient 28:add19eb7defa 17565
AzureIoTClient 28:add19eb7defa 17566 return result;
Azure.IoT Build 0:6ae2f7bca550 17567 }
Azure.IoT Build 0:6ae2f7bca550 17568
Azure.IoT Build 0:6ae2f7bca550 17569
Azure.IoT Build 0:6ae2f7bca550 17570 int amqpvalue_get_accepted(AMQP_VALUE value, ACCEPTED_HANDLE* accepted_handle)
Azure.IoT Build 0:6ae2f7bca550 17571 {
AzureIoTClient 28:add19eb7defa 17572 int result;
AzureIoTClient 28:add19eb7defa 17573 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted_create_internal();
AzureIoTClient 28:add19eb7defa 17574 *accepted_handle = accepted_instance;
AzureIoTClient 28:add19eb7defa 17575 if (*accepted_handle == NULL)
AzureIoTClient 28:add19eb7defa 17576 {
AzureIoTClient 28:add19eb7defa 17577 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17578 }
AzureIoTClient 28:add19eb7defa 17579 else
AzureIoTClient 28:add19eb7defa 17580 {
AzureIoTClient 28:add19eb7defa 17581 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17582 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17583 {
AzureIoTClient 28:add19eb7defa 17584 accepted_destroy(*accepted_handle);
AzureIoTClient 28:add19eb7defa 17585 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17586 }
AzureIoTClient 28:add19eb7defa 17587 else
AzureIoTClient 28:add19eb7defa 17588 {
AzureIoTClient 23:1111ee8bcba4 17589 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17590 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17591 {
AzureIoTClient 23:1111ee8bcba4 17592 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17593 }
AzureIoTClient 23:1111ee8bcba4 17594 else
AzureIoTClient 23:1111ee8bcba4 17595 {
AzureIoTClient 28:add19eb7defa 17596 do
AzureIoTClient 28:add19eb7defa 17597 {
AzureIoTClient 28:add19eb7defa 17598
AzureIoTClient 28:add19eb7defa 17599 accepted_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17600
AzureIoTClient 28:add19eb7defa 17601 result = 0;
AzureIoTClient 28:add19eb7defa 17602 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17603 }
AzureIoTClient 28:add19eb7defa 17604 }
AzureIoTClient 28:add19eb7defa 17605 }
AzureIoTClient 28:add19eb7defa 17606
AzureIoTClient 28:add19eb7defa 17607 return result;
Azure.IoT Build 0:6ae2f7bca550 17608 }
Azure.IoT Build 0:6ae2f7bca550 17609
Azure.IoT Build 0:6ae2f7bca550 17610
Azure.IoT Build 0:6ae2f7bca550 17611 /* rejected */
Azure.IoT Build 0:6ae2f7bca550 17612
Azure.IoT Build 0:6ae2f7bca550 17613 typedef struct REJECTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17614 {
AzureIoTClient 28:add19eb7defa 17615 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17616 } REJECTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17617
Azure.IoT Build 0:6ae2f7bca550 17618 static REJECTED_HANDLE rejected_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17619 {
AzureIoTClient 28:add19eb7defa 17620 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17621 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17622 {
AzureIoTClient 28:add19eb7defa 17623 rejected_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17624 }
AzureIoTClient 28:add19eb7defa 17625
AzureIoTClient 28:add19eb7defa 17626 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17627 }
Azure.IoT Build 0:6ae2f7bca550 17628
Azure.IoT Build 0:6ae2f7bca550 17629 REJECTED_HANDLE rejected_create(void)
Azure.IoT Build 0:6ae2f7bca550 17630 {
AzureIoTClient 28:add19eb7defa 17631 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17632 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17633 {
AzureIoTClient 28:add19eb7defa 17634 rejected_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(37);
AzureIoTClient 28:add19eb7defa 17635 if (rejected_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17636 {
AzureIoTClient 28:add19eb7defa 17637 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17638 rejected_instance = NULL;
AzureIoTClient 28:add19eb7defa 17639 }
AzureIoTClient 28:add19eb7defa 17640 }
AzureIoTClient 28:add19eb7defa 17641
AzureIoTClient 28:add19eb7defa 17642 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17643 }
Azure.IoT Build 0:6ae2f7bca550 17644
Azure.IoT Build 0:6ae2f7bca550 17645 REJECTED_HANDLE rejected_clone(REJECTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17646 {
AzureIoTClient 28:add19eb7defa 17647 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17648 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17649 {
AzureIoTClient 28:add19eb7defa 17650 rejected_instance->composite_value = amqpvalue_clone(((REJECTED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17651 if (rejected_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17652 {
AzureIoTClient 28:add19eb7defa 17653 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17654 rejected_instance = NULL;
AzureIoTClient 28:add19eb7defa 17655 }
AzureIoTClient 28:add19eb7defa 17656 }
AzureIoTClient 28:add19eb7defa 17657
AzureIoTClient 28:add19eb7defa 17658 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17659 }
Azure.IoT Build 0:6ae2f7bca550 17660
Azure.IoT Build 0:6ae2f7bca550 17661 void rejected_destroy(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 17662 {
AzureIoTClient 28:add19eb7defa 17663 if (rejected != NULL)
AzureIoTClient 28:add19eb7defa 17664 {
AzureIoTClient 28:add19eb7defa 17665 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17666 amqpvalue_destroy(rejected_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17667 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17668 }
Azure.IoT Build 0:6ae2f7bca550 17669 }
Azure.IoT Build 0:6ae2f7bca550 17670
Azure.IoT Build 0:6ae2f7bca550 17671 AMQP_VALUE amqpvalue_create_rejected(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 17672 {
AzureIoTClient 28:add19eb7defa 17673 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17674
AzureIoTClient 28:add19eb7defa 17675 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17676 {
AzureIoTClient 28:add19eb7defa 17677 result = NULL;
AzureIoTClient 28:add19eb7defa 17678 }
AzureIoTClient 28:add19eb7defa 17679 else
AzureIoTClient 28:add19eb7defa 17680 {
AzureIoTClient 28:add19eb7defa 17681 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17682 result = amqpvalue_clone(rejected_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17683 }
AzureIoTClient 28:add19eb7defa 17684
AzureIoTClient 28:add19eb7defa 17685 return result;
Azure.IoT Build 0:6ae2f7bca550 17686 }
Azure.IoT Build 0:6ae2f7bca550 17687
Azure.IoT Build 0:6ae2f7bca550 17688 bool is_rejected_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17689 {
AzureIoTClient 28:add19eb7defa 17690 bool result;
AzureIoTClient 28:add19eb7defa 17691
AzureIoTClient 28:add19eb7defa 17692 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17693 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17694 (descriptor_ulong == 37))
AzureIoTClient 28:add19eb7defa 17695 {
AzureIoTClient 28:add19eb7defa 17696 result = true;
AzureIoTClient 28:add19eb7defa 17697 }
AzureIoTClient 28:add19eb7defa 17698 else
AzureIoTClient 28:add19eb7defa 17699 {
AzureIoTClient 28:add19eb7defa 17700 result = false;
AzureIoTClient 28:add19eb7defa 17701 }
AzureIoTClient 28:add19eb7defa 17702
AzureIoTClient 28:add19eb7defa 17703 return result;
Azure.IoT Build 0:6ae2f7bca550 17704 }
Azure.IoT Build 0:6ae2f7bca550 17705
Azure.IoT Build 0:6ae2f7bca550 17706
Azure.IoT Build 0:6ae2f7bca550 17707 int amqpvalue_get_rejected(AMQP_VALUE value, REJECTED_HANDLE* rejected_handle)
Azure.IoT Build 0:6ae2f7bca550 17708 {
AzureIoTClient 28:add19eb7defa 17709 int result;
AzureIoTClient 28:add19eb7defa 17710 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected_create_internal();
AzureIoTClient 28:add19eb7defa 17711 *rejected_handle = rejected_instance;
AzureIoTClient 28:add19eb7defa 17712 if (*rejected_handle == NULL)
AzureIoTClient 28:add19eb7defa 17713 {
AzureIoTClient 28:add19eb7defa 17714 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17715 }
AzureIoTClient 28:add19eb7defa 17716 else
AzureIoTClient 28:add19eb7defa 17717 {
AzureIoTClient 28:add19eb7defa 17718 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17719 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17720 {
AzureIoTClient 28:add19eb7defa 17721 rejected_destroy(*rejected_handle);
AzureIoTClient 28:add19eb7defa 17722 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17723 }
AzureIoTClient 28:add19eb7defa 17724 else
AzureIoTClient 28:add19eb7defa 17725 {
AzureIoTClient 23:1111ee8bcba4 17726 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17727 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17728 {
AzureIoTClient 23:1111ee8bcba4 17729 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17730 }
AzureIoTClient 23:1111ee8bcba4 17731 else
AzureIoTClient 23:1111ee8bcba4 17732 {
AzureIoTClient 28:add19eb7defa 17733 do
AzureIoTClient 28:add19eb7defa 17734 {
AzureIoTClient 28:add19eb7defa 17735 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17736 /* error */
AzureIoTClient 28:add19eb7defa 17737 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17738 {
AzureIoTClient 23:1111ee8bcba4 17739 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17740 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17741 {
AzureIoTClient 28:add19eb7defa 17742 /* do nothing */
AzureIoTClient 28:add19eb7defa 17743 }
AzureIoTClient 28:add19eb7defa 17744 else
AzureIoTClient 28:add19eb7defa 17745 {
AzureIoTClient 28:add19eb7defa 17746 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17747 {
AzureIoTClient 28:add19eb7defa 17748 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 17749 }
AzureIoTClient 28:add19eb7defa 17750 else
AzureIoTClient 28:add19eb7defa 17751 {
AzureIoTClient 28:add19eb7defa 17752 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 17753 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 17754 {
AzureIoTClient 28:add19eb7defa 17755 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17756 rejected_destroy(*rejected_handle);
AzureIoTClient 28:add19eb7defa 17757 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17758 break;
AzureIoTClient 28:add19eb7defa 17759 }
AzureIoTClient 25:1101516ee67d 17760 else
AzureIoTClient 25:1101516ee67d 17761 {
AzureIoTClient 28:add19eb7defa 17762 error_destroy(error);
AzureIoTClient 28:add19eb7defa 17763 }
AzureIoTClient 28:add19eb7defa 17764 }
AzureIoTClient 28:add19eb7defa 17765
AzureIoTClient 28:add19eb7defa 17766 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17767 }
AzureIoTClient 28:add19eb7defa 17768 }
AzureIoTClient 28:add19eb7defa 17769
AzureIoTClient 28:add19eb7defa 17770 rejected_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17771
AzureIoTClient 28:add19eb7defa 17772 result = 0;
AzureIoTClient 28:add19eb7defa 17773 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17774 }
AzureIoTClient 28:add19eb7defa 17775 }
AzureIoTClient 28:add19eb7defa 17776 }
AzureIoTClient 28:add19eb7defa 17777
AzureIoTClient 28:add19eb7defa 17778 return result;
Azure.IoT Build 0:6ae2f7bca550 17779 }
Azure.IoT Build 0:6ae2f7bca550 17780
Azure.IoT Build 0:6ae2f7bca550 17781 int rejected_get_error(REJECTED_HANDLE rejected, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 17782 {
AzureIoTClient 28:add19eb7defa 17783 int result;
AzureIoTClient 28:add19eb7defa 17784
AzureIoTClient 28:add19eb7defa 17785 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17786 {
AzureIoTClient 28:add19eb7defa 17787 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17788 }
AzureIoTClient 28:add19eb7defa 17789 else
AzureIoTClient 28:add19eb7defa 17790 {
AzureIoTClient 28:add19eb7defa 17791 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17792 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 23:1111ee8bcba4 17793 if (amqpvalue_get_composite_item_count(rejected_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17794 {
AzureIoTClient 23:1111ee8bcba4 17795 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17796 }
AzureIoTClient 23:1111ee8bcba4 17797 else
AzureIoTClient 23:1111ee8bcba4 17798 {
AzureIoTClient 23:1111ee8bcba4 17799 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17800 {
AzureIoTClient 28:add19eb7defa 17801 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17802 }
AzureIoTClient 28:add19eb7defa 17803 else
AzureIoTClient 28:add19eb7defa 17804 {
AzureIoTClient 28:add19eb7defa 17805 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(rejected_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 17806 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17807 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17808 {
AzureIoTClient 28:add19eb7defa 17809 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17810 }
AzureIoTClient 28:add19eb7defa 17811 else
AzureIoTClient 28:add19eb7defa 17812 {
AzureIoTClient 43:4c1e4e94cdd3 17813 int get_single_value_result = amqpvalue_get_error(item_value, error_value);
AzureIoTClient 43:4c1e4e94cdd3 17814 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 17815 {
AzureIoTClient 28:add19eb7defa 17816 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17817 }
AzureIoTClient 28:add19eb7defa 17818 else
AzureIoTClient 28:add19eb7defa 17819 {
AzureIoTClient 28:add19eb7defa 17820 result = 0;
AzureIoTClient 28:add19eb7defa 17821 }
AzureIoTClient 28:add19eb7defa 17822 }
AzureIoTClient 28:add19eb7defa 17823 }
AzureIoTClient 28:add19eb7defa 17824 }
AzureIoTClient 28:add19eb7defa 17825 }
AzureIoTClient 28:add19eb7defa 17826
AzureIoTClient 28:add19eb7defa 17827 return result;
Azure.IoT Build 0:6ae2f7bca550 17828 }
Azure.IoT Build 0:6ae2f7bca550 17829
Azure.IoT Build 0:6ae2f7bca550 17830 int rejected_set_error(REJECTED_HANDLE rejected, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 17831 {
AzureIoTClient 28:add19eb7defa 17832 int result;
AzureIoTClient 28:add19eb7defa 17833
AzureIoTClient 28:add19eb7defa 17834 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17835 {
AzureIoTClient 28:add19eb7defa 17836 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17837 }
AzureIoTClient 28:add19eb7defa 17838 else
AzureIoTClient 28:add19eb7defa 17839 {
AzureIoTClient 28:add19eb7defa 17840 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17841 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 17842 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17843 {
AzureIoTClient 28:add19eb7defa 17844 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17845 }
AzureIoTClient 28:add19eb7defa 17846 else
AzureIoTClient 28:add19eb7defa 17847 {
AzureIoTClient 28:add19eb7defa 17848 if (amqpvalue_set_composite_item(rejected_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17849 {
AzureIoTClient 28:add19eb7defa 17850 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17851 }
AzureIoTClient 28:add19eb7defa 17852 else
AzureIoTClient 28:add19eb7defa 17853 {
AzureIoTClient 28:add19eb7defa 17854 result = 0;
AzureIoTClient 28:add19eb7defa 17855 }
AzureIoTClient 28:add19eb7defa 17856
AzureIoTClient 28:add19eb7defa 17857 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 17858 }
AzureIoTClient 28:add19eb7defa 17859 }
AzureIoTClient 28:add19eb7defa 17860
AzureIoTClient 28:add19eb7defa 17861 return result;
Azure.IoT Build 0:6ae2f7bca550 17862 }
Azure.IoT Build 0:6ae2f7bca550 17863
Azure.IoT Build 0:6ae2f7bca550 17864
Azure.IoT Build 0:6ae2f7bca550 17865 /* released */
Azure.IoT Build 0:6ae2f7bca550 17866
Azure.IoT Build 0:6ae2f7bca550 17867 typedef struct RELEASED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17868 {
AzureIoTClient 28:add19eb7defa 17869 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17870 } RELEASED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17871
Azure.IoT Build 0:6ae2f7bca550 17872 static RELEASED_HANDLE released_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17873 {
AzureIoTClient 28:add19eb7defa 17874 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17875 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17876 {
AzureIoTClient 28:add19eb7defa 17877 released_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17878 }
AzureIoTClient 28:add19eb7defa 17879
AzureIoTClient 28:add19eb7defa 17880 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17881 }
Azure.IoT Build 0:6ae2f7bca550 17882
Azure.IoT Build 0:6ae2f7bca550 17883 RELEASED_HANDLE released_create(void)
Azure.IoT Build 0:6ae2f7bca550 17884 {
AzureIoTClient 28:add19eb7defa 17885 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17886 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17887 {
AzureIoTClient 28:add19eb7defa 17888 released_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(38);
AzureIoTClient 28:add19eb7defa 17889 if (released_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17890 {
AzureIoTClient 28:add19eb7defa 17891 free(released_instance);
AzureIoTClient 28:add19eb7defa 17892 released_instance = NULL;
AzureIoTClient 28:add19eb7defa 17893 }
AzureIoTClient 28:add19eb7defa 17894 }
AzureIoTClient 28:add19eb7defa 17895
AzureIoTClient 28:add19eb7defa 17896 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17897 }
Azure.IoT Build 0:6ae2f7bca550 17898
Azure.IoT Build 0:6ae2f7bca550 17899 RELEASED_HANDLE released_clone(RELEASED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17900 {
AzureIoTClient 28:add19eb7defa 17901 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17902 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17903 {
AzureIoTClient 28:add19eb7defa 17904 released_instance->composite_value = amqpvalue_clone(((RELEASED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17905 if (released_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17906 {
AzureIoTClient 28:add19eb7defa 17907 free(released_instance);
AzureIoTClient 28:add19eb7defa 17908 released_instance = NULL;
AzureIoTClient 28:add19eb7defa 17909 }
AzureIoTClient 28:add19eb7defa 17910 }
AzureIoTClient 28:add19eb7defa 17911
AzureIoTClient 28:add19eb7defa 17912 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17913 }
Azure.IoT Build 0:6ae2f7bca550 17914
Azure.IoT Build 0:6ae2f7bca550 17915 void released_destroy(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17916 {
AzureIoTClient 28:add19eb7defa 17917 if (released != NULL)
AzureIoTClient 28:add19eb7defa 17918 {
AzureIoTClient 28:add19eb7defa 17919 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
AzureIoTClient 28:add19eb7defa 17920 amqpvalue_destroy(released_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17921 free(released_instance);
AzureIoTClient 28:add19eb7defa 17922 }
Azure.IoT Build 0:6ae2f7bca550 17923 }
Azure.IoT Build 0:6ae2f7bca550 17924
Azure.IoT Build 0:6ae2f7bca550 17925 AMQP_VALUE amqpvalue_create_released(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17926 {
AzureIoTClient 28:add19eb7defa 17927 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17928
AzureIoTClient 28:add19eb7defa 17929 if (released == NULL)
AzureIoTClient 28:add19eb7defa 17930 {
AzureIoTClient 28:add19eb7defa 17931 result = NULL;
AzureIoTClient 28:add19eb7defa 17932 }
AzureIoTClient 28:add19eb7defa 17933 else
AzureIoTClient 28:add19eb7defa 17934 {
AzureIoTClient 28:add19eb7defa 17935 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
AzureIoTClient 28:add19eb7defa 17936 result = amqpvalue_clone(released_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17937 }
AzureIoTClient 28:add19eb7defa 17938
AzureIoTClient 28:add19eb7defa 17939 return result;
Azure.IoT Build 0:6ae2f7bca550 17940 }
Azure.IoT Build 0:6ae2f7bca550 17941
Azure.IoT Build 0:6ae2f7bca550 17942 bool is_released_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17943 {
AzureIoTClient 28:add19eb7defa 17944 bool result;
AzureIoTClient 28:add19eb7defa 17945
AzureIoTClient 28:add19eb7defa 17946 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17947 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17948 (descriptor_ulong == 38))
AzureIoTClient 28:add19eb7defa 17949 {
AzureIoTClient 28:add19eb7defa 17950 result = true;
AzureIoTClient 28:add19eb7defa 17951 }
AzureIoTClient 28:add19eb7defa 17952 else
AzureIoTClient 28:add19eb7defa 17953 {
AzureIoTClient 28:add19eb7defa 17954 result = false;
AzureIoTClient 28:add19eb7defa 17955 }
AzureIoTClient 28:add19eb7defa 17956
AzureIoTClient 28:add19eb7defa 17957 return result;
Azure.IoT Build 0:6ae2f7bca550 17958 }
Azure.IoT Build 0:6ae2f7bca550 17959
Azure.IoT Build 0:6ae2f7bca550 17960
Azure.IoT Build 0:6ae2f7bca550 17961 int amqpvalue_get_released(AMQP_VALUE value, RELEASED_HANDLE* released_handle)
Azure.IoT Build 0:6ae2f7bca550 17962 {
AzureIoTClient 28:add19eb7defa 17963 int result;
AzureIoTClient 28:add19eb7defa 17964 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released_create_internal();
AzureIoTClient 28:add19eb7defa 17965 *released_handle = released_instance;
AzureIoTClient 28:add19eb7defa 17966 if (*released_handle == NULL)
AzureIoTClient 28:add19eb7defa 17967 {
AzureIoTClient 28:add19eb7defa 17968 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17969 }
AzureIoTClient 28:add19eb7defa 17970 else
AzureIoTClient 28:add19eb7defa 17971 {
AzureIoTClient 28:add19eb7defa 17972 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17973 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17974 {
AzureIoTClient 28:add19eb7defa 17975 released_destroy(*released_handle);
AzureIoTClient 28:add19eb7defa 17976 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17977 }
AzureIoTClient 28:add19eb7defa 17978 else
AzureIoTClient 28:add19eb7defa 17979 {
AzureIoTClient 23:1111ee8bcba4 17980 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17981 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17982 {
AzureIoTClient 23:1111ee8bcba4 17983 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17984 }
AzureIoTClient 23:1111ee8bcba4 17985 else
AzureIoTClient 23:1111ee8bcba4 17986 {
AzureIoTClient 28:add19eb7defa 17987 do
AzureIoTClient 28:add19eb7defa 17988 {
AzureIoTClient 28:add19eb7defa 17989
AzureIoTClient 28:add19eb7defa 17990 released_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17991
AzureIoTClient 28:add19eb7defa 17992 result = 0;
AzureIoTClient 28:add19eb7defa 17993 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17994 }
AzureIoTClient 28:add19eb7defa 17995 }
AzureIoTClient 28:add19eb7defa 17996 }
AzureIoTClient 28:add19eb7defa 17997
AzureIoTClient 28:add19eb7defa 17998 return result;
Azure.IoT Build 0:6ae2f7bca550 17999 }
Azure.IoT Build 0:6ae2f7bca550 18000
Azure.IoT Build 0:6ae2f7bca550 18001
Azure.IoT Build 0:6ae2f7bca550 18002 /* modified */
Azure.IoT Build 0:6ae2f7bca550 18003
Azure.IoT Build 0:6ae2f7bca550 18004 typedef struct MODIFIED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 18005 {
AzureIoTClient 28:add19eb7defa 18006 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 18007 } MODIFIED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 18008
Azure.IoT Build 0:6ae2f7bca550 18009 static MODIFIED_HANDLE modified_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 18010 {
AzureIoTClient 28:add19eb7defa 18011 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18012 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18013 {
AzureIoTClient 28:add19eb7defa 18014 modified_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 18015 }
AzureIoTClient 28:add19eb7defa 18016
AzureIoTClient 28:add19eb7defa 18017 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18018 }
Azure.IoT Build 0:6ae2f7bca550 18019
Azure.IoT Build 0:6ae2f7bca550 18020 MODIFIED_HANDLE modified_create(void)
Azure.IoT Build 0:6ae2f7bca550 18021 {
AzureIoTClient 28:add19eb7defa 18022 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18023 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18024 {
AzureIoTClient 28:add19eb7defa 18025 modified_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(39);
AzureIoTClient 28:add19eb7defa 18026 if (modified_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 18027 {
AzureIoTClient 28:add19eb7defa 18028 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18029 modified_instance = NULL;
AzureIoTClient 28:add19eb7defa 18030 }
AzureIoTClient 28:add19eb7defa 18031 }
AzureIoTClient 28:add19eb7defa 18032
AzureIoTClient 28:add19eb7defa 18033 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18034 }
Azure.IoT Build 0:6ae2f7bca550 18035
Azure.IoT Build 0:6ae2f7bca550 18036 MODIFIED_HANDLE modified_clone(MODIFIED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 18037 {
AzureIoTClient 28:add19eb7defa 18038 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18039 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18040 {
AzureIoTClient 28:add19eb7defa 18041 modified_instance->composite_value = amqpvalue_clone(((MODIFIED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 18042 if (modified_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 18043 {
AzureIoTClient 28:add19eb7defa 18044 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18045 modified_instance = NULL;
AzureIoTClient 28:add19eb7defa 18046 }
AzureIoTClient 28:add19eb7defa 18047 }
AzureIoTClient 28:add19eb7defa 18048
AzureIoTClient 28:add19eb7defa 18049 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18050 }
Azure.IoT Build 0:6ae2f7bca550 18051
Azure.IoT Build 0:6ae2f7bca550 18052 void modified_destroy(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 18053 {
AzureIoTClient 28:add19eb7defa 18054 if (modified != NULL)
AzureIoTClient 28:add19eb7defa 18055 {
AzureIoTClient 28:add19eb7defa 18056 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18057 amqpvalue_destroy(modified_instance->composite_value);
AzureIoTClient 28:add19eb7defa 18058 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18059 }
Azure.IoT Build 0:6ae2f7bca550 18060 }
Azure.IoT Build 0:6ae2f7bca550 18061
Azure.IoT Build 0:6ae2f7bca550 18062 AMQP_VALUE amqpvalue_create_modified(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 18063 {
AzureIoTClient 28:add19eb7defa 18064 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 18065
AzureIoTClient 28:add19eb7defa 18066 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18067 {
AzureIoTClient 28:add19eb7defa 18068 result = NULL;
AzureIoTClient 28:add19eb7defa 18069 }
AzureIoTClient 28:add19eb7defa 18070 else
AzureIoTClient 28:add19eb7defa 18071 {
AzureIoTClient 28:add19eb7defa 18072 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18073 result = amqpvalue_clone(modified_instance->composite_value);
AzureIoTClient 28:add19eb7defa 18074 }
AzureIoTClient 28:add19eb7defa 18075
AzureIoTClient 28:add19eb7defa 18076 return result;
Azure.IoT Build 0:6ae2f7bca550 18077 }
Azure.IoT Build 0:6ae2f7bca550 18078
Azure.IoT Build 0:6ae2f7bca550 18079 bool is_modified_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 18080 {
AzureIoTClient 28:add19eb7defa 18081 bool result;
AzureIoTClient 28:add19eb7defa 18082
AzureIoTClient 28:add19eb7defa 18083 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 18084 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 18085 (descriptor_ulong == 39))
AzureIoTClient 28:add19eb7defa 18086 {
AzureIoTClient 28:add19eb7defa 18087 result = true;
AzureIoTClient 28:add19eb7defa 18088 }
AzureIoTClient 28:add19eb7defa 18089 else
AzureIoTClient 28:add19eb7defa 18090 {
AzureIoTClient 28:add19eb7defa 18091 result = false;
AzureIoTClient 28:add19eb7defa 18092 }
AzureIoTClient 28:add19eb7defa 18093
AzureIoTClient 28:add19eb7defa 18094 return result;
Azure.IoT Build 0:6ae2f7bca550 18095 }
Azure.IoT Build 0:6ae2f7bca550 18096
Azure.IoT Build 0:6ae2f7bca550 18097
Azure.IoT Build 0:6ae2f7bca550 18098 int amqpvalue_get_modified(AMQP_VALUE value, MODIFIED_HANDLE* modified_handle)
Azure.IoT Build 0:6ae2f7bca550 18099 {
AzureIoTClient 28:add19eb7defa 18100 int result;
AzureIoTClient 28:add19eb7defa 18101 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified_create_internal();
AzureIoTClient 28:add19eb7defa 18102 *modified_handle = modified_instance;
AzureIoTClient 28:add19eb7defa 18103 if (*modified_handle == NULL)
AzureIoTClient 28:add19eb7defa 18104 {
AzureIoTClient 28:add19eb7defa 18105 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18106 }
AzureIoTClient 28:add19eb7defa 18107 else
AzureIoTClient 28:add19eb7defa 18108 {
AzureIoTClient 28:add19eb7defa 18109 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 18110 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 18111 {
AzureIoTClient 28:add19eb7defa 18112 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18113 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18114 }
AzureIoTClient 28:add19eb7defa 18115 else
AzureIoTClient 28:add19eb7defa 18116 {
AzureIoTClient 23:1111ee8bcba4 18117 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 18118 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18119 {
AzureIoTClient 23:1111ee8bcba4 18120 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18121 }
AzureIoTClient 23:1111ee8bcba4 18122 else
AzureIoTClient 23:1111ee8bcba4 18123 {
AzureIoTClient 28:add19eb7defa 18124 do
AzureIoTClient 28:add19eb7defa 18125 {
AzureIoTClient 28:add19eb7defa 18126 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 18127 /* delivery-failed */
AzureIoTClient 28:add19eb7defa 18128 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 18129 {
AzureIoTClient 23:1111ee8bcba4 18130 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 18131 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18132 {
AzureIoTClient 28:add19eb7defa 18133 /* do nothing */
AzureIoTClient 28:add19eb7defa 18134 }
AzureIoTClient 28:add19eb7defa 18135 else
AzureIoTClient 28:add19eb7defa 18136 {
AzureIoTClient 28:add19eb7defa 18137 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18138 {
AzureIoTClient 28:add19eb7defa 18139 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18140 }
AzureIoTClient 28:add19eb7defa 18141 else
AzureIoTClient 28:add19eb7defa 18142 {
AzureIoTClient 28:add19eb7defa 18143 bool delivery_failed;
AzureIoTClient 28:add19eb7defa 18144 if (amqpvalue_get_boolean(item_value, &delivery_failed) != 0)
AzureIoTClient 28:add19eb7defa 18145 {
AzureIoTClient 28:add19eb7defa 18146 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18147 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18148 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18149 break;
AzureIoTClient 28:add19eb7defa 18150 }
AzureIoTClient 28:add19eb7defa 18151 }
AzureIoTClient 28:add19eb7defa 18152
AzureIoTClient 28:add19eb7defa 18153 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18154 }
AzureIoTClient 28:add19eb7defa 18155 }
AzureIoTClient 28:add19eb7defa 18156 /* undeliverable-here */
AzureIoTClient 28:add19eb7defa 18157 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 18158 {
AzureIoTClient 23:1111ee8bcba4 18159 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 18160 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18161 {
AzureIoTClient 28:add19eb7defa 18162 /* do nothing */
AzureIoTClient 28:add19eb7defa 18163 }
AzureIoTClient 28:add19eb7defa 18164 else
AzureIoTClient 28:add19eb7defa 18165 {
AzureIoTClient 28:add19eb7defa 18166 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18167 {
AzureIoTClient 28:add19eb7defa 18168 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18169 }
AzureIoTClient 28:add19eb7defa 18170 else
AzureIoTClient 28:add19eb7defa 18171 {
AzureIoTClient 28:add19eb7defa 18172 bool undeliverable_here;
AzureIoTClient 28:add19eb7defa 18173 if (amqpvalue_get_boolean(item_value, &undeliverable_here) != 0)
AzureIoTClient 28:add19eb7defa 18174 {
AzureIoTClient 28:add19eb7defa 18175 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18176 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18177 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18178 break;
AzureIoTClient 28:add19eb7defa 18179 }
AzureIoTClient 28:add19eb7defa 18180 }
AzureIoTClient 28:add19eb7defa 18181
AzureIoTClient 28:add19eb7defa 18182 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18183 }
AzureIoTClient 28:add19eb7defa 18184 }
AzureIoTClient 28:add19eb7defa 18185 /* message-annotations */
AzureIoTClient 28:add19eb7defa 18186 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 18187 {
AzureIoTClient 23:1111ee8bcba4 18188 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 18189 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18190 {
AzureIoTClient 28:add19eb7defa 18191 /* do nothing */
AzureIoTClient 28:add19eb7defa 18192 }
AzureIoTClient 28:add19eb7defa 18193 else
AzureIoTClient 28:add19eb7defa 18194 {
AzureIoTClient 28:add19eb7defa 18195 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18196 {
AzureIoTClient 28:add19eb7defa 18197 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18198 }
AzureIoTClient 28:add19eb7defa 18199 else
AzureIoTClient 28:add19eb7defa 18200 {
AzureIoTClient 28:add19eb7defa 18201 fields message_annotations;
AzureIoTClient 28:add19eb7defa 18202 if (amqpvalue_get_fields(item_value, &message_annotations) != 0)
AzureIoTClient 28:add19eb7defa 18203 {
AzureIoTClient 28:add19eb7defa 18204 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18205 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18206 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18207 break;
AzureIoTClient 28:add19eb7defa 18208 }
AzureIoTClient 28:add19eb7defa 18209 }
AzureIoTClient 28:add19eb7defa 18210
AzureIoTClient 28:add19eb7defa 18211 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18212 }
AzureIoTClient 28:add19eb7defa 18213 }
AzureIoTClient 28:add19eb7defa 18214
AzureIoTClient 28:add19eb7defa 18215 modified_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 18216
AzureIoTClient 28:add19eb7defa 18217 result = 0;
AzureIoTClient 28:add19eb7defa 18218 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 18219 }
AzureIoTClient 28:add19eb7defa 18220 }
AzureIoTClient 28:add19eb7defa 18221 }
AzureIoTClient 28:add19eb7defa 18222
AzureIoTClient 28:add19eb7defa 18223 return result;
Azure.IoT Build 0:6ae2f7bca550 18224 }
Azure.IoT Build 0:6ae2f7bca550 18225
Azure.IoT Build 0:6ae2f7bca550 18226 int modified_get_delivery_failed(MODIFIED_HANDLE modified, bool* delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 18227 {
AzureIoTClient 28:add19eb7defa 18228 int result;
AzureIoTClient 28:add19eb7defa 18229
AzureIoTClient 28:add19eb7defa 18230 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18231 {
AzureIoTClient 28:add19eb7defa 18232 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18233 }
AzureIoTClient 28:add19eb7defa 18234 else
AzureIoTClient 28:add19eb7defa 18235 {
AzureIoTClient 28:add19eb7defa 18236 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18237 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18238 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18239 {
AzureIoTClient 23:1111ee8bcba4 18240 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18241 }
AzureIoTClient 23:1111ee8bcba4 18242 else
AzureIoTClient 23:1111ee8bcba4 18243 {
AzureIoTClient 23:1111ee8bcba4 18244 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 18245 {
AzureIoTClient 28:add19eb7defa 18246 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18247 }
AzureIoTClient 28:add19eb7defa 18248 else
AzureIoTClient 28:add19eb7defa 18249 {
AzureIoTClient 28:add19eb7defa 18250 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 18251 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18252 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18253 {
AzureIoTClient 28:add19eb7defa 18254 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18255 }
AzureIoTClient 28:add19eb7defa 18256 else
AzureIoTClient 28:add19eb7defa 18257 {
AzureIoTClient 43:4c1e4e94cdd3 18258 int get_single_value_result = amqpvalue_get_boolean(item_value, delivery_failed_value);
AzureIoTClient 43:4c1e4e94cdd3 18259 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 18260 {
AzureIoTClient 28:add19eb7defa 18261 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18262 }
AzureIoTClient 28:add19eb7defa 18263 else
AzureIoTClient 28:add19eb7defa 18264 {
AzureIoTClient 28:add19eb7defa 18265 result = 0;
AzureIoTClient 28:add19eb7defa 18266 }
AzureIoTClient 28:add19eb7defa 18267 }
AzureIoTClient 28:add19eb7defa 18268 }
AzureIoTClient 28:add19eb7defa 18269 }
AzureIoTClient 28:add19eb7defa 18270 }
AzureIoTClient 28:add19eb7defa 18271
AzureIoTClient 28:add19eb7defa 18272 return result;
Azure.IoT Build 0:6ae2f7bca550 18273 }
Azure.IoT Build 0:6ae2f7bca550 18274
Azure.IoT Build 0:6ae2f7bca550 18275 int modified_set_delivery_failed(MODIFIED_HANDLE modified, bool delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 18276 {
AzureIoTClient 28:add19eb7defa 18277 int result;
AzureIoTClient 28:add19eb7defa 18278
AzureIoTClient 28:add19eb7defa 18279 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18280 {
AzureIoTClient 28:add19eb7defa 18281 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18282 }
AzureIoTClient 28:add19eb7defa 18283 else
AzureIoTClient 28:add19eb7defa 18284 {
AzureIoTClient 28:add19eb7defa 18285 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18286 AMQP_VALUE delivery_failed_amqp_value = amqpvalue_create_boolean(delivery_failed_value);
AzureIoTClient 28:add19eb7defa 18287 if (delivery_failed_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18288 {
AzureIoTClient 28:add19eb7defa 18289 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18290 }
AzureIoTClient 28:add19eb7defa 18291 else
AzureIoTClient 28:add19eb7defa 18292 {
AzureIoTClient 28:add19eb7defa 18293 if (amqpvalue_set_composite_item(modified_instance->composite_value, 0, delivery_failed_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18294 {
AzureIoTClient 28:add19eb7defa 18295 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18296 }
AzureIoTClient 28:add19eb7defa 18297 else
AzureIoTClient 28:add19eb7defa 18298 {
AzureIoTClient 28:add19eb7defa 18299 result = 0;
AzureIoTClient 28:add19eb7defa 18300 }
AzureIoTClient 28:add19eb7defa 18301
AzureIoTClient 28:add19eb7defa 18302 amqpvalue_destroy(delivery_failed_amqp_value);
AzureIoTClient 28:add19eb7defa 18303 }
AzureIoTClient 28:add19eb7defa 18304 }
AzureIoTClient 28:add19eb7defa 18305
AzureIoTClient 28:add19eb7defa 18306 return result;
Azure.IoT Build 0:6ae2f7bca550 18307 }
Azure.IoT Build 0:6ae2f7bca550 18308
Azure.IoT Build 0:6ae2f7bca550 18309 int modified_get_undeliverable_here(MODIFIED_HANDLE modified, bool* undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 18310 {
AzureIoTClient 28:add19eb7defa 18311 int result;
AzureIoTClient 28:add19eb7defa 18312
AzureIoTClient 28:add19eb7defa 18313 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18314 {
AzureIoTClient 28:add19eb7defa 18315 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18316 }
AzureIoTClient 28:add19eb7defa 18317 else
AzureIoTClient 28:add19eb7defa 18318 {
AzureIoTClient 28:add19eb7defa 18319 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18320 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18321 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18322 {
AzureIoTClient 23:1111ee8bcba4 18323 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18324 }
AzureIoTClient 23:1111ee8bcba4 18325 else
AzureIoTClient 23:1111ee8bcba4 18326 {
AzureIoTClient 23:1111ee8bcba4 18327 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 18328 {
AzureIoTClient 28:add19eb7defa 18329 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18330 }
AzureIoTClient 28:add19eb7defa 18331 else
AzureIoTClient 28:add19eb7defa 18332 {
AzureIoTClient 28:add19eb7defa 18333 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 18334 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18335 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18336 {
AzureIoTClient 28:add19eb7defa 18337 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18338 }
AzureIoTClient 28:add19eb7defa 18339 else
AzureIoTClient 28:add19eb7defa 18340 {
AzureIoTClient 43:4c1e4e94cdd3 18341 int get_single_value_result = amqpvalue_get_boolean(item_value, undeliverable_here_value);
AzureIoTClient 43:4c1e4e94cdd3 18342 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 18343 {
AzureIoTClient 28:add19eb7defa 18344 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18345 }
AzureIoTClient 28:add19eb7defa 18346 else
AzureIoTClient 28:add19eb7defa 18347 {
AzureIoTClient 28:add19eb7defa 18348 result = 0;
AzureIoTClient 28:add19eb7defa 18349 }
AzureIoTClient 28:add19eb7defa 18350 }
AzureIoTClient 28:add19eb7defa 18351 }
AzureIoTClient 28:add19eb7defa 18352 }
AzureIoTClient 28:add19eb7defa 18353 }
AzureIoTClient 28:add19eb7defa 18354
AzureIoTClient 28:add19eb7defa 18355 return result;
Azure.IoT Build 0:6ae2f7bca550 18356 }
Azure.IoT Build 0:6ae2f7bca550 18357
Azure.IoT Build 0:6ae2f7bca550 18358 int modified_set_undeliverable_here(MODIFIED_HANDLE modified, bool undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 18359 {
AzureIoTClient 28:add19eb7defa 18360 int result;
AzureIoTClient 28:add19eb7defa 18361
AzureIoTClient 28:add19eb7defa 18362 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18363 {
AzureIoTClient 28:add19eb7defa 18364 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18365 }
AzureIoTClient 28:add19eb7defa 18366 else
AzureIoTClient 28:add19eb7defa 18367 {
AzureIoTClient 28:add19eb7defa 18368 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18369 AMQP_VALUE undeliverable_here_amqp_value = amqpvalue_create_boolean(undeliverable_here_value);
AzureIoTClient 28:add19eb7defa 18370 if (undeliverable_here_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18371 {
AzureIoTClient 28:add19eb7defa 18372 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18373 }
AzureIoTClient 28:add19eb7defa 18374 else
AzureIoTClient 28:add19eb7defa 18375 {
AzureIoTClient 28:add19eb7defa 18376 if (amqpvalue_set_composite_item(modified_instance->composite_value, 1, undeliverable_here_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18377 {
AzureIoTClient 28:add19eb7defa 18378 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18379 }
AzureIoTClient 28:add19eb7defa 18380 else
AzureIoTClient 28:add19eb7defa 18381 {
AzureIoTClient 28:add19eb7defa 18382 result = 0;
AzureIoTClient 28:add19eb7defa 18383 }
AzureIoTClient 28:add19eb7defa 18384
AzureIoTClient 28:add19eb7defa 18385 amqpvalue_destroy(undeliverable_here_amqp_value);
AzureIoTClient 28:add19eb7defa 18386 }
AzureIoTClient 28:add19eb7defa 18387 }
AzureIoTClient 28:add19eb7defa 18388
AzureIoTClient 28:add19eb7defa 18389 return result;
Azure.IoT Build 0:6ae2f7bca550 18390 }
Azure.IoT Build 0:6ae2f7bca550 18391
Azure.IoT Build 0:6ae2f7bca550 18392 int modified_get_message_annotations(MODIFIED_HANDLE modified, fields* message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 18393 {
AzureIoTClient 28:add19eb7defa 18394 int result;
AzureIoTClient 28:add19eb7defa 18395
AzureIoTClient 28:add19eb7defa 18396 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18397 {
AzureIoTClient 28:add19eb7defa 18398 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18399 }
AzureIoTClient 28:add19eb7defa 18400 else
AzureIoTClient 28:add19eb7defa 18401 {
AzureIoTClient 28:add19eb7defa 18402 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18403 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18404 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18405 {
AzureIoTClient 23:1111ee8bcba4 18406 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18407 }
AzureIoTClient 23:1111ee8bcba4 18408 else
AzureIoTClient 23:1111ee8bcba4 18409 {
AzureIoTClient 23:1111ee8bcba4 18410 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 18411 {
AzureIoTClient 28:add19eb7defa 18412 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18413 }
AzureIoTClient 28:add19eb7defa 18414 else
AzureIoTClient 28:add19eb7defa 18415 {
AzureIoTClient 28:add19eb7defa 18416 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 18417 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18418 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18419 {
AzureIoTClient 28:add19eb7defa 18420 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18421 }
AzureIoTClient 28:add19eb7defa 18422 else
AzureIoTClient 28:add19eb7defa 18423 {
AzureIoTClient 43:4c1e4e94cdd3 18424 int get_single_value_result = amqpvalue_get_fields(item_value, message_annotations_value);
AzureIoTClient 43:4c1e4e94cdd3 18425 if (get_single_value_result != 0)
AzureIoTClient 28:add19eb7defa 18426 {
AzureIoTClient 28:add19eb7defa 18427 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18428 }
AzureIoTClient 28:add19eb7defa 18429 else
AzureIoTClient 28:add19eb7defa 18430 {
AzureIoTClient 28:add19eb7defa 18431 result = 0;
AzureIoTClient 28:add19eb7defa 18432 }
AzureIoTClient 28:add19eb7defa 18433 }
AzureIoTClient 28:add19eb7defa 18434 }
AzureIoTClient 28:add19eb7defa 18435 }
AzureIoTClient 28:add19eb7defa 18436 }
AzureIoTClient 28:add19eb7defa 18437
AzureIoTClient 28:add19eb7defa 18438 return result;
Azure.IoT Build 0:6ae2f7bca550 18439 }
Azure.IoT Build 0:6ae2f7bca550 18440
Azure.IoT Build 0:6ae2f7bca550 18441 int modified_set_message_annotations(MODIFIED_HANDLE modified, fields message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 18442 {
AzureIoTClient 28:add19eb7defa 18443 int result;
AzureIoTClient 28:add19eb7defa 18444
AzureIoTClient 28:add19eb7defa 18445 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18446 {
AzureIoTClient 28:add19eb7defa 18447 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18448 }
AzureIoTClient 28:add19eb7defa 18449 else
AzureIoTClient 28:add19eb7defa 18450 {
AzureIoTClient 28:add19eb7defa 18451 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18452 AMQP_VALUE message_annotations_amqp_value = amqpvalue_create_fields(message_annotations_value);
AzureIoTClient 28:add19eb7defa 18453 if (message_annotations_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18454 {
AzureIoTClient 28:add19eb7defa 18455 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18456 }
AzureIoTClient 28:add19eb7defa 18457 else
AzureIoTClient 28:add19eb7defa 18458 {
AzureIoTClient 28:add19eb7defa 18459 if (amqpvalue_set_composite_item(modified_instance->composite_value, 2, message_annotations_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18460 {
AzureIoTClient 28:add19eb7defa 18461 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18462 }
AzureIoTClient 28:add19eb7defa 18463 else
AzureIoTClient 28:add19eb7defa 18464 {
AzureIoTClient 28:add19eb7defa 18465 result = 0;
AzureIoTClient 28:add19eb7defa 18466 }
AzureIoTClient 28:add19eb7defa 18467
AzureIoTClient 28:add19eb7defa 18468 amqpvalue_destroy(message_annotations_amqp_value);
AzureIoTClient 28:add19eb7defa 18469 }
AzureIoTClient 28:add19eb7defa 18470 }
AzureIoTClient 28:add19eb7defa 18471
AzureIoTClient 28:add19eb7defa 18472 return result;
AzureIoTClient 28:add19eb7defa 18473 }
AzureIoTClient 28:add19eb7defa 18474
AzureIoTClient 28:add19eb7defa 18475