A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Committer:
AzureIoTClient
Date:
Fri Nov 03 13:18:57 2017 -0700
Revision:
35:d0bed2404ee9
Parent:
29:4a11413cf217
Child:
43:4c1e4e94cdd3
1.1.27

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Azure.IoT Build 0:6ae2f7bca550 1
Azure.IoT Build 0:6ae2f7bca550 2
Azure.IoT Build 0:6ae2f7bca550 3 // Copyright (c) Microsoft. All rights reserved.
Azure.IoT Build 0:6ae2f7bca550 4 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
Azure.IoT Build 0:6ae2f7bca550 5
Azure.IoT Build 0:6ae2f7bca550 6 #include <stdlib.h>
AzureIoTClient 19:000ab4e6a2c1 7 #include "azure_c_shared_utility/optimize_size.h"
AzureIoTClient 21:f9c433d8e6ca 8 #include "azure_c_shared_utility/gballoc.h"
Azure.IoT Build 0:6ae2f7bca550 9 #include "azure_uamqp_c/amqpvalue.h"
Azure.IoT Build 0:6ae2f7bca550 10 #include "azure_uamqp_c/amqp_definitions.h"
Azure.IoT Build 0:6ae2f7bca550 11 #include <stdlib.h>
Azure.IoT Build 0:6ae2f7bca550 12 #include <stdbool.h>
Azure.IoT Build 0:6ae2f7bca550 13
Azure.IoT Build 0:6ae2f7bca550 14 /* role */
Azure.IoT Build 0:6ae2f7bca550 15
Azure.IoT Build 0:6ae2f7bca550 16 AMQP_VALUE amqpvalue_create_role(role value)
Azure.IoT Build 0:6ae2f7bca550 17 {
AzureIoTClient 28:add19eb7defa 18 return amqpvalue_create_boolean(value);
Azure.IoT Build 0:6ae2f7bca550 19 }
Azure.IoT Build 0:6ae2f7bca550 20
Azure.IoT Build 0:6ae2f7bca550 21 /* sender-settle-mode */
Azure.IoT Build 0:6ae2f7bca550 22
Azure.IoT Build 0:6ae2f7bca550 23 AMQP_VALUE amqpvalue_create_sender_settle_mode(sender_settle_mode value)
Azure.IoT Build 0:6ae2f7bca550 24 {
AzureIoTClient 28:add19eb7defa 25 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 26 }
Azure.IoT Build 0:6ae2f7bca550 27
Azure.IoT Build 0:6ae2f7bca550 28 /* receiver-settle-mode */
Azure.IoT Build 0:6ae2f7bca550 29
Azure.IoT Build 0:6ae2f7bca550 30 AMQP_VALUE amqpvalue_create_receiver_settle_mode(receiver_settle_mode value)
Azure.IoT Build 0:6ae2f7bca550 31 {
AzureIoTClient 28:add19eb7defa 32 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 33 }
Azure.IoT Build 0:6ae2f7bca550 34
Azure.IoT Build 0:6ae2f7bca550 35 /* handle */
Azure.IoT Build 0:6ae2f7bca550 36
Azure.IoT Build 0:6ae2f7bca550 37 AMQP_VALUE amqpvalue_create_handle(handle value)
Azure.IoT Build 0:6ae2f7bca550 38 {
AzureIoTClient 28:add19eb7defa 39 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 40 }
Azure.IoT Build 0:6ae2f7bca550 41
Azure.IoT Build 0:6ae2f7bca550 42 /* seconds */
Azure.IoT Build 0:6ae2f7bca550 43
Azure.IoT Build 0:6ae2f7bca550 44 AMQP_VALUE amqpvalue_create_seconds(seconds value)
Azure.IoT Build 0:6ae2f7bca550 45 {
AzureIoTClient 28:add19eb7defa 46 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 47 }
Azure.IoT Build 0:6ae2f7bca550 48
Azure.IoT Build 0:6ae2f7bca550 49 /* milliseconds */
Azure.IoT Build 0:6ae2f7bca550 50
Azure.IoT Build 0:6ae2f7bca550 51 AMQP_VALUE amqpvalue_create_milliseconds(milliseconds value)
Azure.IoT Build 0:6ae2f7bca550 52 {
AzureIoTClient 28:add19eb7defa 53 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 54 }
Azure.IoT Build 0:6ae2f7bca550 55
Azure.IoT Build 0:6ae2f7bca550 56 /* delivery-tag */
Azure.IoT Build 0:6ae2f7bca550 57
Azure.IoT Build 0:6ae2f7bca550 58 AMQP_VALUE amqpvalue_create_delivery_tag(delivery_tag value)
Azure.IoT Build 0:6ae2f7bca550 59 {
AzureIoTClient 28:add19eb7defa 60 return amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 61 }
Azure.IoT Build 0:6ae2f7bca550 62
Azure.IoT Build 0:6ae2f7bca550 63 /* sequence-no */
Azure.IoT Build 0:6ae2f7bca550 64
Azure.IoT Build 0:6ae2f7bca550 65 AMQP_VALUE amqpvalue_create_sequence_no(sequence_no value)
Azure.IoT Build 0:6ae2f7bca550 66 {
AzureIoTClient 28:add19eb7defa 67 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 68 }
Azure.IoT Build 0:6ae2f7bca550 69
Azure.IoT Build 0:6ae2f7bca550 70 /* delivery-number */
Azure.IoT Build 0:6ae2f7bca550 71
Azure.IoT Build 0:6ae2f7bca550 72 AMQP_VALUE amqpvalue_create_delivery_number(delivery_number value)
Azure.IoT Build 0:6ae2f7bca550 73 {
AzureIoTClient 28:add19eb7defa 74 return amqpvalue_create_sequence_no(value);
Azure.IoT Build 0:6ae2f7bca550 75 }
Azure.IoT Build 0:6ae2f7bca550 76
Azure.IoT Build 0:6ae2f7bca550 77 /* transfer-number */
Azure.IoT Build 0:6ae2f7bca550 78
Azure.IoT Build 0:6ae2f7bca550 79 AMQP_VALUE amqpvalue_create_transfer_number(transfer_number value)
Azure.IoT Build 0:6ae2f7bca550 80 {
AzureIoTClient 28:add19eb7defa 81 return amqpvalue_create_sequence_no(value);
Azure.IoT Build 0:6ae2f7bca550 82 }
Azure.IoT Build 0:6ae2f7bca550 83
Azure.IoT Build 0:6ae2f7bca550 84 /* message-format */
Azure.IoT Build 0:6ae2f7bca550 85
Azure.IoT Build 0:6ae2f7bca550 86 AMQP_VALUE amqpvalue_create_message_format(message_format value)
Azure.IoT Build 0:6ae2f7bca550 87 {
AzureIoTClient 28:add19eb7defa 88 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 89 }
Azure.IoT Build 0:6ae2f7bca550 90
Azure.IoT Build 0:6ae2f7bca550 91 /* ietf-language-tag */
Azure.IoT Build 0:6ae2f7bca550 92
Azure.IoT Build 0:6ae2f7bca550 93 AMQP_VALUE amqpvalue_create_ietf_language_tag(ietf_language_tag value)
Azure.IoT Build 0:6ae2f7bca550 94 {
AzureIoTClient 28:add19eb7defa 95 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 96 }
Azure.IoT Build 0:6ae2f7bca550 97
Azure.IoT Build 0:6ae2f7bca550 98 /* fields */
Azure.IoT Build 0:6ae2f7bca550 99
Azure.IoT Build 0:6ae2f7bca550 100 AMQP_VALUE amqpvalue_create_fields(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 101 {
AzureIoTClient 28:add19eb7defa 102 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 103 }
Azure.IoT Build 0:6ae2f7bca550 104
Azure.IoT Build 0:6ae2f7bca550 105 /* error */
Azure.IoT Build 0:6ae2f7bca550 106
Azure.IoT Build 0:6ae2f7bca550 107 typedef struct ERROR_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 108 {
AzureIoTClient 28:add19eb7defa 109 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 110 } ERROR_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 111
Azure.IoT Build 0:6ae2f7bca550 112 static ERROR_HANDLE error_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 113 {
AzureIoTClient 28:add19eb7defa 114 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
AzureIoTClient 28:add19eb7defa 115 if (error_instance != NULL)
AzureIoTClient 28:add19eb7defa 116 {
AzureIoTClient 28:add19eb7defa 117 error_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 118 }
AzureIoTClient 28:add19eb7defa 119
AzureIoTClient 28:add19eb7defa 120 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 121 }
Azure.IoT Build 0:6ae2f7bca550 122
Azure.IoT Build 0:6ae2f7bca550 123 ERROR_HANDLE error_create(const char* condition_value)
Azure.IoT Build 0:6ae2f7bca550 124 {
AzureIoTClient 28:add19eb7defa 125 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
AzureIoTClient 28:add19eb7defa 126 if (error_instance != NULL)
AzureIoTClient 28:add19eb7defa 127 {
AzureIoTClient 28:add19eb7defa 128 error_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(29);
AzureIoTClient 28:add19eb7defa 129 if (error_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 130 {
AzureIoTClient 28:add19eb7defa 131 free(error_instance);
AzureIoTClient 28:add19eb7defa 132 error_instance = NULL;
AzureIoTClient 28:add19eb7defa 133 }
AzureIoTClient 28:add19eb7defa 134 else
AzureIoTClient 28:add19eb7defa 135 {
AzureIoTClient 28:add19eb7defa 136 AMQP_VALUE condition_amqp_value;
AzureIoTClient 28:add19eb7defa 137 int result = 0;
AzureIoTClient 28:add19eb7defa 138
AzureIoTClient 28:add19eb7defa 139 condition_amqp_value = amqpvalue_create_symbol(condition_value);
AzureIoTClient 28:add19eb7defa 140 if ((result == 0) && (amqpvalue_set_composite_item(error_instance->composite_value, 0, condition_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 141 {
AzureIoTClient 28:add19eb7defa 142 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 143 }
AzureIoTClient 28:add19eb7defa 144
AzureIoTClient 28:add19eb7defa 145 amqpvalue_destroy(condition_amqp_value);
AzureIoTClient 28:add19eb7defa 146 }
AzureIoTClient 28:add19eb7defa 147 }
AzureIoTClient 28:add19eb7defa 148
AzureIoTClient 28:add19eb7defa 149 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 150 }
Azure.IoT Build 0:6ae2f7bca550 151
Azure.IoT Build 0:6ae2f7bca550 152 ERROR_HANDLE error_clone(ERROR_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 153 {
AzureIoTClient 28:add19eb7defa 154 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)malloc(sizeof(ERROR_INSTANCE));
AzureIoTClient 28:add19eb7defa 155 if (error_instance != NULL)
AzureIoTClient 28:add19eb7defa 156 {
AzureIoTClient 28:add19eb7defa 157 error_instance->composite_value = amqpvalue_clone(((ERROR_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 158 if (error_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 159 {
AzureIoTClient 28:add19eb7defa 160 free(error_instance);
AzureIoTClient 28:add19eb7defa 161 error_instance = NULL;
AzureIoTClient 28:add19eb7defa 162 }
AzureIoTClient 28:add19eb7defa 163 }
AzureIoTClient 28:add19eb7defa 164
AzureIoTClient 28:add19eb7defa 165 return error_instance;
Azure.IoT Build 0:6ae2f7bca550 166 }
Azure.IoT Build 0:6ae2f7bca550 167
Azure.IoT Build 0:6ae2f7bca550 168 void error_destroy(ERROR_HANDLE error)
Azure.IoT Build 0:6ae2f7bca550 169 {
AzureIoTClient 28:add19eb7defa 170 if (error != NULL)
AzureIoTClient 28:add19eb7defa 171 {
AzureIoTClient 28:add19eb7defa 172 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 173 amqpvalue_destroy(error_instance->composite_value);
AzureIoTClient 28:add19eb7defa 174 free(error_instance);
AzureIoTClient 28:add19eb7defa 175 }
Azure.IoT Build 0:6ae2f7bca550 176 }
Azure.IoT Build 0:6ae2f7bca550 177
Azure.IoT Build 0:6ae2f7bca550 178 AMQP_VALUE amqpvalue_create_error(ERROR_HANDLE error)
Azure.IoT Build 0:6ae2f7bca550 179 {
AzureIoTClient 28:add19eb7defa 180 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 181
AzureIoTClient 28:add19eb7defa 182 if (error == NULL)
AzureIoTClient 28:add19eb7defa 183 {
AzureIoTClient 28:add19eb7defa 184 result = NULL;
AzureIoTClient 28:add19eb7defa 185 }
AzureIoTClient 28:add19eb7defa 186 else
AzureIoTClient 28:add19eb7defa 187 {
AzureIoTClient 28:add19eb7defa 188 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 189 result = amqpvalue_clone(error_instance->composite_value);
AzureIoTClient 28:add19eb7defa 190 }
AzureIoTClient 28:add19eb7defa 191
AzureIoTClient 28:add19eb7defa 192 return result;
Azure.IoT Build 0:6ae2f7bca550 193 }
Azure.IoT Build 0:6ae2f7bca550 194
Azure.IoT Build 0:6ae2f7bca550 195 bool is_error_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 196 {
AzureIoTClient 28:add19eb7defa 197 bool result;
AzureIoTClient 28:add19eb7defa 198
AzureIoTClient 28:add19eb7defa 199 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 200 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 201 (descriptor_ulong == 29))
AzureIoTClient 28:add19eb7defa 202 {
AzureIoTClient 28:add19eb7defa 203 result = true;
AzureIoTClient 28:add19eb7defa 204 }
AzureIoTClient 28:add19eb7defa 205 else
AzureIoTClient 28:add19eb7defa 206 {
AzureIoTClient 28:add19eb7defa 207 result = false;
AzureIoTClient 28:add19eb7defa 208 }
AzureIoTClient 28:add19eb7defa 209
AzureIoTClient 28:add19eb7defa 210 return result;
Azure.IoT Build 0:6ae2f7bca550 211 }
Azure.IoT Build 0:6ae2f7bca550 212
Azure.IoT Build 0:6ae2f7bca550 213
Azure.IoT Build 0:6ae2f7bca550 214 int amqpvalue_get_error(AMQP_VALUE value, ERROR_HANDLE* error_handle)
Azure.IoT Build 0:6ae2f7bca550 215 {
AzureIoTClient 28:add19eb7defa 216 int result;
AzureIoTClient 28:add19eb7defa 217 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error_create_internal();
AzureIoTClient 28:add19eb7defa 218 *error_handle = error_instance;
AzureIoTClient 28:add19eb7defa 219 if (*error_handle == NULL)
AzureIoTClient 28:add19eb7defa 220 {
AzureIoTClient 28:add19eb7defa 221 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 222 }
AzureIoTClient 28:add19eb7defa 223 else
AzureIoTClient 28:add19eb7defa 224 {
AzureIoTClient 28:add19eb7defa 225 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 226 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 227 {
AzureIoTClient 28:add19eb7defa 228 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 229 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 230 }
AzureIoTClient 28:add19eb7defa 231 else
AzureIoTClient 28:add19eb7defa 232 {
AzureIoTClient 23:1111ee8bcba4 233 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 234 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 235 {
AzureIoTClient 23:1111ee8bcba4 236 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 237 }
AzureIoTClient 23:1111ee8bcba4 238 else
AzureIoTClient 23:1111ee8bcba4 239 {
AzureIoTClient 28:add19eb7defa 240 do
AzureIoTClient 28:add19eb7defa 241 {
AzureIoTClient 28:add19eb7defa 242 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 243 /* condition */
AzureIoTClient 28:add19eb7defa 244 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 245 {
AzureIoTClient 23:1111ee8bcba4 246 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 247 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 248 {
AzureIoTClient 28:add19eb7defa 249 {
AzureIoTClient 28:add19eb7defa 250 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 251 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 252 break;
AzureIoTClient 28:add19eb7defa 253 }
AzureIoTClient 28:add19eb7defa 254 }
AzureIoTClient 28:add19eb7defa 255 else
AzureIoTClient 28:add19eb7defa 256 {
AzureIoTClient 28:add19eb7defa 257 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 258 {
AzureIoTClient 28:add19eb7defa 259 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 260 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 261 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 262 break;
AzureIoTClient 28:add19eb7defa 263 }
AzureIoTClient 28:add19eb7defa 264 else
AzureIoTClient 28:add19eb7defa 265 {
AzureIoTClient 28:add19eb7defa 266 const char* condition;
AzureIoTClient 28:add19eb7defa 267 if (amqpvalue_get_symbol(item_value, &condition) != 0)
AzureIoTClient 28:add19eb7defa 268 {
AzureIoTClient 28:add19eb7defa 269 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 270 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 271 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 272 break;
AzureIoTClient 28:add19eb7defa 273 }
AzureIoTClient 28:add19eb7defa 274 }
AzureIoTClient 28:add19eb7defa 275
AzureIoTClient 28:add19eb7defa 276 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 277 }
AzureIoTClient 28:add19eb7defa 278 }
AzureIoTClient 28:add19eb7defa 279 else
AzureIoTClient 28:add19eb7defa 280 {
AzureIoTClient 28:add19eb7defa 281 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 282 }
AzureIoTClient 28:add19eb7defa 283 /* description */
AzureIoTClient 28:add19eb7defa 284 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 285 {
AzureIoTClient 23:1111ee8bcba4 286 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 287 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 288 {
AzureIoTClient 28:add19eb7defa 289 /* do nothing */
AzureIoTClient 28:add19eb7defa 290 }
AzureIoTClient 28:add19eb7defa 291 else
AzureIoTClient 28:add19eb7defa 292 {
AzureIoTClient 28:add19eb7defa 293 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 294 {
AzureIoTClient 28:add19eb7defa 295 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 296 }
AzureIoTClient 28:add19eb7defa 297 else
AzureIoTClient 28:add19eb7defa 298 {
AzureIoTClient 28:add19eb7defa 299 const char* description;
AzureIoTClient 28:add19eb7defa 300 if (amqpvalue_get_string(item_value, &description) != 0)
AzureIoTClient 28:add19eb7defa 301 {
AzureIoTClient 28:add19eb7defa 302 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 303 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 304 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 305 break;
AzureIoTClient 28:add19eb7defa 306 }
AzureIoTClient 28:add19eb7defa 307 }
AzureIoTClient 28:add19eb7defa 308
AzureIoTClient 28:add19eb7defa 309 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 310 }
AzureIoTClient 28:add19eb7defa 311 }
AzureIoTClient 28:add19eb7defa 312 /* info */
AzureIoTClient 28:add19eb7defa 313 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 314 {
AzureIoTClient 23:1111ee8bcba4 315 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 316 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 317 {
AzureIoTClient 28:add19eb7defa 318 /* do nothing */
AzureIoTClient 28:add19eb7defa 319 }
AzureIoTClient 28:add19eb7defa 320 else
AzureIoTClient 28:add19eb7defa 321 {
AzureIoTClient 28:add19eb7defa 322 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 323 {
AzureIoTClient 28:add19eb7defa 324 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 325 }
AzureIoTClient 28:add19eb7defa 326 else
AzureIoTClient 28:add19eb7defa 327 {
AzureIoTClient 28:add19eb7defa 328 fields info;
AzureIoTClient 28:add19eb7defa 329 if (amqpvalue_get_fields(item_value, &info) != 0)
AzureIoTClient 28:add19eb7defa 330 {
AzureIoTClient 28:add19eb7defa 331 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 332 error_destroy(*error_handle);
AzureIoTClient 28:add19eb7defa 333 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 334 break;
AzureIoTClient 28:add19eb7defa 335 }
AzureIoTClient 28:add19eb7defa 336 }
AzureIoTClient 28:add19eb7defa 337
AzureIoTClient 28:add19eb7defa 338 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 339 }
AzureIoTClient 28:add19eb7defa 340 }
AzureIoTClient 28:add19eb7defa 341
AzureIoTClient 28:add19eb7defa 342 error_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 343
AzureIoTClient 28:add19eb7defa 344 result = 0;
AzureIoTClient 28:add19eb7defa 345 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 346 }
AzureIoTClient 28:add19eb7defa 347 }
AzureIoTClient 28:add19eb7defa 348 }
AzureIoTClient 28:add19eb7defa 349
AzureIoTClient 28:add19eb7defa 350 return result;
Azure.IoT Build 0:6ae2f7bca550 351 }
Azure.IoT Build 0:6ae2f7bca550 352
Azure.IoT Build 0:6ae2f7bca550 353 int error_get_condition(ERROR_HANDLE error, const char** condition_value)
Azure.IoT Build 0:6ae2f7bca550 354 {
AzureIoTClient 28:add19eb7defa 355 int result;
AzureIoTClient 28:add19eb7defa 356
AzureIoTClient 28:add19eb7defa 357 if (error == NULL)
AzureIoTClient 28:add19eb7defa 358 {
AzureIoTClient 28:add19eb7defa 359 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 360 }
AzureIoTClient 28:add19eb7defa 361 else
AzureIoTClient 28:add19eb7defa 362 {
AzureIoTClient 28:add19eb7defa 363 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 364 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 365 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 366 {
AzureIoTClient 23:1111ee8bcba4 367 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 368 }
AzureIoTClient 23:1111ee8bcba4 369 else
AzureIoTClient 23:1111ee8bcba4 370 {
AzureIoTClient 23:1111ee8bcba4 371 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 372 {
AzureIoTClient 28:add19eb7defa 373 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 374 }
AzureIoTClient 28:add19eb7defa 375 else
AzureIoTClient 28:add19eb7defa 376 {
AzureIoTClient 28:add19eb7defa 377 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 378 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 379 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 380 {
AzureIoTClient 28:add19eb7defa 381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 382 }
AzureIoTClient 28:add19eb7defa 383 else
AzureIoTClient 28:add19eb7defa 384 {
AzureIoTClient 28:add19eb7defa 385 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 386 if ((get_single_value_result = amqpvalue_get_symbol(item_value, condition_value)) != 0)
AzureIoTClient 28:add19eb7defa 387 {
AzureIoTClient 28:add19eb7defa 388 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 389 }
AzureIoTClient 28:add19eb7defa 390 else
AzureIoTClient 28:add19eb7defa 391 {
AzureIoTClient 28:add19eb7defa 392 result = 0;
AzureIoTClient 28:add19eb7defa 393 }
AzureIoTClient 28:add19eb7defa 394 }
AzureIoTClient 28:add19eb7defa 395 }
AzureIoTClient 28:add19eb7defa 396 }
AzureIoTClient 28:add19eb7defa 397 }
AzureIoTClient 28:add19eb7defa 398
AzureIoTClient 28:add19eb7defa 399 return result;
Azure.IoT Build 0:6ae2f7bca550 400 }
Azure.IoT Build 0:6ae2f7bca550 401
Azure.IoT Build 0:6ae2f7bca550 402 int error_set_condition(ERROR_HANDLE error, const char* condition_value)
Azure.IoT Build 0:6ae2f7bca550 403 {
AzureIoTClient 28:add19eb7defa 404 int result;
AzureIoTClient 28:add19eb7defa 405
AzureIoTClient 28:add19eb7defa 406 if (error == NULL)
AzureIoTClient 28:add19eb7defa 407 {
AzureIoTClient 28:add19eb7defa 408 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 409 }
AzureIoTClient 28:add19eb7defa 410 else
AzureIoTClient 28:add19eb7defa 411 {
AzureIoTClient 28:add19eb7defa 412 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 413 AMQP_VALUE condition_amqp_value = amqpvalue_create_symbol(condition_value);
AzureIoTClient 28:add19eb7defa 414 if (condition_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 415 {
AzureIoTClient 28:add19eb7defa 416 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 417 }
AzureIoTClient 28:add19eb7defa 418 else
AzureIoTClient 28:add19eb7defa 419 {
AzureIoTClient 28:add19eb7defa 420 if (amqpvalue_set_composite_item(error_instance->composite_value, 0, condition_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 421 {
AzureIoTClient 28:add19eb7defa 422 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 423 }
AzureIoTClient 28:add19eb7defa 424 else
AzureIoTClient 28:add19eb7defa 425 {
AzureIoTClient 28:add19eb7defa 426 result = 0;
AzureIoTClient 28:add19eb7defa 427 }
AzureIoTClient 28:add19eb7defa 428
AzureIoTClient 28:add19eb7defa 429 amqpvalue_destroy(condition_amqp_value);
AzureIoTClient 28:add19eb7defa 430 }
AzureIoTClient 28:add19eb7defa 431 }
AzureIoTClient 28:add19eb7defa 432
AzureIoTClient 28:add19eb7defa 433 return result;
Azure.IoT Build 0:6ae2f7bca550 434 }
Azure.IoT Build 0:6ae2f7bca550 435
Azure.IoT Build 0:6ae2f7bca550 436 int error_get_description(ERROR_HANDLE error, const char** description_value)
Azure.IoT Build 0:6ae2f7bca550 437 {
AzureIoTClient 28:add19eb7defa 438 int result;
AzureIoTClient 28:add19eb7defa 439
AzureIoTClient 28:add19eb7defa 440 if (error == NULL)
AzureIoTClient 28:add19eb7defa 441 {
AzureIoTClient 28:add19eb7defa 442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 443 }
AzureIoTClient 28:add19eb7defa 444 else
AzureIoTClient 28:add19eb7defa 445 {
AzureIoTClient 28:add19eb7defa 446 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 447 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 448 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 449 {
AzureIoTClient 23:1111ee8bcba4 450 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 451 }
AzureIoTClient 23:1111ee8bcba4 452 else
AzureIoTClient 23:1111ee8bcba4 453 {
AzureIoTClient 23:1111ee8bcba4 454 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 455 {
AzureIoTClient 28:add19eb7defa 456 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 457 }
AzureIoTClient 28:add19eb7defa 458 else
AzureIoTClient 28:add19eb7defa 459 {
AzureIoTClient 28:add19eb7defa 460 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 461 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 462 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 463 {
AzureIoTClient 28:add19eb7defa 464 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 465 }
AzureIoTClient 28:add19eb7defa 466 else
AzureIoTClient 28:add19eb7defa 467 {
AzureIoTClient 28:add19eb7defa 468 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 469 if ((get_single_value_result = amqpvalue_get_string(item_value, description_value)) != 0)
AzureIoTClient 28:add19eb7defa 470 {
AzureIoTClient 28:add19eb7defa 471 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 472 }
AzureIoTClient 28:add19eb7defa 473 else
AzureIoTClient 28:add19eb7defa 474 {
AzureIoTClient 28:add19eb7defa 475 result = 0;
AzureIoTClient 28:add19eb7defa 476 }
AzureIoTClient 28:add19eb7defa 477 }
AzureIoTClient 28:add19eb7defa 478 }
AzureIoTClient 28:add19eb7defa 479 }
AzureIoTClient 28:add19eb7defa 480 }
AzureIoTClient 28:add19eb7defa 481
AzureIoTClient 28:add19eb7defa 482 return result;
Azure.IoT Build 0:6ae2f7bca550 483 }
Azure.IoT Build 0:6ae2f7bca550 484
Azure.IoT Build 0:6ae2f7bca550 485 int error_set_description(ERROR_HANDLE error, const char* description_value)
Azure.IoT Build 0:6ae2f7bca550 486 {
AzureIoTClient 28:add19eb7defa 487 int result;
AzureIoTClient 28:add19eb7defa 488
AzureIoTClient 28:add19eb7defa 489 if (error == NULL)
AzureIoTClient 28:add19eb7defa 490 {
AzureIoTClient 28:add19eb7defa 491 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 492 }
AzureIoTClient 28:add19eb7defa 493 else
AzureIoTClient 28:add19eb7defa 494 {
AzureIoTClient 28:add19eb7defa 495 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 496 AMQP_VALUE description_amqp_value = amqpvalue_create_string(description_value);
AzureIoTClient 28:add19eb7defa 497 if (description_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 498 {
AzureIoTClient 28:add19eb7defa 499 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 500 }
AzureIoTClient 28:add19eb7defa 501 else
AzureIoTClient 28:add19eb7defa 502 {
AzureIoTClient 28:add19eb7defa 503 if (amqpvalue_set_composite_item(error_instance->composite_value, 1, description_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 504 {
AzureIoTClient 28:add19eb7defa 505 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 506 }
AzureIoTClient 28:add19eb7defa 507 else
AzureIoTClient 28:add19eb7defa 508 {
AzureIoTClient 28:add19eb7defa 509 result = 0;
AzureIoTClient 28:add19eb7defa 510 }
AzureIoTClient 28:add19eb7defa 511
AzureIoTClient 28:add19eb7defa 512 amqpvalue_destroy(description_amqp_value);
AzureIoTClient 28:add19eb7defa 513 }
AzureIoTClient 28:add19eb7defa 514 }
AzureIoTClient 28:add19eb7defa 515
AzureIoTClient 28:add19eb7defa 516 return result;
Azure.IoT Build 0:6ae2f7bca550 517 }
Azure.IoT Build 0:6ae2f7bca550 518
Azure.IoT Build 0:6ae2f7bca550 519 int error_get_info(ERROR_HANDLE error, fields* info_value)
Azure.IoT Build 0:6ae2f7bca550 520 {
AzureIoTClient 28:add19eb7defa 521 int result;
AzureIoTClient 28:add19eb7defa 522
AzureIoTClient 28:add19eb7defa 523 if (error == NULL)
AzureIoTClient 28:add19eb7defa 524 {
AzureIoTClient 28:add19eb7defa 525 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 526 }
AzureIoTClient 28:add19eb7defa 527 else
AzureIoTClient 28:add19eb7defa 528 {
AzureIoTClient 28:add19eb7defa 529 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 530 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 23:1111ee8bcba4 531 if (amqpvalue_get_composite_item_count(error_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 532 {
AzureIoTClient 23:1111ee8bcba4 533 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 534 }
AzureIoTClient 23:1111ee8bcba4 535 else
AzureIoTClient 23:1111ee8bcba4 536 {
AzureIoTClient 23:1111ee8bcba4 537 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 538 {
AzureIoTClient 28:add19eb7defa 539 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 540 }
AzureIoTClient 28:add19eb7defa 541 else
AzureIoTClient 28:add19eb7defa 542 {
AzureIoTClient 28:add19eb7defa 543 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(error_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 544 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 545 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 546 {
AzureIoTClient 28:add19eb7defa 547 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 548 }
AzureIoTClient 28:add19eb7defa 549 else
AzureIoTClient 28:add19eb7defa 550 {
AzureIoTClient 28:add19eb7defa 551 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 552 if ((get_single_value_result = amqpvalue_get_fields(item_value, info_value)) != 0)
AzureIoTClient 28:add19eb7defa 553 {
AzureIoTClient 28:add19eb7defa 554 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 555 }
AzureIoTClient 28:add19eb7defa 556 else
AzureIoTClient 28:add19eb7defa 557 {
AzureIoTClient 28:add19eb7defa 558 result = 0;
AzureIoTClient 28:add19eb7defa 559 }
AzureIoTClient 28:add19eb7defa 560 }
AzureIoTClient 28:add19eb7defa 561 }
AzureIoTClient 28:add19eb7defa 562 }
AzureIoTClient 28:add19eb7defa 563 }
AzureIoTClient 28:add19eb7defa 564
AzureIoTClient 28:add19eb7defa 565 return result;
Azure.IoT Build 0:6ae2f7bca550 566 }
Azure.IoT Build 0:6ae2f7bca550 567
Azure.IoT Build 0:6ae2f7bca550 568 int error_set_info(ERROR_HANDLE error, fields info_value)
Azure.IoT Build 0:6ae2f7bca550 569 {
AzureIoTClient 28:add19eb7defa 570 int result;
AzureIoTClient 28:add19eb7defa 571
AzureIoTClient 28:add19eb7defa 572 if (error == NULL)
AzureIoTClient 28:add19eb7defa 573 {
AzureIoTClient 28:add19eb7defa 574 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 575 }
AzureIoTClient 28:add19eb7defa 576 else
AzureIoTClient 28:add19eb7defa 577 {
AzureIoTClient 28:add19eb7defa 578 ERROR_INSTANCE* error_instance = (ERROR_INSTANCE*)error;
AzureIoTClient 28:add19eb7defa 579 AMQP_VALUE info_amqp_value = amqpvalue_create_fields(info_value);
AzureIoTClient 28:add19eb7defa 580 if (info_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 581 {
AzureIoTClient 28:add19eb7defa 582 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 583 }
AzureIoTClient 28:add19eb7defa 584 else
AzureIoTClient 28:add19eb7defa 585 {
AzureIoTClient 28:add19eb7defa 586 if (amqpvalue_set_composite_item(error_instance->composite_value, 2, info_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 587 {
AzureIoTClient 28:add19eb7defa 588 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 589 }
AzureIoTClient 28:add19eb7defa 590 else
AzureIoTClient 28:add19eb7defa 591 {
AzureIoTClient 28:add19eb7defa 592 result = 0;
AzureIoTClient 28:add19eb7defa 593 }
AzureIoTClient 28:add19eb7defa 594
AzureIoTClient 28:add19eb7defa 595 amqpvalue_destroy(info_amqp_value);
AzureIoTClient 28:add19eb7defa 596 }
AzureIoTClient 28:add19eb7defa 597 }
AzureIoTClient 28:add19eb7defa 598
AzureIoTClient 28:add19eb7defa 599 return result;
Azure.IoT Build 0:6ae2f7bca550 600 }
Azure.IoT Build 0:6ae2f7bca550 601
Azure.IoT Build 0:6ae2f7bca550 602
Azure.IoT Build 0:6ae2f7bca550 603 /* amqp-error */
Azure.IoT Build 0:6ae2f7bca550 604
Azure.IoT Build 0:6ae2f7bca550 605 AMQP_VALUE amqpvalue_create_amqp_error(amqp_error value)
Azure.IoT Build 0:6ae2f7bca550 606 {
AzureIoTClient 28:add19eb7defa 607 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 608 }
Azure.IoT Build 0:6ae2f7bca550 609
Azure.IoT Build 0:6ae2f7bca550 610 /* connection-error */
Azure.IoT Build 0:6ae2f7bca550 611
Azure.IoT Build 0:6ae2f7bca550 612 AMQP_VALUE amqpvalue_create_connection_error(connection_error value)
Azure.IoT Build 0:6ae2f7bca550 613 {
AzureIoTClient 28:add19eb7defa 614 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 615 }
Azure.IoT Build 0:6ae2f7bca550 616
Azure.IoT Build 0:6ae2f7bca550 617 /* session-error */
Azure.IoT Build 0:6ae2f7bca550 618
Azure.IoT Build 0:6ae2f7bca550 619 AMQP_VALUE amqpvalue_create_session_error(session_error value)
Azure.IoT Build 0:6ae2f7bca550 620 {
AzureIoTClient 28:add19eb7defa 621 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 622 }
Azure.IoT Build 0:6ae2f7bca550 623
Azure.IoT Build 0:6ae2f7bca550 624 /* link-error */
Azure.IoT Build 0:6ae2f7bca550 625
Azure.IoT Build 0:6ae2f7bca550 626 AMQP_VALUE amqpvalue_create_link_error(link_error value)
Azure.IoT Build 0:6ae2f7bca550 627 {
AzureIoTClient 28:add19eb7defa 628 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 629 }
Azure.IoT Build 0:6ae2f7bca550 630
Azure.IoT Build 0:6ae2f7bca550 631 /* open */
Azure.IoT Build 0:6ae2f7bca550 632
Azure.IoT Build 0:6ae2f7bca550 633 typedef struct OPEN_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 634 {
AzureIoTClient 28:add19eb7defa 635 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 636 } OPEN_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 637
Azure.IoT Build 0:6ae2f7bca550 638 static OPEN_HANDLE open_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 639 {
AzureIoTClient 28:add19eb7defa 640 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
AzureIoTClient 28:add19eb7defa 641 if (open_instance != NULL)
AzureIoTClient 28:add19eb7defa 642 {
AzureIoTClient 28:add19eb7defa 643 open_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 644 }
AzureIoTClient 28:add19eb7defa 645
AzureIoTClient 28:add19eb7defa 646 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 647 }
Azure.IoT Build 0:6ae2f7bca550 648
Azure.IoT Build 0:6ae2f7bca550 649 OPEN_HANDLE open_create(const char* container_id_value)
Azure.IoT Build 0:6ae2f7bca550 650 {
AzureIoTClient 28:add19eb7defa 651 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
AzureIoTClient 28:add19eb7defa 652 if (open_instance != NULL)
AzureIoTClient 28:add19eb7defa 653 {
AzureIoTClient 28:add19eb7defa 654 open_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(16);
AzureIoTClient 28:add19eb7defa 655 if (open_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 656 {
AzureIoTClient 28:add19eb7defa 657 free(open_instance);
AzureIoTClient 28:add19eb7defa 658 open_instance = NULL;
AzureIoTClient 28:add19eb7defa 659 }
AzureIoTClient 28:add19eb7defa 660 else
AzureIoTClient 28:add19eb7defa 661 {
AzureIoTClient 28:add19eb7defa 662 AMQP_VALUE container_id_amqp_value;
AzureIoTClient 28:add19eb7defa 663 int result = 0;
AzureIoTClient 28:add19eb7defa 664
AzureIoTClient 28:add19eb7defa 665 container_id_amqp_value = amqpvalue_create_string(container_id_value);
AzureIoTClient 28:add19eb7defa 666 if ((result == 0) && (amqpvalue_set_composite_item(open_instance->composite_value, 0, container_id_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 667 {
AzureIoTClient 28:add19eb7defa 668 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 669 }
AzureIoTClient 28:add19eb7defa 670
AzureIoTClient 28:add19eb7defa 671 amqpvalue_destroy(container_id_amqp_value);
AzureIoTClient 28:add19eb7defa 672 }
AzureIoTClient 28:add19eb7defa 673 }
AzureIoTClient 28:add19eb7defa 674
AzureIoTClient 28:add19eb7defa 675 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 676 }
Azure.IoT Build 0:6ae2f7bca550 677
Azure.IoT Build 0:6ae2f7bca550 678 OPEN_HANDLE open_clone(OPEN_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 679 {
AzureIoTClient 28:add19eb7defa 680 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)malloc(sizeof(OPEN_INSTANCE));
AzureIoTClient 28:add19eb7defa 681 if (open_instance != NULL)
AzureIoTClient 28:add19eb7defa 682 {
AzureIoTClient 28:add19eb7defa 683 open_instance->composite_value = amqpvalue_clone(((OPEN_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 684 if (open_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 685 {
AzureIoTClient 28:add19eb7defa 686 free(open_instance);
AzureIoTClient 28:add19eb7defa 687 open_instance = NULL;
AzureIoTClient 28:add19eb7defa 688 }
AzureIoTClient 28:add19eb7defa 689 }
AzureIoTClient 28:add19eb7defa 690
AzureIoTClient 28:add19eb7defa 691 return open_instance;
Azure.IoT Build 0:6ae2f7bca550 692 }
Azure.IoT Build 0:6ae2f7bca550 693
Azure.IoT Build 0:6ae2f7bca550 694 void open_destroy(OPEN_HANDLE open)
Azure.IoT Build 0:6ae2f7bca550 695 {
AzureIoTClient 28:add19eb7defa 696 if (open != NULL)
AzureIoTClient 28:add19eb7defa 697 {
AzureIoTClient 28:add19eb7defa 698 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 699 amqpvalue_destroy(open_instance->composite_value);
AzureIoTClient 28:add19eb7defa 700 free(open_instance);
AzureIoTClient 28:add19eb7defa 701 }
Azure.IoT Build 0:6ae2f7bca550 702 }
Azure.IoT Build 0:6ae2f7bca550 703
Azure.IoT Build 0:6ae2f7bca550 704 AMQP_VALUE amqpvalue_create_open(OPEN_HANDLE open)
Azure.IoT Build 0:6ae2f7bca550 705 {
AzureIoTClient 28:add19eb7defa 706 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 707
AzureIoTClient 28:add19eb7defa 708 if (open == NULL)
AzureIoTClient 28:add19eb7defa 709 {
AzureIoTClient 28:add19eb7defa 710 result = NULL;
AzureIoTClient 28:add19eb7defa 711 }
AzureIoTClient 28:add19eb7defa 712 else
AzureIoTClient 28:add19eb7defa 713 {
AzureIoTClient 28:add19eb7defa 714 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 715 result = amqpvalue_clone(open_instance->composite_value);
AzureIoTClient 28:add19eb7defa 716 }
AzureIoTClient 28:add19eb7defa 717
AzureIoTClient 28:add19eb7defa 718 return result;
Azure.IoT Build 0:6ae2f7bca550 719 }
Azure.IoT Build 0:6ae2f7bca550 720
Azure.IoT Build 0:6ae2f7bca550 721 bool is_open_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 722 {
AzureIoTClient 28:add19eb7defa 723 bool result;
AzureIoTClient 28:add19eb7defa 724
AzureIoTClient 28:add19eb7defa 725 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 726 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 727 (descriptor_ulong == 16))
AzureIoTClient 28:add19eb7defa 728 {
AzureIoTClient 28:add19eb7defa 729 result = true;
AzureIoTClient 28:add19eb7defa 730 }
AzureIoTClient 28:add19eb7defa 731 else
AzureIoTClient 28:add19eb7defa 732 {
AzureIoTClient 28:add19eb7defa 733 result = false;
AzureIoTClient 28:add19eb7defa 734 }
AzureIoTClient 28:add19eb7defa 735
AzureIoTClient 28:add19eb7defa 736 return result;
Azure.IoT Build 0:6ae2f7bca550 737 }
Azure.IoT Build 0:6ae2f7bca550 738
Azure.IoT Build 0:6ae2f7bca550 739
Azure.IoT Build 0:6ae2f7bca550 740 int amqpvalue_get_open(AMQP_VALUE value, OPEN_HANDLE* open_handle)
Azure.IoT Build 0:6ae2f7bca550 741 {
AzureIoTClient 28:add19eb7defa 742 int result;
AzureIoTClient 28:add19eb7defa 743 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open_create_internal();
AzureIoTClient 28:add19eb7defa 744 *open_handle = open_instance;
AzureIoTClient 28:add19eb7defa 745 if (*open_handle == NULL)
AzureIoTClient 28:add19eb7defa 746 {
AzureIoTClient 28:add19eb7defa 747 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 748 }
AzureIoTClient 28:add19eb7defa 749 else
AzureIoTClient 28:add19eb7defa 750 {
AzureIoTClient 28:add19eb7defa 751 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 752 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 753 {
AzureIoTClient 28:add19eb7defa 754 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 755 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 756 }
AzureIoTClient 28:add19eb7defa 757 else
AzureIoTClient 28:add19eb7defa 758 {
AzureIoTClient 23:1111ee8bcba4 759 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 760 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 761 {
AzureIoTClient 23:1111ee8bcba4 762 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 763 }
AzureIoTClient 23:1111ee8bcba4 764 else
AzureIoTClient 23:1111ee8bcba4 765 {
AzureIoTClient 28:add19eb7defa 766 do
AzureIoTClient 28:add19eb7defa 767 {
AzureIoTClient 28:add19eb7defa 768 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 769 /* container-id */
AzureIoTClient 28:add19eb7defa 770 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 771 {
AzureIoTClient 23:1111ee8bcba4 772 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 773 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 774 {
AzureIoTClient 28:add19eb7defa 775 {
AzureIoTClient 28:add19eb7defa 776 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 777 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 778 break;
AzureIoTClient 28:add19eb7defa 779 }
AzureIoTClient 28:add19eb7defa 780 }
AzureIoTClient 28:add19eb7defa 781 else
AzureIoTClient 28:add19eb7defa 782 {
AzureIoTClient 28:add19eb7defa 783 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 784 {
AzureIoTClient 28:add19eb7defa 785 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 786 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 787 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 788 break;
AzureIoTClient 28:add19eb7defa 789 }
AzureIoTClient 28:add19eb7defa 790 else
AzureIoTClient 28:add19eb7defa 791 {
AzureIoTClient 28:add19eb7defa 792 const char* container_id;
AzureIoTClient 28:add19eb7defa 793 if (amqpvalue_get_string(item_value, &container_id) != 0)
AzureIoTClient 28:add19eb7defa 794 {
AzureIoTClient 28:add19eb7defa 795 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 796 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 797 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 798 break;
AzureIoTClient 28:add19eb7defa 799 }
AzureIoTClient 28:add19eb7defa 800 }
AzureIoTClient 28:add19eb7defa 801
AzureIoTClient 28:add19eb7defa 802 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 803 }
AzureIoTClient 28:add19eb7defa 804 }
AzureIoTClient 28:add19eb7defa 805 else
AzureIoTClient 28:add19eb7defa 806 {
AzureIoTClient 28:add19eb7defa 807 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 808 }
AzureIoTClient 28:add19eb7defa 809 /* hostname */
AzureIoTClient 28:add19eb7defa 810 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 811 {
AzureIoTClient 23:1111ee8bcba4 812 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 813 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 814 {
AzureIoTClient 28:add19eb7defa 815 /* do nothing */
AzureIoTClient 28:add19eb7defa 816 }
AzureIoTClient 28:add19eb7defa 817 else
AzureIoTClient 28:add19eb7defa 818 {
AzureIoTClient 28:add19eb7defa 819 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 820 {
AzureIoTClient 28:add19eb7defa 821 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 822 }
AzureIoTClient 28:add19eb7defa 823 else
AzureIoTClient 28:add19eb7defa 824 {
AzureIoTClient 28:add19eb7defa 825 const char* hostname;
AzureIoTClient 28:add19eb7defa 826 if (amqpvalue_get_string(item_value, &hostname) != 0)
AzureIoTClient 28:add19eb7defa 827 {
AzureIoTClient 28:add19eb7defa 828 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 829 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 830 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 831 break;
AzureIoTClient 28:add19eb7defa 832 }
AzureIoTClient 28:add19eb7defa 833 }
AzureIoTClient 28:add19eb7defa 834
AzureIoTClient 28:add19eb7defa 835 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 836 }
AzureIoTClient 28:add19eb7defa 837 }
AzureIoTClient 28:add19eb7defa 838 /* max-frame-size */
AzureIoTClient 28:add19eb7defa 839 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 840 {
AzureIoTClient 23:1111ee8bcba4 841 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 842 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 843 {
AzureIoTClient 28:add19eb7defa 844 /* do nothing */
AzureIoTClient 28:add19eb7defa 845 }
AzureIoTClient 28:add19eb7defa 846 else
AzureIoTClient 28:add19eb7defa 847 {
AzureIoTClient 28:add19eb7defa 848 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 849 {
AzureIoTClient 28:add19eb7defa 850 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 851 }
AzureIoTClient 28:add19eb7defa 852 else
AzureIoTClient 28:add19eb7defa 853 {
AzureIoTClient 28:add19eb7defa 854 uint32_t max_frame_size;
AzureIoTClient 28:add19eb7defa 855 if (amqpvalue_get_uint(item_value, &max_frame_size) != 0)
AzureIoTClient 28:add19eb7defa 856 {
AzureIoTClient 28:add19eb7defa 857 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 858 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 859 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 860 break;
AzureIoTClient 28:add19eb7defa 861 }
AzureIoTClient 28:add19eb7defa 862 }
AzureIoTClient 28:add19eb7defa 863
AzureIoTClient 28:add19eb7defa 864 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 865 }
AzureIoTClient 28:add19eb7defa 866 }
AzureIoTClient 28:add19eb7defa 867 /* channel-max */
AzureIoTClient 28:add19eb7defa 868 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 869 {
AzureIoTClient 23:1111ee8bcba4 870 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 871 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 872 {
AzureIoTClient 28:add19eb7defa 873 /* do nothing */
AzureIoTClient 28:add19eb7defa 874 }
AzureIoTClient 28:add19eb7defa 875 else
AzureIoTClient 28:add19eb7defa 876 {
AzureIoTClient 28:add19eb7defa 877 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 878 {
AzureIoTClient 28:add19eb7defa 879 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 880 }
AzureIoTClient 28:add19eb7defa 881 else
AzureIoTClient 28:add19eb7defa 882 {
AzureIoTClient 28:add19eb7defa 883 uint16_t channel_max;
AzureIoTClient 28:add19eb7defa 884 if (amqpvalue_get_ushort(item_value, &channel_max) != 0)
AzureIoTClient 28:add19eb7defa 885 {
AzureIoTClient 28:add19eb7defa 886 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 887 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 888 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 889 break;
AzureIoTClient 28:add19eb7defa 890 }
AzureIoTClient 28:add19eb7defa 891 }
AzureIoTClient 28:add19eb7defa 892
AzureIoTClient 28:add19eb7defa 893 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 894 }
AzureIoTClient 28:add19eb7defa 895 }
AzureIoTClient 28:add19eb7defa 896 /* idle-time-out */
AzureIoTClient 28:add19eb7defa 897 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 898 {
AzureIoTClient 23:1111ee8bcba4 899 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 900 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 901 {
AzureIoTClient 28:add19eb7defa 902 /* do nothing */
AzureIoTClient 28:add19eb7defa 903 }
AzureIoTClient 28:add19eb7defa 904 else
AzureIoTClient 28:add19eb7defa 905 {
AzureIoTClient 28:add19eb7defa 906 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 907 {
AzureIoTClient 28:add19eb7defa 908 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 909 }
AzureIoTClient 28:add19eb7defa 910 else
AzureIoTClient 28:add19eb7defa 911 {
AzureIoTClient 28:add19eb7defa 912 milliseconds idle_time_out;
AzureIoTClient 28:add19eb7defa 913 if (amqpvalue_get_milliseconds(item_value, &idle_time_out) != 0)
AzureIoTClient 28:add19eb7defa 914 {
AzureIoTClient 28:add19eb7defa 915 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 916 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 917 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 918 break;
AzureIoTClient 28:add19eb7defa 919 }
AzureIoTClient 28:add19eb7defa 920 }
AzureIoTClient 28:add19eb7defa 921
AzureIoTClient 28:add19eb7defa 922 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 923 }
AzureIoTClient 28:add19eb7defa 924 }
AzureIoTClient 28:add19eb7defa 925 /* outgoing-locales */
AzureIoTClient 28:add19eb7defa 926 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 927 {
AzureIoTClient 23:1111ee8bcba4 928 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 929 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 930 {
AzureIoTClient 28:add19eb7defa 931 /* do nothing */
AzureIoTClient 28:add19eb7defa 932 }
AzureIoTClient 28:add19eb7defa 933 else
AzureIoTClient 28:add19eb7defa 934 {
AzureIoTClient 28:add19eb7defa 935 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 936 {
AzureIoTClient 28:add19eb7defa 937 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 938 }
AzureIoTClient 28:add19eb7defa 939 else
AzureIoTClient 28:add19eb7defa 940 {
AzureIoTClient 28:add19eb7defa 941 ietf_language_tag outgoing_locales = NULL;
AzureIoTClient 28:add19eb7defa 942 AMQP_VALUE outgoing_locales_array;
AzureIoTClient 28:add19eb7defa 943 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &outgoing_locales_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 944 (amqpvalue_get_ietf_language_tag(item_value, &outgoing_locales) != 0))
AzureIoTClient 28:add19eb7defa 945 {
AzureIoTClient 28:add19eb7defa 946 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 947 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 948 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 949 break;
AzureIoTClient 28:add19eb7defa 950 }
AzureIoTClient 28:add19eb7defa 951 }
AzureIoTClient 28:add19eb7defa 952
AzureIoTClient 28:add19eb7defa 953 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 954 }
AzureIoTClient 28:add19eb7defa 955 }
AzureIoTClient 28:add19eb7defa 956 /* incoming-locales */
AzureIoTClient 28:add19eb7defa 957 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 958 {
AzureIoTClient 23:1111ee8bcba4 959 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 960 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 961 {
AzureIoTClient 28:add19eb7defa 962 /* do nothing */
AzureIoTClient 28:add19eb7defa 963 }
AzureIoTClient 28:add19eb7defa 964 else
AzureIoTClient 28:add19eb7defa 965 {
AzureIoTClient 28:add19eb7defa 966 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 967 {
AzureIoTClient 28:add19eb7defa 968 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 969 }
AzureIoTClient 28:add19eb7defa 970 else
AzureIoTClient 28:add19eb7defa 971 {
AzureIoTClient 28:add19eb7defa 972 ietf_language_tag incoming_locales = NULL;
AzureIoTClient 28:add19eb7defa 973 AMQP_VALUE incoming_locales_array;
AzureIoTClient 28:add19eb7defa 974 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &incoming_locales_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 975 (amqpvalue_get_ietf_language_tag(item_value, &incoming_locales) != 0))
AzureIoTClient 28:add19eb7defa 976 {
AzureIoTClient 28:add19eb7defa 977 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 978 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 979 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 980 break;
AzureIoTClient 28:add19eb7defa 981 }
AzureIoTClient 28:add19eb7defa 982 }
AzureIoTClient 28:add19eb7defa 983
AzureIoTClient 28:add19eb7defa 984 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 985 }
AzureIoTClient 28:add19eb7defa 986 }
AzureIoTClient 28:add19eb7defa 987 /* offered-capabilities */
AzureIoTClient 28:add19eb7defa 988 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 989 {
AzureIoTClient 23:1111ee8bcba4 990 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 991 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 992 {
AzureIoTClient 28:add19eb7defa 993 /* do nothing */
AzureIoTClient 28:add19eb7defa 994 }
AzureIoTClient 28:add19eb7defa 995 else
AzureIoTClient 28:add19eb7defa 996 {
AzureIoTClient 28:add19eb7defa 997 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 998 {
AzureIoTClient 28:add19eb7defa 999 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 1000 }
AzureIoTClient 28:add19eb7defa 1001 else
AzureIoTClient 28:add19eb7defa 1002 {
AzureIoTClient 28:add19eb7defa 1003 const char* offered_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 1004 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 28:add19eb7defa 1005 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &offered_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 1006 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 1007 {
AzureIoTClient 28:add19eb7defa 1008 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1009 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 1010 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1011 break;
AzureIoTClient 28:add19eb7defa 1012 }
AzureIoTClient 28:add19eb7defa 1013 }
AzureIoTClient 28:add19eb7defa 1014
AzureIoTClient 28:add19eb7defa 1015 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1016 }
AzureIoTClient 28:add19eb7defa 1017 }
AzureIoTClient 28:add19eb7defa 1018 /* desired-capabilities */
AzureIoTClient 28:add19eb7defa 1019 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 1020 {
AzureIoTClient 23:1111ee8bcba4 1021 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 1022 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 1023 {
AzureIoTClient 28:add19eb7defa 1024 /* do nothing */
AzureIoTClient 28:add19eb7defa 1025 }
AzureIoTClient 28:add19eb7defa 1026 else
AzureIoTClient 28:add19eb7defa 1027 {
AzureIoTClient 28:add19eb7defa 1028 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 1029 {
AzureIoTClient 28:add19eb7defa 1030 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 1031 }
AzureIoTClient 28:add19eb7defa 1032 else
AzureIoTClient 28:add19eb7defa 1033 {
AzureIoTClient 28:add19eb7defa 1034 const char* desired_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 1035 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 28:add19eb7defa 1036 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &desired_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 1037 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 1038 {
AzureIoTClient 28:add19eb7defa 1039 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1040 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 1041 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1042 break;
AzureIoTClient 28:add19eb7defa 1043 }
AzureIoTClient 28:add19eb7defa 1044 }
AzureIoTClient 28:add19eb7defa 1045
AzureIoTClient 28:add19eb7defa 1046 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1047 }
AzureIoTClient 28:add19eb7defa 1048 }
AzureIoTClient 28:add19eb7defa 1049 /* properties */
AzureIoTClient 28:add19eb7defa 1050 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 1051 {
AzureIoTClient 23:1111ee8bcba4 1052 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 1053 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 1054 {
AzureIoTClient 28:add19eb7defa 1055 /* do nothing */
AzureIoTClient 28:add19eb7defa 1056 }
AzureIoTClient 28:add19eb7defa 1057 else
AzureIoTClient 28:add19eb7defa 1058 {
AzureIoTClient 28:add19eb7defa 1059 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 1060 {
AzureIoTClient 28:add19eb7defa 1061 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 1062 }
AzureIoTClient 28:add19eb7defa 1063 else
AzureIoTClient 28:add19eb7defa 1064 {
AzureIoTClient 28:add19eb7defa 1065 fields properties;
AzureIoTClient 28:add19eb7defa 1066 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 1067 {
AzureIoTClient 28:add19eb7defa 1068 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1069 open_destroy(*open_handle);
AzureIoTClient 28:add19eb7defa 1070 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1071 break;
AzureIoTClient 28:add19eb7defa 1072 }
AzureIoTClient 28:add19eb7defa 1073 }
AzureIoTClient 28:add19eb7defa 1074
AzureIoTClient 28:add19eb7defa 1075 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 1076 }
AzureIoTClient 28:add19eb7defa 1077 }
AzureIoTClient 28:add19eb7defa 1078
AzureIoTClient 28:add19eb7defa 1079 open_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 1080
AzureIoTClient 28:add19eb7defa 1081 result = 0;
AzureIoTClient 28:add19eb7defa 1082 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 1083 }
AzureIoTClient 28:add19eb7defa 1084 }
AzureIoTClient 28:add19eb7defa 1085 }
AzureIoTClient 28:add19eb7defa 1086
AzureIoTClient 28:add19eb7defa 1087 return result;
Azure.IoT Build 0:6ae2f7bca550 1088 }
Azure.IoT Build 0:6ae2f7bca550 1089
Azure.IoT Build 0:6ae2f7bca550 1090 int open_get_container_id(OPEN_HANDLE open, const char** container_id_value)
Azure.IoT Build 0:6ae2f7bca550 1091 {
AzureIoTClient 28:add19eb7defa 1092 int result;
AzureIoTClient 28:add19eb7defa 1093
AzureIoTClient 28:add19eb7defa 1094 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1095 {
AzureIoTClient 28:add19eb7defa 1096 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1097 }
AzureIoTClient 28:add19eb7defa 1098 else
AzureIoTClient 28:add19eb7defa 1099 {
AzureIoTClient 28:add19eb7defa 1100 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1101 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1102 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1103 {
AzureIoTClient 23:1111ee8bcba4 1104 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1105 }
AzureIoTClient 23:1111ee8bcba4 1106 else
AzureIoTClient 23:1111ee8bcba4 1107 {
AzureIoTClient 23:1111ee8bcba4 1108 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 1109 {
AzureIoTClient 28:add19eb7defa 1110 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1111 }
AzureIoTClient 28:add19eb7defa 1112 else
AzureIoTClient 28:add19eb7defa 1113 {
AzureIoTClient 28:add19eb7defa 1114 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 1115 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1116 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1117 {
AzureIoTClient 28:add19eb7defa 1118 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1119 }
AzureIoTClient 28:add19eb7defa 1120 else
AzureIoTClient 28:add19eb7defa 1121 {
AzureIoTClient 28:add19eb7defa 1122 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1123 if ((get_single_value_result = amqpvalue_get_string(item_value, container_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 1124 {
AzureIoTClient 28:add19eb7defa 1125 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1126 }
AzureIoTClient 28:add19eb7defa 1127 else
AzureIoTClient 28:add19eb7defa 1128 {
AzureIoTClient 28:add19eb7defa 1129 result = 0;
AzureIoTClient 28:add19eb7defa 1130 }
AzureIoTClient 28:add19eb7defa 1131 }
AzureIoTClient 28:add19eb7defa 1132 }
AzureIoTClient 28:add19eb7defa 1133 }
AzureIoTClient 28:add19eb7defa 1134 }
AzureIoTClient 28:add19eb7defa 1135
AzureIoTClient 28:add19eb7defa 1136 return result;
Azure.IoT Build 0:6ae2f7bca550 1137 }
Azure.IoT Build 0:6ae2f7bca550 1138
Azure.IoT Build 0:6ae2f7bca550 1139 int open_set_container_id(OPEN_HANDLE open, const char* container_id_value)
Azure.IoT Build 0:6ae2f7bca550 1140 {
AzureIoTClient 28:add19eb7defa 1141 int result;
AzureIoTClient 28:add19eb7defa 1142
AzureIoTClient 28:add19eb7defa 1143 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1144 {
AzureIoTClient 28:add19eb7defa 1145 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1146 }
AzureIoTClient 28:add19eb7defa 1147 else
AzureIoTClient 28:add19eb7defa 1148 {
AzureIoTClient 28:add19eb7defa 1149 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1150 AMQP_VALUE container_id_amqp_value = amqpvalue_create_string(container_id_value);
AzureIoTClient 28:add19eb7defa 1151 if (container_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1152 {
AzureIoTClient 28:add19eb7defa 1153 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1154 }
AzureIoTClient 28:add19eb7defa 1155 else
AzureIoTClient 28:add19eb7defa 1156 {
AzureIoTClient 28:add19eb7defa 1157 if (amqpvalue_set_composite_item(open_instance->composite_value, 0, container_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1158 {
AzureIoTClient 28:add19eb7defa 1159 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1160 }
AzureIoTClient 28:add19eb7defa 1161 else
AzureIoTClient 28:add19eb7defa 1162 {
AzureIoTClient 28:add19eb7defa 1163 result = 0;
AzureIoTClient 28:add19eb7defa 1164 }
AzureIoTClient 28:add19eb7defa 1165
AzureIoTClient 28:add19eb7defa 1166 amqpvalue_destroy(container_id_amqp_value);
AzureIoTClient 28:add19eb7defa 1167 }
AzureIoTClient 28:add19eb7defa 1168 }
AzureIoTClient 28:add19eb7defa 1169
AzureIoTClient 28:add19eb7defa 1170 return result;
Azure.IoT Build 0:6ae2f7bca550 1171 }
Azure.IoT Build 0:6ae2f7bca550 1172
Azure.IoT Build 0:6ae2f7bca550 1173 int open_get_hostname(OPEN_HANDLE open, const char** hostname_value)
Azure.IoT Build 0:6ae2f7bca550 1174 {
AzureIoTClient 28:add19eb7defa 1175 int result;
AzureIoTClient 28:add19eb7defa 1176
AzureIoTClient 28:add19eb7defa 1177 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1178 {
AzureIoTClient 28:add19eb7defa 1179 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1180 }
AzureIoTClient 28:add19eb7defa 1181 else
AzureIoTClient 28:add19eb7defa 1182 {
AzureIoTClient 28:add19eb7defa 1183 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1184 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1185 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1186 {
AzureIoTClient 23:1111ee8bcba4 1187 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1188 }
AzureIoTClient 23:1111ee8bcba4 1189 else
AzureIoTClient 23:1111ee8bcba4 1190 {
AzureIoTClient 23:1111ee8bcba4 1191 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 1192 {
AzureIoTClient 28:add19eb7defa 1193 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1194 }
AzureIoTClient 28:add19eb7defa 1195 else
AzureIoTClient 28:add19eb7defa 1196 {
AzureIoTClient 28:add19eb7defa 1197 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 1198 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1199 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1200 {
AzureIoTClient 28:add19eb7defa 1201 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1202 }
AzureIoTClient 28:add19eb7defa 1203 else
AzureIoTClient 28:add19eb7defa 1204 {
AzureIoTClient 28:add19eb7defa 1205 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1206 if ((get_single_value_result = amqpvalue_get_string(item_value, hostname_value)) != 0)
AzureIoTClient 28:add19eb7defa 1207 {
AzureIoTClient 28:add19eb7defa 1208 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1209 }
AzureIoTClient 28:add19eb7defa 1210 else
AzureIoTClient 28:add19eb7defa 1211 {
AzureIoTClient 28:add19eb7defa 1212 result = 0;
AzureIoTClient 28:add19eb7defa 1213 }
AzureIoTClient 28:add19eb7defa 1214 }
AzureIoTClient 28:add19eb7defa 1215 }
AzureIoTClient 28:add19eb7defa 1216 }
AzureIoTClient 28:add19eb7defa 1217 }
AzureIoTClient 28:add19eb7defa 1218
AzureIoTClient 28:add19eb7defa 1219 return result;
Azure.IoT Build 0:6ae2f7bca550 1220 }
Azure.IoT Build 0:6ae2f7bca550 1221
Azure.IoT Build 0:6ae2f7bca550 1222 int open_set_hostname(OPEN_HANDLE open, const char* hostname_value)
Azure.IoT Build 0:6ae2f7bca550 1223 {
AzureIoTClient 28:add19eb7defa 1224 int result;
AzureIoTClient 28:add19eb7defa 1225
AzureIoTClient 28:add19eb7defa 1226 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1227 {
AzureIoTClient 28:add19eb7defa 1228 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1229 }
AzureIoTClient 28:add19eb7defa 1230 else
AzureIoTClient 28:add19eb7defa 1231 {
AzureIoTClient 28:add19eb7defa 1232 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1233 AMQP_VALUE hostname_amqp_value = amqpvalue_create_string(hostname_value);
AzureIoTClient 28:add19eb7defa 1234 if (hostname_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1235 {
AzureIoTClient 28:add19eb7defa 1236 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1237 }
AzureIoTClient 28:add19eb7defa 1238 else
AzureIoTClient 28:add19eb7defa 1239 {
AzureIoTClient 28:add19eb7defa 1240 if (amqpvalue_set_composite_item(open_instance->composite_value, 1, hostname_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1241 {
AzureIoTClient 28:add19eb7defa 1242 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1243 }
AzureIoTClient 28:add19eb7defa 1244 else
AzureIoTClient 28:add19eb7defa 1245 {
AzureIoTClient 28:add19eb7defa 1246 result = 0;
AzureIoTClient 28:add19eb7defa 1247 }
AzureIoTClient 28:add19eb7defa 1248
AzureIoTClient 28:add19eb7defa 1249 amqpvalue_destroy(hostname_amqp_value);
AzureIoTClient 28:add19eb7defa 1250 }
AzureIoTClient 28:add19eb7defa 1251 }
AzureIoTClient 28:add19eb7defa 1252
AzureIoTClient 28:add19eb7defa 1253 return result;
Azure.IoT Build 0:6ae2f7bca550 1254 }
Azure.IoT Build 0:6ae2f7bca550 1255
Azure.IoT Build 0:6ae2f7bca550 1256 int open_get_max_frame_size(OPEN_HANDLE open, uint32_t* max_frame_size_value)
Azure.IoT Build 0:6ae2f7bca550 1257 {
AzureIoTClient 28:add19eb7defa 1258 int result;
AzureIoTClient 28:add19eb7defa 1259
AzureIoTClient 28:add19eb7defa 1260 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1261 {
AzureIoTClient 28:add19eb7defa 1262 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1263 }
AzureIoTClient 28:add19eb7defa 1264 else
AzureIoTClient 28:add19eb7defa 1265 {
AzureIoTClient 28:add19eb7defa 1266 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1267 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1268 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1269 {
AzureIoTClient 23:1111ee8bcba4 1270 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1271 }
AzureIoTClient 23:1111ee8bcba4 1272 else
AzureIoTClient 23:1111ee8bcba4 1273 {
AzureIoTClient 23:1111ee8bcba4 1274 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 1275 {
AzureIoTClient 28:add19eb7defa 1276 *max_frame_size_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 1277 result = 0;
AzureIoTClient 28:add19eb7defa 1278 }
AzureIoTClient 28:add19eb7defa 1279 else
AzureIoTClient 28:add19eb7defa 1280 {
AzureIoTClient 28:add19eb7defa 1281 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 1282 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1283 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1284 {
AzureIoTClient 28:add19eb7defa 1285 *max_frame_size_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 1286 result = 0;
AzureIoTClient 28:add19eb7defa 1287 }
AzureIoTClient 28:add19eb7defa 1288 else
AzureIoTClient 28:add19eb7defa 1289 {
AzureIoTClient 28:add19eb7defa 1290 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1291 if ((get_single_value_result = amqpvalue_get_uint(item_value, max_frame_size_value)) != 0)
AzureIoTClient 28:add19eb7defa 1292 {
AzureIoTClient 23:1111ee8bcba4 1293 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 1294 {
AzureIoTClient 28:add19eb7defa 1295 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1296 }
AzureIoTClient 28:add19eb7defa 1297 else
AzureIoTClient 28:add19eb7defa 1298 {
AzureIoTClient 28:add19eb7defa 1299 *max_frame_size_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 1300 result = 0;
AzureIoTClient 23:1111ee8bcba4 1301 }
AzureIoTClient 28:add19eb7defa 1302 }
AzureIoTClient 28:add19eb7defa 1303 else
AzureIoTClient 28:add19eb7defa 1304 {
AzureIoTClient 28:add19eb7defa 1305 result = 0;
AzureIoTClient 28:add19eb7defa 1306 }
AzureIoTClient 28:add19eb7defa 1307 }
AzureIoTClient 28:add19eb7defa 1308 }
AzureIoTClient 28:add19eb7defa 1309 }
AzureIoTClient 28:add19eb7defa 1310 }
AzureIoTClient 28:add19eb7defa 1311
AzureIoTClient 28:add19eb7defa 1312 return result;
Azure.IoT Build 0:6ae2f7bca550 1313 }
Azure.IoT Build 0:6ae2f7bca550 1314
Azure.IoT Build 0:6ae2f7bca550 1315 int open_set_max_frame_size(OPEN_HANDLE open, uint32_t max_frame_size_value)
Azure.IoT Build 0:6ae2f7bca550 1316 {
AzureIoTClient 28:add19eb7defa 1317 int result;
AzureIoTClient 28:add19eb7defa 1318
AzureIoTClient 28:add19eb7defa 1319 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1320 {
AzureIoTClient 28:add19eb7defa 1321 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1322 }
AzureIoTClient 28:add19eb7defa 1323 else
AzureIoTClient 28:add19eb7defa 1324 {
AzureIoTClient 28:add19eb7defa 1325 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1326 AMQP_VALUE max_frame_size_amqp_value = amqpvalue_create_uint(max_frame_size_value);
AzureIoTClient 28:add19eb7defa 1327 if (max_frame_size_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1328 {
AzureIoTClient 28:add19eb7defa 1329 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1330 }
AzureIoTClient 28:add19eb7defa 1331 else
AzureIoTClient 28:add19eb7defa 1332 {
AzureIoTClient 28:add19eb7defa 1333 if (amqpvalue_set_composite_item(open_instance->composite_value, 2, max_frame_size_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1334 {
AzureIoTClient 28:add19eb7defa 1335 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1336 }
AzureIoTClient 28:add19eb7defa 1337 else
AzureIoTClient 28:add19eb7defa 1338 {
AzureIoTClient 28:add19eb7defa 1339 result = 0;
AzureIoTClient 28:add19eb7defa 1340 }
AzureIoTClient 28:add19eb7defa 1341
AzureIoTClient 28:add19eb7defa 1342 amqpvalue_destroy(max_frame_size_amqp_value);
AzureIoTClient 28:add19eb7defa 1343 }
AzureIoTClient 28:add19eb7defa 1344 }
AzureIoTClient 28:add19eb7defa 1345
AzureIoTClient 28:add19eb7defa 1346 return result;
Azure.IoT Build 0:6ae2f7bca550 1347 }
Azure.IoT Build 0:6ae2f7bca550 1348
Azure.IoT Build 0:6ae2f7bca550 1349 int open_get_channel_max(OPEN_HANDLE open, uint16_t* channel_max_value)
Azure.IoT Build 0:6ae2f7bca550 1350 {
AzureIoTClient 28:add19eb7defa 1351 int result;
AzureIoTClient 28:add19eb7defa 1352
AzureIoTClient 28:add19eb7defa 1353 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1354 {
AzureIoTClient 28:add19eb7defa 1355 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1356 }
AzureIoTClient 28:add19eb7defa 1357 else
AzureIoTClient 28:add19eb7defa 1358 {
AzureIoTClient 28:add19eb7defa 1359 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1360 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1361 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1362 {
AzureIoTClient 23:1111ee8bcba4 1363 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1364 }
AzureIoTClient 23:1111ee8bcba4 1365 else
AzureIoTClient 23:1111ee8bcba4 1366 {
AzureIoTClient 23:1111ee8bcba4 1367 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 1368 {
AzureIoTClient 28:add19eb7defa 1369 *channel_max_value = 65535;
AzureIoTClient 28:add19eb7defa 1370 result = 0;
AzureIoTClient 28:add19eb7defa 1371 }
AzureIoTClient 28:add19eb7defa 1372 else
AzureIoTClient 28:add19eb7defa 1373 {
AzureIoTClient 28:add19eb7defa 1374 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 1375 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1376 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1377 {
AzureIoTClient 28:add19eb7defa 1378 *channel_max_value = 65535;
AzureIoTClient 28:add19eb7defa 1379 result = 0;
AzureIoTClient 28:add19eb7defa 1380 }
AzureIoTClient 28:add19eb7defa 1381 else
AzureIoTClient 28:add19eb7defa 1382 {
AzureIoTClient 28:add19eb7defa 1383 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1384 if ((get_single_value_result = amqpvalue_get_ushort(item_value, channel_max_value)) != 0)
AzureIoTClient 28:add19eb7defa 1385 {
AzureIoTClient 23:1111ee8bcba4 1386 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 1387 {
AzureIoTClient 28:add19eb7defa 1388 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1389 }
AzureIoTClient 28:add19eb7defa 1390 else
AzureIoTClient 28:add19eb7defa 1391 {
AzureIoTClient 28:add19eb7defa 1392 *channel_max_value = 65535;
AzureIoTClient 23:1111ee8bcba4 1393 result = 0;
AzureIoTClient 23:1111ee8bcba4 1394 }
AzureIoTClient 28:add19eb7defa 1395 }
AzureIoTClient 28:add19eb7defa 1396 else
AzureIoTClient 28:add19eb7defa 1397 {
AzureIoTClient 28:add19eb7defa 1398 result = 0;
AzureIoTClient 28:add19eb7defa 1399 }
AzureIoTClient 28:add19eb7defa 1400 }
AzureIoTClient 28:add19eb7defa 1401 }
AzureIoTClient 28:add19eb7defa 1402 }
AzureIoTClient 28:add19eb7defa 1403 }
AzureIoTClient 28:add19eb7defa 1404
AzureIoTClient 28:add19eb7defa 1405 return result;
Azure.IoT Build 0:6ae2f7bca550 1406 }
Azure.IoT Build 0:6ae2f7bca550 1407
Azure.IoT Build 0:6ae2f7bca550 1408 int open_set_channel_max(OPEN_HANDLE open, uint16_t channel_max_value)
Azure.IoT Build 0:6ae2f7bca550 1409 {
AzureIoTClient 28:add19eb7defa 1410 int result;
AzureIoTClient 28:add19eb7defa 1411
AzureIoTClient 28:add19eb7defa 1412 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1413 {
AzureIoTClient 28:add19eb7defa 1414 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1415 }
AzureIoTClient 28:add19eb7defa 1416 else
AzureIoTClient 28:add19eb7defa 1417 {
AzureIoTClient 28:add19eb7defa 1418 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1419 AMQP_VALUE channel_max_amqp_value = amqpvalue_create_ushort(channel_max_value);
AzureIoTClient 28:add19eb7defa 1420 if (channel_max_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1421 {
AzureIoTClient 28:add19eb7defa 1422 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1423 }
AzureIoTClient 28:add19eb7defa 1424 else
AzureIoTClient 28:add19eb7defa 1425 {
AzureIoTClient 28:add19eb7defa 1426 if (amqpvalue_set_composite_item(open_instance->composite_value, 3, channel_max_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1427 {
AzureIoTClient 28:add19eb7defa 1428 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1429 }
AzureIoTClient 28:add19eb7defa 1430 else
AzureIoTClient 28:add19eb7defa 1431 {
AzureIoTClient 28:add19eb7defa 1432 result = 0;
AzureIoTClient 28:add19eb7defa 1433 }
AzureIoTClient 28:add19eb7defa 1434
AzureIoTClient 28:add19eb7defa 1435 amqpvalue_destroy(channel_max_amqp_value);
AzureIoTClient 28:add19eb7defa 1436 }
AzureIoTClient 28:add19eb7defa 1437 }
AzureIoTClient 28:add19eb7defa 1438
AzureIoTClient 28:add19eb7defa 1439 return result;
Azure.IoT Build 0:6ae2f7bca550 1440 }
Azure.IoT Build 0:6ae2f7bca550 1441
Azure.IoT Build 0:6ae2f7bca550 1442 int open_get_idle_time_out(OPEN_HANDLE open, milliseconds* idle_time_out_value)
Azure.IoT Build 0:6ae2f7bca550 1443 {
AzureIoTClient 28:add19eb7defa 1444 int result;
AzureIoTClient 28:add19eb7defa 1445
AzureIoTClient 28:add19eb7defa 1446 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1447 {
AzureIoTClient 28:add19eb7defa 1448 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1449 }
AzureIoTClient 28:add19eb7defa 1450 else
AzureIoTClient 28:add19eb7defa 1451 {
AzureIoTClient 28:add19eb7defa 1452 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1453 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1454 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1455 {
AzureIoTClient 23:1111ee8bcba4 1456 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1457 }
AzureIoTClient 23:1111ee8bcba4 1458 else
AzureIoTClient 23:1111ee8bcba4 1459 {
AzureIoTClient 23:1111ee8bcba4 1460 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 1461 {
AzureIoTClient 28:add19eb7defa 1462 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1463 }
AzureIoTClient 28:add19eb7defa 1464 else
AzureIoTClient 28:add19eb7defa 1465 {
AzureIoTClient 28:add19eb7defa 1466 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 1467 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1468 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1469 {
AzureIoTClient 28:add19eb7defa 1470 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1471 }
AzureIoTClient 28:add19eb7defa 1472 else
AzureIoTClient 28:add19eb7defa 1473 {
AzureIoTClient 28:add19eb7defa 1474 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1475 if ((get_single_value_result = amqpvalue_get_milliseconds(item_value, idle_time_out_value)) != 0)
AzureIoTClient 28:add19eb7defa 1476 {
AzureIoTClient 28:add19eb7defa 1477 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1478 }
AzureIoTClient 28:add19eb7defa 1479 else
AzureIoTClient 28:add19eb7defa 1480 {
AzureIoTClient 28:add19eb7defa 1481 result = 0;
AzureIoTClient 28:add19eb7defa 1482 }
AzureIoTClient 28:add19eb7defa 1483 }
AzureIoTClient 28:add19eb7defa 1484 }
AzureIoTClient 28:add19eb7defa 1485 }
AzureIoTClient 28:add19eb7defa 1486 }
AzureIoTClient 28:add19eb7defa 1487
AzureIoTClient 28:add19eb7defa 1488 return result;
Azure.IoT Build 0:6ae2f7bca550 1489 }
Azure.IoT Build 0:6ae2f7bca550 1490
Azure.IoT Build 0:6ae2f7bca550 1491 int open_set_idle_time_out(OPEN_HANDLE open, milliseconds idle_time_out_value)
Azure.IoT Build 0:6ae2f7bca550 1492 {
AzureIoTClient 28:add19eb7defa 1493 int result;
AzureIoTClient 28:add19eb7defa 1494
AzureIoTClient 28:add19eb7defa 1495 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1496 {
AzureIoTClient 28:add19eb7defa 1497 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1498 }
AzureIoTClient 28:add19eb7defa 1499 else
AzureIoTClient 28:add19eb7defa 1500 {
AzureIoTClient 28:add19eb7defa 1501 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1502 AMQP_VALUE idle_time_out_amqp_value = amqpvalue_create_milliseconds(idle_time_out_value);
AzureIoTClient 28:add19eb7defa 1503 if (idle_time_out_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1504 {
AzureIoTClient 28:add19eb7defa 1505 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1506 }
AzureIoTClient 28:add19eb7defa 1507 else
AzureIoTClient 28:add19eb7defa 1508 {
AzureIoTClient 28:add19eb7defa 1509 if (amqpvalue_set_composite_item(open_instance->composite_value, 4, idle_time_out_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1510 {
AzureIoTClient 28:add19eb7defa 1511 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1512 }
AzureIoTClient 28:add19eb7defa 1513 else
AzureIoTClient 28:add19eb7defa 1514 {
AzureIoTClient 28:add19eb7defa 1515 result = 0;
AzureIoTClient 28:add19eb7defa 1516 }
AzureIoTClient 28:add19eb7defa 1517
AzureIoTClient 28:add19eb7defa 1518 amqpvalue_destroy(idle_time_out_amqp_value);
AzureIoTClient 28:add19eb7defa 1519 }
AzureIoTClient 28:add19eb7defa 1520 }
AzureIoTClient 28:add19eb7defa 1521
AzureIoTClient 28:add19eb7defa 1522 return result;
Azure.IoT Build 0:6ae2f7bca550 1523 }
Azure.IoT Build 0:6ae2f7bca550 1524
Azure.IoT Build 0:6ae2f7bca550 1525 int open_get_outgoing_locales(OPEN_HANDLE open, AMQP_VALUE* outgoing_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1526 {
AzureIoTClient 28:add19eb7defa 1527 int result;
AzureIoTClient 28:add19eb7defa 1528
AzureIoTClient 28:add19eb7defa 1529 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1530 {
AzureIoTClient 28:add19eb7defa 1531 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1532 }
AzureIoTClient 28:add19eb7defa 1533 else
AzureIoTClient 28:add19eb7defa 1534 {
AzureIoTClient 28:add19eb7defa 1535 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1536 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1537 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1538 {
AzureIoTClient 23:1111ee8bcba4 1539 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1540 }
AzureIoTClient 23:1111ee8bcba4 1541 else
AzureIoTClient 23:1111ee8bcba4 1542 {
AzureIoTClient 23:1111ee8bcba4 1543 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 1544 {
AzureIoTClient 28:add19eb7defa 1545 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1546 }
AzureIoTClient 28:add19eb7defa 1547 else
AzureIoTClient 28:add19eb7defa 1548 {
AzureIoTClient 28:add19eb7defa 1549 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 1550 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1551 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1552 {
AzureIoTClient 28:add19eb7defa 1553 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1554 }
AzureIoTClient 28:add19eb7defa 1555 else
AzureIoTClient 28:add19eb7defa 1556 {
AzureIoTClient 28:add19eb7defa 1557 ietf_language_tag outgoing_locales_single_value;
AzureIoTClient 28:add19eb7defa 1558 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1559 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1560 {
AzureIoTClient 28:add19eb7defa 1561 get_single_value_result = amqpvalue_get_ietf_language_tag(item_value, &outgoing_locales_single_value);
AzureIoTClient 28:add19eb7defa 1562 }
AzureIoTClient 28:add19eb7defa 1563 else
AzureIoTClient 28:add19eb7defa 1564 {
AzureIoTClient 28:add19eb7defa 1565 (void)memset((void*)&outgoing_locales_single_value, 0, sizeof(outgoing_locales_single_value));
AzureIoTClient 28:add19eb7defa 1566 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1567 }
AzureIoTClient 28:add19eb7defa 1568
AzureIoTClient 28:add19eb7defa 1569 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, outgoing_locales_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1570 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1571 {
AzureIoTClient 28:add19eb7defa 1572 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1573 }
AzureIoTClient 28:add19eb7defa 1574 else
AzureIoTClient 28:add19eb7defa 1575 {
AzureIoTClient 28:add19eb7defa 1576 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1577 {
AzureIoTClient 28:add19eb7defa 1578 *outgoing_locales_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1579 if (*outgoing_locales_value == NULL)
AzureIoTClient 28:add19eb7defa 1580 {
AzureIoTClient 28:add19eb7defa 1581 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1582 }
AzureIoTClient 28:add19eb7defa 1583 else
AzureIoTClient 28:add19eb7defa 1584 {
AzureIoTClient 28:add19eb7defa 1585 AMQP_VALUE single_amqp_value = amqpvalue_create_ietf_language_tag(outgoing_locales_single_value);
AzureIoTClient 28:add19eb7defa 1586 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1587 {
AzureIoTClient 28:add19eb7defa 1588 amqpvalue_destroy(*outgoing_locales_value);
AzureIoTClient 28:add19eb7defa 1589 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1590 }
AzureIoTClient 28:add19eb7defa 1591 else
AzureIoTClient 28:add19eb7defa 1592 {
AzureIoTClient 28:add19eb7defa 1593 if (amqpvalue_add_array_item(*outgoing_locales_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1594 {
AzureIoTClient 28:add19eb7defa 1595 amqpvalue_destroy(*outgoing_locales_value);
AzureIoTClient 28:add19eb7defa 1596 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 1597 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1598 }
AzureIoTClient 28:add19eb7defa 1599 else
AzureIoTClient 28:add19eb7defa 1600 {
AzureIoTClient 29:4a11413cf217 1601 if (amqpvalue_set_composite_item(open_instance->composite_value, 5, *outgoing_locales_value) != 0)
AzureIoTClient 29:4a11413cf217 1602 {
AzureIoTClient 29:4a11413cf217 1603 amqpvalue_destroy(*outgoing_locales_value);
AzureIoTClient 29:4a11413cf217 1604 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 1605 }
AzureIoTClient 29:4a11413cf217 1606 else
AzureIoTClient 29:4a11413cf217 1607 {
AzureIoTClient 29:4a11413cf217 1608 result = 0;
AzureIoTClient 29:4a11413cf217 1609 }
AzureIoTClient 28:add19eb7defa 1610 }
AzureIoTClient 29:4a11413cf217 1611
AzureIoTClient 29:4a11413cf217 1612 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 1613 }
AzureIoTClient 29:4a11413cf217 1614 amqpvalue_destroy(*outgoing_locales_value);
AzureIoTClient 28:add19eb7defa 1615 }
AzureIoTClient 28:add19eb7defa 1616 }
AzureIoTClient 28:add19eb7defa 1617 else
AzureIoTClient 28:add19eb7defa 1618 {
AzureIoTClient 28:add19eb7defa 1619 result = 0;
AzureIoTClient 28:add19eb7defa 1620 }
AzureIoTClient 28:add19eb7defa 1621 }
AzureIoTClient 28:add19eb7defa 1622 }
AzureIoTClient 28:add19eb7defa 1623 }
AzureIoTClient 28:add19eb7defa 1624 }
AzureIoTClient 28:add19eb7defa 1625 }
AzureIoTClient 28:add19eb7defa 1626
AzureIoTClient 28:add19eb7defa 1627 return result;
Azure.IoT Build 0:6ae2f7bca550 1628 }
Azure.IoT Build 0:6ae2f7bca550 1629
Azure.IoT Build 0:6ae2f7bca550 1630 int open_set_outgoing_locales(OPEN_HANDLE open, AMQP_VALUE outgoing_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1631 {
AzureIoTClient 28:add19eb7defa 1632 int result;
AzureIoTClient 28:add19eb7defa 1633
AzureIoTClient 28:add19eb7defa 1634 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1635 {
AzureIoTClient 28:add19eb7defa 1636 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1637 }
AzureIoTClient 28:add19eb7defa 1638 else
AzureIoTClient 28:add19eb7defa 1639 {
AzureIoTClient 28:add19eb7defa 1640 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1641 AMQP_VALUE outgoing_locales_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1642 if (outgoing_locales_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1643 {
AzureIoTClient 23:1111ee8bcba4 1644 outgoing_locales_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1645 }
AzureIoTClient 23:1111ee8bcba4 1646 else
AzureIoTClient 23:1111ee8bcba4 1647 {
AzureIoTClient 23:1111ee8bcba4 1648 outgoing_locales_amqp_value = amqpvalue_clone(outgoing_locales_value);
AzureIoTClient 23:1111ee8bcba4 1649 }
AzureIoTClient 28:add19eb7defa 1650 if (outgoing_locales_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1651 {
AzureIoTClient 28:add19eb7defa 1652 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1653 }
AzureIoTClient 28:add19eb7defa 1654 else
AzureIoTClient 28:add19eb7defa 1655 {
AzureIoTClient 28:add19eb7defa 1656 if (amqpvalue_set_composite_item(open_instance->composite_value, 5, outgoing_locales_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1657 {
AzureIoTClient 28:add19eb7defa 1658 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1659 }
AzureIoTClient 28:add19eb7defa 1660 else
AzureIoTClient 28:add19eb7defa 1661 {
AzureIoTClient 28:add19eb7defa 1662 result = 0;
AzureIoTClient 28:add19eb7defa 1663 }
AzureIoTClient 28:add19eb7defa 1664
AzureIoTClient 28:add19eb7defa 1665 amqpvalue_destroy(outgoing_locales_amqp_value);
AzureIoTClient 28:add19eb7defa 1666 }
AzureIoTClient 28:add19eb7defa 1667 }
AzureIoTClient 28:add19eb7defa 1668
AzureIoTClient 28:add19eb7defa 1669 return result;
Azure.IoT Build 0:6ae2f7bca550 1670 }
Azure.IoT Build 0:6ae2f7bca550 1671
Azure.IoT Build 0:6ae2f7bca550 1672 int open_get_incoming_locales(OPEN_HANDLE open, AMQP_VALUE* incoming_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1673 {
AzureIoTClient 28:add19eb7defa 1674 int result;
AzureIoTClient 28:add19eb7defa 1675
AzureIoTClient 28:add19eb7defa 1676 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1677 {
AzureIoTClient 28:add19eb7defa 1678 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1679 }
AzureIoTClient 28:add19eb7defa 1680 else
AzureIoTClient 28:add19eb7defa 1681 {
AzureIoTClient 28:add19eb7defa 1682 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1683 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1684 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1685 {
AzureIoTClient 23:1111ee8bcba4 1686 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1687 }
AzureIoTClient 23:1111ee8bcba4 1688 else
AzureIoTClient 23:1111ee8bcba4 1689 {
AzureIoTClient 23:1111ee8bcba4 1690 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 1691 {
AzureIoTClient 28:add19eb7defa 1692 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1693 }
AzureIoTClient 28:add19eb7defa 1694 else
AzureIoTClient 28:add19eb7defa 1695 {
AzureIoTClient 28:add19eb7defa 1696 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 1697 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1698 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1699 {
AzureIoTClient 28:add19eb7defa 1700 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1701 }
AzureIoTClient 28:add19eb7defa 1702 else
AzureIoTClient 28:add19eb7defa 1703 {
AzureIoTClient 28:add19eb7defa 1704 ietf_language_tag incoming_locales_single_value;
AzureIoTClient 28:add19eb7defa 1705 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1706 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1707 {
AzureIoTClient 28:add19eb7defa 1708 get_single_value_result = amqpvalue_get_ietf_language_tag(item_value, &incoming_locales_single_value);
AzureIoTClient 28:add19eb7defa 1709 }
AzureIoTClient 28:add19eb7defa 1710 else
AzureIoTClient 28:add19eb7defa 1711 {
AzureIoTClient 28:add19eb7defa 1712 (void)memset((void*)&incoming_locales_single_value, 0, sizeof(incoming_locales_single_value));
AzureIoTClient 28:add19eb7defa 1713 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1714 }
AzureIoTClient 28:add19eb7defa 1715
AzureIoTClient 28:add19eb7defa 1716 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, incoming_locales_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1717 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1718 {
AzureIoTClient 28:add19eb7defa 1719 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1720 }
AzureIoTClient 28:add19eb7defa 1721 else
AzureIoTClient 28:add19eb7defa 1722 {
AzureIoTClient 28:add19eb7defa 1723 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1724 {
AzureIoTClient 28:add19eb7defa 1725 *incoming_locales_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1726 if (*incoming_locales_value == NULL)
AzureIoTClient 28:add19eb7defa 1727 {
AzureIoTClient 28:add19eb7defa 1728 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1729 }
AzureIoTClient 28:add19eb7defa 1730 else
AzureIoTClient 28:add19eb7defa 1731 {
AzureIoTClient 28:add19eb7defa 1732 AMQP_VALUE single_amqp_value = amqpvalue_create_ietf_language_tag(incoming_locales_single_value);
AzureIoTClient 28:add19eb7defa 1733 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1734 {
AzureIoTClient 28:add19eb7defa 1735 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 28:add19eb7defa 1736 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1737 }
AzureIoTClient 28:add19eb7defa 1738 else
AzureIoTClient 28:add19eb7defa 1739 {
AzureIoTClient 28:add19eb7defa 1740 if (amqpvalue_add_array_item(*incoming_locales_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1741 {
AzureIoTClient 28:add19eb7defa 1742 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 28:add19eb7defa 1743 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 1744 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1745 }
AzureIoTClient 28:add19eb7defa 1746 else
AzureIoTClient 28:add19eb7defa 1747 {
AzureIoTClient 29:4a11413cf217 1748 if (amqpvalue_set_composite_item(open_instance->composite_value, 6, *incoming_locales_value) != 0)
AzureIoTClient 29:4a11413cf217 1749 {
AzureIoTClient 29:4a11413cf217 1750 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 29:4a11413cf217 1751 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 1752 }
AzureIoTClient 29:4a11413cf217 1753 else
AzureIoTClient 29:4a11413cf217 1754 {
AzureIoTClient 29:4a11413cf217 1755 result = 0;
AzureIoTClient 29:4a11413cf217 1756 }
AzureIoTClient 28:add19eb7defa 1757 }
AzureIoTClient 29:4a11413cf217 1758
AzureIoTClient 29:4a11413cf217 1759 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 1760 }
AzureIoTClient 29:4a11413cf217 1761 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 28:add19eb7defa 1762 }
AzureIoTClient 28:add19eb7defa 1763 }
AzureIoTClient 28:add19eb7defa 1764 else
AzureIoTClient 28:add19eb7defa 1765 {
AzureIoTClient 28:add19eb7defa 1766 result = 0;
AzureIoTClient 28:add19eb7defa 1767 }
AzureIoTClient 28:add19eb7defa 1768 }
AzureIoTClient 28:add19eb7defa 1769 }
AzureIoTClient 28:add19eb7defa 1770 }
AzureIoTClient 28:add19eb7defa 1771 }
AzureIoTClient 28:add19eb7defa 1772 }
AzureIoTClient 28:add19eb7defa 1773
AzureIoTClient 28:add19eb7defa 1774 return result;
Azure.IoT Build 0:6ae2f7bca550 1775 }
Azure.IoT Build 0:6ae2f7bca550 1776
Azure.IoT Build 0:6ae2f7bca550 1777 int open_set_incoming_locales(OPEN_HANDLE open, AMQP_VALUE incoming_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1778 {
AzureIoTClient 28:add19eb7defa 1779 int result;
AzureIoTClient 28:add19eb7defa 1780
AzureIoTClient 28:add19eb7defa 1781 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1782 {
AzureIoTClient 28:add19eb7defa 1783 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1784 }
AzureIoTClient 28:add19eb7defa 1785 else
AzureIoTClient 28:add19eb7defa 1786 {
AzureIoTClient 28:add19eb7defa 1787 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1788 AMQP_VALUE incoming_locales_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1789 if (incoming_locales_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1790 {
AzureIoTClient 23:1111ee8bcba4 1791 incoming_locales_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1792 }
AzureIoTClient 23:1111ee8bcba4 1793 else
AzureIoTClient 23:1111ee8bcba4 1794 {
AzureIoTClient 23:1111ee8bcba4 1795 incoming_locales_amqp_value = amqpvalue_clone(incoming_locales_value);
AzureIoTClient 23:1111ee8bcba4 1796 }
AzureIoTClient 28:add19eb7defa 1797 if (incoming_locales_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1798 {
AzureIoTClient 28:add19eb7defa 1799 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1800 }
AzureIoTClient 28:add19eb7defa 1801 else
AzureIoTClient 28:add19eb7defa 1802 {
AzureIoTClient 28:add19eb7defa 1803 if (amqpvalue_set_composite_item(open_instance->composite_value, 6, incoming_locales_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1804 {
AzureIoTClient 28:add19eb7defa 1805 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1806 }
AzureIoTClient 28:add19eb7defa 1807 else
AzureIoTClient 28:add19eb7defa 1808 {
AzureIoTClient 28:add19eb7defa 1809 result = 0;
AzureIoTClient 28:add19eb7defa 1810 }
AzureIoTClient 28:add19eb7defa 1811
AzureIoTClient 28:add19eb7defa 1812 amqpvalue_destroy(incoming_locales_amqp_value);
AzureIoTClient 28:add19eb7defa 1813 }
AzureIoTClient 28:add19eb7defa 1814 }
AzureIoTClient 28:add19eb7defa 1815
AzureIoTClient 28:add19eb7defa 1816 return result;
Azure.IoT Build 0:6ae2f7bca550 1817 }
Azure.IoT Build 0:6ae2f7bca550 1818
Azure.IoT Build 0:6ae2f7bca550 1819 int open_get_offered_capabilities(OPEN_HANDLE open, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1820 {
AzureIoTClient 28:add19eb7defa 1821 int result;
AzureIoTClient 28:add19eb7defa 1822
AzureIoTClient 28:add19eb7defa 1823 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1824 {
AzureIoTClient 28:add19eb7defa 1825 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1826 }
AzureIoTClient 28:add19eb7defa 1827 else
AzureIoTClient 28:add19eb7defa 1828 {
AzureIoTClient 28:add19eb7defa 1829 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1830 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1831 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1832 {
AzureIoTClient 23:1111ee8bcba4 1833 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1834 }
AzureIoTClient 23:1111ee8bcba4 1835 else
AzureIoTClient 23:1111ee8bcba4 1836 {
AzureIoTClient 23:1111ee8bcba4 1837 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 1838 {
AzureIoTClient 28:add19eb7defa 1839 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1840 }
AzureIoTClient 28:add19eb7defa 1841 else
AzureIoTClient 28:add19eb7defa 1842 {
AzureIoTClient 28:add19eb7defa 1843 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 1844 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1845 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1846 {
AzureIoTClient 28:add19eb7defa 1847 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1848 }
AzureIoTClient 28:add19eb7defa 1849 else
AzureIoTClient 28:add19eb7defa 1850 {
AzureIoTClient 28:add19eb7defa 1851 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 1852 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1853 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1854 {
AzureIoTClient 28:add19eb7defa 1855 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 1856 }
AzureIoTClient 28:add19eb7defa 1857 else
AzureIoTClient 28:add19eb7defa 1858 {
AzureIoTClient 28:add19eb7defa 1859 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 1860 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1861 }
AzureIoTClient 28:add19eb7defa 1862
AzureIoTClient 28:add19eb7defa 1863 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1864 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1865 {
AzureIoTClient 28:add19eb7defa 1866 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1867 }
AzureIoTClient 28:add19eb7defa 1868 else
AzureIoTClient 28:add19eb7defa 1869 {
AzureIoTClient 28:add19eb7defa 1870 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1871 {
AzureIoTClient 28:add19eb7defa 1872 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1873 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 1874 {
AzureIoTClient 28:add19eb7defa 1875 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1876 }
AzureIoTClient 28:add19eb7defa 1877 else
AzureIoTClient 28:add19eb7defa 1878 {
AzureIoTClient 28:add19eb7defa 1879 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 1880 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1881 {
AzureIoTClient 28:add19eb7defa 1882 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 1883 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1884 }
AzureIoTClient 28:add19eb7defa 1885 else
AzureIoTClient 28:add19eb7defa 1886 {
AzureIoTClient 28:add19eb7defa 1887 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1888 {
AzureIoTClient 28:add19eb7defa 1889 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 1890 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 1891 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1892 }
AzureIoTClient 28:add19eb7defa 1893 else
AzureIoTClient 28:add19eb7defa 1894 {
AzureIoTClient 29:4a11413cf217 1895 if (amqpvalue_set_composite_item(open_instance->composite_value, 7, *offered_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 1896 {
AzureIoTClient 29:4a11413cf217 1897 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 29:4a11413cf217 1898 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 1899 }
AzureIoTClient 29:4a11413cf217 1900 else
AzureIoTClient 29:4a11413cf217 1901 {
AzureIoTClient 29:4a11413cf217 1902 result = 0;
AzureIoTClient 29:4a11413cf217 1903 }
AzureIoTClient 28:add19eb7defa 1904 }
AzureIoTClient 29:4a11413cf217 1905
AzureIoTClient 29:4a11413cf217 1906 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 1907 }
AzureIoTClient 29:4a11413cf217 1908 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 1909 }
AzureIoTClient 28:add19eb7defa 1910 }
AzureIoTClient 28:add19eb7defa 1911 else
AzureIoTClient 28:add19eb7defa 1912 {
AzureIoTClient 28:add19eb7defa 1913 result = 0;
AzureIoTClient 28:add19eb7defa 1914 }
AzureIoTClient 28:add19eb7defa 1915 }
AzureIoTClient 28:add19eb7defa 1916 }
AzureIoTClient 28:add19eb7defa 1917 }
AzureIoTClient 28:add19eb7defa 1918 }
AzureIoTClient 28:add19eb7defa 1919 }
AzureIoTClient 28:add19eb7defa 1920
AzureIoTClient 28:add19eb7defa 1921 return result;
Azure.IoT Build 0:6ae2f7bca550 1922 }
Azure.IoT Build 0:6ae2f7bca550 1923
Azure.IoT Build 0:6ae2f7bca550 1924 int open_set_offered_capabilities(OPEN_HANDLE open, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1925 {
AzureIoTClient 28:add19eb7defa 1926 int result;
AzureIoTClient 28:add19eb7defa 1927
AzureIoTClient 28:add19eb7defa 1928 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1929 {
AzureIoTClient 28:add19eb7defa 1930 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1931 }
AzureIoTClient 28:add19eb7defa 1932 else
AzureIoTClient 28:add19eb7defa 1933 {
AzureIoTClient 28:add19eb7defa 1934 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1935 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1936 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1937 {
AzureIoTClient 23:1111ee8bcba4 1938 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1939 }
AzureIoTClient 23:1111ee8bcba4 1940 else
AzureIoTClient 23:1111ee8bcba4 1941 {
AzureIoTClient 23:1111ee8bcba4 1942 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 1943 }
AzureIoTClient 28:add19eb7defa 1944 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1945 {
AzureIoTClient 28:add19eb7defa 1946 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1947 }
AzureIoTClient 28:add19eb7defa 1948 else
AzureIoTClient 28:add19eb7defa 1949 {
AzureIoTClient 28:add19eb7defa 1950 if (amqpvalue_set_composite_item(open_instance->composite_value, 7, offered_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1951 {
AzureIoTClient 28:add19eb7defa 1952 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1953 }
AzureIoTClient 28:add19eb7defa 1954 else
AzureIoTClient 28:add19eb7defa 1955 {
AzureIoTClient 28:add19eb7defa 1956 result = 0;
AzureIoTClient 28:add19eb7defa 1957 }
AzureIoTClient 28:add19eb7defa 1958
AzureIoTClient 28:add19eb7defa 1959 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 1960 }
AzureIoTClient 28:add19eb7defa 1961 }
AzureIoTClient 28:add19eb7defa 1962
AzureIoTClient 28:add19eb7defa 1963 return result;
Azure.IoT Build 0:6ae2f7bca550 1964 }
Azure.IoT Build 0:6ae2f7bca550 1965
Azure.IoT Build 0:6ae2f7bca550 1966 int open_get_desired_capabilities(OPEN_HANDLE open, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1967 {
AzureIoTClient 28:add19eb7defa 1968 int result;
AzureIoTClient 28:add19eb7defa 1969
AzureIoTClient 28:add19eb7defa 1970 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1971 {
AzureIoTClient 28:add19eb7defa 1972 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1973 }
AzureIoTClient 28:add19eb7defa 1974 else
AzureIoTClient 28:add19eb7defa 1975 {
AzureIoTClient 28:add19eb7defa 1976 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1977 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1978 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1979 {
AzureIoTClient 23:1111ee8bcba4 1980 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1981 }
AzureIoTClient 23:1111ee8bcba4 1982 else
AzureIoTClient 23:1111ee8bcba4 1983 {
AzureIoTClient 23:1111ee8bcba4 1984 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 1985 {
AzureIoTClient 28:add19eb7defa 1986 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1987 }
AzureIoTClient 28:add19eb7defa 1988 else
AzureIoTClient 28:add19eb7defa 1989 {
AzureIoTClient 28:add19eb7defa 1990 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 1991 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1992 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1993 {
AzureIoTClient 28:add19eb7defa 1994 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1995 }
AzureIoTClient 28:add19eb7defa 1996 else
AzureIoTClient 28:add19eb7defa 1997 {
AzureIoTClient 28:add19eb7defa 1998 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 1999 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2000 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 2001 {
AzureIoTClient 28:add19eb7defa 2002 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 2003 }
AzureIoTClient 28:add19eb7defa 2004 else
AzureIoTClient 28:add19eb7defa 2005 {
AzureIoTClient 28:add19eb7defa 2006 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 2007 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 2008 }
AzureIoTClient 28:add19eb7defa 2009
AzureIoTClient 28:add19eb7defa 2010 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 2011 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 2012 {
AzureIoTClient 28:add19eb7defa 2013 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2014 }
AzureIoTClient 28:add19eb7defa 2015 else
AzureIoTClient 28:add19eb7defa 2016 {
AzureIoTClient 28:add19eb7defa 2017 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 2018 {
AzureIoTClient 28:add19eb7defa 2019 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 2020 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 2021 {
AzureIoTClient 28:add19eb7defa 2022 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2023 }
AzureIoTClient 28:add19eb7defa 2024 else
AzureIoTClient 28:add19eb7defa 2025 {
AzureIoTClient 28:add19eb7defa 2026 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 2027 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2028 {
AzureIoTClient 28:add19eb7defa 2029 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 2030 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2031 }
AzureIoTClient 28:add19eb7defa 2032 else
AzureIoTClient 28:add19eb7defa 2033 {
AzureIoTClient 28:add19eb7defa 2034 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2035 {
AzureIoTClient 28:add19eb7defa 2036 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 2037 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 2038 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2039 }
AzureIoTClient 28:add19eb7defa 2040 else
AzureIoTClient 28:add19eb7defa 2041 {
AzureIoTClient 29:4a11413cf217 2042 if (amqpvalue_set_composite_item(open_instance->composite_value, 8, *desired_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 2043 {
AzureIoTClient 29:4a11413cf217 2044 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 29:4a11413cf217 2045 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 2046 }
AzureIoTClient 29:4a11413cf217 2047 else
AzureIoTClient 29:4a11413cf217 2048 {
AzureIoTClient 29:4a11413cf217 2049 result = 0;
AzureIoTClient 29:4a11413cf217 2050 }
AzureIoTClient 28:add19eb7defa 2051 }
AzureIoTClient 29:4a11413cf217 2052
AzureIoTClient 29:4a11413cf217 2053 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 2054 }
AzureIoTClient 29:4a11413cf217 2055 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 2056 }
AzureIoTClient 28:add19eb7defa 2057 }
AzureIoTClient 28:add19eb7defa 2058 else
AzureIoTClient 28:add19eb7defa 2059 {
AzureIoTClient 28:add19eb7defa 2060 result = 0;
AzureIoTClient 28:add19eb7defa 2061 }
AzureIoTClient 28:add19eb7defa 2062 }
AzureIoTClient 28:add19eb7defa 2063 }
AzureIoTClient 28:add19eb7defa 2064 }
AzureIoTClient 28:add19eb7defa 2065 }
AzureIoTClient 28:add19eb7defa 2066 }
AzureIoTClient 28:add19eb7defa 2067
AzureIoTClient 28:add19eb7defa 2068 return result;
Azure.IoT Build 0:6ae2f7bca550 2069 }
Azure.IoT Build 0:6ae2f7bca550 2070
Azure.IoT Build 0:6ae2f7bca550 2071 int open_set_desired_capabilities(OPEN_HANDLE open, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 2072 {
AzureIoTClient 28:add19eb7defa 2073 int result;
AzureIoTClient 28:add19eb7defa 2074
AzureIoTClient 28:add19eb7defa 2075 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2076 {
AzureIoTClient 28:add19eb7defa 2077 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2078 }
AzureIoTClient 28:add19eb7defa 2079 else
AzureIoTClient 28:add19eb7defa 2080 {
AzureIoTClient 28:add19eb7defa 2081 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 2082 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 2083 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2084 {
AzureIoTClient 23:1111ee8bcba4 2085 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 2086 }
AzureIoTClient 23:1111ee8bcba4 2087 else
AzureIoTClient 23:1111ee8bcba4 2088 {
AzureIoTClient 23:1111ee8bcba4 2089 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 2090 }
AzureIoTClient 28:add19eb7defa 2091 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2092 {
AzureIoTClient 28:add19eb7defa 2093 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2094 }
AzureIoTClient 28:add19eb7defa 2095 else
AzureIoTClient 28:add19eb7defa 2096 {
AzureIoTClient 28:add19eb7defa 2097 if (amqpvalue_set_composite_item(open_instance->composite_value, 8, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2098 {
AzureIoTClient 28:add19eb7defa 2099 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2100 }
AzureIoTClient 28:add19eb7defa 2101 else
AzureIoTClient 28:add19eb7defa 2102 {
AzureIoTClient 28:add19eb7defa 2103 result = 0;
AzureIoTClient 28:add19eb7defa 2104 }
AzureIoTClient 28:add19eb7defa 2105
AzureIoTClient 28:add19eb7defa 2106 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 2107 }
AzureIoTClient 28:add19eb7defa 2108 }
AzureIoTClient 28:add19eb7defa 2109
AzureIoTClient 28:add19eb7defa 2110 return result;
Azure.IoT Build 0:6ae2f7bca550 2111 }
Azure.IoT Build 0:6ae2f7bca550 2112
Azure.IoT Build 0:6ae2f7bca550 2113 int open_get_properties(OPEN_HANDLE open, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 2114 {
AzureIoTClient 28:add19eb7defa 2115 int result;
AzureIoTClient 28:add19eb7defa 2116
AzureIoTClient 28:add19eb7defa 2117 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2118 {
AzureIoTClient 28:add19eb7defa 2119 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2120 }
AzureIoTClient 28:add19eb7defa 2121 else
AzureIoTClient 28:add19eb7defa 2122 {
AzureIoTClient 28:add19eb7defa 2123 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2124 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 2125 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2126 {
AzureIoTClient 23:1111ee8bcba4 2127 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2128 }
AzureIoTClient 23:1111ee8bcba4 2129 else
AzureIoTClient 23:1111ee8bcba4 2130 {
AzureIoTClient 23:1111ee8bcba4 2131 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 2132 {
AzureIoTClient 28:add19eb7defa 2133 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2134 }
AzureIoTClient 28:add19eb7defa 2135 else
AzureIoTClient 28:add19eb7defa 2136 {
AzureIoTClient 28:add19eb7defa 2137 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 2138 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2139 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2140 {
AzureIoTClient 28:add19eb7defa 2141 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2142 }
AzureIoTClient 28:add19eb7defa 2143 else
AzureIoTClient 28:add19eb7defa 2144 {
AzureIoTClient 28:add19eb7defa 2145 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2146 if ((get_single_value_result = amqpvalue_get_fields(item_value, properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 2147 {
AzureIoTClient 28:add19eb7defa 2148 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2149 }
AzureIoTClient 28:add19eb7defa 2150 else
AzureIoTClient 28:add19eb7defa 2151 {
AzureIoTClient 28:add19eb7defa 2152 result = 0;
AzureIoTClient 28:add19eb7defa 2153 }
AzureIoTClient 28:add19eb7defa 2154 }
AzureIoTClient 28:add19eb7defa 2155 }
AzureIoTClient 28:add19eb7defa 2156 }
AzureIoTClient 28:add19eb7defa 2157 }
AzureIoTClient 28:add19eb7defa 2158
AzureIoTClient 28:add19eb7defa 2159 return result;
Azure.IoT Build 0:6ae2f7bca550 2160 }
Azure.IoT Build 0:6ae2f7bca550 2161
Azure.IoT Build 0:6ae2f7bca550 2162 int open_set_properties(OPEN_HANDLE open, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 2163 {
AzureIoTClient 28:add19eb7defa 2164 int result;
AzureIoTClient 28:add19eb7defa 2165
AzureIoTClient 28:add19eb7defa 2166 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2167 {
AzureIoTClient 28:add19eb7defa 2168 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2169 }
AzureIoTClient 28:add19eb7defa 2170 else
AzureIoTClient 28:add19eb7defa 2171 {
AzureIoTClient 28:add19eb7defa 2172 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 2173 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 2174 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2175 {
AzureIoTClient 28:add19eb7defa 2176 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2177 }
AzureIoTClient 28:add19eb7defa 2178 else
AzureIoTClient 28:add19eb7defa 2179 {
AzureIoTClient 28:add19eb7defa 2180 if (amqpvalue_set_composite_item(open_instance->composite_value, 9, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2181 {
AzureIoTClient 28:add19eb7defa 2182 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2183 }
AzureIoTClient 28:add19eb7defa 2184 else
AzureIoTClient 28:add19eb7defa 2185 {
AzureIoTClient 28:add19eb7defa 2186 result = 0;
AzureIoTClient 28:add19eb7defa 2187 }
AzureIoTClient 28:add19eb7defa 2188
AzureIoTClient 28:add19eb7defa 2189 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 2190 }
AzureIoTClient 28:add19eb7defa 2191 }
AzureIoTClient 28:add19eb7defa 2192
AzureIoTClient 28:add19eb7defa 2193 return result;
Azure.IoT Build 0:6ae2f7bca550 2194 }
Azure.IoT Build 0:6ae2f7bca550 2195
Azure.IoT Build 0:6ae2f7bca550 2196
Azure.IoT Build 0:6ae2f7bca550 2197 /* begin */
Azure.IoT Build 0:6ae2f7bca550 2198
Azure.IoT Build 0:6ae2f7bca550 2199 typedef struct BEGIN_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 2200 {
AzureIoTClient 28:add19eb7defa 2201 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 2202 } BEGIN_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 2203
Azure.IoT Build 0:6ae2f7bca550 2204 static BEGIN_HANDLE begin_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 2205 {
AzureIoTClient 28:add19eb7defa 2206 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2207 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2208 {
AzureIoTClient 28:add19eb7defa 2209 begin_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 2210 }
AzureIoTClient 28:add19eb7defa 2211
AzureIoTClient 28:add19eb7defa 2212 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2213 }
Azure.IoT Build 0:6ae2f7bca550 2214
Azure.IoT Build 0:6ae2f7bca550 2215 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 2216 {
AzureIoTClient 28:add19eb7defa 2217 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2218 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2219 {
AzureIoTClient 28:add19eb7defa 2220 begin_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(17);
AzureIoTClient 28:add19eb7defa 2221 if (begin_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 2222 {
AzureIoTClient 28:add19eb7defa 2223 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2224 begin_instance = NULL;
AzureIoTClient 28:add19eb7defa 2225 }
AzureIoTClient 28:add19eb7defa 2226 else
AzureIoTClient 28:add19eb7defa 2227 {
AzureIoTClient 28:add19eb7defa 2228 AMQP_VALUE next_outgoing_id_amqp_value;
AzureIoTClient 28:add19eb7defa 2229 AMQP_VALUE incoming_window_amqp_value;
AzureIoTClient 28:add19eb7defa 2230 AMQP_VALUE outgoing_window_amqp_value;
AzureIoTClient 28:add19eb7defa 2231 int result = 0;
AzureIoTClient 28:add19eb7defa 2232
AzureIoTClient 28:add19eb7defa 2233 next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 2234 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 1, next_outgoing_id_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2235 {
AzureIoTClient 28:add19eb7defa 2236 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2237 }
AzureIoTClient 28:add19eb7defa 2238 incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 2239 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 2, incoming_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2240 {
AzureIoTClient 28:add19eb7defa 2241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2242 }
AzureIoTClient 28:add19eb7defa 2243 outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 2244 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 3, outgoing_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2245 {
AzureIoTClient 28:add19eb7defa 2246 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2247 }
AzureIoTClient 28:add19eb7defa 2248
AzureIoTClient 28:add19eb7defa 2249 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 2250 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2251 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2252 }
AzureIoTClient 28:add19eb7defa 2253 }
AzureIoTClient 28:add19eb7defa 2254
AzureIoTClient 28:add19eb7defa 2255 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2256 }
Azure.IoT Build 0:6ae2f7bca550 2257
Azure.IoT Build 0:6ae2f7bca550 2258 BEGIN_HANDLE begin_clone(BEGIN_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 2259 {
AzureIoTClient 28:add19eb7defa 2260 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2261 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2262 {
AzureIoTClient 28:add19eb7defa 2263 begin_instance->composite_value = amqpvalue_clone(((BEGIN_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 2264 if (begin_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 2265 {
AzureIoTClient 28:add19eb7defa 2266 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2267 begin_instance = NULL;
AzureIoTClient 28:add19eb7defa 2268 }
AzureIoTClient 28:add19eb7defa 2269 }
AzureIoTClient 28:add19eb7defa 2270
AzureIoTClient 28:add19eb7defa 2271 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2272 }
Azure.IoT Build 0:6ae2f7bca550 2273
Azure.IoT Build 0:6ae2f7bca550 2274 void begin_destroy(BEGIN_HANDLE begin)
Azure.IoT Build 0:6ae2f7bca550 2275 {
AzureIoTClient 28:add19eb7defa 2276 if (begin != NULL)
AzureIoTClient 28:add19eb7defa 2277 {
AzureIoTClient 28:add19eb7defa 2278 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2279 amqpvalue_destroy(begin_instance->composite_value);
AzureIoTClient 28:add19eb7defa 2280 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2281 }
Azure.IoT Build 0:6ae2f7bca550 2282 }
Azure.IoT Build 0:6ae2f7bca550 2283
Azure.IoT Build 0:6ae2f7bca550 2284 AMQP_VALUE amqpvalue_create_begin(BEGIN_HANDLE begin)
Azure.IoT Build 0:6ae2f7bca550 2285 {
AzureIoTClient 28:add19eb7defa 2286 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 2287
AzureIoTClient 28:add19eb7defa 2288 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2289 {
AzureIoTClient 28:add19eb7defa 2290 result = NULL;
AzureIoTClient 28:add19eb7defa 2291 }
AzureIoTClient 28:add19eb7defa 2292 else
AzureIoTClient 28:add19eb7defa 2293 {
AzureIoTClient 28:add19eb7defa 2294 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2295 result = amqpvalue_clone(begin_instance->composite_value);
AzureIoTClient 28:add19eb7defa 2296 }
AzureIoTClient 28:add19eb7defa 2297
AzureIoTClient 28:add19eb7defa 2298 return result;
Azure.IoT Build 0:6ae2f7bca550 2299 }
Azure.IoT Build 0:6ae2f7bca550 2300
Azure.IoT Build 0:6ae2f7bca550 2301 bool is_begin_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 2302 {
AzureIoTClient 28:add19eb7defa 2303 bool result;
AzureIoTClient 28:add19eb7defa 2304
AzureIoTClient 28:add19eb7defa 2305 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 2306 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 2307 (descriptor_ulong == 17))
AzureIoTClient 28:add19eb7defa 2308 {
AzureIoTClient 28:add19eb7defa 2309 result = true;
AzureIoTClient 28:add19eb7defa 2310 }
AzureIoTClient 28:add19eb7defa 2311 else
AzureIoTClient 28:add19eb7defa 2312 {
AzureIoTClient 28:add19eb7defa 2313 result = false;
AzureIoTClient 28:add19eb7defa 2314 }
AzureIoTClient 28:add19eb7defa 2315
AzureIoTClient 28:add19eb7defa 2316 return result;
Azure.IoT Build 0:6ae2f7bca550 2317 }
Azure.IoT Build 0:6ae2f7bca550 2318
Azure.IoT Build 0:6ae2f7bca550 2319
Azure.IoT Build 0:6ae2f7bca550 2320 int amqpvalue_get_begin(AMQP_VALUE value, BEGIN_HANDLE* begin_handle)
Azure.IoT Build 0:6ae2f7bca550 2321 {
AzureIoTClient 28:add19eb7defa 2322 int result;
AzureIoTClient 28:add19eb7defa 2323 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin_create_internal();
AzureIoTClient 28:add19eb7defa 2324 *begin_handle = begin_instance;
AzureIoTClient 28:add19eb7defa 2325 if (*begin_handle == NULL)
AzureIoTClient 28:add19eb7defa 2326 {
AzureIoTClient 28:add19eb7defa 2327 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2328 }
AzureIoTClient 28:add19eb7defa 2329 else
AzureIoTClient 28:add19eb7defa 2330 {
AzureIoTClient 28:add19eb7defa 2331 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 2332 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 2333 {
AzureIoTClient 28:add19eb7defa 2334 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2335 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2336 }
AzureIoTClient 28:add19eb7defa 2337 else
AzureIoTClient 28:add19eb7defa 2338 {
AzureIoTClient 23:1111ee8bcba4 2339 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 2340 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2341 {
AzureIoTClient 23:1111ee8bcba4 2342 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2343 }
AzureIoTClient 23:1111ee8bcba4 2344 else
AzureIoTClient 23:1111ee8bcba4 2345 {
AzureIoTClient 28:add19eb7defa 2346 do
AzureIoTClient 28:add19eb7defa 2347 {
AzureIoTClient 28:add19eb7defa 2348 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 2349 /* remote-channel */
AzureIoTClient 28:add19eb7defa 2350 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 2351 {
AzureIoTClient 23:1111ee8bcba4 2352 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 2353 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2354 {
AzureIoTClient 28:add19eb7defa 2355 /* do nothing */
AzureIoTClient 28:add19eb7defa 2356 }
AzureIoTClient 28:add19eb7defa 2357 else
AzureIoTClient 28:add19eb7defa 2358 {
AzureIoTClient 28:add19eb7defa 2359 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2360 {
AzureIoTClient 28:add19eb7defa 2361 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2362 }
AzureIoTClient 28:add19eb7defa 2363 else
AzureIoTClient 28:add19eb7defa 2364 {
AzureIoTClient 28:add19eb7defa 2365 uint16_t remote_channel;
AzureIoTClient 28:add19eb7defa 2366 if (amqpvalue_get_ushort(item_value, &remote_channel) != 0)
AzureIoTClient 28:add19eb7defa 2367 {
AzureIoTClient 28:add19eb7defa 2368 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2369 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2370 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2371 break;
AzureIoTClient 28:add19eb7defa 2372 }
AzureIoTClient 28:add19eb7defa 2373 }
AzureIoTClient 28:add19eb7defa 2374
AzureIoTClient 28:add19eb7defa 2375 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2376 }
AzureIoTClient 28:add19eb7defa 2377 }
AzureIoTClient 28:add19eb7defa 2378 /* next-outgoing-id */
AzureIoTClient 28:add19eb7defa 2379 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 2380 {
AzureIoTClient 23:1111ee8bcba4 2381 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 2382 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2383 {
AzureIoTClient 28:add19eb7defa 2384 {
AzureIoTClient 28:add19eb7defa 2385 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2386 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2387 break;
AzureIoTClient 28:add19eb7defa 2388 }
AzureIoTClient 28:add19eb7defa 2389 }
AzureIoTClient 28:add19eb7defa 2390 else
AzureIoTClient 28:add19eb7defa 2391 {
AzureIoTClient 28:add19eb7defa 2392 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2393 {
AzureIoTClient 28:add19eb7defa 2394 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2395 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2396 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2397 break;
AzureIoTClient 28:add19eb7defa 2398 }
AzureIoTClient 28:add19eb7defa 2399 else
AzureIoTClient 28:add19eb7defa 2400 {
AzureIoTClient 28:add19eb7defa 2401 transfer_number next_outgoing_id;
AzureIoTClient 28:add19eb7defa 2402 if (amqpvalue_get_transfer_number(item_value, &next_outgoing_id) != 0)
AzureIoTClient 28:add19eb7defa 2403 {
AzureIoTClient 28:add19eb7defa 2404 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2405 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2406 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2407 break;
AzureIoTClient 28:add19eb7defa 2408 }
AzureIoTClient 28:add19eb7defa 2409 }
AzureIoTClient 28:add19eb7defa 2410
AzureIoTClient 28:add19eb7defa 2411 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2412 }
AzureIoTClient 28:add19eb7defa 2413 }
AzureIoTClient 28:add19eb7defa 2414 else
AzureIoTClient 28:add19eb7defa 2415 {
AzureIoTClient 28:add19eb7defa 2416 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2417 }
AzureIoTClient 28:add19eb7defa 2418 /* incoming-window */
AzureIoTClient 28:add19eb7defa 2419 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 2420 {
AzureIoTClient 23:1111ee8bcba4 2421 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 2422 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2423 {
AzureIoTClient 28:add19eb7defa 2424 {
AzureIoTClient 28:add19eb7defa 2425 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2426 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2427 break;
AzureIoTClient 28:add19eb7defa 2428 }
AzureIoTClient 28:add19eb7defa 2429 }
AzureIoTClient 28:add19eb7defa 2430 else
AzureIoTClient 28:add19eb7defa 2431 {
AzureIoTClient 28:add19eb7defa 2432 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2433 {
AzureIoTClient 28:add19eb7defa 2434 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2435 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2436 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2437 break;
AzureIoTClient 28:add19eb7defa 2438 }
AzureIoTClient 28:add19eb7defa 2439 else
AzureIoTClient 28:add19eb7defa 2440 {
AzureIoTClient 28:add19eb7defa 2441 uint32_t incoming_window;
AzureIoTClient 28:add19eb7defa 2442 if (amqpvalue_get_uint(item_value, &incoming_window) != 0)
AzureIoTClient 28:add19eb7defa 2443 {
AzureIoTClient 28:add19eb7defa 2444 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2445 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2446 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2447 break;
AzureIoTClient 28:add19eb7defa 2448 }
AzureIoTClient 28:add19eb7defa 2449 }
AzureIoTClient 28:add19eb7defa 2450
AzureIoTClient 28:add19eb7defa 2451 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2452 }
AzureIoTClient 28:add19eb7defa 2453 }
AzureIoTClient 28:add19eb7defa 2454 else
AzureIoTClient 28:add19eb7defa 2455 {
AzureIoTClient 28:add19eb7defa 2456 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2457 }
AzureIoTClient 28:add19eb7defa 2458 /* outgoing-window */
AzureIoTClient 28:add19eb7defa 2459 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 2460 {
AzureIoTClient 23:1111ee8bcba4 2461 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 2462 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2463 {
AzureIoTClient 28:add19eb7defa 2464 {
AzureIoTClient 28:add19eb7defa 2465 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2466 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2467 break;
AzureIoTClient 28:add19eb7defa 2468 }
AzureIoTClient 28:add19eb7defa 2469 }
AzureIoTClient 28:add19eb7defa 2470 else
AzureIoTClient 28:add19eb7defa 2471 {
AzureIoTClient 28:add19eb7defa 2472 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2473 {
AzureIoTClient 28:add19eb7defa 2474 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2475 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2476 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2477 break;
AzureIoTClient 28:add19eb7defa 2478 }
AzureIoTClient 28:add19eb7defa 2479 else
AzureIoTClient 28:add19eb7defa 2480 {
AzureIoTClient 28:add19eb7defa 2481 uint32_t outgoing_window;
AzureIoTClient 28:add19eb7defa 2482 if (amqpvalue_get_uint(item_value, &outgoing_window) != 0)
AzureIoTClient 28:add19eb7defa 2483 {
AzureIoTClient 28:add19eb7defa 2484 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2485 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2486 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2487 break;
AzureIoTClient 28:add19eb7defa 2488 }
AzureIoTClient 28:add19eb7defa 2489 }
AzureIoTClient 28:add19eb7defa 2490
AzureIoTClient 28:add19eb7defa 2491 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2492 }
AzureIoTClient 28:add19eb7defa 2493 }
AzureIoTClient 28:add19eb7defa 2494 else
AzureIoTClient 28:add19eb7defa 2495 {
AzureIoTClient 28:add19eb7defa 2496 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2497 }
AzureIoTClient 28:add19eb7defa 2498 /* handle-max */
AzureIoTClient 28:add19eb7defa 2499 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 2500 {
AzureIoTClient 23:1111ee8bcba4 2501 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 2502 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2503 {
AzureIoTClient 28:add19eb7defa 2504 /* do nothing */
AzureIoTClient 28:add19eb7defa 2505 }
AzureIoTClient 28:add19eb7defa 2506 else
AzureIoTClient 28:add19eb7defa 2507 {
AzureIoTClient 28:add19eb7defa 2508 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2509 {
AzureIoTClient 28:add19eb7defa 2510 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2511 }
AzureIoTClient 28:add19eb7defa 2512 else
AzureIoTClient 28:add19eb7defa 2513 {
AzureIoTClient 28:add19eb7defa 2514 handle handle_max;
AzureIoTClient 28:add19eb7defa 2515 if (amqpvalue_get_handle(item_value, &handle_max) != 0)
AzureIoTClient 28:add19eb7defa 2516 {
AzureIoTClient 28:add19eb7defa 2517 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2518 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2519 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2520 break;
AzureIoTClient 28:add19eb7defa 2521 }
AzureIoTClient 28:add19eb7defa 2522 }
AzureIoTClient 28:add19eb7defa 2523
AzureIoTClient 28:add19eb7defa 2524 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2525 }
AzureIoTClient 28:add19eb7defa 2526 }
AzureIoTClient 28:add19eb7defa 2527 /* offered-capabilities */
AzureIoTClient 28:add19eb7defa 2528 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 2529 {
AzureIoTClient 23:1111ee8bcba4 2530 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 2531 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2532 {
AzureIoTClient 28:add19eb7defa 2533 /* do nothing */
AzureIoTClient 28:add19eb7defa 2534 }
AzureIoTClient 28:add19eb7defa 2535 else
AzureIoTClient 28:add19eb7defa 2536 {
AzureIoTClient 28:add19eb7defa 2537 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2538 {
AzureIoTClient 28:add19eb7defa 2539 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2540 }
AzureIoTClient 28:add19eb7defa 2541 else
AzureIoTClient 28:add19eb7defa 2542 {
AzureIoTClient 28:add19eb7defa 2543 const char* offered_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 2544 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 28:add19eb7defa 2545 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &offered_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 2546 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 2547 {
AzureIoTClient 28:add19eb7defa 2548 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2549 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2550 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2551 break;
AzureIoTClient 28:add19eb7defa 2552 }
AzureIoTClient 28:add19eb7defa 2553 }
AzureIoTClient 28:add19eb7defa 2554
AzureIoTClient 28:add19eb7defa 2555 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2556 }
AzureIoTClient 28:add19eb7defa 2557 }
AzureIoTClient 28:add19eb7defa 2558 /* desired-capabilities */
AzureIoTClient 28:add19eb7defa 2559 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 2560 {
AzureIoTClient 23:1111ee8bcba4 2561 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 2562 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2563 {
AzureIoTClient 28:add19eb7defa 2564 /* do nothing */
AzureIoTClient 28:add19eb7defa 2565 }
AzureIoTClient 28:add19eb7defa 2566 else
AzureIoTClient 28:add19eb7defa 2567 {
AzureIoTClient 28:add19eb7defa 2568 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2569 {
AzureIoTClient 28:add19eb7defa 2570 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2571 }
AzureIoTClient 28:add19eb7defa 2572 else
AzureIoTClient 28:add19eb7defa 2573 {
AzureIoTClient 28:add19eb7defa 2574 const char* desired_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 2575 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 28:add19eb7defa 2576 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &desired_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 2577 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 2578 {
AzureIoTClient 28:add19eb7defa 2579 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2580 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2581 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2582 break;
AzureIoTClient 28:add19eb7defa 2583 }
AzureIoTClient 28:add19eb7defa 2584 }
AzureIoTClient 28:add19eb7defa 2585
AzureIoTClient 28:add19eb7defa 2586 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2587 }
AzureIoTClient 28:add19eb7defa 2588 }
AzureIoTClient 28:add19eb7defa 2589 /* properties */
AzureIoTClient 28:add19eb7defa 2590 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 2591 {
AzureIoTClient 23:1111ee8bcba4 2592 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 2593 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2594 {
AzureIoTClient 28:add19eb7defa 2595 /* do nothing */
AzureIoTClient 28:add19eb7defa 2596 }
AzureIoTClient 28:add19eb7defa 2597 else
AzureIoTClient 28:add19eb7defa 2598 {
AzureIoTClient 28:add19eb7defa 2599 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2600 {
AzureIoTClient 28:add19eb7defa 2601 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2602 }
AzureIoTClient 28:add19eb7defa 2603 else
AzureIoTClient 28:add19eb7defa 2604 {
AzureIoTClient 28:add19eb7defa 2605 fields properties;
AzureIoTClient 28:add19eb7defa 2606 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 2607 {
AzureIoTClient 28:add19eb7defa 2608 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2609 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2610 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2611 break;
AzureIoTClient 28:add19eb7defa 2612 }
AzureIoTClient 28:add19eb7defa 2613 }
AzureIoTClient 28:add19eb7defa 2614
AzureIoTClient 28:add19eb7defa 2615 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2616 }
AzureIoTClient 28:add19eb7defa 2617 }
AzureIoTClient 28:add19eb7defa 2618
AzureIoTClient 28:add19eb7defa 2619 begin_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 2620
AzureIoTClient 28:add19eb7defa 2621 result = 0;
AzureIoTClient 28:add19eb7defa 2622 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 2623 }
AzureIoTClient 28:add19eb7defa 2624 }
AzureIoTClient 28:add19eb7defa 2625 }
AzureIoTClient 28:add19eb7defa 2626
AzureIoTClient 28:add19eb7defa 2627 return result;
Azure.IoT Build 0:6ae2f7bca550 2628 }
Azure.IoT Build 0:6ae2f7bca550 2629
Azure.IoT Build 0:6ae2f7bca550 2630 int begin_get_remote_channel(BEGIN_HANDLE begin, uint16_t* remote_channel_value)
Azure.IoT Build 0:6ae2f7bca550 2631 {
AzureIoTClient 28:add19eb7defa 2632 int result;
AzureIoTClient 28:add19eb7defa 2633
AzureIoTClient 28:add19eb7defa 2634 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2635 {
AzureIoTClient 28:add19eb7defa 2636 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2637 }
AzureIoTClient 28:add19eb7defa 2638 else
AzureIoTClient 28:add19eb7defa 2639 {
AzureIoTClient 28:add19eb7defa 2640 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2641 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2642 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2643 {
AzureIoTClient 23:1111ee8bcba4 2644 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2645 }
AzureIoTClient 23:1111ee8bcba4 2646 else
AzureIoTClient 23:1111ee8bcba4 2647 {
AzureIoTClient 23:1111ee8bcba4 2648 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 2649 {
AzureIoTClient 28:add19eb7defa 2650 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2651 }
AzureIoTClient 28:add19eb7defa 2652 else
AzureIoTClient 28:add19eb7defa 2653 {
AzureIoTClient 28:add19eb7defa 2654 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 2655 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2656 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2657 {
AzureIoTClient 28:add19eb7defa 2658 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2659 }
AzureIoTClient 28:add19eb7defa 2660 else
AzureIoTClient 28:add19eb7defa 2661 {
AzureIoTClient 28:add19eb7defa 2662 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2663 if ((get_single_value_result = amqpvalue_get_ushort(item_value, remote_channel_value)) != 0)
AzureIoTClient 28:add19eb7defa 2664 {
AzureIoTClient 28:add19eb7defa 2665 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2666 }
AzureIoTClient 28:add19eb7defa 2667 else
AzureIoTClient 28:add19eb7defa 2668 {
AzureIoTClient 28:add19eb7defa 2669 result = 0;
AzureIoTClient 28:add19eb7defa 2670 }
AzureIoTClient 28:add19eb7defa 2671 }
AzureIoTClient 28:add19eb7defa 2672 }
AzureIoTClient 28:add19eb7defa 2673 }
AzureIoTClient 28:add19eb7defa 2674 }
AzureIoTClient 28:add19eb7defa 2675
AzureIoTClient 28:add19eb7defa 2676 return result;
Azure.IoT Build 0:6ae2f7bca550 2677 }
Azure.IoT Build 0:6ae2f7bca550 2678
Azure.IoT Build 0:6ae2f7bca550 2679 int begin_set_remote_channel(BEGIN_HANDLE begin, uint16_t remote_channel_value)
Azure.IoT Build 0:6ae2f7bca550 2680 {
AzureIoTClient 28:add19eb7defa 2681 int result;
AzureIoTClient 28:add19eb7defa 2682
AzureIoTClient 28:add19eb7defa 2683 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2684 {
AzureIoTClient 28:add19eb7defa 2685 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2686 }
AzureIoTClient 28:add19eb7defa 2687 else
AzureIoTClient 28:add19eb7defa 2688 {
AzureIoTClient 28:add19eb7defa 2689 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2690 AMQP_VALUE remote_channel_amqp_value = amqpvalue_create_ushort(remote_channel_value);
AzureIoTClient 28:add19eb7defa 2691 if (remote_channel_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2692 {
AzureIoTClient 28:add19eb7defa 2693 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2694 }
AzureIoTClient 28:add19eb7defa 2695 else
AzureIoTClient 28:add19eb7defa 2696 {
AzureIoTClient 28:add19eb7defa 2697 if (amqpvalue_set_composite_item(begin_instance->composite_value, 0, remote_channel_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2698 {
AzureIoTClient 28:add19eb7defa 2699 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2700 }
AzureIoTClient 28:add19eb7defa 2701 else
AzureIoTClient 28:add19eb7defa 2702 {
AzureIoTClient 28:add19eb7defa 2703 result = 0;
AzureIoTClient 28:add19eb7defa 2704 }
AzureIoTClient 28:add19eb7defa 2705
AzureIoTClient 28:add19eb7defa 2706 amqpvalue_destroy(remote_channel_amqp_value);
AzureIoTClient 28:add19eb7defa 2707 }
AzureIoTClient 28:add19eb7defa 2708 }
AzureIoTClient 28:add19eb7defa 2709
AzureIoTClient 28:add19eb7defa 2710 return result;
Azure.IoT Build 0:6ae2f7bca550 2711 }
Azure.IoT Build 0:6ae2f7bca550 2712
Azure.IoT Build 0:6ae2f7bca550 2713 int begin_get_next_outgoing_id(BEGIN_HANDLE begin, transfer_number* next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 2714 {
AzureIoTClient 28:add19eb7defa 2715 int result;
AzureIoTClient 28:add19eb7defa 2716
AzureIoTClient 28:add19eb7defa 2717 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2718 {
AzureIoTClient 28:add19eb7defa 2719 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2720 }
AzureIoTClient 28:add19eb7defa 2721 else
AzureIoTClient 28:add19eb7defa 2722 {
AzureIoTClient 28:add19eb7defa 2723 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2724 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2725 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2726 {
AzureIoTClient 23:1111ee8bcba4 2727 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2728 }
AzureIoTClient 23:1111ee8bcba4 2729 else
AzureIoTClient 23:1111ee8bcba4 2730 {
AzureIoTClient 23:1111ee8bcba4 2731 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 2732 {
AzureIoTClient 28:add19eb7defa 2733 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2734 }
AzureIoTClient 28:add19eb7defa 2735 else
AzureIoTClient 28:add19eb7defa 2736 {
AzureIoTClient 28:add19eb7defa 2737 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 2738 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2739 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2740 {
AzureIoTClient 28:add19eb7defa 2741 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2742 }
AzureIoTClient 28:add19eb7defa 2743 else
AzureIoTClient 28:add19eb7defa 2744 {
AzureIoTClient 28:add19eb7defa 2745 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2746 if ((get_single_value_result = amqpvalue_get_transfer_number(item_value, next_outgoing_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 2747 {
AzureIoTClient 28:add19eb7defa 2748 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2749 }
AzureIoTClient 28:add19eb7defa 2750 else
AzureIoTClient 28:add19eb7defa 2751 {
AzureIoTClient 28:add19eb7defa 2752 result = 0;
AzureIoTClient 28:add19eb7defa 2753 }
AzureIoTClient 28:add19eb7defa 2754 }
AzureIoTClient 28:add19eb7defa 2755 }
AzureIoTClient 28:add19eb7defa 2756 }
AzureIoTClient 28:add19eb7defa 2757 }
AzureIoTClient 28:add19eb7defa 2758
AzureIoTClient 28:add19eb7defa 2759 return result;
Azure.IoT Build 0:6ae2f7bca550 2760 }
Azure.IoT Build 0:6ae2f7bca550 2761
Azure.IoT Build 0:6ae2f7bca550 2762 int begin_set_next_outgoing_id(BEGIN_HANDLE begin, transfer_number next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 2763 {
AzureIoTClient 28:add19eb7defa 2764 int result;
AzureIoTClient 28:add19eb7defa 2765
AzureIoTClient 28:add19eb7defa 2766 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2767 {
AzureIoTClient 28:add19eb7defa 2768 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2769 }
AzureIoTClient 28:add19eb7defa 2770 else
AzureIoTClient 28:add19eb7defa 2771 {
AzureIoTClient 28:add19eb7defa 2772 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2773 AMQP_VALUE next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 2774 if (next_outgoing_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2775 {
AzureIoTClient 28:add19eb7defa 2776 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2777 }
AzureIoTClient 28:add19eb7defa 2778 else
AzureIoTClient 28:add19eb7defa 2779 {
AzureIoTClient 28:add19eb7defa 2780 if (amqpvalue_set_composite_item(begin_instance->composite_value, 1, next_outgoing_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2781 {
AzureIoTClient 28:add19eb7defa 2782 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2783 }
AzureIoTClient 28:add19eb7defa 2784 else
AzureIoTClient 28:add19eb7defa 2785 {
AzureIoTClient 28:add19eb7defa 2786 result = 0;
AzureIoTClient 28:add19eb7defa 2787 }
AzureIoTClient 28:add19eb7defa 2788
AzureIoTClient 28:add19eb7defa 2789 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 2790 }
AzureIoTClient 28:add19eb7defa 2791 }
AzureIoTClient 28:add19eb7defa 2792
AzureIoTClient 28:add19eb7defa 2793 return result;
Azure.IoT Build 0:6ae2f7bca550 2794 }
Azure.IoT Build 0:6ae2f7bca550 2795
Azure.IoT Build 0:6ae2f7bca550 2796 int begin_get_incoming_window(BEGIN_HANDLE begin, uint32_t* incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 2797 {
AzureIoTClient 28:add19eb7defa 2798 int result;
AzureIoTClient 28:add19eb7defa 2799
AzureIoTClient 28:add19eb7defa 2800 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2801 {
AzureIoTClient 28:add19eb7defa 2802 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2803 }
AzureIoTClient 28:add19eb7defa 2804 else
AzureIoTClient 28:add19eb7defa 2805 {
AzureIoTClient 28:add19eb7defa 2806 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2807 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2808 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2809 {
AzureIoTClient 23:1111ee8bcba4 2810 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2811 }
AzureIoTClient 23:1111ee8bcba4 2812 else
AzureIoTClient 23:1111ee8bcba4 2813 {
AzureIoTClient 23:1111ee8bcba4 2814 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 2815 {
AzureIoTClient 28:add19eb7defa 2816 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2817 }
AzureIoTClient 28:add19eb7defa 2818 else
AzureIoTClient 28:add19eb7defa 2819 {
AzureIoTClient 28:add19eb7defa 2820 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 2821 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2822 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2823 {
AzureIoTClient 28:add19eb7defa 2824 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2825 }
AzureIoTClient 28:add19eb7defa 2826 else
AzureIoTClient 28:add19eb7defa 2827 {
AzureIoTClient 28:add19eb7defa 2828 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2829 if ((get_single_value_result = amqpvalue_get_uint(item_value, incoming_window_value)) != 0)
AzureIoTClient 28:add19eb7defa 2830 {
AzureIoTClient 28:add19eb7defa 2831 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2832 }
AzureIoTClient 28:add19eb7defa 2833 else
AzureIoTClient 28:add19eb7defa 2834 {
AzureIoTClient 28:add19eb7defa 2835 result = 0;
AzureIoTClient 28:add19eb7defa 2836 }
AzureIoTClient 28:add19eb7defa 2837 }
AzureIoTClient 28:add19eb7defa 2838 }
AzureIoTClient 28:add19eb7defa 2839 }
AzureIoTClient 28:add19eb7defa 2840 }
AzureIoTClient 28:add19eb7defa 2841
AzureIoTClient 28:add19eb7defa 2842 return result;
Azure.IoT Build 0:6ae2f7bca550 2843 }
Azure.IoT Build 0:6ae2f7bca550 2844
Azure.IoT Build 0:6ae2f7bca550 2845 int begin_set_incoming_window(BEGIN_HANDLE begin, uint32_t incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 2846 {
AzureIoTClient 28:add19eb7defa 2847 int result;
AzureIoTClient 28:add19eb7defa 2848
AzureIoTClient 28:add19eb7defa 2849 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2850 {
AzureIoTClient 28:add19eb7defa 2851 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2852 }
AzureIoTClient 28:add19eb7defa 2853 else
AzureIoTClient 28:add19eb7defa 2854 {
AzureIoTClient 28:add19eb7defa 2855 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2856 AMQP_VALUE incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 2857 if (incoming_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2858 {
AzureIoTClient 28:add19eb7defa 2859 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2860 }
AzureIoTClient 28:add19eb7defa 2861 else
AzureIoTClient 28:add19eb7defa 2862 {
AzureIoTClient 28:add19eb7defa 2863 if (amqpvalue_set_composite_item(begin_instance->composite_value, 2, incoming_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2864 {
AzureIoTClient 28:add19eb7defa 2865 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2866 }
AzureIoTClient 28:add19eb7defa 2867 else
AzureIoTClient 28:add19eb7defa 2868 {
AzureIoTClient 28:add19eb7defa 2869 result = 0;
AzureIoTClient 28:add19eb7defa 2870 }
AzureIoTClient 28:add19eb7defa 2871
AzureIoTClient 28:add19eb7defa 2872 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2873 }
AzureIoTClient 28:add19eb7defa 2874 }
AzureIoTClient 28:add19eb7defa 2875
AzureIoTClient 28:add19eb7defa 2876 return result;
Azure.IoT Build 0:6ae2f7bca550 2877 }
Azure.IoT Build 0:6ae2f7bca550 2878
Azure.IoT Build 0:6ae2f7bca550 2879 int begin_get_outgoing_window(BEGIN_HANDLE begin, uint32_t* outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 2880 {
AzureIoTClient 28:add19eb7defa 2881 int result;
AzureIoTClient 28:add19eb7defa 2882
AzureIoTClient 28:add19eb7defa 2883 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2884 {
AzureIoTClient 28:add19eb7defa 2885 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2886 }
AzureIoTClient 28:add19eb7defa 2887 else
AzureIoTClient 28:add19eb7defa 2888 {
AzureIoTClient 28:add19eb7defa 2889 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2890 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2891 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2892 {
AzureIoTClient 23:1111ee8bcba4 2893 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2894 }
AzureIoTClient 23:1111ee8bcba4 2895 else
AzureIoTClient 23:1111ee8bcba4 2896 {
AzureIoTClient 23:1111ee8bcba4 2897 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 2898 {
AzureIoTClient 28:add19eb7defa 2899 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2900 }
AzureIoTClient 28:add19eb7defa 2901 else
AzureIoTClient 28:add19eb7defa 2902 {
AzureIoTClient 28:add19eb7defa 2903 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 2904 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2905 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2906 {
AzureIoTClient 28:add19eb7defa 2907 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2908 }
AzureIoTClient 28:add19eb7defa 2909 else
AzureIoTClient 28:add19eb7defa 2910 {
AzureIoTClient 28:add19eb7defa 2911 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2912 if ((get_single_value_result = amqpvalue_get_uint(item_value, outgoing_window_value)) != 0)
AzureIoTClient 28:add19eb7defa 2913 {
AzureIoTClient 28:add19eb7defa 2914 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2915 }
AzureIoTClient 28:add19eb7defa 2916 else
AzureIoTClient 28:add19eb7defa 2917 {
AzureIoTClient 28:add19eb7defa 2918 result = 0;
AzureIoTClient 28:add19eb7defa 2919 }
AzureIoTClient 28:add19eb7defa 2920 }
AzureIoTClient 28:add19eb7defa 2921 }
AzureIoTClient 28:add19eb7defa 2922 }
AzureIoTClient 28:add19eb7defa 2923 }
AzureIoTClient 28:add19eb7defa 2924
AzureIoTClient 28:add19eb7defa 2925 return result;
Azure.IoT Build 0:6ae2f7bca550 2926 }
Azure.IoT Build 0:6ae2f7bca550 2927
Azure.IoT Build 0:6ae2f7bca550 2928 int begin_set_outgoing_window(BEGIN_HANDLE begin, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 2929 {
AzureIoTClient 28:add19eb7defa 2930 int result;
AzureIoTClient 28:add19eb7defa 2931
AzureIoTClient 28:add19eb7defa 2932 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2933 {
AzureIoTClient 28:add19eb7defa 2934 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2935 }
AzureIoTClient 28:add19eb7defa 2936 else
AzureIoTClient 28:add19eb7defa 2937 {
AzureIoTClient 28:add19eb7defa 2938 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2939 AMQP_VALUE outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 2940 if (outgoing_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2941 {
AzureIoTClient 28:add19eb7defa 2942 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2943 }
AzureIoTClient 28:add19eb7defa 2944 else
AzureIoTClient 28:add19eb7defa 2945 {
AzureIoTClient 28:add19eb7defa 2946 if (amqpvalue_set_composite_item(begin_instance->composite_value, 3, outgoing_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2947 {
AzureIoTClient 28:add19eb7defa 2948 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2949 }
AzureIoTClient 28:add19eb7defa 2950 else
AzureIoTClient 28:add19eb7defa 2951 {
AzureIoTClient 28:add19eb7defa 2952 result = 0;
AzureIoTClient 28:add19eb7defa 2953 }
AzureIoTClient 28:add19eb7defa 2954
AzureIoTClient 28:add19eb7defa 2955 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2956 }
AzureIoTClient 28:add19eb7defa 2957 }
AzureIoTClient 28:add19eb7defa 2958
AzureIoTClient 28:add19eb7defa 2959 return result;
Azure.IoT Build 0:6ae2f7bca550 2960 }
Azure.IoT Build 0:6ae2f7bca550 2961
Azure.IoT Build 0:6ae2f7bca550 2962 int begin_get_handle_max(BEGIN_HANDLE begin, handle* handle_max_value)
Azure.IoT Build 0:6ae2f7bca550 2963 {
AzureIoTClient 28:add19eb7defa 2964 int result;
AzureIoTClient 28:add19eb7defa 2965
AzureIoTClient 28:add19eb7defa 2966 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2967 {
AzureIoTClient 28:add19eb7defa 2968 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2969 }
AzureIoTClient 28:add19eb7defa 2970 else
AzureIoTClient 28:add19eb7defa 2971 {
AzureIoTClient 28:add19eb7defa 2972 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2973 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2974 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2975 {
AzureIoTClient 23:1111ee8bcba4 2976 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2977 }
AzureIoTClient 23:1111ee8bcba4 2978 else
AzureIoTClient 23:1111ee8bcba4 2979 {
AzureIoTClient 23:1111ee8bcba4 2980 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 2981 {
AzureIoTClient 28:add19eb7defa 2982 *handle_max_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 2983 result = 0;
AzureIoTClient 28:add19eb7defa 2984 }
AzureIoTClient 28:add19eb7defa 2985 else
AzureIoTClient 28:add19eb7defa 2986 {
AzureIoTClient 28:add19eb7defa 2987 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 2988 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2989 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2990 {
AzureIoTClient 28:add19eb7defa 2991 *handle_max_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 2992 result = 0;
AzureIoTClient 28:add19eb7defa 2993 }
AzureIoTClient 28:add19eb7defa 2994 else
AzureIoTClient 28:add19eb7defa 2995 {
AzureIoTClient 28:add19eb7defa 2996 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2997 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_max_value)) != 0)
AzureIoTClient 28:add19eb7defa 2998 {
AzureIoTClient 23:1111ee8bcba4 2999 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 3000 {
AzureIoTClient 28:add19eb7defa 3001 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3002 }
AzureIoTClient 28:add19eb7defa 3003 else
AzureIoTClient 28:add19eb7defa 3004 {
AzureIoTClient 28:add19eb7defa 3005 *handle_max_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 3006 result = 0;
AzureIoTClient 23:1111ee8bcba4 3007 }
AzureIoTClient 28:add19eb7defa 3008 }
AzureIoTClient 28:add19eb7defa 3009 else
AzureIoTClient 28:add19eb7defa 3010 {
AzureIoTClient 28:add19eb7defa 3011 result = 0;
AzureIoTClient 28:add19eb7defa 3012 }
AzureIoTClient 28:add19eb7defa 3013 }
AzureIoTClient 28:add19eb7defa 3014 }
AzureIoTClient 28:add19eb7defa 3015 }
AzureIoTClient 28:add19eb7defa 3016 }
AzureIoTClient 28:add19eb7defa 3017
AzureIoTClient 28:add19eb7defa 3018 return result;
Azure.IoT Build 0:6ae2f7bca550 3019 }
Azure.IoT Build 0:6ae2f7bca550 3020
Azure.IoT Build 0:6ae2f7bca550 3021 int begin_set_handle_max(BEGIN_HANDLE begin, handle handle_max_value)
Azure.IoT Build 0:6ae2f7bca550 3022 {
AzureIoTClient 28:add19eb7defa 3023 int result;
AzureIoTClient 28:add19eb7defa 3024
AzureIoTClient 28:add19eb7defa 3025 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3026 {
AzureIoTClient 28:add19eb7defa 3027 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3028 }
AzureIoTClient 28:add19eb7defa 3029 else
AzureIoTClient 28:add19eb7defa 3030 {
AzureIoTClient 28:add19eb7defa 3031 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3032 AMQP_VALUE handle_max_amqp_value = amqpvalue_create_handle(handle_max_value);
AzureIoTClient 28:add19eb7defa 3033 if (handle_max_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3034 {
AzureIoTClient 28:add19eb7defa 3035 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3036 }
AzureIoTClient 28:add19eb7defa 3037 else
AzureIoTClient 28:add19eb7defa 3038 {
AzureIoTClient 28:add19eb7defa 3039 if (amqpvalue_set_composite_item(begin_instance->composite_value, 4, handle_max_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3040 {
AzureIoTClient 28:add19eb7defa 3041 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3042 }
AzureIoTClient 28:add19eb7defa 3043 else
AzureIoTClient 28:add19eb7defa 3044 {
AzureIoTClient 28:add19eb7defa 3045 result = 0;
AzureIoTClient 28:add19eb7defa 3046 }
AzureIoTClient 28:add19eb7defa 3047
AzureIoTClient 28:add19eb7defa 3048 amqpvalue_destroy(handle_max_amqp_value);
AzureIoTClient 28:add19eb7defa 3049 }
AzureIoTClient 28:add19eb7defa 3050 }
AzureIoTClient 28:add19eb7defa 3051
AzureIoTClient 28:add19eb7defa 3052 return result;
Azure.IoT Build 0:6ae2f7bca550 3053 }
Azure.IoT Build 0:6ae2f7bca550 3054
Azure.IoT Build 0:6ae2f7bca550 3055 int begin_get_offered_capabilities(BEGIN_HANDLE begin, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3056 {
AzureIoTClient 28:add19eb7defa 3057 int result;
AzureIoTClient 28:add19eb7defa 3058
AzureIoTClient 28:add19eb7defa 3059 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3060 {
AzureIoTClient 28:add19eb7defa 3061 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3062 }
AzureIoTClient 28:add19eb7defa 3063 else
AzureIoTClient 28:add19eb7defa 3064 {
AzureIoTClient 28:add19eb7defa 3065 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3066 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3067 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3068 {
AzureIoTClient 23:1111ee8bcba4 3069 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3070 }
AzureIoTClient 23:1111ee8bcba4 3071 else
AzureIoTClient 23:1111ee8bcba4 3072 {
AzureIoTClient 23:1111ee8bcba4 3073 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 3074 {
AzureIoTClient 28:add19eb7defa 3075 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3076 }
AzureIoTClient 28:add19eb7defa 3077 else
AzureIoTClient 28:add19eb7defa 3078 {
AzureIoTClient 28:add19eb7defa 3079 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 3080 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3081 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3082 {
AzureIoTClient 28:add19eb7defa 3083 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3084 }
AzureIoTClient 28:add19eb7defa 3085 else
AzureIoTClient 28:add19eb7defa 3086 {
AzureIoTClient 28:add19eb7defa 3087 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 3088 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3089 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3090 {
AzureIoTClient 28:add19eb7defa 3091 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3092 }
AzureIoTClient 28:add19eb7defa 3093 else
AzureIoTClient 28:add19eb7defa 3094 {
AzureIoTClient 28:add19eb7defa 3095 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 3096 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 3097 }
AzureIoTClient 28:add19eb7defa 3098
AzureIoTClient 28:add19eb7defa 3099 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 3100 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 3101 {
AzureIoTClient 28:add19eb7defa 3102 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3103 }
AzureIoTClient 28:add19eb7defa 3104 else
AzureIoTClient 28:add19eb7defa 3105 {
AzureIoTClient 28:add19eb7defa 3106 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3107 {
AzureIoTClient 28:add19eb7defa 3108 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 3109 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 3110 {
AzureIoTClient 28:add19eb7defa 3111 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3112 }
AzureIoTClient 28:add19eb7defa 3113 else
AzureIoTClient 28:add19eb7defa 3114 {
AzureIoTClient 28:add19eb7defa 3115 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3116 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3117 {
AzureIoTClient 28:add19eb7defa 3118 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 3119 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3120 }
AzureIoTClient 28:add19eb7defa 3121 else
AzureIoTClient 28:add19eb7defa 3122 {
AzureIoTClient 28:add19eb7defa 3123 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3124 {
AzureIoTClient 28:add19eb7defa 3125 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 3126 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 3127 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3128 }
AzureIoTClient 28:add19eb7defa 3129 else
AzureIoTClient 28:add19eb7defa 3130 {
AzureIoTClient 29:4a11413cf217 3131 if (amqpvalue_set_composite_item(begin_instance->composite_value, 5, *offered_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 3132 {
AzureIoTClient 29:4a11413cf217 3133 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 29:4a11413cf217 3134 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 3135 }
AzureIoTClient 29:4a11413cf217 3136 else
AzureIoTClient 29:4a11413cf217 3137 {
AzureIoTClient 29:4a11413cf217 3138 result = 0;
AzureIoTClient 29:4a11413cf217 3139 }
AzureIoTClient 28:add19eb7defa 3140 }
AzureIoTClient 29:4a11413cf217 3141
AzureIoTClient 29:4a11413cf217 3142 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 3143 }
AzureIoTClient 29:4a11413cf217 3144 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 3145 }
AzureIoTClient 28:add19eb7defa 3146 }
AzureIoTClient 28:add19eb7defa 3147 else
AzureIoTClient 28:add19eb7defa 3148 {
AzureIoTClient 28:add19eb7defa 3149 result = 0;
AzureIoTClient 28:add19eb7defa 3150 }
AzureIoTClient 28:add19eb7defa 3151 }
AzureIoTClient 28:add19eb7defa 3152 }
AzureIoTClient 28:add19eb7defa 3153 }
AzureIoTClient 28:add19eb7defa 3154 }
AzureIoTClient 28:add19eb7defa 3155 }
AzureIoTClient 28:add19eb7defa 3156
AzureIoTClient 28:add19eb7defa 3157 return result;
Azure.IoT Build 0:6ae2f7bca550 3158 }
Azure.IoT Build 0:6ae2f7bca550 3159
Azure.IoT Build 0:6ae2f7bca550 3160 int begin_set_offered_capabilities(BEGIN_HANDLE begin, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3161 {
AzureIoTClient 28:add19eb7defa 3162 int result;
AzureIoTClient 28:add19eb7defa 3163
AzureIoTClient 28:add19eb7defa 3164 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3165 {
AzureIoTClient 28:add19eb7defa 3166 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3167 }
AzureIoTClient 28:add19eb7defa 3168 else
AzureIoTClient 28:add19eb7defa 3169 {
AzureIoTClient 28:add19eb7defa 3170 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3171 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 3172 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3173 {
AzureIoTClient 23:1111ee8bcba4 3174 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 3175 }
AzureIoTClient 23:1111ee8bcba4 3176 else
AzureIoTClient 23:1111ee8bcba4 3177 {
AzureIoTClient 23:1111ee8bcba4 3178 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 3179 }
AzureIoTClient 28:add19eb7defa 3180 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3181 {
AzureIoTClient 28:add19eb7defa 3182 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3183 }
AzureIoTClient 28:add19eb7defa 3184 else
AzureIoTClient 28:add19eb7defa 3185 {
AzureIoTClient 28:add19eb7defa 3186 if (amqpvalue_set_composite_item(begin_instance->composite_value, 5, offered_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3187 {
AzureIoTClient 28:add19eb7defa 3188 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3189 }
AzureIoTClient 28:add19eb7defa 3190 else
AzureIoTClient 28:add19eb7defa 3191 {
AzureIoTClient 28:add19eb7defa 3192 result = 0;
AzureIoTClient 28:add19eb7defa 3193 }
AzureIoTClient 28:add19eb7defa 3194
AzureIoTClient 28:add19eb7defa 3195 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 3196 }
AzureIoTClient 28:add19eb7defa 3197 }
AzureIoTClient 28:add19eb7defa 3198
AzureIoTClient 28:add19eb7defa 3199 return result;
Azure.IoT Build 0:6ae2f7bca550 3200 }
Azure.IoT Build 0:6ae2f7bca550 3201
Azure.IoT Build 0:6ae2f7bca550 3202 int begin_get_desired_capabilities(BEGIN_HANDLE begin, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3203 {
AzureIoTClient 28:add19eb7defa 3204 int result;
AzureIoTClient 28:add19eb7defa 3205
AzureIoTClient 28:add19eb7defa 3206 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3207 {
AzureIoTClient 28:add19eb7defa 3208 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3209 }
AzureIoTClient 28:add19eb7defa 3210 else
AzureIoTClient 28:add19eb7defa 3211 {
AzureIoTClient 28:add19eb7defa 3212 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3213 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3214 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3215 {
AzureIoTClient 23:1111ee8bcba4 3216 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3217 }
AzureIoTClient 23:1111ee8bcba4 3218 else
AzureIoTClient 23:1111ee8bcba4 3219 {
AzureIoTClient 23:1111ee8bcba4 3220 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 3221 {
AzureIoTClient 28:add19eb7defa 3222 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3223 }
AzureIoTClient 28:add19eb7defa 3224 else
AzureIoTClient 28:add19eb7defa 3225 {
AzureIoTClient 28:add19eb7defa 3226 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 3227 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3228 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3229 {
AzureIoTClient 28:add19eb7defa 3230 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3231 }
AzureIoTClient 28:add19eb7defa 3232 else
AzureIoTClient 28:add19eb7defa 3233 {
AzureIoTClient 28:add19eb7defa 3234 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 3235 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3236 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3237 {
AzureIoTClient 28:add19eb7defa 3238 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3239 }
AzureIoTClient 28:add19eb7defa 3240 else
AzureIoTClient 28:add19eb7defa 3241 {
AzureIoTClient 28:add19eb7defa 3242 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 3243 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 3244 }
AzureIoTClient 28:add19eb7defa 3245
AzureIoTClient 28:add19eb7defa 3246 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 3247 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 3248 {
AzureIoTClient 28:add19eb7defa 3249 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3250 }
AzureIoTClient 28:add19eb7defa 3251 else
AzureIoTClient 28:add19eb7defa 3252 {
AzureIoTClient 28:add19eb7defa 3253 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3254 {
AzureIoTClient 28:add19eb7defa 3255 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 3256 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 3257 {
AzureIoTClient 28:add19eb7defa 3258 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3259 }
AzureIoTClient 28:add19eb7defa 3260 else
AzureIoTClient 28:add19eb7defa 3261 {
AzureIoTClient 28:add19eb7defa 3262 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3263 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3264 {
AzureIoTClient 28:add19eb7defa 3265 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 3266 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3267 }
AzureIoTClient 28:add19eb7defa 3268 else
AzureIoTClient 28:add19eb7defa 3269 {
AzureIoTClient 28:add19eb7defa 3270 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3271 {
AzureIoTClient 28:add19eb7defa 3272 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 3273 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 3274 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3275 }
AzureIoTClient 28:add19eb7defa 3276 else
AzureIoTClient 28:add19eb7defa 3277 {
AzureIoTClient 29:4a11413cf217 3278 if (amqpvalue_set_composite_item(begin_instance->composite_value, 6, *desired_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 3279 {
AzureIoTClient 29:4a11413cf217 3280 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 29:4a11413cf217 3281 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 3282 }
AzureIoTClient 29:4a11413cf217 3283 else
AzureIoTClient 29:4a11413cf217 3284 {
AzureIoTClient 29:4a11413cf217 3285 result = 0;
AzureIoTClient 29:4a11413cf217 3286 }
AzureIoTClient 28:add19eb7defa 3287 }
AzureIoTClient 29:4a11413cf217 3288
AzureIoTClient 29:4a11413cf217 3289 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 3290 }
AzureIoTClient 29:4a11413cf217 3291 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 3292 }
AzureIoTClient 28:add19eb7defa 3293 }
AzureIoTClient 28:add19eb7defa 3294 else
AzureIoTClient 28:add19eb7defa 3295 {
AzureIoTClient 28:add19eb7defa 3296 result = 0;
AzureIoTClient 28:add19eb7defa 3297 }
AzureIoTClient 28:add19eb7defa 3298 }
AzureIoTClient 28:add19eb7defa 3299 }
AzureIoTClient 28:add19eb7defa 3300 }
AzureIoTClient 28:add19eb7defa 3301 }
AzureIoTClient 28:add19eb7defa 3302 }
AzureIoTClient 28:add19eb7defa 3303
AzureIoTClient 28:add19eb7defa 3304 return result;
Azure.IoT Build 0:6ae2f7bca550 3305 }
Azure.IoT Build 0:6ae2f7bca550 3306
Azure.IoT Build 0:6ae2f7bca550 3307 int begin_set_desired_capabilities(BEGIN_HANDLE begin, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3308 {
AzureIoTClient 28:add19eb7defa 3309 int result;
AzureIoTClient 28:add19eb7defa 3310
AzureIoTClient 28:add19eb7defa 3311 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3312 {
AzureIoTClient 28:add19eb7defa 3313 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3314 }
AzureIoTClient 28:add19eb7defa 3315 else
AzureIoTClient 28:add19eb7defa 3316 {
AzureIoTClient 28:add19eb7defa 3317 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3318 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 3319 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3320 {
AzureIoTClient 23:1111ee8bcba4 3321 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 3322 }
AzureIoTClient 23:1111ee8bcba4 3323 else
AzureIoTClient 23:1111ee8bcba4 3324 {
AzureIoTClient 23:1111ee8bcba4 3325 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 3326 }
AzureIoTClient 28:add19eb7defa 3327 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3328 {
AzureIoTClient 28:add19eb7defa 3329 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3330 }
AzureIoTClient 28:add19eb7defa 3331 else
AzureIoTClient 28:add19eb7defa 3332 {
AzureIoTClient 28:add19eb7defa 3333 if (amqpvalue_set_composite_item(begin_instance->composite_value, 6, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3334 {
AzureIoTClient 28:add19eb7defa 3335 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3336 }
AzureIoTClient 28:add19eb7defa 3337 else
AzureIoTClient 28:add19eb7defa 3338 {
AzureIoTClient 28:add19eb7defa 3339 result = 0;
AzureIoTClient 28:add19eb7defa 3340 }
AzureIoTClient 28:add19eb7defa 3341
AzureIoTClient 28:add19eb7defa 3342 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 3343 }
AzureIoTClient 28:add19eb7defa 3344 }
AzureIoTClient 28:add19eb7defa 3345
AzureIoTClient 28:add19eb7defa 3346 return result;
Azure.IoT Build 0:6ae2f7bca550 3347 }
Azure.IoT Build 0:6ae2f7bca550 3348
Azure.IoT Build 0:6ae2f7bca550 3349 int begin_get_properties(BEGIN_HANDLE begin, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 3350 {
AzureIoTClient 28:add19eb7defa 3351 int result;
AzureIoTClient 28:add19eb7defa 3352
AzureIoTClient 28:add19eb7defa 3353 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3354 {
AzureIoTClient 28:add19eb7defa 3355 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3356 }
AzureIoTClient 28:add19eb7defa 3357 else
AzureIoTClient 28:add19eb7defa 3358 {
AzureIoTClient 28:add19eb7defa 3359 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3360 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3361 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3362 {
AzureIoTClient 23:1111ee8bcba4 3363 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3364 }
AzureIoTClient 23:1111ee8bcba4 3365 else
AzureIoTClient 23:1111ee8bcba4 3366 {
AzureIoTClient 23:1111ee8bcba4 3367 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 3368 {
AzureIoTClient 28:add19eb7defa 3369 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3370 }
AzureIoTClient 28:add19eb7defa 3371 else
AzureIoTClient 28:add19eb7defa 3372 {
AzureIoTClient 28:add19eb7defa 3373 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 3374 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3375 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3376 {
AzureIoTClient 28:add19eb7defa 3377 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3378 }
AzureIoTClient 28:add19eb7defa 3379 else
AzureIoTClient 28:add19eb7defa 3380 {
AzureIoTClient 28:add19eb7defa 3381 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3382 if ((get_single_value_result = amqpvalue_get_fields(item_value, properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 3383 {
AzureIoTClient 28:add19eb7defa 3384 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3385 }
AzureIoTClient 28:add19eb7defa 3386 else
AzureIoTClient 28:add19eb7defa 3387 {
AzureIoTClient 28:add19eb7defa 3388 result = 0;
AzureIoTClient 28:add19eb7defa 3389 }
AzureIoTClient 28:add19eb7defa 3390 }
AzureIoTClient 28:add19eb7defa 3391 }
AzureIoTClient 28:add19eb7defa 3392 }
AzureIoTClient 28:add19eb7defa 3393 }
AzureIoTClient 28:add19eb7defa 3394
AzureIoTClient 28:add19eb7defa 3395 return result;
Azure.IoT Build 0:6ae2f7bca550 3396 }
Azure.IoT Build 0:6ae2f7bca550 3397
Azure.IoT Build 0:6ae2f7bca550 3398 int begin_set_properties(BEGIN_HANDLE begin, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 3399 {
AzureIoTClient 28:add19eb7defa 3400 int result;
AzureIoTClient 28:add19eb7defa 3401
AzureIoTClient 28:add19eb7defa 3402 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3403 {
AzureIoTClient 28:add19eb7defa 3404 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3405 }
AzureIoTClient 28:add19eb7defa 3406 else
AzureIoTClient 28:add19eb7defa 3407 {
AzureIoTClient 28:add19eb7defa 3408 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3409 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 3410 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3411 {
AzureIoTClient 28:add19eb7defa 3412 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3413 }
AzureIoTClient 28:add19eb7defa 3414 else
AzureIoTClient 28:add19eb7defa 3415 {
AzureIoTClient 28:add19eb7defa 3416 if (amqpvalue_set_composite_item(begin_instance->composite_value, 7, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3417 {
AzureIoTClient 28:add19eb7defa 3418 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3419 }
AzureIoTClient 28:add19eb7defa 3420 else
AzureIoTClient 28:add19eb7defa 3421 {
AzureIoTClient 28:add19eb7defa 3422 result = 0;
AzureIoTClient 28:add19eb7defa 3423 }
AzureIoTClient 28:add19eb7defa 3424
AzureIoTClient 28:add19eb7defa 3425 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 3426 }
AzureIoTClient 28:add19eb7defa 3427 }
AzureIoTClient 28:add19eb7defa 3428
AzureIoTClient 28:add19eb7defa 3429 return result;
Azure.IoT Build 0:6ae2f7bca550 3430 }
Azure.IoT Build 0:6ae2f7bca550 3431
Azure.IoT Build 0:6ae2f7bca550 3432
Azure.IoT Build 0:6ae2f7bca550 3433 /* attach */
Azure.IoT Build 0:6ae2f7bca550 3434
Azure.IoT Build 0:6ae2f7bca550 3435 typedef struct ATTACH_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 3436 {
AzureIoTClient 28:add19eb7defa 3437 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 3438 } ATTACH_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 3439
Azure.IoT Build 0:6ae2f7bca550 3440 static ATTACH_HANDLE attach_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 3441 {
AzureIoTClient 28:add19eb7defa 3442 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3443 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3444 {
AzureIoTClient 28:add19eb7defa 3445 attach_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 3446 }
AzureIoTClient 28:add19eb7defa 3447
AzureIoTClient 28:add19eb7defa 3448 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3449 }
Azure.IoT Build 0:6ae2f7bca550 3450
Azure.IoT Build 0:6ae2f7bca550 3451 ATTACH_HANDLE attach_create(const char* name_value, handle handle_value, role role_value)
Azure.IoT Build 0:6ae2f7bca550 3452 {
AzureIoTClient 28:add19eb7defa 3453 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3454 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3455 {
AzureIoTClient 28:add19eb7defa 3456 attach_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(18);
AzureIoTClient 28:add19eb7defa 3457 if (attach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 3458 {
AzureIoTClient 28:add19eb7defa 3459 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3460 attach_instance = NULL;
AzureIoTClient 28:add19eb7defa 3461 }
AzureIoTClient 28:add19eb7defa 3462 else
AzureIoTClient 28:add19eb7defa 3463 {
AzureIoTClient 28:add19eb7defa 3464 AMQP_VALUE name_amqp_value;
AzureIoTClient 28:add19eb7defa 3465 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 3466 AMQP_VALUE role_amqp_value;
AzureIoTClient 28:add19eb7defa 3467 int result = 0;
AzureIoTClient 28:add19eb7defa 3468
AzureIoTClient 28:add19eb7defa 3469 name_amqp_value = amqpvalue_create_string(name_value);
AzureIoTClient 28:add19eb7defa 3470 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 0, name_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3471 {
AzureIoTClient 28:add19eb7defa 3472 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3473 }
AzureIoTClient 28:add19eb7defa 3474 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 3475 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 1, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3476 {
AzureIoTClient 28:add19eb7defa 3477 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3478 }
AzureIoTClient 28:add19eb7defa 3479 role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 3480 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 2, role_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3481 {
AzureIoTClient 28:add19eb7defa 3482 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3483 }
AzureIoTClient 28:add19eb7defa 3484
AzureIoTClient 28:add19eb7defa 3485 amqpvalue_destroy(name_amqp_value);
AzureIoTClient 28:add19eb7defa 3486 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 3487 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 3488 }
AzureIoTClient 28:add19eb7defa 3489 }
AzureIoTClient 28:add19eb7defa 3490
AzureIoTClient 28:add19eb7defa 3491 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3492 }
Azure.IoT Build 0:6ae2f7bca550 3493
Azure.IoT Build 0:6ae2f7bca550 3494 ATTACH_HANDLE attach_clone(ATTACH_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 3495 {
AzureIoTClient 28:add19eb7defa 3496 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3497 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3498 {
AzureIoTClient 28:add19eb7defa 3499 attach_instance->composite_value = amqpvalue_clone(((ATTACH_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 3500 if (attach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 3501 {
AzureIoTClient 28:add19eb7defa 3502 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3503 attach_instance = NULL;
AzureIoTClient 28:add19eb7defa 3504 }
AzureIoTClient 28:add19eb7defa 3505 }
AzureIoTClient 28:add19eb7defa 3506
AzureIoTClient 28:add19eb7defa 3507 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3508 }
Azure.IoT Build 0:6ae2f7bca550 3509
Azure.IoT Build 0:6ae2f7bca550 3510 void attach_destroy(ATTACH_HANDLE attach)
Azure.IoT Build 0:6ae2f7bca550 3511 {
AzureIoTClient 28:add19eb7defa 3512 if (attach != NULL)
AzureIoTClient 28:add19eb7defa 3513 {
AzureIoTClient 28:add19eb7defa 3514 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 3515 amqpvalue_destroy(attach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 3516 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3517 }
Azure.IoT Build 0:6ae2f7bca550 3518 }
Azure.IoT Build 0:6ae2f7bca550 3519
Azure.IoT Build 0:6ae2f7bca550 3520 AMQP_VALUE amqpvalue_create_attach(ATTACH_HANDLE attach)
Azure.IoT Build 0:6ae2f7bca550 3521 {
AzureIoTClient 28:add19eb7defa 3522 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 3523
AzureIoTClient 28:add19eb7defa 3524 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 3525 {
AzureIoTClient 28:add19eb7defa 3526 result = NULL;
AzureIoTClient 28:add19eb7defa 3527 }
AzureIoTClient 28:add19eb7defa 3528 else
AzureIoTClient 28:add19eb7defa 3529 {
AzureIoTClient 28:add19eb7defa 3530 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 3531 result = amqpvalue_clone(attach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 3532 }
AzureIoTClient 28:add19eb7defa 3533
AzureIoTClient 28:add19eb7defa 3534 return result;
Azure.IoT Build 0:6ae2f7bca550 3535 }
Azure.IoT Build 0:6ae2f7bca550 3536
Azure.IoT Build 0:6ae2f7bca550 3537 bool is_attach_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 3538 {
AzureIoTClient 28:add19eb7defa 3539 bool result;
AzureIoTClient 28:add19eb7defa 3540
AzureIoTClient 28:add19eb7defa 3541 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 3542 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 3543 (descriptor_ulong == 18))
AzureIoTClient 28:add19eb7defa 3544 {
AzureIoTClient 28:add19eb7defa 3545 result = true;
AzureIoTClient 28:add19eb7defa 3546 }
AzureIoTClient 28:add19eb7defa 3547 else
AzureIoTClient 28:add19eb7defa 3548 {
AzureIoTClient 28:add19eb7defa 3549 result = false;
AzureIoTClient 28:add19eb7defa 3550 }
AzureIoTClient 28:add19eb7defa 3551
AzureIoTClient 28:add19eb7defa 3552 return result;
Azure.IoT Build 0:6ae2f7bca550 3553 }
Azure.IoT Build 0:6ae2f7bca550 3554
Azure.IoT Build 0:6ae2f7bca550 3555
Azure.IoT Build 0:6ae2f7bca550 3556 int amqpvalue_get_attach(AMQP_VALUE value, ATTACH_HANDLE* attach_handle)
Azure.IoT Build 0:6ae2f7bca550 3557 {
AzureIoTClient 28:add19eb7defa 3558 int result;
AzureIoTClient 28:add19eb7defa 3559 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach_create_internal();
AzureIoTClient 28:add19eb7defa 3560 *attach_handle = attach_instance;
AzureIoTClient 28:add19eb7defa 3561 if (*attach_handle == NULL)
AzureIoTClient 28:add19eb7defa 3562 {
AzureIoTClient 28:add19eb7defa 3563 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3564 }
AzureIoTClient 28:add19eb7defa 3565 else
AzureIoTClient 28:add19eb7defa 3566 {
AzureIoTClient 28:add19eb7defa 3567 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 3568 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 3569 {
AzureIoTClient 28:add19eb7defa 3570 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3571 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3572 }
AzureIoTClient 28:add19eb7defa 3573 else
AzureIoTClient 28:add19eb7defa 3574 {
AzureIoTClient 23:1111ee8bcba4 3575 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 3576 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3577 {
AzureIoTClient 23:1111ee8bcba4 3578 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3579 }
AzureIoTClient 23:1111ee8bcba4 3580 else
AzureIoTClient 23:1111ee8bcba4 3581 {
AzureIoTClient 28:add19eb7defa 3582 do
AzureIoTClient 28:add19eb7defa 3583 {
AzureIoTClient 28:add19eb7defa 3584 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 3585 /* name */
AzureIoTClient 28:add19eb7defa 3586 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 3587 {
AzureIoTClient 23:1111ee8bcba4 3588 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 3589 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3590 {
AzureIoTClient 28:add19eb7defa 3591 {
AzureIoTClient 28:add19eb7defa 3592 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3593 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3594 break;
AzureIoTClient 28:add19eb7defa 3595 }
AzureIoTClient 28:add19eb7defa 3596 }
AzureIoTClient 28:add19eb7defa 3597 else
AzureIoTClient 28:add19eb7defa 3598 {
AzureIoTClient 28:add19eb7defa 3599 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3600 {
AzureIoTClient 28:add19eb7defa 3601 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3602 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3603 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3604 break;
AzureIoTClient 28:add19eb7defa 3605 }
AzureIoTClient 28:add19eb7defa 3606 else
AzureIoTClient 28:add19eb7defa 3607 {
AzureIoTClient 28:add19eb7defa 3608 const char* name;
AzureIoTClient 28:add19eb7defa 3609 if (amqpvalue_get_string(item_value, &name) != 0)
AzureIoTClient 28:add19eb7defa 3610 {
AzureIoTClient 28:add19eb7defa 3611 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3612 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3613 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3614 break;
AzureIoTClient 28:add19eb7defa 3615 }
AzureIoTClient 28:add19eb7defa 3616 }
AzureIoTClient 28:add19eb7defa 3617
AzureIoTClient 28:add19eb7defa 3618 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3619 }
AzureIoTClient 28:add19eb7defa 3620 }
AzureIoTClient 28:add19eb7defa 3621 else
AzureIoTClient 28:add19eb7defa 3622 {
AzureIoTClient 28:add19eb7defa 3623 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3624 }
AzureIoTClient 28:add19eb7defa 3625 /* handle */
AzureIoTClient 28:add19eb7defa 3626 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 3627 {
AzureIoTClient 23:1111ee8bcba4 3628 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 3629 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3630 {
AzureIoTClient 28:add19eb7defa 3631 {
AzureIoTClient 28:add19eb7defa 3632 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3633 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3634 break;
AzureIoTClient 28:add19eb7defa 3635 }
AzureIoTClient 28:add19eb7defa 3636 }
AzureIoTClient 28:add19eb7defa 3637 else
AzureIoTClient 28:add19eb7defa 3638 {
AzureIoTClient 28:add19eb7defa 3639 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3640 {
AzureIoTClient 28:add19eb7defa 3641 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3642 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3643 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3644 break;
AzureIoTClient 28:add19eb7defa 3645 }
AzureIoTClient 28:add19eb7defa 3646 else
AzureIoTClient 28:add19eb7defa 3647 {
AzureIoTClient 28:add19eb7defa 3648 handle handle;
AzureIoTClient 28:add19eb7defa 3649 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 3650 {
AzureIoTClient 28:add19eb7defa 3651 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3652 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3653 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3654 break;
AzureIoTClient 28:add19eb7defa 3655 }
AzureIoTClient 28:add19eb7defa 3656 }
AzureIoTClient 28:add19eb7defa 3657
AzureIoTClient 28:add19eb7defa 3658 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3659 }
AzureIoTClient 28:add19eb7defa 3660 }
AzureIoTClient 28:add19eb7defa 3661 else
AzureIoTClient 28:add19eb7defa 3662 {
AzureIoTClient 28:add19eb7defa 3663 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3664 }
AzureIoTClient 28:add19eb7defa 3665 /* role */
AzureIoTClient 28:add19eb7defa 3666 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 3667 {
AzureIoTClient 23:1111ee8bcba4 3668 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 3669 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3670 {
AzureIoTClient 28:add19eb7defa 3671 {
AzureIoTClient 28:add19eb7defa 3672 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3673 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3674 break;
AzureIoTClient 28:add19eb7defa 3675 }
AzureIoTClient 28:add19eb7defa 3676 }
AzureIoTClient 28:add19eb7defa 3677 else
AzureIoTClient 28:add19eb7defa 3678 {
AzureIoTClient 28:add19eb7defa 3679 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3680 {
AzureIoTClient 28:add19eb7defa 3681 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3682 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3683 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3684 break;
AzureIoTClient 28:add19eb7defa 3685 }
AzureIoTClient 28:add19eb7defa 3686 else
AzureIoTClient 28:add19eb7defa 3687 {
AzureIoTClient 28:add19eb7defa 3688 role role;
AzureIoTClient 28:add19eb7defa 3689 if (amqpvalue_get_role(item_value, &role) != 0)
AzureIoTClient 28:add19eb7defa 3690 {
AzureIoTClient 28:add19eb7defa 3691 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3692 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3693 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3694 break;
AzureIoTClient 28:add19eb7defa 3695 }
AzureIoTClient 28:add19eb7defa 3696 }
AzureIoTClient 28:add19eb7defa 3697
AzureIoTClient 28:add19eb7defa 3698 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3699 }
AzureIoTClient 28:add19eb7defa 3700 }
AzureIoTClient 28:add19eb7defa 3701 else
AzureIoTClient 28:add19eb7defa 3702 {
AzureIoTClient 28:add19eb7defa 3703 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3704 }
AzureIoTClient 28:add19eb7defa 3705 /* snd-settle-mode */
AzureIoTClient 28:add19eb7defa 3706 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 3707 {
AzureIoTClient 23:1111ee8bcba4 3708 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 3709 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3710 {
AzureIoTClient 28:add19eb7defa 3711 /* do nothing */
AzureIoTClient 28:add19eb7defa 3712 }
AzureIoTClient 28:add19eb7defa 3713 else
AzureIoTClient 28:add19eb7defa 3714 {
AzureIoTClient 28:add19eb7defa 3715 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3716 {
AzureIoTClient 28:add19eb7defa 3717 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3718 }
AzureIoTClient 28:add19eb7defa 3719 else
AzureIoTClient 28:add19eb7defa 3720 {
AzureIoTClient 28:add19eb7defa 3721 sender_settle_mode snd_settle_mode;
AzureIoTClient 28:add19eb7defa 3722 if (amqpvalue_get_sender_settle_mode(item_value, &snd_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 3723 {
AzureIoTClient 28:add19eb7defa 3724 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3725 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3726 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3727 break;
AzureIoTClient 28:add19eb7defa 3728 }
AzureIoTClient 28:add19eb7defa 3729 }
AzureIoTClient 28:add19eb7defa 3730
AzureIoTClient 28:add19eb7defa 3731 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3732 }
AzureIoTClient 28:add19eb7defa 3733 }
AzureIoTClient 28:add19eb7defa 3734 /* rcv-settle-mode */
AzureIoTClient 28:add19eb7defa 3735 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 3736 {
AzureIoTClient 23:1111ee8bcba4 3737 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 3738 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3739 {
AzureIoTClient 28:add19eb7defa 3740 /* do nothing */
AzureIoTClient 28:add19eb7defa 3741 }
AzureIoTClient 28:add19eb7defa 3742 else
AzureIoTClient 28:add19eb7defa 3743 {
AzureIoTClient 28:add19eb7defa 3744 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3745 {
AzureIoTClient 28:add19eb7defa 3746 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3747 }
AzureIoTClient 28:add19eb7defa 3748 else
AzureIoTClient 28:add19eb7defa 3749 {
AzureIoTClient 28:add19eb7defa 3750 receiver_settle_mode rcv_settle_mode;
AzureIoTClient 28:add19eb7defa 3751 if (amqpvalue_get_receiver_settle_mode(item_value, &rcv_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 3752 {
AzureIoTClient 28:add19eb7defa 3753 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3754 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3755 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3756 break;
AzureIoTClient 28:add19eb7defa 3757 }
AzureIoTClient 28:add19eb7defa 3758 }
AzureIoTClient 28:add19eb7defa 3759
AzureIoTClient 28:add19eb7defa 3760 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3761 }
AzureIoTClient 28:add19eb7defa 3762 }
AzureIoTClient 28:add19eb7defa 3763 /* source */
AzureIoTClient 28:add19eb7defa 3764 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 3765 {
AzureIoTClient 23:1111ee8bcba4 3766 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 3767 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3768 {
AzureIoTClient 28:add19eb7defa 3769 /* do nothing */
AzureIoTClient 28:add19eb7defa 3770 }
AzureIoTClient 28:add19eb7defa 3771 else
AzureIoTClient 28:add19eb7defa 3772 {
AzureIoTClient 28:add19eb7defa 3773 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3774 }
AzureIoTClient 28:add19eb7defa 3775 }
AzureIoTClient 28:add19eb7defa 3776 /* target */
AzureIoTClient 28:add19eb7defa 3777 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 3778 {
AzureIoTClient 23:1111ee8bcba4 3779 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 3780 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3781 {
AzureIoTClient 28:add19eb7defa 3782 /* do nothing */
AzureIoTClient 28:add19eb7defa 3783 }
AzureIoTClient 28:add19eb7defa 3784 else
AzureIoTClient 28:add19eb7defa 3785 {
AzureIoTClient 28:add19eb7defa 3786 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3787 }
AzureIoTClient 28:add19eb7defa 3788 }
AzureIoTClient 28:add19eb7defa 3789 /* unsettled */
AzureIoTClient 28:add19eb7defa 3790 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 3791 {
AzureIoTClient 23:1111ee8bcba4 3792 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 3793 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3794 {
AzureIoTClient 28:add19eb7defa 3795 /* do nothing */
AzureIoTClient 28:add19eb7defa 3796 }
AzureIoTClient 28:add19eb7defa 3797 else
AzureIoTClient 28:add19eb7defa 3798 {
AzureIoTClient 28:add19eb7defa 3799 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3800 {
AzureIoTClient 28:add19eb7defa 3801 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3802 }
AzureIoTClient 28:add19eb7defa 3803 else
AzureIoTClient 28:add19eb7defa 3804 {
AzureIoTClient 28:add19eb7defa 3805 AMQP_VALUE unsettled;
AzureIoTClient 28:add19eb7defa 3806 if (amqpvalue_get_map(item_value, &unsettled) != 0)
AzureIoTClient 28:add19eb7defa 3807 {
AzureIoTClient 28:add19eb7defa 3808 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3809 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3810 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3811 break;
AzureIoTClient 28:add19eb7defa 3812 }
AzureIoTClient 28:add19eb7defa 3813 }
AzureIoTClient 28:add19eb7defa 3814
AzureIoTClient 28:add19eb7defa 3815 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3816 }
AzureIoTClient 28:add19eb7defa 3817 }
AzureIoTClient 28:add19eb7defa 3818 /* incomplete-unsettled */
AzureIoTClient 28:add19eb7defa 3819 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 3820 {
AzureIoTClient 23:1111ee8bcba4 3821 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 3822 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3823 {
AzureIoTClient 28:add19eb7defa 3824 /* do nothing */
AzureIoTClient 28:add19eb7defa 3825 }
AzureIoTClient 28:add19eb7defa 3826 else
AzureIoTClient 28:add19eb7defa 3827 {
AzureIoTClient 28:add19eb7defa 3828 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3829 {
AzureIoTClient 28:add19eb7defa 3830 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3831 }
AzureIoTClient 28:add19eb7defa 3832 else
AzureIoTClient 28:add19eb7defa 3833 {
AzureIoTClient 28:add19eb7defa 3834 bool incomplete_unsettled;
AzureIoTClient 28:add19eb7defa 3835 if (amqpvalue_get_boolean(item_value, &incomplete_unsettled) != 0)
AzureIoTClient 28:add19eb7defa 3836 {
AzureIoTClient 28:add19eb7defa 3837 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3838 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3839 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3840 break;
AzureIoTClient 28:add19eb7defa 3841 }
AzureIoTClient 28:add19eb7defa 3842 }
AzureIoTClient 28:add19eb7defa 3843
AzureIoTClient 28:add19eb7defa 3844 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3845 }
AzureIoTClient 28:add19eb7defa 3846 }
AzureIoTClient 28:add19eb7defa 3847 /* initial-delivery-count */
AzureIoTClient 28:add19eb7defa 3848 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 3849 {
AzureIoTClient 23:1111ee8bcba4 3850 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 3851 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3852 {
AzureIoTClient 28:add19eb7defa 3853 /* do nothing */
AzureIoTClient 28:add19eb7defa 3854 }
AzureIoTClient 28:add19eb7defa 3855 else
AzureIoTClient 28:add19eb7defa 3856 {
AzureIoTClient 28:add19eb7defa 3857 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3858 {
AzureIoTClient 28:add19eb7defa 3859 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3860 }
AzureIoTClient 28:add19eb7defa 3861 else
AzureIoTClient 28:add19eb7defa 3862 {
AzureIoTClient 28:add19eb7defa 3863 sequence_no initial_delivery_count;
AzureIoTClient 28:add19eb7defa 3864 if (amqpvalue_get_sequence_no(item_value, &initial_delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 3865 {
AzureIoTClient 28:add19eb7defa 3866 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3867 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3868 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3869 break;
AzureIoTClient 28:add19eb7defa 3870 }
AzureIoTClient 28:add19eb7defa 3871 }
AzureIoTClient 28:add19eb7defa 3872
AzureIoTClient 28:add19eb7defa 3873 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3874 }
AzureIoTClient 28:add19eb7defa 3875 }
AzureIoTClient 28:add19eb7defa 3876 /* max-message-size */
AzureIoTClient 28:add19eb7defa 3877 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 3878 {
AzureIoTClient 23:1111ee8bcba4 3879 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 3880 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3881 {
AzureIoTClient 28:add19eb7defa 3882 /* do nothing */
AzureIoTClient 28:add19eb7defa 3883 }
AzureIoTClient 28:add19eb7defa 3884 else
AzureIoTClient 28:add19eb7defa 3885 {
AzureIoTClient 28:add19eb7defa 3886 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3887 {
AzureIoTClient 28:add19eb7defa 3888 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3889 }
AzureIoTClient 28:add19eb7defa 3890 else
AzureIoTClient 28:add19eb7defa 3891 {
AzureIoTClient 28:add19eb7defa 3892 uint64_t max_message_size;
AzureIoTClient 28:add19eb7defa 3893 if (amqpvalue_get_ulong(item_value, &max_message_size) != 0)
AzureIoTClient 28:add19eb7defa 3894 {
AzureIoTClient 28:add19eb7defa 3895 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3896 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3897 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3898 break;
AzureIoTClient 28:add19eb7defa 3899 }
AzureIoTClient 28:add19eb7defa 3900 }
AzureIoTClient 28:add19eb7defa 3901
AzureIoTClient 28:add19eb7defa 3902 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3903 }
AzureIoTClient 28:add19eb7defa 3904 }
AzureIoTClient 28:add19eb7defa 3905 /* offered-capabilities */
AzureIoTClient 28:add19eb7defa 3906 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 3907 {
AzureIoTClient 23:1111ee8bcba4 3908 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 28:add19eb7defa 3909 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3910 {
AzureIoTClient 28:add19eb7defa 3911 /* do nothing */
AzureIoTClient 28:add19eb7defa 3912 }
AzureIoTClient 28:add19eb7defa 3913 else
AzureIoTClient 28:add19eb7defa 3914 {
AzureIoTClient 28:add19eb7defa 3915 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3916 {
AzureIoTClient 28:add19eb7defa 3917 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3918 }
AzureIoTClient 28:add19eb7defa 3919 else
AzureIoTClient 28:add19eb7defa 3920 {
AzureIoTClient 28:add19eb7defa 3921 const char* offered_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 3922 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 28:add19eb7defa 3923 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &offered_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 3924 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 3925 {
AzureIoTClient 28:add19eb7defa 3926 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3927 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3928 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3929 break;
AzureIoTClient 28:add19eb7defa 3930 }
AzureIoTClient 28:add19eb7defa 3931 }
AzureIoTClient 28:add19eb7defa 3932
AzureIoTClient 28:add19eb7defa 3933 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3934 }
AzureIoTClient 28:add19eb7defa 3935 }
AzureIoTClient 28:add19eb7defa 3936 /* desired-capabilities */
AzureIoTClient 28:add19eb7defa 3937 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 3938 {
AzureIoTClient 23:1111ee8bcba4 3939 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 28:add19eb7defa 3940 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3941 {
AzureIoTClient 28:add19eb7defa 3942 /* do nothing */
AzureIoTClient 28:add19eb7defa 3943 }
AzureIoTClient 28:add19eb7defa 3944 else
AzureIoTClient 28:add19eb7defa 3945 {
AzureIoTClient 28:add19eb7defa 3946 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3947 {
AzureIoTClient 28:add19eb7defa 3948 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3949 }
AzureIoTClient 28:add19eb7defa 3950 else
AzureIoTClient 28:add19eb7defa 3951 {
AzureIoTClient 28:add19eb7defa 3952 const char* desired_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 3953 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 28:add19eb7defa 3954 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &desired_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 3955 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 3956 {
AzureIoTClient 28:add19eb7defa 3957 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3958 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3959 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3960 break;
AzureIoTClient 28:add19eb7defa 3961 }
AzureIoTClient 28:add19eb7defa 3962 }
AzureIoTClient 28:add19eb7defa 3963
AzureIoTClient 28:add19eb7defa 3964 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3965 }
AzureIoTClient 28:add19eb7defa 3966 }
AzureIoTClient 28:add19eb7defa 3967 /* properties */
AzureIoTClient 28:add19eb7defa 3968 if (list_item_count > 13)
AzureIoTClient 23:1111ee8bcba4 3969 {
AzureIoTClient 23:1111ee8bcba4 3970 item_value = amqpvalue_get_list_item(list_value, 13);
AzureIoTClient 28:add19eb7defa 3971 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3972 {
AzureIoTClient 28:add19eb7defa 3973 /* do nothing */
AzureIoTClient 28:add19eb7defa 3974 }
AzureIoTClient 28:add19eb7defa 3975 else
AzureIoTClient 28:add19eb7defa 3976 {
AzureIoTClient 28:add19eb7defa 3977 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3978 {
AzureIoTClient 28:add19eb7defa 3979 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3980 }
AzureIoTClient 28:add19eb7defa 3981 else
AzureIoTClient 28:add19eb7defa 3982 {
AzureIoTClient 28:add19eb7defa 3983 fields properties;
AzureIoTClient 28:add19eb7defa 3984 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 3985 {
AzureIoTClient 28:add19eb7defa 3986 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3987 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3988 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3989 break;
AzureIoTClient 28:add19eb7defa 3990 }
AzureIoTClient 28:add19eb7defa 3991 }
AzureIoTClient 28:add19eb7defa 3992
AzureIoTClient 28:add19eb7defa 3993 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3994 }
AzureIoTClient 28:add19eb7defa 3995 }
AzureIoTClient 28:add19eb7defa 3996
AzureIoTClient 28:add19eb7defa 3997 attach_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 3998
AzureIoTClient 28:add19eb7defa 3999 result = 0;
AzureIoTClient 28:add19eb7defa 4000 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 4001 }
AzureIoTClient 28:add19eb7defa 4002 }
AzureIoTClient 28:add19eb7defa 4003 }
AzureIoTClient 28:add19eb7defa 4004
AzureIoTClient 28:add19eb7defa 4005 return result;
Azure.IoT Build 0:6ae2f7bca550 4006 }
Azure.IoT Build 0:6ae2f7bca550 4007
Azure.IoT Build 0:6ae2f7bca550 4008 int attach_get_name(ATTACH_HANDLE attach, const char** name_value)
Azure.IoT Build 0:6ae2f7bca550 4009 {
AzureIoTClient 28:add19eb7defa 4010 int result;
AzureIoTClient 28:add19eb7defa 4011
AzureIoTClient 28:add19eb7defa 4012 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4013 {
AzureIoTClient 28:add19eb7defa 4014 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4015 }
AzureIoTClient 28:add19eb7defa 4016 else
AzureIoTClient 28:add19eb7defa 4017 {
AzureIoTClient 28:add19eb7defa 4018 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4019 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4020 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4021 {
AzureIoTClient 23:1111ee8bcba4 4022 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4023 }
AzureIoTClient 23:1111ee8bcba4 4024 else
AzureIoTClient 23:1111ee8bcba4 4025 {
AzureIoTClient 23:1111ee8bcba4 4026 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 4027 {
AzureIoTClient 28:add19eb7defa 4028 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4029 }
AzureIoTClient 28:add19eb7defa 4030 else
AzureIoTClient 28:add19eb7defa 4031 {
AzureIoTClient 28:add19eb7defa 4032 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 4033 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4034 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4035 {
AzureIoTClient 28:add19eb7defa 4036 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4037 }
AzureIoTClient 28:add19eb7defa 4038 else
AzureIoTClient 28:add19eb7defa 4039 {
AzureIoTClient 28:add19eb7defa 4040 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4041 if ((get_single_value_result = amqpvalue_get_string(item_value, name_value)) != 0)
AzureIoTClient 28:add19eb7defa 4042 {
AzureIoTClient 28:add19eb7defa 4043 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4044 }
AzureIoTClient 28:add19eb7defa 4045 else
AzureIoTClient 28:add19eb7defa 4046 {
AzureIoTClient 28:add19eb7defa 4047 result = 0;
AzureIoTClient 28:add19eb7defa 4048 }
AzureIoTClient 28:add19eb7defa 4049 }
AzureIoTClient 28:add19eb7defa 4050 }
AzureIoTClient 28:add19eb7defa 4051 }
AzureIoTClient 28:add19eb7defa 4052 }
AzureIoTClient 28:add19eb7defa 4053
AzureIoTClient 28:add19eb7defa 4054 return result;
Azure.IoT Build 0:6ae2f7bca550 4055 }
Azure.IoT Build 0:6ae2f7bca550 4056
Azure.IoT Build 0:6ae2f7bca550 4057 int attach_set_name(ATTACH_HANDLE attach, const char* name_value)
Azure.IoT Build 0:6ae2f7bca550 4058 {
AzureIoTClient 28:add19eb7defa 4059 int result;
AzureIoTClient 28:add19eb7defa 4060
AzureIoTClient 28:add19eb7defa 4061 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4062 {
AzureIoTClient 28:add19eb7defa 4063 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4064 }
AzureIoTClient 28:add19eb7defa 4065 else
AzureIoTClient 28:add19eb7defa 4066 {
AzureIoTClient 28:add19eb7defa 4067 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4068 AMQP_VALUE name_amqp_value = amqpvalue_create_string(name_value);
AzureIoTClient 28:add19eb7defa 4069 if (name_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4070 {
AzureIoTClient 28:add19eb7defa 4071 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4072 }
AzureIoTClient 28:add19eb7defa 4073 else
AzureIoTClient 28:add19eb7defa 4074 {
AzureIoTClient 28:add19eb7defa 4075 if (amqpvalue_set_composite_item(attach_instance->composite_value, 0, name_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4076 {
AzureIoTClient 28:add19eb7defa 4077 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4078 }
AzureIoTClient 28:add19eb7defa 4079 else
AzureIoTClient 28:add19eb7defa 4080 {
AzureIoTClient 28:add19eb7defa 4081 result = 0;
AzureIoTClient 28:add19eb7defa 4082 }
AzureIoTClient 28:add19eb7defa 4083
AzureIoTClient 28:add19eb7defa 4084 amqpvalue_destroy(name_amqp_value);
AzureIoTClient 28:add19eb7defa 4085 }
AzureIoTClient 28:add19eb7defa 4086 }
AzureIoTClient 28:add19eb7defa 4087
AzureIoTClient 28:add19eb7defa 4088 return result;
Azure.IoT Build 0:6ae2f7bca550 4089 }
Azure.IoT Build 0:6ae2f7bca550 4090
Azure.IoT Build 0:6ae2f7bca550 4091 int attach_get_handle(ATTACH_HANDLE attach, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 4092 {
AzureIoTClient 28:add19eb7defa 4093 int result;
AzureIoTClient 28:add19eb7defa 4094
AzureIoTClient 28:add19eb7defa 4095 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4096 {
AzureIoTClient 28:add19eb7defa 4097 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4098 }
AzureIoTClient 28:add19eb7defa 4099 else
AzureIoTClient 28:add19eb7defa 4100 {
AzureIoTClient 28:add19eb7defa 4101 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4102 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4103 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4104 {
AzureIoTClient 23:1111ee8bcba4 4105 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4106 }
AzureIoTClient 23:1111ee8bcba4 4107 else
AzureIoTClient 23:1111ee8bcba4 4108 {
AzureIoTClient 23:1111ee8bcba4 4109 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 4110 {
AzureIoTClient 28:add19eb7defa 4111 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4112 }
AzureIoTClient 28:add19eb7defa 4113 else
AzureIoTClient 28:add19eb7defa 4114 {
AzureIoTClient 28:add19eb7defa 4115 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 4116 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4117 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4118 {
AzureIoTClient 28:add19eb7defa 4119 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4120 }
AzureIoTClient 28:add19eb7defa 4121 else
AzureIoTClient 28:add19eb7defa 4122 {
AzureIoTClient 28:add19eb7defa 4123 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4124 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_value)) != 0)
AzureIoTClient 28:add19eb7defa 4125 {
AzureIoTClient 28:add19eb7defa 4126 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4127 }
AzureIoTClient 28:add19eb7defa 4128 else
AzureIoTClient 28:add19eb7defa 4129 {
AzureIoTClient 28:add19eb7defa 4130 result = 0;
AzureIoTClient 28:add19eb7defa 4131 }
AzureIoTClient 28:add19eb7defa 4132 }
AzureIoTClient 28:add19eb7defa 4133 }
AzureIoTClient 28:add19eb7defa 4134 }
AzureIoTClient 28:add19eb7defa 4135 }
AzureIoTClient 28:add19eb7defa 4136
AzureIoTClient 28:add19eb7defa 4137 return result;
Azure.IoT Build 0:6ae2f7bca550 4138 }
Azure.IoT Build 0:6ae2f7bca550 4139
Azure.IoT Build 0:6ae2f7bca550 4140 int attach_set_handle(ATTACH_HANDLE attach, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 4141 {
AzureIoTClient 28:add19eb7defa 4142 int result;
AzureIoTClient 28:add19eb7defa 4143
AzureIoTClient 28:add19eb7defa 4144 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4145 {
AzureIoTClient 28:add19eb7defa 4146 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4147 }
AzureIoTClient 28:add19eb7defa 4148 else
AzureIoTClient 28:add19eb7defa 4149 {
AzureIoTClient 28:add19eb7defa 4150 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4151 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 4152 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4153 {
AzureIoTClient 28:add19eb7defa 4154 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4155 }
AzureIoTClient 28:add19eb7defa 4156 else
AzureIoTClient 28:add19eb7defa 4157 {
AzureIoTClient 28:add19eb7defa 4158 if (amqpvalue_set_composite_item(attach_instance->composite_value, 1, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4159 {
AzureIoTClient 28:add19eb7defa 4160 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4161 }
AzureIoTClient 28:add19eb7defa 4162 else
AzureIoTClient 28:add19eb7defa 4163 {
AzureIoTClient 28:add19eb7defa 4164 result = 0;
AzureIoTClient 28:add19eb7defa 4165 }
AzureIoTClient 28:add19eb7defa 4166
AzureIoTClient 28:add19eb7defa 4167 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 4168 }
AzureIoTClient 28:add19eb7defa 4169 }
AzureIoTClient 28:add19eb7defa 4170
AzureIoTClient 28:add19eb7defa 4171 return result;
Azure.IoT Build 0:6ae2f7bca550 4172 }
Azure.IoT Build 0:6ae2f7bca550 4173
Azure.IoT Build 0:6ae2f7bca550 4174 int attach_get_role(ATTACH_HANDLE attach, role* role_value)
Azure.IoT Build 0:6ae2f7bca550 4175 {
AzureIoTClient 28:add19eb7defa 4176 int result;
AzureIoTClient 28:add19eb7defa 4177
AzureIoTClient 28:add19eb7defa 4178 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4179 {
AzureIoTClient 28:add19eb7defa 4180 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4181 }
AzureIoTClient 28:add19eb7defa 4182 else
AzureIoTClient 28:add19eb7defa 4183 {
AzureIoTClient 28:add19eb7defa 4184 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4185 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4186 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4187 {
AzureIoTClient 23:1111ee8bcba4 4188 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4189 }
AzureIoTClient 23:1111ee8bcba4 4190 else
AzureIoTClient 23:1111ee8bcba4 4191 {
AzureIoTClient 23:1111ee8bcba4 4192 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 4193 {
AzureIoTClient 28:add19eb7defa 4194 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4195 }
AzureIoTClient 28:add19eb7defa 4196 else
AzureIoTClient 28:add19eb7defa 4197 {
AzureIoTClient 28:add19eb7defa 4198 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 4199 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4200 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4201 {
AzureIoTClient 28:add19eb7defa 4202 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4203 }
AzureIoTClient 28:add19eb7defa 4204 else
AzureIoTClient 28:add19eb7defa 4205 {
AzureIoTClient 28:add19eb7defa 4206 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4207 if ((get_single_value_result = amqpvalue_get_role(item_value, role_value)) != 0)
AzureIoTClient 28:add19eb7defa 4208 {
AzureIoTClient 28:add19eb7defa 4209 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4210 }
AzureIoTClient 28:add19eb7defa 4211 else
AzureIoTClient 28:add19eb7defa 4212 {
AzureIoTClient 28:add19eb7defa 4213 result = 0;
AzureIoTClient 28:add19eb7defa 4214 }
AzureIoTClient 28:add19eb7defa 4215 }
AzureIoTClient 28:add19eb7defa 4216 }
AzureIoTClient 28:add19eb7defa 4217 }
AzureIoTClient 28:add19eb7defa 4218 }
AzureIoTClient 28:add19eb7defa 4219
AzureIoTClient 28:add19eb7defa 4220 return result;
Azure.IoT Build 0:6ae2f7bca550 4221 }
Azure.IoT Build 0:6ae2f7bca550 4222
Azure.IoT Build 0:6ae2f7bca550 4223 int attach_set_role(ATTACH_HANDLE attach, role role_value)
Azure.IoT Build 0:6ae2f7bca550 4224 {
AzureIoTClient 28:add19eb7defa 4225 int result;
AzureIoTClient 28:add19eb7defa 4226
AzureIoTClient 28:add19eb7defa 4227 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4228 {
AzureIoTClient 28:add19eb7defa 4229 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4230 }
AzureIoTClient 28:add19eb7defa 4231 else
AzureIoTClient 28:add19eb7defa 4232 {
AzureIoTClient 28:add19eb7defa 4233 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4234 AMQP_VALUE role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 4235 if (role_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4236 {
AzureIoTClient 28:add19eb7defa 4237 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4238 }
AzureIoTClient 28:add19eb7defa 4239 else
AzureIoTClient 28:add19eb7defa 4240 {
AzureIoTClient 28:add19eb7defa 4241 if (amqpvalue_set_composite_item(attach_instance->composite_value, 2, role_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4242 {
AzureIoTClient 28:add19eb7defa 4243 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4244 }
AzureIoTClient 28:add19eb7defa 4245 else
AzureIoTClient 28:add19eb7defa 4246 {
AzureIoTClient 28:add19eb7defa 4247 result = 0;
AzureIoTClient 28:add19eb7defa 4248 }
AzureIoTClient 28:add19eb7defa 4249
AzureIoTClient 28:add19eb7defa 4250 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 4251 }
AzureIoTClient 28:add19eb7defa 4252 }
AzureIoTClient 28:add19eb7defa 4253
AzureIoTClient 28:add19eb7defa 4254 return result;
Azure.IoT Build 0:6ae2f7bca550 4255 }
Azure.IoT Build 0:6ae2f7bca550 4256
Azure.IoT Build 0:6ae2f7bca550 4257 int attach_get_snd_settle_mode(ATTACH_HANDLE attach, sender_settle_mode* snd_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4258 {
AzureIoTClient 28:add19eb7defa 4259 int result;
AzureIoTClient 28:add19eb7defa 4260
AzureIoTClient 28:add19eb7defa 4261 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4262 {
AzureIoTClient 28:add19eb7defa 4263 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4264 }
AzureIoTClient 28:add19eb7defa 4265 else
AzureIoTClient 28:add19eb7defa 4266 {
AzureIoTClient 28:add19eb7defa 4267 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4268 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4269 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4270 {
AzureIoTClient 23:1111ee8bcba4 4271 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4272 }
AzureIoTClient 23:1111ee8bcba4 4273 else
AzureIoTClient 23:1111ee8bcba4 4274 {
AzureIoTClient 23:1111ee8bcba4 4275 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 4276 {
AzureIoTClient 23:1111ee8bcba4 4277 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 23:1111ee8bcba4 4278 result = 0;
AzureIoTClient 23:1111ee8bcba4 4279 }
AzureIoTClient 23:1111ee8bcba4 4280 else
AzureIoTClient 23:1111ee8bcba4 4281 {
AzureIoTClient 28:add19eb7defa 4282 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 4283 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4284 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4285 {
AzureIoTClient 16:22a72cf8e416 4286 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 16:22a72cf8e416 4287 result = 0;
AzureIoTClient 28:add19eb7defa 4288 }
AzureIoTClient 28:add19eb7defa 4289 else
AzureIoTClient 28:add19eb7defa 4290 {
AzureIoTClient 28:add19eb7defa 4291 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4292 if ((get_single_value_result = amqpvalue_get_sender_settle_mode(item_value, snd_settle_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 4293 {
AzureIoTClient 23:1111ee8bcba4 4294 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4295 {
AzureIoTClient 28:add19eb7defa 4296 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4297 }
AzureIoTClient 23:1111ee8bcba4 4298 else
AzureIoTClient 23:1111ee8bcba4 4299 {
AzureIoTClient 23:1111ee8bcba4 4300 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 23:1111ee8bcba4 4301 result = 0;
AzureIoTClient 23:1111ee8bcba4 4302 }
AzureIoTClient 28:add19eb7defa 4303 }
AzureIoTClient 28:add19eb7defa 4304 else
AzureIoTClient 28:add19eb7defa 4305 {
AzureIoTClient 28:add19eb7defa 4306 result = 0;
AzureIoTClient 28:add19eb7defa 4307 }
AzureIoTClient 28:add19eb7defa 4308 }
AzureIoTClient 28:add19eb7defa 4309 }
AzureIoTClient 28:add19eb7defa 4310 }
AzureIoTClient 28:add19eb7defa 4311 }
AzureIoTClient 28:add19eb7defa 4312
AzureIoTClient 28:add19eb7defa 4313 return result;
Azure.IoT Build 0:6ae2f7bca550 4314 }
Azure.IoT Build 0:6ae2f7bca550 4315
Azure.IoT Build 0:6ae2f7bca550 4316 int attach_set_snd_settle_mode(ATTACH_HANDLE attach, sender_settle_mode snd_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4317 {
AzureIoTClient 28:add19eb7defa 4318 int result;
AzureIoTClient 28:add19eb7defa 4319
AzureIoTClient 28:add19eb7defa 4320 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4321 {
AzureIoTClient 28:add19eb7defa 4322 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4323 }
AzureIoTClient 28:add19eb7defa 4324 else
AzureIoTClient 28:add19eb7defa 4325 {
AzureIoTClient 28:add19eb7defa 4326 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4327 AMQP_VALUE snd_settle_mode_amqp_value = amqpvalue_create_sender_settle_mode(snd_settle_mode_value);
AzureIoTClient 28:add19eb7defa 4328 if (snd_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4329 {
AzureIoTClient 28:add19eb7defa 4330 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4331 }
AzureIoTClient 28:add19eb7defa 4332 else
AzureIoTClient 28:add19eb7defa 4333 {
AzureIoTClient 28:add19eb7defa 4334 if (amqpvalue_set_composite_item(attach_instance->composite_value, 3, snd_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4335 {
AzureIoTClient 28:add19eb7defa 4336 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4337 }
AzureIoTClient 28:add19eb7defa 4338 else
AzureIoTClient 28:add19eb7defa 4339 {
AzureIoTClient 28:add19eb7defa 4340 result = 0;
AzureIoTClient 28:add19eb7defa 4341 }
AzureIoTClient 28:add19eb7defa 4342
AzureIoTClient 28:add19eb7defa 4343 amqpvalue_destroy(snd_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 4344 }
AzureIoTClient 28:add19eb7defa 4345 }
AzureIoTClient 28:add19eb7defa 4346
AzureIoTClient 28:add19eb7defa 4347 return result;
Azure.IoT Build 0:6ae2f7bca550 4348 }
Azure.IoT Build 0:6ae2f7bca550 4349
Azure.IoT Build 0:6ae2f7bca550 4350 int attach_get_rcv_settle_mode(ATTACH_HANDLE attach, receiver_settle_mode* rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4351 {
AzureIoTClient 28:add19eb7defa 4352 int result;
AzureIoTClient 28:add19eb7defa 4353
AzureIoTClient 28:add19eb7defa 4354 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4355 {
AzureIoTClient 28:add19eb7defa 4356 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4357 }
AzureIoTClient 28:add19eb7defa 4358 else
AzureIoTClient 28:add19eb7defa 4359 {
AzureIoTClient 28:add19eb7defa 4360 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4361 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4362 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4363 {
AzureIoTClient 23:1111ee8bcba4 4364 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4365 }
AzureIoTClient 23:1111ee8bcba4 4366 else
AzureIoTClient 23:1111ee8bcba4 4367 {
AzureIoTClient 23:1111ee8bcba4 4368 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 4369 {
AzureIoTClient 23:1111ee8bcba4 4370 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 23:1111ee8bcba4 4371 result = 0;
AzureIoTClient 23:1111ee8bcba4 4372 }
AzureIoTClient 23:1111ee8bcba4 4373 else
AzureIoTClient 23:1111ee8bcba4 4374 {
AzureIoTClient 28:add19eb7defa 4375 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 4376 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4377 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4378 {
AzureIoTClient 16:22a72cf8e416 4379 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 16:22a72cf8e416 4380 result = 0;
AzureIoTClient 28:add19eb7defa 4381 }
AzureIoTClient 28:add19eb7defa 4382 else
AzureIoTClient 28:add19eb7defa 4383 {
AzureIoTClient 28:add19eb7defa 4384 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4385 if ((get_single_value_result = amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 4386 {
AzureIoTClient 23:1111ee8bcba4 4387 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4388 {
AzureIoTClient 28:add19eb7defa 4389 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4390 }
AzureIoTClient 23:1111ee8bcba4 4391 else
AzureIoTClient 23:1111ee8bcba4 4392 {
AzureIoTClient 23:1111ee8bcba4 4393 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 23:1111ee8bcba4 4394 result = 0;
AzureIoTClient 23:1111ee8bcba4 4395 }
AzureIoTClient 28:add19eb7defa 4396 }
AzureIoTClient 28:add19eb7defa 4397 else
AzureIoTClient 28:add19eb7defa 4398 {
AzureIoTClient 28:add19eb7defa 4399 result = 0;
AzureIoTClient 28:add19eb7defa 4400 }
AzureIoTClient 28:add19eb7defa 4401 }
AzureIoTClient 28:add19eb7defa 4402 }
AzureIoTClient 28:add19eb7defa 4403 }
AzureIoTClient 28:add19eb7defa 4404 }
AzureIoTClient 28:add19eb7defa 4405
AzureIoTClient 28:add19eb7defa 4406 return result;
Azure.IoT Build 0:6ae2f7bca550 4407 }
Azure.IoT Build 0:6ae2f7bca550 4408
Azure.IoT Build 0:6ae2f7bca550 4409 int attach_set_rcv_settle_mode(ATTACH_HANDLE attach, receiver_settle_mode rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4410 {
AzureIoTClient 28:add19eb7defa 4411 int result;
AzureIoTClient 28:add19eb7defa 4412
AzureIoTClient 28:add19eb7defa 4413 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4414 {
AzureIoTClient 28:add19eb7defa 4415 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4416 }
AzureIoTClient 28:add19eb7defa 4417 else
AzureIoTClient 28:add19eb7defa 4418 {
AzureIoTClient 28:add19eb7defa 4419 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4420 AMQP_VALUE rcv_settle_mode_amqp_value = amqpvalue_create_receiver_settle_mode(rcv_settle_mode_value);
AzureIoTClient 28:add19eb7defa 4421 if (rcv_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4422 {
AzureIoTClient 28:add19eb7defa 4423 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4424 }
AzureIoTClient 28:add19eb7defa 4425 else
AzureIoTClient 28:add19eb7defa 4426 {
AzureIoTClient 28:add19eb7defa 4427 if (amqpvalue_set_composite_item(attach_instance->composite_value, 4, rcv_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4428 {
AzureIoTClient 28:add19eb7defa 4429 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4430 }
AzureIoTClient 28:add19eb7defa 4431 else
AzureIoTClient 28:add19eb7defa 4432 {
AzureIoTClient 28:add19eb7defa 4433 result = 0;
AzureIoTClient 28:add19eb7defa 4434 }
AzureIoTClient 28:add19eb7defa 4435
AzureIoTClient 28:add19eb7defa 4436 amqpvalue_destroy(rcv_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 4437 }
AzureIoTClient 28:add19eb7defa 4438 }
AzureIoTClient 28:add19eb7defa 4439
AzureIoTClient 28:add19eb7defa 4440 return result;
Azure.IoT Build 0:6ae2f7bca550 4441 }
Azure.IoT Build 0:6ae2f7bca550 4442
Azure.IoT Build 0:6ae2f7bca550 4443 int attach_get_source(ATTACH_HANDLE attach, AMQP_VALUE* source_value)
Azure.IoT Build 0:6ae2f7bca550 4444 {
AzureIoTClient 28:add19eb7defa 4445 int result;
AzureIoTClient 28:add19eb7defa 4446
AzureIoTClient 28:add19eb7defa 4447 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4448 {
AzureIoTClient 28:add19eb7defa 4449 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4450 }
AzureIoTClient 28:add19eb7defa 4451 else
AzureIoTClient 28:add19eb7defa 4452 {
AzureIoTClient 28:add19eb7defa 4453 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4454 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4455 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4456 {
AzureIoTClient 23:1111ee8bcba4 4457 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4458 }
AzureIoTClient 23:1111ee8bcba4 4459 else
AzureIoTClient 23:1111ee8bcba4 4460 {
AzureIoTClient 23:1111ee8bcba4 4461 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 4462 {
AzureIoTClient 28:add19eb7defa 4463 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4464 }
AzureIoTClient 28:add19eb7defa 4465 else
AzureIoTClient 28:add19eb7defa 4466 {
AzureIoTClient 28:add19eb7defa 4467 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 4468 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4469 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4470 {
AzureIoTClient 28:add19eb7defa 4471 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4472 }
AzureIoTClient 28:add19eb7defa 4473 else
AzureIoTClient 28:add19eb7defa 4474 {
AzureIoTClient 28:add19eb7defa 4475 *source_value = item_value;
AzureIoTClient 28:add19eb7defa 4476 result = 0;
AzureIoTClient 28:add19eb7defa 4477 }
AzureIoTClient 28:add19eb7defa 4478 }
AzureIoTClient 28:add19eb7defa 4479 }
AzureIoTClient 28:add19eb7defa 4480 }
AzureIoTClient 28:add19eb7defa 4481
AzureIoTClient 28:add19eb7defa 4482 return result;
Azure.IoT Build 0:6ae2f7bca550 4483 }
Azure.IoT Build 0:6ae2f7bca550 4484
Azure.IoT Build 0:6ae2f7bca550 4485 int attach_set_source(ATTACH_HANDLE attach, AMQP_VALUE source_value)
Azure.IoT Build 0:6ae2f7bca550 4486 {
AzureIoTClient 28:add19eb7defa 4487 int result;
AzureIoTClient 28:add19eb7defa 4488
AzureIoTClient 28:add19eb7defa 4489 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4490 {
AzureIoTClient 28:add19eb7defa 4491 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4492 }
AzureIoTClient 28:add19eb7defa 4493 else
AzureIoTClient 28:add19eb7defa 4494 {
AzureIoTClient 28:add19eb7defa 4495 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4496 AMQP_VALUE source_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4497 if (source_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4498 {
AzureIoTClient 23:1111ee8bcba4 4499 source_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4500 }
AzureIoTClient 23:1111ee8bcba4 4501 else
AzureIoTClient 23:1111ee8bcba4 4502 {
AzureIoTClient 23:1111ee8bcba4 4503 source_amqp_value = amqpvalue_clone(source_value);
AzureIoTClient 23:1111ee8bcba4 4504 }
AzureIoTClient 28:add19eb7defa 4505 if (source_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4506 {
AzureIoTClient 28:add19eb7defa 4507 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4508 }
AzureIoTClient 28:add19eb7defa 4509 else
AzureIoTClient 28:add19eb7defa 4510 {
AzureIoTClient 28:add19eb7defa 4511 if (amqpvalue_set_composite_item(attach_instance->composite_value, 5, source_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4512 {
AzureIoTClient 28:add19eb7defa 4513 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4514 }
AzureIoTClient 28:add19eb7defa 4515 else
AzureIoTClient 28:add19eb7defa 4516 {
AzureIoTClient 28:add19eb7defa 4517 result = 0;
AzureIoTClient 28:add19eb7defa 4518 }
AzureIoTClient 28:add19eb7defa 4519
AzureIoTClient 28:add19eb7defa 4520 amqpvalue_destroy(source_amqp_value);
AzureIoTClient 28:add19eb7defa 4521 }
AzureIoTClient 28:add19eb7defa 4522 }
AzureIoTClient 28:add19eb7defa 4523
AzureIoTClient 28:add19eb7defa 4524 return result;
Azure.IoT Build 0:6ae2f7bca550 4525 }
Azure.IoT Build 0:6ae2f7bca550 4526
Azure.IoT Build 0:6ae2f7bca550 4527 int attach_get_target(ATTACH_HANDLE attach, AMQP_VALUE* target_value)
Azure.IoT Build 0:6ae2f7bca550 4528 {
AzureIoTClient 28:add19eb7defa 4529 int result;
AzureIoTClient 28:add19eb7defa 4530
AzureIoTClient 28:add19eb7defa 4531 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4532 {
AzureIoTClient 28:add19eb7defa 4533 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4534 }
AzureIoTClient 28:add19eb7defa 4535 else
AzureIoTClient 28:add19eb7defa 4536 {
AzureIoTClient 28:add19eb7defa 4537 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4538 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4539 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4540 {
AzureIoTClient 23:1111ee8bcba4 4541 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4542 }
AzureIoTClient 23:1111ee8bcba4 4543 else
AzureIoTClient 23:1111ee8bcba4 4544 {
AzureIoTClient 23:1111ee8bcba4 4545 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 4546 {
AzureIoTClient 28:add19eb7defa 4547 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4548 }
AzureIoTClient 28:add19eb7defa 4549 else
AzureIoTClient 28:add19eb7defa 4550 {
AzureIoTClient 28:add19eb7defa 4551 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 4552 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4553 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4554 {
AzureIoTClient 28:add19eb7defa 4555 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4556 }
AzureIoTClient 28:add19eb7defa 4557 else
AzureIoTClient 28:add19eb7defa 4558 {
AzureIoTClient 28:add19eb7defa 4559 *target_value = item_value;
AzureIoTClient 28:add19eb7defa 4560 result = 0;
AzureIoTClient 28:add19eb7defa 4561 }
AzureIoTClient 28:add19eb7defa 4562 }
AzureIoTClient 28:add19eb7defa 4563 }
AzureIoTClient 28:add19eb7defa 4564 }
AzureIoTClient 28:add19eb7defa 4565
AzureIoTClient 28:add19eb7defa 4566 return result;
Azure.IoT Build 0:6ae2f7bca550 4567 }
Azure.IoT Build 0:6ae2f7bca550 4568
Azure.IoT Build 0:6ae2f7bca550 4569 int attach_set_target(ATTACH_HANDLE attach, AMQP_VALUE target_value)
Azure.IoT Build 0:6ae2f7bca550 4570 {
AzureIoTClient 28:add19eb7defa 4571 int result;
AzureIoTClient 28:add19eb7defa 4572
AzureIoTClient 28:add19eb7defa 4573 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4574 {
AzureIoTClient 28:add19eb7defa 4575 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4576 }
AzureIoTClient 28:add19eb7defa 4577 else
AzureIoTClient 28:add19eb7defa 4578 {
AzureIoTClient 28:add19eb7defa 4579 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4580 AMQP_VALUE target_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4581 if (target_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4582 {
AzureIoTClient 23:1111ee8bcba4 4583 target_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4584 }
AzureIoTClient 23:1111ee8bcba4 4585 else
AzureIoTClient 23:1111ee8bcba4 4586 {
AzureIoTClient 23:1111ee8bcba4 4587 target_amqp_value = amqpvalue_clone(target_value);
AzureIoTClient 23:1111ee8bcba4 4588 }
AzureIoTClient 28:add19eb7defa 4589 if (target_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4590 {
AzureIoTClient 28:add19eb7defa 4591 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4592 }
AzureIoTClient 28:add19eb7defa 4593 else
AzureIoTClient 28:add19eb7defa 4594 {
AzureIoTClient 28:add19eb7defa 4595 if (amqpvalue_set_composite_item(attach_instance->composite_value, 6, target_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4596 {
AzureIoTClient 28:add19eb7defa 4597 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4598 }
AzureIoTClient 28:add19eb7defa 4599 else
AzureIoTClient 28:add19eb7defa 4600 {
AzureIoTClient 28:add19eb7defa 4601 result = 0;
AzureIoTClient 28:add19eb7defa 4602 }
AzureIoTClient 28:add19eb7defa 4603
AzureIoTClient 28:add19eb7defa 4604 amqpvalue_destroy(target_amqp_value);
AzureIoTClient 28:add19eb7defa 4605 }
AzureIoTClient 28:add19eb7defa 4606 }
AzureIoTClient 28:add19eb7defa 4607
AzureIoTClient 28:add19eb7defa 4608 return result;
Azure.IoT Build 0:6ae2f7bca550 4609 }
Azure.IoT Build 0:6ae2f7bca550 4610
Azure.IoT Build 0:6ae2f7bca550 4611 int attach_get_unsettled(ATTACH_HANDLE attach, AMQP_VALUE* unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4612 {
AzureIoTClient 28:add19eb7defa 4613 int result;
AzureIoTClient 28:add19eb7defa 4614
AzureIoTClient 28:add19eb7defa 4615 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4616 {
AzureIoTClient 28:add19eb7defa 4617 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4618 }
AzureIoTClient 28:add19eb7defa 4619 else
AzureIoTClient 28:add19eb7defa 4620 {
AzureIoTClient 28:add19eb7defa 4621 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4622 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4623 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4624 {
AzureIoTClient 23:1111ee8bcba4 4625 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4626 }
AzureIoTClient 23:1111ee8bcba4 4627 else
AzureIoTClient 23:1111ee8bcba4 4628 {
AzureIoTClient 23:1111ee8bcba4 4629 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 4630 {
AzureIoTClient 28:add19eb7defa 4631 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4632 }
AzureIoTClient 28:add19eb7defa 4633 else
AzureIoTClient 28:add19eb7defa 4634 {
AzureIoTClient 28:add19eb7defa 4635 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 4636 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4637 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4638 {
AzureIoTClient 28:add19eb7defa 4639 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4640 }
AzureIoTClient 28:add19eb7defa 4641 else
AzureIoTClient 28:add19eb7defa 4642 {
AzureIoTClient 28:add19eb7defa 4643 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4644 if ((get_single_value_result = amqpvalue_get_map(item_value, unsettled_value)) != 0)
AzureIoTClient 28:add19eb7defa 4645 {
AzureIoTClient 28:add19eb7defa 4646 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4647 }
AzureIoTClient 28:add19eb7defa 4648 else
AzureIoTClient 28:add19eb7defa 4649 {
AzureIoTClient 28:add19eb7defa 4650 result = 0;
AzureIoTClient 28:add19eb7defa 4651 }
AzureIoTClient 28:add19eb7defa 4652 }
AzureIoTClient 28:add19eb7defa 4653 }
AzureIoTClient 28:add19eb7defa 4654 }
AzureIoTClient 28:add19eb7defa 4655 }
AzureIoTClient 28:add19eb7defa 4656
AzureIoTClient 28:add19eb7defa 4657 return result;
Azure.IoT Build 0:6ae2f7bca550 4658 }
Azure.IoT Build 0:6ae2f7bca550 4659
Azure.IoT Build 0:6ae2f7bca550 4660 int attach_set_unsettled(ATTACH_HANDLE attach, AMQP_VALUE unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4661 {
AzureIoTClient 28:add19eb7defa 4662 int result;
AzureIoTClient 28:add19eb7defa 4663
AzureIoTClient 28:add19eb7defa 4664 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4665 {
AzureIoTClient 28:add19eb7defa 4666 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4667 }
AzureIoTClient 28:add19eb7defa 4668 else
AzureIoTClient 28:add19eb7defa 4669 {
AzureIoTClient 28:add19eb7defa 4670 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4671 AMQP_VALUE unsettled_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4672 if (unsettled_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4673 {
AzureIoTClient 23:1111ee8bcba4 4674 unsettled_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4675 }
AzureIoTClient 23:1111ee8bcba4 4676 else
AzureIoTClient 23:1111ee8bcba4 4677 {
AzureIoTClient 23:1111ee8bcba4 4678 unsettled_amqp_value = amqpvalue_clone(unsettled_value);
AzureIoTClient 23:1111ee8bcba4 4679 }
AzureIoTClient 28:add19eb7defa 4680 if (unsettled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4681 {
AzureIoTClient 28:add19eb7defa 4682 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4683 }
AzureIoTClient 28:add19eb7defa 4684 else
AzureIoTClient 28:add19eb7defa 4685 {
AzureIoTClient 28:add19eb7defa 4686 if (amqpvalue_set_composite_item(attach_instance->composite_value, 7, unsettled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4687 {
AzureIoTClient 28:add19eb7defa 4688 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4689 }
AzureIoTClient 28:add19eb7defa 4690 else
AzureIoTClient 28:add19eb7defa 4691 {
AzureIoTClient 28:add19eb7defa 4692 result = 0;
AzureIoTClient 28:add19eb7defa 4693 }
AzureIoTClient 28:add19eb7defa 4694
AzureIoTClient 28:add19eb7defa 4695 amqpvalue_destroy(unsettled_amqp_value);
AzureIoTClient 28:add19eb7defa 4696 }
AzureIoTClient 28:add19eb7defa 4697 }
AzureIoTClient 28:add19eb7defa 4698
AzureIoTClient 28:add19eb7defa 4699 return result;
Azure.IoT Build 0:6ae2f7bca550 4700 }
Azure.IoT Build 0:6ae2f7bca550 4701
Azure.IoT Build 0:6ae2f7bca550 4702 int attach_get_incomplete_unsettled(ATTACH_HANDLE attach, bool* incomplete_unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4703 {
AzureIoTClient 28:add19eb7defa 4704 int result;
AzureIoTClient 28:add19eb7defa 4705
AzureIoTClient 28:add19eb7defa 4706 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4707 {
AzureIoTClient 28:add19eb7defa 4708 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4709 }
AzureIoTClient 28:add19eb7defa 4710 else
AzureIoTClient 28:add19eb7defa 4711 {
AzureIoTClient 28:add19eb7defa 4712 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4713 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4714 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4715 {
AzureIoTClient 23:1111ee8bcba4 4716 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4717 }
AzureIoTClient 23:1111ee8bcba4 4718 else
AzureIoTClient 23:1111ee8bcba4 4719 {
AzureIoTClient 23:1111ee8bcba4 4720 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 4721 {
AzureIoTClient 28:add19eb7defa 4722 *incomplete_unsettled_value = false;
AzureIoTClient 28:add19eb7defa 4723 result = 0;
AzureIoTClient 28:add19eb7defa 4724 }
AzureIoTClient 28:add19eb7defa 4725 else
AzureIoTClient 28:add19eb7defa 4726 {
AzureIoTClient 28:add19eb7defa 4727 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 4728 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4729 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4730 {
AzureIoTClient 28:add19eb7defa 4731 *incomplete_unsettled_value = false;
AzureIoTClient 28:add19eb7defa 4732 result = 0;
AzureIoTClient 28:add19eb7defa 4733 }
AzureIoTClient 28:add19eb7defa 4734 else
AzureIoTClient 28:add19eb7defa 4735 {
AzureIoTClient 28:add19eb7defa 4736 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4737 if ((get_single_value_result = amqpvalue_get_boolean(item_value, incomplete_unsettled_value)) != 0)
AzureIoTClient 28:add19eb7defa 4738 {
AzureIoTClient 23:1111ee8bcba4 4739 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4740 {
AzureIoTClient 28:add19eb7defa 4741 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4742 }
AzureIoTClient 28:add19eb7defa 4743 else
AzureIoTClient 28:add19eb7defa 4744 {
AzureIoTClient 28:add19eb7defa 4745 *incomplete_unsettled_value = false;
AzureIoTClient 23:1111ee8bcba4 4746 result = 0;
AzureIoTClient 23:1111ee8bcba4 4747 }
AzureIoTClient 28:add19eb7defa 4748 }
AzureIoTClient 28:add19eb7defa 4749 else
AzureIoTClient 28:add19eb7defa 4750 {
AzureIoTClient 28:add19eb7defa 4751 result = 0;
AzureIoTClient 28:add19eb7defa 4752 }
AzureIoTClient 28:add19eb7defa 4753 }
AzureIoTClient 28:add19eb7defa 4754 }
AzureIoTClient 28:add19eb7defa 4755 }
AzureIoTClient 28:add19eb7defa 4756 }
AzureIoTClient 28:add19eb7defa 4757
AzureIoTClient 28:add19eb7defa 4758 return result;
Azure.IoT Build 0:6ae2f7bca550 4759 }
Azure.IoT Build 0:6ae2f7bca550 4760
Azure.IoT Build 0:6ae2f7bca550 4761 int attach_set_incomplete_unsettled(ATTACH_HANDLE attach, bool incomplete_unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4762 {
AzureIoTClient 28:add19eb7defa 4763 int result;
AzureIoTClient 28:add19eb7defa 4764
AzureIoTClient 28:add19eb7defa 4765 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4766 {
AzureIoTClient 28:add19eb7defa 4767 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4768 }
AzureIoTClient 28:add19eb7defa 4769 else
AzureIoTClient 28:add19eb7defa 4770 {
AzureIoTClient 28:add19eb7defa 4771 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4772 AMQP_VALUE incomplete_unsettled_amqp_value = amqpvalue_create_boolean(incomplete_unsettled_value);
AzureIoTClient 28:add19eb7defa 4773 if (incomplete_unsettled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4774 {
AzureIoTClient 28:add19eb7defa 4775 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4776 }
AzureIoTClient 28:add19eb7defa 4777 else
AzureIoTClient 28:add19eb7defa 4778 {
AzureIoTClient 28:add19eb7defa 4779 if (amqpvalue_set_composite_item(attach_instance->composite_value, 8, incomplete_unsettled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4780 {
AzureIoTClient 28:add19eb7defa 4781 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4782 }
AzureIoTClient 28:add19eb7defa 4783 else
AzureIoTClient 28:add19eb7defa 4784 {
AzureIoTClient 28:add19eb7defa 4785 result = 0;
AzureIoTClient 28:add19eb7defa 4786 }
AzureIoTClient 28:add19eb7defa 4787
AzureIoTClient 28:add19eb7defa 4788 amqpvalue_destroy(incomplete_unsettled_amqp_value);
AzureIoTClient 28:add19eb7defa 4789 }
AzureIoTClient 28:add19eb7defa 4790 }
AzureIoTClient 28:add19eb7defa 4791
AzureIoTClient 28:add19eb7defa 4792 return result;
Azure.IoT Build 0:6ae2f7bca550 4793 }
Azure.IoT Build 0:6ae2f7bca550 4794
Azure.IoT Build 0:6ae2f7bca550 4795 int attach_get_initial_delivery_count(ATTACH_HANDLE attach, sequence_no* initial_delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 4796 {
AzureIoTClient 28:add19eb7defa 4797 int result;
AzureIoTClient 28:add19eb7defa 4798
AzureIoTClient 28:add19eb7defa 4799 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4800 {
AzureIoTClient 28:add19eb7defa 4801 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4802 }
AzureIoTClient 28:add19eb7defa 4803 else
AzureIoTClient 28:add19eb7defa 4804 {
AzureIoTClient 28:add19eb7defa 4805 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4806 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4807 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4808 {
AzureIoTClient 23:1111ee8bcba4 4809 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4810 }
AzureIoTClient 23:1111ee8bcba4 4811 else
AzureIoTClient 23:1111ee8bcba4 4812 {
AzureIoTClient 23:1111ee8bcba4 4813 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 4814 {
AzureIoTClient 28:add19eb7defa 4815 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4816 }
AzureIoTClient 28:add19eb7defa 4817 else
AzureIoTClient 28:add19eb7defa 4818 {
AzureIoTClient 28:add19eb7defa 4819 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 4820 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4821 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4822 {
AzureIoTClient 28:add19eb7defa 4823 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4824 }
AzureIoTClient 28:add19eb7defa 4825 else
AzureIoTClient 28:add19eb7defa 4826 {
AzureIoTClient 28:add19eb7defa 4827 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4828 if ((get_single_value_result = amqpvalue_get_sequence_no(item_value, initial_delivery_count_value)) != 0)
AzureIoTClient 28:add19eb7defa 4829 {
AzureIoTClient 28:add19eb7defa 4830 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4831 }
AzureIoTClient 28:add19eb7defa 4832 else
AzureIoTClient 28:add19eb7defa 4833 {
AzureIoTClient 28:add19eb7defa 4834 result = 0;
AzureIoTClient 28:add19eb7defa 4835 }
AzureIoTClient 28:add19eb7defa 4836 }
AzureIoTClient 28:add19eb7defa 4837 }
AzureIoTClient 28:add19eb7defa 4838 }
AzureIoTClient 28:add19eb7defa 4839 }
AzureIoTClient 28:add19eb7defa 4840
AzureIoTClient 28:add19eb7defa 4841 return result;
Azure.IoT Build 0:6ae2f7bca550 4842 }
Azure.IoT Build 0:6ae2f7bca550 4843
Azure.IoT Build 0:6ae2f7bca550 4844 int attach_set_initial_delivery_count(ATTACH_HANDLE attach, sequence_no initial_delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 4845 {
AzureIoTClient 28:add19eb7defa 4846 int result;
AzureIoTClient 28:add19eb7defa 4847
AzureIoTClient 28:add19eb7defa 4848 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4849 {
AzureIoTClient 28:add19eb7defa 4850 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4851 }
AzureIoTClient 28:add19eb7defa 4852 else
AzureIoTClient 28:add19eb7defa 4853 {
AzureIoTClient 28:add19eb7defa 4854 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4855 AMQP_VALUE initial_delivery_count_amqp_value = amqpvalue_create_sequence_no(initial_delivery_count_value);
AzureIoTClient 28:add19eb7defa 4856 if (initial_delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4857 {
AzureIoTClient 28:add19eb7defa 4858 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4859 }
AzureIoTClient 28:add19eb7defa 4860 else
AzureIoTClient 28:add19eb7defa 4861 {
AzureIoTClient 28:add19eb7defa 4862 if (amqpvalue_set_composite_item(attach_instance->composite_value, 9, initial_delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4863 {
AzureIoTClient 28:add19eb7defa 4864 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4865 }
AzureIoTClient 28:add19eb7defa 4866 else
AzureIoTClient 28:add19eb7defa 4867 {
AzureIoTClient 28:add19eb7defa 4868 result = 0;
AzureIoTClient 28:add19eb7defa 4869 }
AzureIoTClient 28:add19eb7defa 4870
AzureIoTClient 28:add19eb7defa 4871 amqpvalue_destroy(initial_delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 4872 }
AzureIoTClient 28:add19eb7defa 4873 }
AzureIoTClient 28:add19eb7defa 4874
AzureIoTClient 28:add19eb7defa 4875 return result;
Azure.IoT Build 0:6ae2f7bca550 4876 }
Azure.IoT Build 0:6ae2f7bca550 4877
Azure.IoT Build 0:6ae2f7bca550 4878 int attach_get_max_message_size(ATTACH_HANDLE attach, uint64_t* max_message_size_value)
Azure.IoT Build 0:6ae2f7bca550 4879 {
AzureIoTClient 28:add19eb7defa 4880 int result;
AzureIoTClient 28:add19eb7defa 4881
AzureIoTClient 28:add19eb7defa 4882 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4883 {
AzureIoTClient 28:add19eb7defa 4884 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4885 }
AzureIoTClient 28:add19eb7defa 4886 else
AzureIoTClient 28:add19eb7defa 4887 {
AzureIoTClient 28:add19eb7defa 4888 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4889 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4890 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4891 {
AzureIoTClient 23:1111ee8bcba4 4892 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4893 }
AzureIoTClient 23:1111ee8bcba4 4894 else
AzureIoTClient 23:1111ee8bcba4 4895 {
AzureIoTClient 23:1111ee8bcba4 4896 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 4897 {
AzureIoTClient 28:add19eb7defa 4898 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4899 }
AzureIoTClient 28:add19eb7defa 4900 else
AzureIoTClient 28:add19eb7defa 4901 {
AzureIoTClient 28:add19eb7defa 4902 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 4903 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4904 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4905 {
AzureIoTClient 28:add19eb7defa 4906 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4907 }
AzureIoTClient 28:add19eb7defa 4908 else
AzureIoTClient 28:add19eb7defa 4909 {
AzureIoTClient 28:add19eb7defa 4910 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4911 if ((get_single_value_result = amqpvalue_get_ulong(item_value, max_message_size_value)) != 0)
AzureIoTClient 28:add19eb7defa 4912 {
AzureIoTClient 28:add19eb7defa 4913 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4914 }
AzureIoTClient 28:add19eb7defa 4915 else
AzureIoTClient 28:add19eb7defa 4916 {
AzureIoTClient 28:add19eb7defa 4917 result = 0;
AzureIoTClient 28:add19eb7defa 4918 }
AzureIoTClient 28:add19eb7defa 4919 }
AzureIoTClient 28:add19eb7defa 4920 }
AzureIoTClient 28:add19eb7defa 4921 }
AzureIoTClient 28:add19eb7defa 4922 }
AzureIoTClient 28:add19eb7defa 4923
AzureIoTClient 28:add19eb7defa 4924 return result;
Azure.IoT Build 0:6ae2f7bca550 4925 }
Azure.IoT Build 0:6ae2f7bca550 4926
Azure.IoT Build 0:6ae2f7bca550 4927 int attach_set_max_message_size(ATTACH_HANDLE attach, uint64_t max_message_size_value)
Azure.IoT Build 0:6ae2f7bca550 4928 {
AzureIoTClient 28:add19eb7defa 4929 int result;
AzureIoTClient 28:add19eb7defa 4930
AzureIoTClient 28:add19eb7defa 4931 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4932 {
AzureIoTClient 28:add19eb7defa 4933 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4934 }
AzureIoTClient 28:add19eb7defa 4935 else
AzureIoTClient 28:add19eb7defa 4936 {
AzureIoTClient 28:add19eb7defa 4937 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4938 AMQP_VALUE max_message_size_amqp_value = amqpvalue_create_ulong(max_message_size_value);
AzureIoTClient 28:add19eb7defa 4939 if (max_message_size_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4940 {
AzureIoTClient 28:add19eb7defa 4941 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4942 }
AzureIoTClient 28:add19eb7defa 4943 else
AzureIoTClient 28:add19eb7defa 4944 {
AzureIoTClient 28:add19eb7defa 4945 if (amqpvalue_set_composite_item(attach_instance->composite_value, 10, max_message_size_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4946 {
AzureIoTClient 28:add19eb7defa 4947 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4948 }
AzureIoTClient 28:add19eb7defa 4949 else
AzureIoTClient 28:add19eb7defa 4950 {
AzureIoTClient 28:add19eb7defa 4951 result = 0;
AzureIoTClient 28:add19eb7defa 4952 }
AzureIoTClient 28:add19eb7defa 4953
AzureIoTClient 28:add19eb7defa 4954 amqpvalue_destroy(max_message_size_amqp_value);
AzureIoTClient 28:add19eb7defa 4955 }
AzureIoTClient 28:add19eb7defa 4956 }
AzureIoTClient 28:add19eb7defa 4957
AzureIoTClient 28:add19eb7defa 4958 return result;
Azure.IoT Build 0:6ae2f7bca550 4959 }
Azure.IoT Build 0:6ae2f7bca550 4960
Azure.IoT Build 0:6ae2f7bca550 4961 int attach_get_offered_capabilities(ATTACH_HANDLE attach, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 4962 {
AzureIoTClient 28:add19eb7defa 4963 int result;
AzureIoTClient 28:add19eb7defa 4964
AzureIoTClient 28:add19eb7defa 4965 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4966 {
AzureIoTClient 28:add19eb7defa 4967 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4968 }
AzureIoTClient 28:add19eb7defa 4969 else
AzureIoTClient 28:add19eb7defa 4970 {
AzureIoTClient 28:add19eb7defa 4971 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4972 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4973 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4974 {
AzureIoTClient 23:1111ee8bcba4 4975 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4976 }
AzureIoTClient 23:1111ee8bcba4 4977 else
AzureIoTClient 23:1111ee8bcba4 4978 {
AzureIoTClient 23:1111ee8bcba4 4979 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 4980 {
AzureIoTClient 28:add19eb7defa 4981 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4982 }
AzureIoTClient 28:add19eb7defa 4983 else
AzureIoTClient 28:add19eb7defa 4984 {
AzureIoTClient 28:add19eb7defa 4985 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 11);
AzureIoTClient 28:add19eb7defa 4986 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4987 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4988 {
AzureIoTClient 28:add19eb7defa 4989 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4990 }
AzureIoTClient 28:add19eb7defa 4991 else
AzureIoTClient 28:add19eb7defa 4992 {
AzureIoTClient 28:add19eb7defa 4993 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 4994 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4995 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 4996 {
AzureIoTClient 28:add19eb7defa 4997 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 4998 }
AzureIoTClient 28:add19eb7defa 4999 else
AzureIoTClient 28:add19eb7defa 5000 {
AzureIoTClient 28:add19eb7defa 5001 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 5002 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 5003 }
AzureIoTClient 28:add19eb7defa 5004
AzureIoTClient 28:add19eb7defa 5005 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 5006 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 5007 {
AzureIoTClient 28:add19eb7defa 5008 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5009 }
AzureIoTClient 28:add19eb7defa 5010 else
AzureIoTClient 28:add19eb7defa 5011 {
AzureIoTClient 28:add19eb7defa 5012 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 5013 {
AzureIoTClient 28:add19eb7defa 5014 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 5015 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 5016 {
AzureIoTClient 28:add19eb7defa 5017 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5018 }
AzureIoTClient 28:add19eb7defa 5019 else
AzureIoTClient 28:add19eb7defa 5020 {
AzureIoTClient 28:add19eb7defa 5021 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5022 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5023 {
AzureIoTClient 28:add19eb7defa 5024 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 5025 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5026 }
AzureIoTClient 28:add19eb7defa 5027 else
AzureIoTClient 28:add19eb7defa 5028 {
AzureIoTClient 28:add19eb7defa 5029 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5030 {
AzureIoTClient 28:add19eb7defa 5031 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 5032 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 5033 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5034 }
AzureIoTClient 28:add19eb7defa 5035 else
AzureIoTClient 28:add19eb7defa 5036 {
AzureIoTClient 29:4a11413cf217 5037 if (amqpvalue_set_composite_item(attach_instance->composite_value, 11, *offered_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 5038 {
AzureIoTClient 29:4a11413cf217 5039 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 29:4a11413cf217 5040 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 5041 }
AzureIoTClient 29:4a11413cf217 5042 else
AzureIoTClient 29:4a11413cf217 5043 {
AzureIoTClient 29:4a11413cf217 5044 result = 0;
AzureIoTClient 29:4a11413cf217 5045 }
AzureIoTClient 28:add19eb7defa 5046 }
AzureIoTClient 29:4a11413cf217 5047
AzureIoTClient 29:4a11413cf217 5048 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 5049 }
AzureIoTClient 29:4a11413cf217 5050 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 5051 }
AzureIoTClient 28:add19eb7defa 5052 }
AzureIoTClient 28:add19eb7defa 5053 else
AzureIoTClient 28:add19eb7defa 5054 {
AzureIoTClient 28:add19eb7defa 5055 result = 0;
AzureIoTClient 28:add19eb7defa 5056 }
AzureIoTClient 28:add19eb7defa 5057 }
AzureIoTClient 28:add19eb7defa 5058 }
AzureIoTClient 28:add19eb7defa 5059 }
AzureIoTClient 28:add19eb7defa 5060 }
AzureIoTClient 28:add19eb7defa 5061 }
AzureIoTClient 28:add19eb7defa 5062
AzureIoTClient 28:add19eb7defa 5063 return result;
Azure.IoT Build 0:6ae2f7bca550 5064 }
Azure.IoT Build 0:6ae2f7bca550 5065
Azure.IoT Build 0:6ae2f7bca550 5066 int attach_set_offered_capabilities(ATTACH_HANDLE attach, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 5067 {
AzureIoTClient 28:add19eb7defa 5068 int result;
AzureIoTClient 28:add19eb7defa 5069
AzureIoTClient 28:add19eb7defa 5070 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5071 {
AzureIoTClient 28:add19eb7defa 5072 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5073 }
AzureIoTClient 28:add19eb7defa 5074 else
AzureIoTClient 28:add19eb7defa 5075 {
AzureIoTClient 28:add19eb7defa 5076 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5077 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 5078 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5079 {
AzureIoTClient 23:1111ee8bcba4 5080 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 5081 }
AzureIoTClient 23:1111ee8bcba4 5082 else
AzureIoTClient 23:1111ee8bcba4 5083 {
AzureIoTClient 23:1111ee8bcba4 5084 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 5085 }
AzureIoTClient 28:add19eb7defa 5086 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5087 {
AzureIoTClient 28:add19eb7defa 5088 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5089 }
AzureIoTClient 28:add19eb7defa 5090 else
AzureIoTClient 28:add19eb7defa 5091 {
AzureIoTClient 28:add19eb7defa 5092 if (amqpvalue_set_composite_item(attach_instance->composite_value, 11, offered_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5093 {
AzureIoTClient 28:add19eb7defa 5094 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5095 }
AzureIoTClient 28:add19eb7defa 5096 else
AzureIoTClient 28:add19eb7defa 5097 {
AzureIoTClient 28:add19eb7defa 5098 result = 0;
AzureIoTClient 28:add19eb7defa 5099 }
AzureIoTClient 28:add19eb7defa 5100
AzureIoTClient 28:add19eb7defa 5101 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 5102 }
AzureIoTClient 28:add19eb7defa 5103 }
AzureIoTClient 28:add19eb7defa 5104
AzureIoTClient 28:add19eb7defa 5105 return result;
Azure.IoT Build 0:6ae2f7bca550 5106 }
Azure.IoT Build 0:6ae2f7bca550 5107
Azure.IoT Build 0:6ae2f7bca550 5108 int attach_get_desired_capabilities(ATTACH_HANDLE attach, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 5109 {
AzureIoTClient 28:add19eb7defa 5110 int result;
AzureIoTClient 28:add19eb7defa 5111
AzureIoTClient 28:add19eb7defa 5112 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5113 {
AzureIoTClient 28:add19eb7defa 5114 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5115 }
AzureIoTClient 28:add19eb7defa 5116 else
AzureIoTClient 28:add19eb7defa 5117 {
AzureIoTClient 28:add19eb7defa 5118 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5119 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 5120 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5121 {
AzureIoTClient 23:1111ee8bcba4 5122 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5123 }
AzureIoTClient 23:1111ee8bcba4 5124 else
AzureIoTClient 23:1111ee8bcba4 5125 {
AzureIoTClient 23:1111ee8bcba4 5126 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 5127 {
AzureIoTClient 28:add19eb7defa 5128 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5129 }
AzureIoTClient 28:add19eb7defa 5130 else
AzureIoTClient 28:add19eb7defa 5131 {
AzureIoTClient 28:add19eb7defa 5132 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 12);
AzureIoTClient 28:add19eb7defa 5133 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5134 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5135 {
AzureIoTClient 28:add19eb7defa 5136 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5137 }
AzureIoTClient 28:add19eb7defa 5138 else
AzureIoTClient 28:add19eb7defa 5139 {
AzureIoTClient 28:add19eb7defa 5140 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 5141 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5142 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 5143 {
AzureIoTClient 28:add19eb7defa 5144 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5145 }
AzureIoTClient 28:add19eb7defa 5146 else
AzureIoTClient 28:add19eb7defa 5147 {
AzureIoTClient 28:add19eb7defa 5148 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 5149 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 5150 }
AzureIoTClient 28:add19eb7defa 5151
AzureIoTClient 28:add19eb7defa 5152 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 5153 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 5154 {
AzureIoTClient 28:add19eb7defa 5155 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5156 }
AzureIoTClient 28:add19eb7defa 5157 else
AzureIoTClient 28:add19eb7defa 5158 {
AzureIoTClient 28:add19eb7defa 5159 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 5160 {
AzureIoTClient 28:add19eb7defa 5161 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 5162 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 5163 {
AzureIoTClient 28:add19eb7defa 5164 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5165 }
AzureIoTClient 28:add19eb7defa 5166 else
AzureIoTClient 28:add19eb7defa 5167 {
AzureIoTClient 28:add19eb7defa 5168 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5169 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5170 {
AzureIoTClient 28:add19eb7defa 5171 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 5172 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5173 }
AzureIoTClient 28:add19eb7defa 5174 else
AzureIoTClient 28:add19eb7defa 5175 {
AzureIoTClient 28:add19eb7defa 5176 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5177 {
AzureIoTClient 28:add19eb7defa 5178 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 5179 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 5180 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5181 }
AzureIoTClient 28:add19eb7defa 5182 else
AzureIoTClient 28:add19eb7defa 5183 {
AzureIoTClient 29:4a11413cf217 5184 if (amqpvalue_set_composite_item(attach_instance->composite_value, 12, *desired_capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 5185 {
AzureIoTClient 29:4a11413cf217 5186 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 29:4a11413cf217 5187 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 5188 }
AzureIoTClient 29:4a11413cf217 5189 else
AzureIoTClient 29:4a11413cf217 5190 {
AzureIoTClient 29:4a11413cf217 5191 result = 0;
AzureIoTClient 29:4a11413cf217 5192 }
AzureIoTClient 28:add19eb7defa 5193 }
AzureIoTClient 29:4a11413cf217 5194
AzureIoTClient 29:4a11413cf217 5195 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 5196 }
AzureIoTClient 29:4a11413cf217 5197 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 5198 }
AzureIoTClient 28:add19eb7defa 5199 }
AzureIoTClient 28:add19eb7defa 5200 else
AzureIoTClient 28:add19eb7defa 5201 {
AzureIoTClient 28:add19eb7defa 5202 result = 0;
AzureIoTClient 28:add19eb7defa 5203 }
AzureIoTClient 28:add19eb7defa 5204 }
AzureIoTClient 28:add19eb7defa 5205 }
AzureIoTClient 28:add19eb7defa 5206 }
AzureIoTClient 28:add19eb7defa 5207 }
AzureIoTClient 28:add19eb7defa 5208 }
AzureIoTClient 28:add19eb7defa 5209
AzureIoTClient 28:add19eb7defa 5210 return result;
Azure.IoT Build 0:6ae2f7bca550 5211 }
Azure.IoT Build 0:6ae2f7bca550 5212
Azure.IoT Build 0:6ae2f7bca550 5213 int attach_set_desired_capabilities(ATTACH_HANDLE attach, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 5214 {
AzureIoTClient 28:add19eb7defa 5215 int result;
AzureIoTClient 28:add19eb7defa 5216
AzureIoTClient 28:add19eb7defa 5217 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5218 {
AzureIoTClient 28:add19eb7defa 5219 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5220 }
AzureIoTClient 28:add19eb7defa 5221 else
AzureIoTClient 28:add19eb7defa 5222 {
AzureIoTClient 28:add19eb7defa 5223 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5224 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 5225 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5226 {
AzureIoTClient 23:1111ee8bcba4 5227 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 5228 }
AzureIoTClient 23:1111ee8bcba4 5229 else
AzureIoTClient 23:1111ee8bcba4 5230 {
AzureIoTClient 23:1111ee8bcba4 5231 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 5232 }
AzureIoTClient 28:add19eb7defa 5233 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5234 {
AzureIoTClient 28:add19eb7defa 5235 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5236 }
AzureIoTClient 28:add19eb7defa 5237 else
AzureIoTClient 28:add19eb7defa 5238 {
AzureIoTClient 28:add19eb7defa 5239 if (amqpvalue_set_composite_item(attach_instance->composite_value, 12, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5240 {
AzureIoTClient 28:add19eb7defa 5241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5242 }
AzureIoTClient 28:add19eb7defa 5243 else
AzureIoTClient 28:add19eb7defa 5244 {
AzureIoTClient 28:add19eb7defa 5245 result = 0;
AzureIoTClient 28:add19eb7defa 5246 }
AzureIoTClient 28:add19eb7defa 5247
AzureIoTClient 28:add19eb7defa 5248 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 5249 }
AzureIoTClient 28:add19eb7defa 5250 }
AzureIoTClient 28:add19eb7defa 5251
AzureIoTClient 28:add19eb7defa 5252 return result;
Azure.IoT Build 0:6ae2f7bca550 5253 }
Azure.IoT Build 0:6ae2f7bca550 5254
Azure.IoT Build 0:6ae2f7bca550 5255 int attach_get_properties(ATTACH_HANDLE attach, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 5256 {
AzureIoTClient 28:add19eb7defa 5257 int result;
AzureIoTClient 28:add19eb7defa 5258
AzureIoTClient 28:add19eb7defa 5259 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5260 {
AzureIoTClient 28:add19eb7defa 5261 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5262 }
AzureIoTClient 28:add19eb7defa 5263 else
AzureIoTClient 28:add19eb7defa 5264 {
AzureIoTClient 28:add19eb7defa 5265 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5266 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 5267 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5268 {
AzureIoTClient 23:1111ee8bcba4 5269 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5270 }
AzureIoTClient 23:1111ee8bcba4 5271 else
AzureIoTClient 23:1111ee8bcba4 5272 {
AzureIoTClient 23:1111ee8bcba4 5273 if (item_count <= 13)
AzureIoTClient 23:1111ee8bcba4 5274 {
AzureIoTClient 28:add19eb7defa 5275 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5276 }
AzureIoTClient 28:add19eb7defa 5277 else
AzureIoTClient 28:add19eb7defa 5278 {
AzureIoTClient 28:add19eb7defa 5279 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 13);
AzureIoTClient 28:add19eb7defa 5280 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5281 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5282 {
AzureIoTClient 28:add19eb7defa 5283 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5284 }
AzureIoTClient 28:add19eb7defa 5285 else
AzureIoTClient 28:add19eb7defa 5286 {
AzureIoTClient 28:add19eb7defa 5287 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5288 if ((get_single_value_result = amqpvalue_get_fields(item_value, properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 5289 {
AzureIoTClient 28:add19eb7defa 5290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5291 }
AzureIoTClient 28:add19eb7defa 5292 else
AzureIoTClient 28:add19eb7defa 5293 {
AzureIoTClient 28:add19eb7defa 5294 result = 0;
AzureIoTClient 28:add19eb7defa 5295 }
AzureIoTClient 28:add19eb7defa 5296 }
AzureIoTClient 28:add19eb7defa 5297 }
AzureIoTClient 28:add19eb7defa 5298 }
AzureIoTClient 28:add19eb7defa 5299 }
AzureIoTClient 28:add19eb7defa 5300
AzureIoTClient 28:add19eb7defa 5301 return result;
Azure.IoT Build 0:6ae2f7bca550 5302 }
Azure.IoT Build 0:6ae2f7bca550 5303
Azure.IoT Build 0:6ae2f7bca550 5304 int attach_set_properties(ATTACH_HANDLE attach, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 5305 {
AzureIoTClient 28:add19eb7defa 5306 int result;
AzureIoTClient 28:add19eb7defa 5307
AzureIoTClient 28:add19eb7defa 5308 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5309 {
AzureIoTClient 28:add19eb7defa 5310 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5311 }
AzureIoTClient 28:add19eb7defa 5312 else
AzureIoTClient 28:add19eb7defa 5313 {
AzureIoTClient 28:add19eb7defa 5314 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5315 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 5316 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5317 {
AzureIoTClient 28:add19eb7defa 5318 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5319 }
AzureIoTClient 28:add19eb7defa 5320 else
AzureIoTClient 28:add19eb7defa 5321 {
AzureIoTClient 28:add19eb7defa 5322 if (amqpvalue_set_composite_item(attach_instance->composite_value, 13, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5323 {
AzureIoTClient 28:add19eb7defa 5324 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5325 }
AzureIoTClient 28:add19eb7defa 5326 else
AzureIoTClient 28:add19eb7defa 5327 {
AzureIoTClient 28:add19eb7defa 5328 result = 0;
AzureIoTClient 28:add19eb7defa 5329 }
AzureIoTClient 28:add19eb7defa 5330
AzureIoTClient 28:add19eb7defa 5331 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 5332 }
AzureIoTClient 28:add19eb7defa 5333 }
AzureIoTClient 28:add19eb7defa 5334
AzureIoTClient 28:add19eb7defa 5335 return result;
Azure.IoT Build 0:6ae2f7bca550 5336 }
Azure.IoT Build 0:6ae2f7bca550 5337
Azure.IoT Build 0:6ae2f7bca550 5338
Azure.IoT Build 0:6ae2f7bca550 5339 /* flow */
Azure.IoT Build 0:6ae2f7bca550 5340
Azure.IoT Build 0:6ae2f7bca550 5341 typedef struct FLOW_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 5342 {
AzureIoTClient 28:add19eb7defa 5343 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 5344 } FLOW_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 5345
Azure.IoT Build 0:6ae2f7bca550 5346 static FLOW_HANDLE flow_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 5347 {
AzureIoTClient 28:add19eb7defa 5348 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5349 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5350 {
AzureIoTClient 28:add19eb7defa 5351 flow_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 5352 }
AzureIoTClient 28:add19eb7defa 5353
AzureIoTClient 28:add19eb7defa 5354 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5355 }
Azure.IoT Build 0:6ae2f7bca550 5356
Azure.IoT Build 0:6ae2f7bca550 5357 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 5358 {
AzureIoTClient 28:add19eb7defa 5359 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5360 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5361 {
AzureIoTClient 28:add19eb7defa 5362 flow_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(19);
AzureIoTClient 28:add19eb7defa 5363 if (flow_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 5364 {
AzureIoTClient 28:add19eb7defa 5365 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5366 flow_instance = NULL;
AzureIoTClient 28:add19eb7defa 5367 }
AzureIoTClient 28:add19eb7defa 5368 else
AzureIoTClient 28:add19eb7defa 5369 {
AzureIoTClient 28:add19eb7defa 5370 AMQP_VALUE incoming_window_amqp_value;
AzureIoTClient 28:add19eb7defa 5371 AMQP_VALUE next_outgoing_id_amqp_value;
AzureIoTClient 28:add19eb7defa 5372 AMQP_VALUE outgoing_window_amqp_value;
AzureIoTClient 28:add19eb7defa 5373 int result = 0;
AzureIoTClient 28:add19eb7defa 5374
AzureIoTClient 28:add19eb7defa 5375 incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 5376 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 1, incoming_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5377 {
AzureIoTClient 28:add19eb7defa 5378 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5379 }
AzureIoTClient 28:add19eb7defa 5380 next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 5381 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 2, next_outgoing_id_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5382 {
AzureIoTClient 28:add19eb7defa 5383 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5384 }
AzureIoTClient 28:add19eb7defa 5385 outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 5386 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 3, outgoing_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5387 {
AzureIoTClient 28:add19eb7defa 5388 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5389 }
AzureIoTClient 28:add19eb7defa 5390
AzureIoTClient 28:add19eb7defa 5391 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 5392 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 5393 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 5394 }
AzureIoTClient 28:add19eb7defa 5395 }
AzureIoTClient 28:add19eb7defa 5396
AzureIoTClient 28:add19eb7defa 5397 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5398 }
Azure.IoT Build 0:6ae2f7bca550 5399
Azure.IoT Build 0:6ae2f7bca550 5400 FLOW_HANDLE flow_clone(FLOW_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 5401 {
AzureIoTClient 28:add19eb7defa 5402 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5403 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5404 {
AzureIoTClient 28:add19eb7defa 5405 flow_instance->composite_value = amqpvalue_clone(((FLOW_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 5406 if (flow_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 5407 {
AzureIoTClient 28:add19eb7defa 5408 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5409 flow_instance = NULL;
AzureIoTClient 28:add19eb7defa 5410 }
AzureIoTClient 28:add19eb7defa 5411 }
AzureIoTClient 28:add19eb7defa 5412
AzureIoTClient 28:add19eb7defa 5413 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5414 }
Azure.IoT Build 0:6ae2f7bca550 5415
Azure.IoT Build 0:6ae2f7bca550 5416 void flow_destroy(FLOW_HANDLE flow)
Azure.IoT Build 0:6ae2f7bca550 5417 {
AzureIoTClient 28:add19eb7defa 5418 if (flow != NULL)
AzureIoTClient 28:add19eb7defa 5419 {
AzureIoTClient 28:add19eb7defa 5420 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5421 amqpvalue_destroy(flow_instance->composite_value);
AzureIoTClient 28:add19eb7defa 5422 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5423 }
Azure.IoT Build 0:6ae2f7bca550 5424 }
Azure.IoT Build 0:6ae2f7bca550 5425
Azure.IoT Build 0:6ae2f7bca550 5426 AMQP_VALUE amqpvalue_create_flow(FLOW_HANDLE flow)
Azure.IoT Build 0:6ae2f7bca550 5427 {
AzureIoTClient 28:add19eb7defa 5428 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 5429
AzureIoTClient 28:add19eb7defa 5430 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5431 {
AzureIoTClient 28:add19eb7defa 5432 result = NULL;
AzureIoTClient 28:add19eb7defa 5433 }
AzureIoTClient 28:add19eb7defa 5434 else
AzureIoTClient 28:add19eb7defa 5435 {
AzureIoTClient 28:add19eb7defa 5436 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5437 result = amqpvalue_clone(flow_instance->composite_value);
AzureIoTClient 28:add19eb7defa 5438 }
AzureIoTClient 28:add19eb7defa 5439
AzureIoTClient 28:add19eb7defa 5440 return result;
Azure.IoT Build 0:6ae2f7bca550 5441 }
Azure.IoT Build 0:6ae2f7bca550 5442
Azure.IoT Build 0:6ae2f7bca550 5443 bool is_flow_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 5444 {
AzureIoTClient 28:add19eb7defa 5445 bool result;
AzureIoTClient 28:add19eb7defa 5446
AzureIoTClient 28:add19eb7defa 5447 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 5448 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 5449 (descriptor_ulong == 19))
AzureIoTClient 28:add19eb7defa 5450 {
AzureIoTClient 28:add19eb7defa 5451 result = true;
AzureIoTClient 28:add19eb7defa 5452 }
AzureIoTClient 28:add19eb7defa 5453 else
AzureIoTClient 28:add19eb7defa 5454 {
AzureIoTClient 28:add19eb7defa 5455 result = false;
AzureIoTClient 28:add19eb7defa 5456 }
AzureIoTClient 28:add19eb7defa 5457
AzureIoTClient 28:add19eb7defa 5458 return result;
Azure.IoT Build 0:6ae2f7bca550 5459 }
Azure.IoT Build 0:6ae2f7bca550 5460
Azure.IoT Build 0:6ae2f7bca550 5461
Azure.IoT Build 0:6ae2f7bca550 5462 int amqpvalue_get_flow(AMQP_VALUE value, FLOW_HANDLE* flow_handle)
Azure.IoT Build 0:6ae2f7bca550 5463 {
AzureIoTClient 28:add19eb7defa 5464 int result;
AzureIoTClient 28:add19eb7defa 5465 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow_create_internal();
AzureIoTClient 28:add19eb7defa 5466 *flow_handle = flow_instance;
AzureIoTClient 28:add19eb7defa 5467 if (*flow_handle == NULL)
AzureIoTClient 28:add19eb7defa 5468 {
AzureIoTClient 28:add19eb7defa 5469 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5470 }
AzureIoTClient 28:add19eb7defa 5471 else
AzureIoTClient 28:add19eb7defa 5472 {
AzureIoTClient 28:add19eb7defa 5473 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 5474 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 5475 {
AzureIoTClient 28:add19eb7defa 5476 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5477 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5478 }
AzureIoTClient 28:add19eb7defa 5479 else
AzureIoTClient 28:add19eb7defa 5480 {
AzureIoTClient 23:1111ee8bcba4 5481 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 5482 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5483 {
AzureIoTClient 23:1111ee8bcba4 5484 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5485 }
AzureIoTClient 23:1111ee8bcba4 5486 else
AzureIoTClient 23:1111ee8bcba4 5487 {
AzureIoTClient 28:add19eb7defa 5488 do
AzureIoTClient 28:add19eb7defa 5489 {
AzureIoTClient 28:add19eb7defa 5490 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 5491 /* next-incoming-id */
AzureIoTClient 28:add19eb7defa 5492 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 5493 {
AzureIoTClient 23:1111ee8bcba4 5494 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 5495 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5496 {
AzureIoTClient 28:add19eb7defa 5497 /* do nothing */
AzureIoTClient 28:add19eb7defa 5498 }
AzureIoTClient 28:add19eb7defa 5499 else
AzureIoTClient 28:add19eb7defa 5500 {
AzureIoTClient 28:add19eb7defa 5501 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5502 {
AzureIoTClient 28:add19eb7defa 5503 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5504 }
AzureIoTClient 28:add19eb7defa 5505 else
AzureIoTClient 28:add19eb7defa 5506 {
AzureIoTClient 28:add19eb7defa 5507 transfer_number next_incoming_id;
AzureIoTClient 28:add19eb7defa 5508 if (amqpvalue_get_transfer_number(item_value, &next_incoming_id) != 0)
AzureIoTClient 28:add19eb7defa 5509 {
AzureIoTClient 28:add19eb7defa 5510 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5511 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5512 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5513 break;
AzureIoTClient 28:add19eb7defa 5514 }
AzureIoTClient 28:add19eb7defa 5515 }
AzureIoTClient 28:add19eb7defa 5516
AzureIoTClient 28:add19eb7defa 5517 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5518 }
AzureIoTClient 28:add19eb7defa 5519 }
AzureIoTClient 28:add19eb7defa 5520 /* incoming-window */
AzureIoTClient 28:add19eb7defa 5521 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 5522 {
AzureIoTClient 23:1111ee8bcba4 5523 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 5524 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5525 {
AzureIoTClient 28:add19eb7defa 5526 {
AzureIoTClient 28:add19eb7defa 5527 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5528 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5529 break;
AzureIoTClient 28:add19eb7defa 5530 }
AzureIoTClient 28:add19eb7defa 5531 }
AzureIoTClient 28:add19eb7defa 5532 else
AzureIoTClient 28:add19eb7defa 5533 {
AzureIoTClient 28:add19eb7defa 5534 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5535 {
AzureIoTClient 28:add19eb7defa 5536 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5537 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5538 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5539 break;
AzureIoTClient 28:add19eb7defa 5540 }
AzureIoTClient 28:add19eb7defa 5541 else
AzureIoTClient 28:add19eb7defa 5542 {
AzureIoTClient 28:add19eb7defa 5543 uint32_t incoming_window;
AzureIoTClient 28:add19eb7defa 5544 if (amqpvalue_get_uint(item_value, &incoming_window) != 0)
AzureIoTClient 28:add19eb7defa 5545 {
AzureIoTClient 28:add19eb7defa 5546 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5547 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5548 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5549 break;
AzureIoTClient 28:add19eb7defa 5550 }
AzureIoTClient 28:add19eb7defa 5551 }
AzureIoTClient 28:add19eb7defa 5552
AzureIoTClient 28:add19eb7defa 5553 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5554 }
AzureIoTClient 28:add19eb7defa 5555 }
AzureIoTClient 28:add19eb7defa 5556 else
AzureIoTClient 28:add19eb7defa 5557 {
AzureIoTClient 28:add19eb7defa 5558 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5559 }
AzureIoTClient 28:add19eb7defa 5560 /* next-outgoing-id */
AzureIoTClient 28:add19eb7defa 5561 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 5562 {
AzureIoTClient 23:1111ee8bcba4 5563 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 5564 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5565 {
AzureIoTClient 28:add19eb7defa 5566 {
AzureIoTClient 28:add19eb7defa 5567 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5568 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5569 break;
AzureIoTClient 28:add19eb7defa 5570 }
AzureIoTClient 28:add19eb7defa 5571 }
AzureIoTClient 28:add19eb7defa 5572 else
AzureIoTClient 28:add19eb7defa 5573 {
AzureIoTClient 28:add19eb7defa 5574 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5575 {
AzureIoTClient 28:add19eb7defa 5576 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5577 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5578 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5579 break;
AzureIoTClient 28:add19eb7defa 5580 }
AzureIoTClient 28:add19eb7defa 5581 else
AzureIoTClient 28:add19eb7defa 5582 {
AzureIoTClient 28:add19eb7defa 5583 transfer_number next_outgoing_id;
AzureIoTClient 28:add19eb7defa 5584 if (amqpvalue_get_transfer_number(item_value, &next_outgoing_id) != 0)
AzureIoTClient 28:add19eb7defa 5585 {
AzureIoTClient 28:add19eb7defa 5586 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5587 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5588 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5589 break;
AzureIoTClient 28:add19eb7defa 5590 }
AzureIoTClient 28:add19eb7defa 5591 }
AzureIoTClient 28:add19eb7defa 5592
AzureIoTClient 28:add19eb7defa 5593 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5594 }
AzureIoTClient 28:add19eb7defa 5595 }
AzureIoTClient 28:add19eb7defa 5596 else
AzureIoTClient 28:add19eb7defa 5597 {
AzureIoTClient 28:add19eb7defa 5598 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5599 }
AzureIoTClient 28:add19eb7defa 5600 /* outgoing-window */
AzureIoTClient 28:add19eb7defa 5601 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 5602 {
AzureIoTClient 23:1111ee8bcba4 5603 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 5604 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5605 {
AzureIoTClient 28:add19eb7defa 5606 {
AzureIoTClient 28:add19eb7defa 5607 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5608 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5609 break;
AzureIoTClient 28:add19eb7defa 5610 }
AzureIoTClient 28:add19eb7defa 5611 }
AzureIoTClient 28:add19eb7defa 5612 else
AzureIoTClient 28:add19eb7defa 5613 {
AzureIoTClient 28:add19eb7defa 5614 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5615 {
AzureIoTClient 28:add19eb7defa 5616 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5617 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5618 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5619 break;
AzureIoTClient 28:add19eb7defa 5620 }
AzureIoTClient 28:add19eb7defa 5621 else
AzureIoTClient 28:add19eb7defa 5622 {
AzureIoTClient 28:add19eb7defa 5623 uint32_t outgoing_window;
AzureIoTClient 28:add19eb7defa 5624 if (amqpvalue_get_uint(item_value, &outgoing_window) != 0)
AzureIoTClient 28:add19eb7defa 5625 {
AzureIoTClient 28:add19eb7defa 5626 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5627 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5628 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5629 break;
AzureIoTClient 28:add19eb7defa 5630 }
AzureIoTClient 28:add19eb7defa 5631 }
AzureIoTClient 28:add19eb7defa 5632
AzureIoTClient 28:add19eb7defa 5633 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5634 }
AzureIoTClient 28:add19eb7defa 5635 }
AzureIoTClient 28:add19eb7defa 5636 else
AzureIoTClient 28:add19eb7defa 5637 {
AzureIoTClient 28:add19eb7defa 5638 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5639 }
AzureIoTClient 28:add19eb7defa 5640 /* handle */
AzureIoTClient 28:add19eb7defa 5641 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 5642 {
AzureIoTClient 23:1111ee8bcba4 5643 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 5644 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5645 {
AzureIoTClient 28:add19eb7defa 5646 /* do nothing */
AzureIoTClient 28:add19eb7defa 5647 }
AzureIoTClient 28:add19eb7defa 5648 else
AzureIoTClient 28:add19eb7defa 5649 {
AzureIoTClient 28:add19eb7defa 5650 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5651 {
AzureIoTClient 28:add19eb7defa 5652 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5653 }
AzureIoTClient 28:add19eb7defa 5654 else
AzureIoTClient 28:add19eb7defa 5655 {
AzureIoTClient 28:add19eb7defa 5656 handle handle;
AzureIoTClient 28:add19eb7defa 5657 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 5658 {
AzureIoTClient 28:add19eb7defa 5659 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5660 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5661 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5662 break;
AzureIoTClient 28:add19eb7defa 5663 }
AzureIoTClient 28:add19eb7defa 5664 }
AzureIoTClient 28:add19eb7defa 5665
AzureIoTClient 28:add19eb7defa 5666 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5667 }
AzureIoTClient 28:add19eb7defa 5668 }
AzureIoTClient 28:add19eb7defa 5669 /* delivery-count */
AzureIoTClient 28:add19eb7defa 5670 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 5671 {
AzureIoTClient 23:1111ee8bcba4 5672 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 5673 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5674 {
AzureIoTClient 28:add19eb7defa 5675 /* do nothing */
AzureIoTClient 28:add19eb7defa 5676 }
AzureIoTClient 28:add19eb7defa 5677 else
AzureIoTClient 28:add19eb7defa 5678 {
AzureIoTClient 28:add19eb7defa 5679 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5680 {
AzureIoTClient 28:add19eb7defa 5681 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5682 }
AzureIoTClient 28:add19eb7defa 5683 else
AzureIoTClient 28:add19eb7defa 5684 {
AzureIoTClient 28:add19eb7defa 5685 sequence_no delivery_count;
AzureIoTClient 28:add19eb7defa 5686 if (amqpvalue_get_sequence_no(item_value, &delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 5687 {
AzureIoTClient 28:add19eb7defa 5688 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5689 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5690 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5691 break;
AzureIoTClient 28:add19eb7defa 5692 }
AzureIoTClient 28:add19eb7defa 5693 }
AzureIoTClient 28:add19eb7defa 5694
AzureIoTClient 28:add19eb7defa 5695 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5696 }
AzureIoTClient 28:add19eb7defa 5697 }
AzureIoTClient 28:add19eb7defa 5698 /* link-credit */
AzureIoTClient 28:add19eb7defa 5699 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 5700 {
AzureIoTClient 23:1111ee8bcba4 5701 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 5702 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5703 {
AzureIoTClient 28:add19eb7defa 5704 /* do nothing */
AzureIoTClient 28:add19eb7defa 5705 }
AzureIoTClient 28:add19eb7defa 5706 else
AzureIoTClient 28:add19eb7defa 5707 {
AzureIoTClient 28:add19eb7defa 5708 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5709 {
AzureIoTClient 28:add19eb7defa 5710 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5711 }
AzureIoTClient 28:add19eb7defa 5712 else
AzureIoTClient 28:add19eb7defa 5713 {
AzureIoTClient 28:add19eb7defa 5714 uint32_t link_credit;
AzureIoTClient 28:add19eb7defa 5715 if (amqpvalue_get_uint(item_value, &link_credit) != 0)
AzureIoTClient 28:add19eb7defa 5716 {
AzureIoTClient 28:add19eb7defa 5717 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5718 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5719 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5720 break;
AzureIoTClient 28:add19eb7defa 5721 }
AzureIoTClient 28:add19eb7defa 5722 }
AzureIoTClient 28:add19eb7defa 5723
AzureIoTClient 28:add19eb7defa 5724 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5725 }
AzureIoTClient 28:add19eb7defa 5726 }
AzureIoTClient 28:add19eb7defa 5727 /* available */
AzureIoTClient 28:add19eb7defa 5728 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 5729 {
AzureIoTClient 23:1111ee8bcba4 5730 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 5731 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5732 {
AzureIoTClient 28:add19eb7defa 5733 /* do nothing */
AzureIoTClient 28:add19eb7defa 5734 }
AzureIoTClient 28:add19eb7defa 5735 else
AzureIoTClient 28:add19eb7defa 5736 {
AzureIoTClient 28:add19eb7defa 5737 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5738 {
AzureIoTClient 28:add19eb7defa 5739 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5740 }
AzureIoTClient 28:add19eb7defa 5741 else
AzureIoTClient 28:add19eb7defa 5742 {
AzureIoTClient 28:add19eb7defa 5743 uint32_t available;
AzureIoTClient 28:add19eb7defa 5744 if (amqpvalue_get_uint(item_value, &available) != 0)
AzureIoTClient 28:add19eb7defa 5745 {
AzureIoTClient 28:add19eb7defa 5746 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5747 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5748 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5749 break;
AzureIoTClient 28:add19eb7defa 5750 }
AzureIoTClient 28:add19eb7defa 5751 }
AzureIoTClient 28:add19eb7defa 5752
AzureIoTClient 28:add19eb7defa 5753 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5754 }
AzureIoTClient 28:add19eb7defa 5755 }
AzureIoTClient 28:add19eb7defa 5756 /* drain */
AzureIoTClient 28:add19eb7defa 5757 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 5758 {
AzureIoTClient 23:1111ee8bcba4 5759 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 5760 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5761 {
AzureIoTClient 28:add19eb7defa 5762 /* do nothing */
AzureIoTClient 28:add19eb7defa 5763 }
AzureIoTClient 28:add19eb7defa 5764 else
AzureIoTClient 28:add19eb7defa 5765 {
AzureIoTClient 28:add19eb7defa 5766 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5767 {
AzureIoTClient 28:add19eb7defa 5768 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5769 }
AzureIoTClient 28:add19eb7defa 5770 else
AzureIoTClient 28:add19eb7defa 5771 {
AzureIoTClient 28:add19eb7defa 5772 bool drain;
AzureIoTClient 28:add19eb7defa 5773 if (amqpvalue_get_boolean(item_value, &drain) != 0)
AzureIoTClient 28:add19eb7defa 5774 {
AzureIoTClient 28:add19eb7defa 5775 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5776 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5777 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5778 break;
AzureIoTClient 28:add19eb7defa 5779 }
AzureIoTClient 28:add19eb7defa 5780 }
AzureIoTClient 28:add19eb7defa 5781
AzureIoTClient 28:add19eb7defa 5782 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5783 }
AzureIoTClient 28:add19eb7defa 5784 }
AzureIoTClient 28:add19eb7defa 5785 /* echo */
AzureIoTClient 28:add19eb7defa 5786 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 5787 {
AzureIoTClient 23:1111ee8bcba4 5788 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 5789 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5790 {
AzureIoTClient 28:add19eb7defa 5791 /* do nothing */
AzureIoTClient 28:add19eb7defa 5792 }
AzureIoTClient 28:add19eb7defa 5793 else
AzureIoTClient 28:add19eb7defa 5794 {
AzureIoTClient 28:add19eb7defa 5795 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5796 {
AzureIoTClient 28:add19eb7defa 5797 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5798 }
AzureIoTClient 28:add19eb7defa 5799 else
AzureIoTClient 28:add19eb7defa 5800 {
AzureIoTClient 28:add19eb7defa 5801 bool echo;
AzureIoTClient 28:add19eb7defa 5802 if (amqpvalue_get_boolean(item_value, &echo) != 0)
AzureIoTClient 28:add19eb7defa 5803 {
AzureIoTClient 28:add19eb7defa 5804 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5805 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5806 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5807 break;
AzureIoTClient 28:add19eb7defa 5808 }
AzureIoTClient 28:add19eb7defa 5809 }
AzureIoTClient 28:add19eb7defa 5810
AzureIoTClient 28:add19eb7defa 5811 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5812 }
AzureIoTClient 28:add19eb7defa 5813 }
AzureIoTClient 28:add19eb7defa 5814 /* properties */
AzureIoTClient 28:add19eb7defa 5815 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 5816 {
AzureIoTClient 23:1111ee8bcba4 5817 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 5818 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5819 {
AzureIoTClient 28:add19eb7defa 5820 /* do nothing */
AzureIoTClient 28:add19eb7defa 5821 }
AzureIoTClient 28:add19eb7defa 5822 else
AzureIoTClient 28:add19eb7defa 5823 {
AzureIoTClient 28:add19eb7defa 5824 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5825 {
AzureIoTClient 28:add19eb7defa 5826 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5827 }
AzureIoTClient 28:add19eb7defa 5828 else
AzureIoTClient 28:add19eb7defa 5829 {
AzureIoTClient 28:add19eb7defa 5830 fields properties;
AzureIoTClient 28:add19eb7defa 5831 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 5832 {
AzureIoTClient 28:add19eb7defa 5833 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5834 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5835 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5836 break;
AzureIoTClient 28:add19eb7defa 5837 }
AzureIoTClient 28:add19eb7defa 5838 }
AzureIoTClient 28:add19eb7defa 5839
AzureIoTClient 28:add19eb7defa 5840 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5841 }
AzureIoTClient 28:add19eb7defa 5842 }
AzureIoTClient 28:add19eb7defa 5843
AzureIoTClient 28:add19eb7defa 5844 flow_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 5845
AzureIoTClient 28:add19eb7defa 5846 result = 0;
AzureIoTClient 28:add19eb7defa 5847 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 5848 }
AzureIoTClient 28:add19eb7defa 5849 }
AzureIoTClient 28:add19eb7defa 5850 }
AzureIoTClient 28:add19eb7defa 5851
AzureIoTClient 28:add19eb7defa 5852 return result;
Azure.IoT Build 0:6ae2f7bca550 5853 }
Azure.IoT Build 0:6ae2f7bca550 5854
Azure.IoT Build 0:6ae2f7bca550 5855 int flow_get_next_incoming_id(FLOW_HANDLE flow, transfer_number* next_incoming_id_value)
Azure.IoT Build 0:6ae2f7bca550 5856 {
AzureIoTClient 28:add19eb7defa 5857 int result;
AzureIoTClient 28:add19eb7defa 5858
AzureIoTClient 28:add19eb7defa 5859 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5860 {
AzureIoTClient 28:add19eb7defa 5861 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5862 }
AzureIoTClient 28:add19eb7defa 5863 else
AzureIoTClient 28:add19eb7defa 5864 {
AzureIoTClient 28:add19eb7defa 5865 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5866 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5867 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5868 {
AzureIoTClient 23:1111ee8bcba4 5869 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5870 }
AzureIoTClient 23:1111ee8bcba4 5871 else
AzureIoTClient 23:1111ee8bcba4 5872 {
AzureIoTClient 23:1111ee8bcba4 5873 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 5874 {
AzureIoTClient 28:add19eb7defa 5875 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5876 }
AzureIoTClient 28:add19eb7defa 5877 else
AzureIoTClient 28:add19eb7defa 5878 {
AzureIoTClient 28:add19eb7defa 5879 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 5880 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5881 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5882 {
AzureIoTClient 28:add19eb7defa 5883 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5884 }
AzureIoTClient 28:add19eb7defa 5885 else
AzureIoTClient 28:add19eb7defa 5886 {
AzureIoTClient 28:add19eb7defa 5887 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5888 if ((get_single_value_result = amqpvalue_get_transfer_number(item_value, next_incoming_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 5889 {
AzureIoTClient 28:add19eb7defa 5890 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5891 }
AzureIoTClient 28:add19eb7defa 5892 else
AzureIoTClient 28:add19eb7defa 5893 {
AzureIoTClient 28:add19eb7defa 5894 result = 0;
AzureIoTClient 28:add19eb7defa 5895 }
AzureIoTClient 28:add19eb7defa 5896 }
AzureIoTClient 28:add19eb7defa 5897 }
AzureIoTClient 28:add19eb7defa 5898 }
AzureIoTClient 28:add19eb7defa 5899 }
AzureIoTClient 28:add19eb7defa 5900
AzureIoTClient 28:add19eb7defa 5901 return result;
Azure.IoT Build 0:6ae2f7bca550 5902 }
Azure.IoT Build 0:6ae2f7bca550 5903
Azure.IoT Build 0:6ae2f7bca550 5904 int flow_set_next_incoming_id(FLOW_HANDLE flow, transfer_number next_incoming_id_value)
Azure.IoT Build 0:6ae2f7bca550 5905 {
AzureIoTClient 28:add19eb7defa 5906 int result;
AzureIoTClient 28:add19eb7defa 5907
AzureIoTClient 28:add19eb7defa 5908 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5909 {
AzureIoTClient 28:add19eb7defa 5910 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5911 }
AzureIoTClient 28:add19eb7defa 5912 else
AzureIoTClient 28:add19eb7defa 5913 {
AzureIoTClient 28:add19eb7defa 5914 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5915 AMQP_VALUE next_incoming_id_amqp_value = amqpvalue_create_transfer_number(next_incoming_id_value);
AzureIoTClient 28:add19eb7defa 5916 if (next_incoming_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5917 {
AzureIoTClient 28:add19eb7defa 5918 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5919 }
AzureIoTClient 28:add19eb7defa 5920 else
AzureIoTClient 28:add19eb7defa 5921 {
AzureIoTClient 28:add19eb7defa 5922 if (amqpvalue_set_composite_item(flow_instance->composite_value, 0, next_incoming_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5923 {
AzureIoTClient 28:add19eb7defa 5924 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5925 }
AzureIoTClient 28:add19eb7defa 5926 else
AzureIoTClient 28:add19eb7defa 5927 {
AzureIoTClient 28:add19eb7defa 5928 result = 0;
AzureIoTClient 28:add19eb7defa 5929 }
AzureIoTClient 28:add19eb7defa 5930
AzureIoTClient 28:add19eb7defa 5931 amqpvalue_destroy(next_incoming_id_amqp_value);
AzureIoTClient 28:add19eb7defa 5932 }
AzureIoTClient 28:add19eb7defa 5933 }
AzureIoTClient 28:add19eb7defa 5934
AzureIoTClient 28:add19eb7defa 5935 return result;
Azure.IoT Build 0:6ae2f7bca550 5936 }
Azure.IoT Build 0:6ae2f7bca550 5937
Azure.IoT Build 0:6ae2f7bca550 5938 int flow_get_incoming_window(FLOW_HANDLE flow, uint32_t* incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 5939 {
AzureIoTClient 28:add19eb7defa 5940 int result;
AzureIoTClient 28:add19eb7defa 5941
AzureIoTClient 28:add19eb7defa 5942 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5943 {
AzureIoTClient 28:add19eb7defa 5944 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5945 }
AzureIoTClient 28:add19eb7defa 5946 else
AzureIoTClient 28:add19eb7defa 5947 {
AzureIoTClient 28:add19eb7defa 5948 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5949 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5950 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5951 {
AzureIoTClient 23:1111ee8bcba4 5952 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5953 }
AzureIoTClient 23:1111ee8bcba4 5954 else
AzureIoTClient 23:1111ee8bcba4 5955 {
AzureIoTClient 23:1111ee8bcba4 5956 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 5957 {
AzureIoTClient 28:add19eb7defa 5958 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5959 }
AzureIoTClient 28:add19eb7defa 5960 else
AzureIoTClient 28:add19eb7defa 5961 {
AzureIoTClient 28:add19eb7defa 5962 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 5963 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5964 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5965 {
AzureIoTClient 28:add19eb7defa 5966 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5967 }
AzureIoTClient 28:add19eb7defa 5968 else
AzureIoTClient 28:add19eb7defa 5969 {
AzureIoTClient 28:add19eb7defa 5970 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5971 if ((get_single_value_result = amqpvalue_get_uint(item_value, incoming_window_value)) != 0)
AzureIoTClient 28:add19eb7defa 5972 {
AzureIoTClient 28:add19eb7defa 5973 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5974 }
AzureIoTClient 28:add19eb7defa 5975 else
AzureIoTClient 28:add19eb7defa 5976 {
AzureIoTClient 28:add19eb7defa 5977 result = 0;
AzureIoTClient 28:add19eb7defa 5978 }
AzureIoTClient 28:add19eb7defa 5979 }
AzureIoTClient 28:add19eb7defa 5980 }
AzureIoTClient 28:add19eb7defa 5981 }
AzureIoTClient 28:add19eb7defa 5982 }
AzureIoTClient 28:add19eb7defa 5983
AzureIoTClient 28:add19eb7defa 5984 return result;
Azure.IoT Build 0:6ae2f7bca550 5985 }
Azure.IoT Build 0:6ae2f7bca550 5986
Azure.IoT Build 0:6ae2f7bca550 5987 int flow_set_incoming_window(FLOW_HANDLE flow, uint32_t incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 5988 {
AzureIoTClient 28:add19eb7defa 5989 int result;
AzureIoTClient 28:add19eb7defa 5990
AzureIoTClient 28:add19eb7defa 5991 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5992 {
AzureIoTClient 28:add19eb7defa 5993 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5994 }
AzureIoTClient 28:add19eb7defa 5995 else
AzureIoTClient 28:add19eb7defa 5996 {
AzureIoTClient 28:add19eb7defa 5997 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5998 AMQP_VALUE incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 5999 if (incoming_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6000 {
AzureIoTClient 28:add19eb7defa 6001 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6002 }
AzureIoTClient 28:add19eb7defa 6003 else
AzureIoTClient 28:add19eb7defa 6004 {
AzureIoTClient 28:add19eb7defa 6005 if (amqpvalue_set_composite_item(flow_instance->composite_value, 1, incoming_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6006 {
AzureIoTClient 28:add19eb7defa 6007 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6008 }
AzureIoTClient 28:add19eb7defa 6009 else
AzureIoTClient 28:add19eb7defa 6010 {
AzureIoTClient 28:add19eb7defa 6011 result = 0;
AzureIoTClient 28:add19eb7defa 6012 }
AzureIoTClient 28:add19eb7defa 6013
AzureIoTClient 28:add19eb7defa 6014 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 6015 }
AzureIoTClient 28:add19eb7defa 6016 }
AzureIoTClient 28:add19eb7defa 6017
AzureIoTClient 28:add19eb7defa 6018 return result;
Azure.IoT Build 0:6ae2f7bca550 6019 }
Azure.IoT Build 0:6ae2f7bca550 6020
Azure.IoT Build 0:6ae2f7bca550 6021 int flow_get_next_outgoing_id(FLOW_HANDLE flow, transfer_number* next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 6022 {
AzureIoTClient 28:add19eb7defa 6023 int result;
AzureIoTClient 28:add19eb7defa 6024
AzureIoTClient 28:add19eb7defa 6025 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6026 {
AzureIoTClient 28:add19eb7defa 6027 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6028 }
AzureIoTClient 28:add19eb7defa 6029 else
AzureIoTClient 28:add19eb7defa 6030 {
AzureIoTClient 28:add19eb7defa 6031 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6032 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6033 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6034 {
AzureIoTClient 23:1111ee8bcba4 6035 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6036 }
AzureIoTClient 23:1111ee8bcba4 6037 else
AzureIoTClient 23:1111ee8bcba4 6038 {
AzureIoTClient 23:1111ee8bcba4 6039 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 6040 {
AzureIoTClient 28:add19eb7defa 6041 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6042 }
AzureIoTClient 28:add19eb7defa 6043 else
AzureIoTClient 28:add19eb7defa 6044 {
AzureIoTClient 28:add19eb7defa 6045 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 6046 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6047 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6048 {
AzureIoTClient 28:add19eb7defa 6049 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6050 }
AzureIoTClient 28:add19eb7defa 6051 else
AzureIoTClient 28:add19eb7defa 6052 {
AzureIoTClient 28:add19eb7defa 6053 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6054 if ((get_single_value_result = amqpvalue_get_transfer_number(item_value, next_outgoing_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 6055 {
AzureIoTClient 28:add19eb7defa 6056 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6057 }
AzureIoTClient 28:add19eb7defa 6058 else
AzureIoTClient 28:add19eb7defa 6059 {
AzureIoTClient 28:add19eb7defa 6060 result = 0;
AzureIoTClient 28:add19eb7defa 6061 }
AzureIoTClient 28:add19eb7defa 6062 }
AzureIoTClient 28:add19eb7defa 6063 }
AzureIoTClient 28:add19eb7defa 6064 }
AzureIoTClient 28:add19eb7defa 6065 }
AzureIoTClient 28:add19eb7defa 6066
AzureIoTClient 28:add19eb7defa 6067 return result;
Azure.IoT Build 0:6ae2f7bca550 6068 }
Azure.IoT Build 0:6ae2f7bca550 6069
Azure.IoT Build 0:6ae2f7bca550 6070 int flow_set_next_outgoing_id(FLOW_HANDLE flow, transfer_number next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 6071 {
AzureIoTClient 28:add19eb7defa 6072 int result;
AzureIoTClient 28:add19eb7defa 6073
AzureIoTClient 28:add19eb7defa 6074 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6075 {
AzureIoTClient 28:add19eb7defa 6076 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6077 }
AzureIoTClient 28:add19eb7defa 6078 else
AzureIoTClient 28:add19eb7defa 6079 {
AzureIoTClient 28:add19eb7defa 6080 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6081 AMQP_VALUE next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 6082 if (next_outgoing_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6083 {
AzureIoTClient 28:add19eb7defa 6084 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6085 }
AzureIoTClient 28:add19eb7defa 6086 else
AzureIoTClient 28:add19eb7defa 6087 {
AzureIoTClient 28:add19eb7defa 6088 if (amqpvalue_set_composite_item(flow_instance->composite_value, 2, next_outgoing_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6089 {
AzureIoTClient 28:add19eb7defa 6090 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6091 }
AzureIoTClient 28:add19eb7defa 6092 else
AzureIoTClient 28:add19eb7defa 6093 {
AzureIoTClient 28:add19eb7defa 6094 result = 0;
AzureIoTClient 28:add19eb7defa 6095 }
AzureIoTClient 28:add19eb7defa 6096
AzureIoTClient 28:add19eb7defa 6097 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 6098 }
AzureIoTClient 28:add19eb7defa 6099 }
AzureIoTClient 28:add19eb7defa 6100
AzureIoTClient 28:add19eb7defa 6101 return result;
Azure.IoT Build 0:6ae2f7bca550 6102 }
Azure.IoT Build 0:6ae2f7bca550 6103
Azure.IoT Build 0:6ae2f7bca550 6104 int flow_get_outgoing_window(FLOW_HANDLE flow, uint32_t* outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 6105 {
AzureIoTClient 28:add19eb7defa 6106 int result;
AzureIoTClient 28:add19eb7defa 6107
AzureIoTClient 28:add19eb7defa 6108 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6109 {
AzureIoTClient 28:add19eb7defa 6110 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6111 }
AzureIoTClient 28:add19eb7defa 6112 else
AzureIoTClient 28:add19eb7defa 6113 {
AzureIoTClient 28:add19eb7defa 6114 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6115 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6116 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6117 {
AzureIoTClient 23:1111ee8bcba4 6118 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6119 }
AzureIoTClient 23:1111ee8bcba4 6120 else
AzureIoTClient 23:1111ee8bcba4 6121 {
AzureIoTClient 23:1111ee8bcba4 6122 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 6123 {
AzureIoTClient 28:add19eb7defa 6124 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6125 }
AzureIoTClient 28:add19eb7defa 6126 else
AzureIoTClient 28:add19eb7defa 6127 {
AzureIoTClient 28:add19eb7defa 6128 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 6129 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6130 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6131 {
AzureIoTClient 28:add19eb7defa 6132 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6133 }
AzureIoTClient 28:add19eb7defa 6134 else
AzureIoTClient 28:add19eb7defa 6135 {
AzureIoTClient 28:add19eb7defa 6136 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6137 if ((get_single_value_result = amqpvalue_get_uint(item_value, outgoing_window_value)) != 0)
AzureIoTClient 28:add19eb7defa 6138 {
AzureIoTClient 28:add19eb7defa 6139 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6140 }
AzureIoTClient 28:add19eb7defa 6141 else
AzureIoTClient 28:add19eb7defa 6142 {
AzureIoTClient 28:add19eb7defa 6143 result = 0;
AzureIoTClient 28:add19eb7defa 6144 }
AzureIoTClient 28:add19eb7defa 6145 }
AzureIoTClient 28:add19eb7defa 6146 }
AzureIoTClient 28:add19eb7defa 6147 }
AzureIoTClient 28:add19eb7defa 6148 }
AzureIoTClient 28:add19eb7defa 6149
AzureIoTClient 28:add19eb7defa 6150 return result;
Azure.IoT Build 0:6ae2f7bca550 6151 }
Azure.IoT Build 0:6ae2f7bca550 6152
Azure.IoT Build 0:6ae2f7bca550 6153 int flow_set_outgoing_window(FLOW_HANDLE flow, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 6154 {
AzureIoTClient 28:add19eb7defa 6155 int result;
AzureIoTClient 28:add19eb7defa 6156
AzureIoTClient 28:add19eb7defa 6157 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6158 {
AzureIoTClient 28:add19eb7defa 6159 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6160 }
AzureIoTClient 28:add19eb7defa 6161 else
AzureIoTClient 28:add19eb7defa 6162 {
AzureIoTClient 28:add19eb7defa 6163 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6164 AMQP_VALUE outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 6165 if (outgoing_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6166 {
AzureIoTClient 28:add19eb7defa 6167 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6168 }
AzureIoTClient 28:add19eb7defa 6169 else
AzureIoTClient 28:add19eb7defa 6170 {
AzureIoTClient 28:add19eb7defa 6171 if (amqpvalue_set_composite_item(flow_instance->composite_value, 3, outgoing_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6172 {
AzureIoTClient 28:add19eb7defa 6173 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6174 }
AzureIoTClient 28:add19eb7defa 6175 else
AzureIoTClient 28:add19eb7defa 6176 {
AzureIoTClient 28:add19eb7defa 6177 result = 0;
AzureIoTClient 28:add19eb7defa 6178 }
AzureIoTClient 28:add19eb7defa 6179
AzureIoTClient 28:add19eb7defa 6180 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 6181 }
AzureIoTClient 28:add19eb7defa 6182 }
AzureIoTClient 28:add19eb7defa 6183
AzureIoTClient 28:add19eb7defa 6184 return result;
Azure.IoT Build 0:6ae2f7bca550 6185 }
Azure.IoT Build 0:6ae2f7bca550 6186
Azure.IoT Build 0:6ae2f7bca550 6187 int flow_get_handle(FLOW_HANDLE flow, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 6188 {
AzureIoTClient 28:add19eb7defa 6189 int result;
AzureIoTClient 28:add19eb7defa 6190
AzureIoTClient 28:add19eb7defa 6191 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6192 {
AzureIoTClient 28:add19eb7defa 6193 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6194 }
AzureIoTClient 28:add19eb7defa 6195 else
AzureIoTClient 28:add19eb7defa 6196 {
AzureIoTClient 28:add19eb7defa 6197 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6198 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6199 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6200 {
AzureIoTClient 23:1111ee8bcba4 6201 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6202 }
AzureIoTClient 23:1111ee8bcba4 6203 else
AzureIoTClient 23:1111ee8bcba4 6204 {
AzureIoTClient 23:1111ee8bcba4 6205 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 6206 {
AzureIoTClient 28:add19eb7defa 6207 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6208 }
AzureIoTClient 28:add19eb7defa 6209 else
AzureIoTClient 28:add19eb7defa 6210 {
AzureIoTClient 28:add19eb7defa 6211 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 6212 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6213 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6214 {
AzureIoTClient 28:add19eb7defa 6215 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6216 }
AzureIoTClient 28:add19eb7defa 6217 else
AzureIoTClient 28:add19eb7defa 6218 {
AzureIoTClient 28:add19eb7defa 6219 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6220 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_value)) != 0)
AzureIoTClient 28:add19eb7defa 6221 {
AzureIoTClient 28:add19eb7defa 6222 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6223 }
AzureIoTClient 28:add19eb7defa 6224 else
AzureIoTClient 28:add19eb7defa 6225 {
AzureIoTClient 28:add19eb7defa 6226 result = 0;
AzureIoTClient 28:add19eb7defa 6227 }
AzureIoTClient 28:add19eb7defa 6228 }
AzureIoTClient 28:add19eb7defa 6229 }
AzureIoTClient 28:add19eb7defa 6230 }
AzureIoTClient 28:add19eb7defa 6231 }
AzureIoTClient 28:add19eb7defa 6232
AzureIoTClient 28:add19eb7defa 6233 return result;
Azure.IoT Build 0:6ae2f7bca550 6234 }
Azure.IoT Build 0:6ae2f7bca550 6235
Azure.IoT Build 0:6ae2f7bca550 6236 int flow_set_handle(FLOW_HANDLE flow, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 6237 {
AzureIoTClient 28:add19eb7defa 6238 int result;
AzureIoTClient 28:add19eb7defa 6239
AzureIoTClient 28:add19eb7defa 6240 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6241 {
AzureIoTClient 28:add19eb7defa 6242 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6243 }
AzureIoTClient 28:add19eb7defa 6244 else
AzureIoTClient 28:add19eb7defa 6245 {
AzureIoTClient 28:add19eb7defa 6246 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6247 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 6248 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6249 {
AzureIoTClient 28:add19eb7defa 6250 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6251 }
AzureIoTClient 28:add19eb7defa 6252 else
AzureIoTClient 28:add19eb7defa 6253 {
AzureIoTClient 28:add19eb7defa 6254 if (amqpvalue_set_composite_item(flow_instance->composite_value, 4, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6255 {
AzureIoTClient 28:add19eb7defa 6256 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6257 }
AzureIoTClient 28:add19eb7defa 6258 else
AzureIoTClient 28:add19eb7defa 6259 {
AzureIoTClient 28:add19eb7defa 6260 result = 0;
AzureIoTClient 28:add19eb7defa 6261 }
AzureIoTClient 28:add19eb7defa 6262
AzureIoTClient 28:add19eb7defa 6263 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 6264 }
AzureIoTClient 28:add19eb7defa 6265 }
AzureIoTClient 28:add19eb7defa 6266
AzureIoTClient 28:add19eb7defa 6267 return result;
Azure.IoT Build 0:6ae2f7bca550 6268 }
Azure.IoT Build 0:6ae2f7bca550 6269
Azure.IoT Build 0:6ae2f7bca550 6270 int flow_get_delivery_count(FLOW_HANDLE flow, sequence_no* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 6271 {
AzureIoTClient 28:add19eb7defa 6272 int result;
AzureIoTClient 28:add19eb7defa 6273
AzureIoTClient 28:add19eb7defa 6274 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6275 {
AzureIoTClient 28:add19eb7defa 6276 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6277 }
AzureIoTClient 28:add19eb7defa 6278 else
AzureIoTClient 28:add19eb7defa 6279 {
AzureIoTClient 28:add19eb7defa 6280 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6281 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6282 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6283 {
AzureIoTClient 23:1111ee8bcba4 6284 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6285 }
AzureIoTClient 23:1111ee8bcba4 6286 else
AzureIoTClient 23:1111ee8bcba4 6287 {
AzureIoTClient 23:1111ee8bcba4 6288 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 6289 {
AzureIoTClient 28:add19eb7defa 6290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6291 }
AzureIoTClient 28:add19eb7defa 6292 else
AzureIoTClient 28:add19eb7defa 6293 {
AzureIoTClient 28:add19eb7defa 6294 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 6295 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6296 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6297 {
AzureIoTClient 28:add19eb7defa 6298 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6299 }
AzureIoTClient 28:add19eb7defa 6300 else
AzureIoTClient 28:add19eb7defa 6301 {
AzureIoTClient 28:add19eb7defa 6302 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6303 if ((get_single_value_result = amqpvalue_get_sequence_no(item_value, delivery_count_value)) != 0)
AzureIoTClient 28:add19eb7defa 6304 {
AzureIoTClient 28:add19eb7defa 6305 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6306 }
AzureIoTClient 28:add19eb7defa 6307 else
AzureIoTClient 28:add19eb7defa 6308 {
AzureIoTClient 28:add19eb7defa 6309 result = 0;
AzureIoTClient 28:add19eb7defa 6310 }
AzureIoTClient 28:add19eb7defa 6311 }
AzureIoTClient 28:add19eb7defa 6312 }
AzureIoTClient 28:add19eb7defa 6313 }
AzureIoTClient 28:add19eb7defa 6314 }
AzureIoTClient 28:add19eb7defa 6315
AzureIoTClient 28:add19eb7defa 6316 return result;
Azure.IoT Build 0:6ae2f7bca550 6317 }
Azure.IoT Build 0:6ae2f7bca550 6318
Azure.IoT Build 0:6ae2f7bca550 6319 int flow_set_delivery_count(FLOW_HANDLE flow, sequence_no delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 6320 {
AzureIoTClient 28:add19eb7defa 6321 int result;
AzureIoTClient 28:add19eb7defa 6322
AzureIoTClient 28:add19eb7defa 6323 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6324 {
AzureIoTClient 28:add19eb7defa 6325 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6326 }
AzureIoTClient 28:add19eb7defa 6327 else
AzureIoTClient 28:add19eb7defa 6328 {
AzureIoTClient 28:add19eb7defa 6329 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6330 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_sequence_no(delivery_count_value);
AzureIoTClient 28:add19eb7defa 6331 if (delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6332 {
AzureIoTClient 28:add19eb7defa 6333 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6334 }
AzureIoTClient 28:add19eb7defa 6335 else
AzureIoTClient 28:add19eb7defa 6336 {
AzureIoTClient 28:add19eb7defa 6337 if (amqpvalue_set_composite_item(flow_instance->composite_value, 5, delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6338 {
AzureIoTClient 28:add19eb7defa 6339 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6340 }
AzureIoTClient 28:add19eb7defa 6341 else
AzureIoTClient 28:add19eb7defa 6342 {
AzureIoTClient 28:add19eb7defa 6343 result = 0;
AzureIoTClient 28:add19eb7defa 6344 }
AzureIoTClient 28:add19eb7defa 6345
AzureIoTClient 28:add19eb7defa 6346 amqpvalue_destroy(delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 6347 }
AzureIoTClient 28:add19eb7defa 6348 }
AzureIoTClient 28:add19eb7defa 6349
AzureIoTClient 28:add19eb7defa 6350 return result;
Azure.IoT Build 0:6ae2f7bca550 6351 }
Azure.IoT Build 0:6ae2f7bca550 6352
Azure.IoT Build 0:6ae2f7bca550 6353 int flow_get_link_credit(FLOW_HANDLE flow, uint32_t* link_credit_value)
Azure.IoT Build 0:6ae2f7bca550 6354 {
AzureIoTClient 28:add19eb7defa 6355 int result;
AzureIoTClient 28:add19eb7defa 6356
AzureIoTClient 28:add19eb7defa 6357 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6358 {
AzureIoTClient 28:add19eb7defa 6359 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6360 }
AzureIoTClient 28:add19eb7defa 6361 else
AzureIoTClient 28:add19eb7defa 6362 {
AzureIoTClient 28:add19eb7defa 6363 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6364 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6365 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6366 {
AzureIoTClient 23:1111ee8bcba4 6367 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6368 }
AzureIoTClient 23:1111ee8bcba4 6369 else
AzureIoTClient 23:1111ee8bcba4 6370 {
AzureIoTClient 23:1111ee8bcba4 6371 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 6372 {
AzureIoTClient 28:add19eb7defa 6373 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6374 }
AzureIoTClient 28:add19eb7defa 6375 else
AzureIoTClient 28:add19eb7defa 6376 {
AzureIoTClient 28:add19eb7defa 6377 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 6378 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6379 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6380 {
AzureIoTClient 28:add19eb7defa 6381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6382 }
AzureIoTClient 28:add19eb7defa 6383 else
AzureIoTClient 28:add19eb7defa 6384 {
AzureIoTClient 28:add19eb7defa 6385 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6386 if ((get_single_value_result = amqpvalue_get_uint(item_value, link_credit_value)) != 0)
AzureIoTClient 28:add19eb7defa 6387 {
AzureIoTClient 28:add19eb7defa 6388 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6389 }
AzureIoTClient 28:add19eb7defa 6390 else
AzureIoTClient 28:add19eb7defa 6391 {
AzureIoTClient 28:add19eb7defa 6392 result = 0;
AzureIoTClient 28:add19eb7defa 6393 }
AzureIoTClient 28:add19eb7defa 6394 }
AzureIoTClient 28:add19eb7defa 6395 }
AzureIoTClient 28:add19eb7defa 6396 }
AzureIoTClient 28:add19eb7defa 6397 }
AzureIoTClient 28:add19eb7defa 6398
AzureIoTClient 28:add19eb7defa 6399 return result;
Azure.IoT Build 0:6ae2f7bca550 6400 }
Azure.IoT Build 0:6ae2f7bca550 6401
Azure.IoT Build 0:6ae2f7bca550 6402 int flow_set_link_credit(FLOW_HANDLE flow, uint32_t link_credit_value)
Azure.IoT Build 0:6ae2f7bca550 6403 {
AzureIoTClient 28:add19eb7defa 6404 int result;
AzureIoTClient 28:add19eb7defa 6405
AzureIoTClient 28:add19eb7defa 6406 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6407 {
AzureIoTClient 28:add19eb7defa 6408 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6409 }
AzureIoTClient 28:add19eb7defa 6410 else
AzureIoTClient 28:add19eb7defa 6411 {
AzureIoTClient 28:add19eb7defa 6412 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6413 AMQP_VALUE link_credit_amqp_value = amqpvalue_create_uint(link_credit_value);
AzureIoTClient 28:add19eb7defa 6414 if (link_credit_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6415 {
AzureIoTClient 28:add19eb7defa 6416 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6417 }
AzureIoTClient 28:add19eb7defa 6418 else
AzureIoTClient 28:add19eb7defa 6419 {
AzureIoTClient 28:add19eb7defa 6420 if (amqpvalue_set_composite_item(flow_instance->composite_value, 6, link_credit_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6421 {
AzureIoTClient 28:add19eb7defa 6422 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6423 }
AzureIoTClient 28:add19eb7defa 6424 else
AzureIoTClient 28:add19eb7defa 6425 {
AzureIoTClient 28:add19eb7defa 6426 result = 0;
AzureIoTClient 28:add19eb7defa 6427 }
AzureIoTClient 28:add19eb7defa 6428
AzureIoTClient 28:add19eb7defa 6429 amqpvalue_destroy(link_credit_amqp_value);
AzureIoTClient 28:add19eb7defa 6430 }
AzureIoTClient 28:add19eb7defa 6431 }
AzureIoTClient 28:add19eb7defa 6432
AzureIoTClient 28:add19eb7defa 6433 return result;
Azure.IoT Build 0:6ae2f7bca550 6434 }
Azure.IoT Build 0:6ae2f7bca550 6435
Azure.IoT Build 0:6ae2f7bca550 6436 int flow_get_available(FLOW_HANDLE flow, uint32_t* available_value)
Azure.IoT Build 0:6ae2f7bca550 6437 {
AzureIoTClient 28:add19eb7defa 6438 int result;
AzureIoTClient 28:add19eb7defa 6439
AzureIoTClient 28:add19eb7defa 6440 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6441 {
AzureIoTClient 28:add19eb7defa 6442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6443 }
AzureIoTClient 28:add19eb7defa 6444 else
AzureIoTClient 28:add19eb7defa 6445 {
AzureIoTClient 28:add19eb7defa 6446 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6447 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6448 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6449 {
AzureIoTClient 23:1111ee8bcba4 6450 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6451 }
AzureIoTClient 23:1111ee8bcba4 6452 else
AzureIoTClient 23:1111ee8bcba4 6453 {
AzureIoTClient 23:1111ee8bcba4 6454 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 6455 {
AzureIoTClient 28:add19eb7defa 6456 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6457 }
AzureIoTClient 28:add19eb7defa 6458 else
AzureIoTClient 28:add19eb7defa 6459 {
AzureIoTClient 28:add19eb7defa 6460 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 6461 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6462 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6463 {
AzureIoTClient 28:add19eb7defa 6464 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6465 }
AzureIoTClient 28:add19eb7defa 6466 else
AzureIoTClient 28:add19eb7defa 6467 {
AzureIoTClient 28:add19eb7defa 6468 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6469 if ((get_single_value_result = amqpvalue_get_uint(item_value, available_value)) != 0)
AzureIoTClient 28:add19eb7defa 6470 {
AzureIoTClient 28:add19eb7defa 6471 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6472 }
AzureIoTClient 28:add19eb7defa 6473 else
AzureIoTClient 28:add19eb7defa 6474 {
AzureIoTClient 28:add19eb7defa 6475 result = 0;
AzureIoTClient 28:add19eb7defa 6476 }
AzureIoTClient 28:add19eb7defa 6477 }
AzureIoTClient 28:add19eb7defa 6478 }
AzureIoTClient 28:add19eb7defa 6479 }
AzureIoTClient 28:add19eb7defa 6480 }
AzureIoTClient 28:add19eb7defa 6481
AzureIoTClient 28:add19eb7defa 6482 return result;
Azure.IoT Build 0:6ae2f7bca550 6483 }
Azure.IoT Build 0:6ae2f7bca550 6484
Azure.IoT Build 0:6ae2f7bca550 6485 int flow_set_available(FLOW_HANDLE flow, uint32_t available_value)
Azure.IoT Build 0:6ae2f7bca550 6486 {
AzureIoTClient 28:add19eb7defa 6487 int result;
AzureIoTClient 28:add19eb7defa 6488
AzureIoTClient 28:add19eb7defa 6489 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6490 {
AzureIoTClient 28:add19eb7defa 6491 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6492 }
AzureIoTClient 28:add19eb7defa 6493 else
AzureIoTClient 28:add19eb7defa 6494 {
AzureIoTClient 28:add19eb7defa 6495 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6496 AMQP_VALUE available_amqp_value = amqpvalue_create_uint(available_value);
AzureIoTClient 28:add19eb7defa 6497 if (available_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6498 {
AzureIoTClient 28:add19eb7defa 6499 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6500 }
AzureIoTClient 28:add19eb7defa 6501 else
AzureIoTClient 28:add19eb7defa 6502 {
AzureIoTClient 28:add19eb7defa 6503 if (amqpvalue_set_composite_item(flow_instance->composite_value, 7, available_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6504 {
AzureIoTClient 28:add19eb7defa 6505 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6506 }
AzureIoTClient 28:add19eb7defa 6507 else
AzureIoTClient 28:add19eb7defa 6508 {
AzureIoTClient 28:add19eb7defa 6509 result = 0;
AzureIoTClient 28:add19eb7defa 6510 }
AzureIoTClient 28:add19eb7defa 6511
AzureIoTClient 28:add19eb7defa 6512 amqpvalue_destroy(available_amqp_value);
AzureIoTClient 28:add19eb7defa 6513 }
AzureIoTClient 28:add19eb7defa 6514 }
AzureIoTClient 28:add19eb7defa 6515
AzureIoTClient 28:add19eb7defa 6516 return result;
Azure.IoT Build 0:6ae2f7bca550 6517 }
Azure.IoT Build 0:6ae2f7bca550 6518
Azure.IoT Build 0:6ae2f7bca550 6519 int flow_get_drain(FLOW_HANDLE flow, bool* drain_value)
Azure.IoT Build 0:6ae2f7bca550 6520 {
AzureIoTClient 28:add19eb7defa 6521 int result;
AzureIoTClient 28:add19eb7defa 6522
AzureIoTClient 28:add19eb7defa 6523 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6524 {
AzureIoTClient 28:add19eb7defa 6525 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6526 }
AzureIoTClient 28:add19eb7defa 6527 else
AzureIoTClient 28:add19eb7defa 6528 {
AzureIoTClient 28:add19eb7defa 6529 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6530 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6531 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6532 {
AzureIoTClient 23:1111ee8bcba4 6533 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6534 }
AzureIoTClient 23:1111ee8bcba4 6535 else
AzureIoTClient 23:1111ee8bcba4 6536 {
AzureIoTClient 23:1111ee8bcba4 6537 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 6538 {
AzureIoTClient 28:add19eb7defa 6539 *drain_value = false;
AzureIoTClient 28:add19eb7defa 6540 result = 0;
AzureIoTClient 28:add19eb7defa 6541 }
AzureIoTClient 28:add19eb7defa 6542 else
AzureIoTClient 28:add19eb7defa 6543 {
AzureIoTClient 28:add19eb7defa 6544 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 6545 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6546 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6547 {
AzureIoTClient 28:add19eb7defa 6548 *drain_value = false;
AzureIoTClient 28:add19eb7defa 6549 result = 0;
AzureIoTClient 28:add19eb7defa 6550 }
AzureIoTClient 28:add19eb7defa 6551 else
AzureIoTClient 28:add19eb7defa 6552 {
AzureIoTClient 28:add19eb7defa 6553 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6554 if ((get_single_value_result = amqpvalue_get_boolean(item_value, drain_value)) != 0)
AzureIoTClient 28:add19eb7defa 6555 {
AzureIoTClient 23:1111ee8bcba4 6556 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 6557 {
AzureIoTClient 28:add19eb7defa 6558 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6559 }
AzureIoTClient 28:add19eb7defa 6560 else
AzureIoTClient 28:add19eb7defa 6561 {
AzureIoTClient 28:add19eb7defa 6562 *drain_value = false;
AzureIoTClient 23:1111ee8bcba4 6563 result = 0;
AzureIoTClient 23:1111ee8bcba4 6564 }
AzureIoTClient 28:add19eb7defa 6565 }
AzureIoTClient 28:add19eb7defa 6566 else
AzureIoTClient 28:add19eb7defa 6567 {
AzureIoTClient 28:add19eb7defa 6568 result = 0;
AzureIoTClient 28:add19eb7defa 6569 }
AzureIoTClient 28:add19eb7defa 6570 }
AzureIoTClient 28:add19eb7defa 6571 }
AzureIoTClient 28:add19eb7defa 6572 }
AzureIoTClient 28:add19eb7defa 6573 }
AzureIoTClient 28:add19eb7defa 6574
AzureIoTClient 28:add19eb7defa 6575 return result;
Azure.IoT Build 0:6ae2f7bca550 6576 }
Azure.IoT Build 0:6ae2f7bca550 6577
Azure.IoT Build 0:6ae2f7bca550 6578 int flow_set_drain(FLOW_HANDLE flow, bool drain_value)
Azure.IoT Build 0:6ae2f7bca550 6579 {
AzureIoTClient 28:add19eb7defa 6580 int result;
AzureIoTClient 28:add19eb7defa 6581
AzureIoTClient 28:add19eb7defa 6582 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6583 {
AzureIoTClient 28:add19eb7defa 6584 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6585 }
AzureIoTClient 28:add19eb7defa 6586 else
AzureIoTClient 28:add19eb7defa 6587 {
AzureIoTClient 28:add19eb7defa 6588 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6589 AMQP_VALUE drain_amqp_value = amqpvalue_create_boolean(drain_value);
AzureIoTClient 28:add19eb7defa 6590 if (drain_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6591 {
AzureIoTClient 28:add19eb7defa 6592 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6593 }
AzureIoTClient 28:add19eb7defa 6594 else
AzureIoTClient 28:add19eb7defa 6595 {
AzureIoTClient 28:add19eb7defa 6596 if (amqpvalue_set_composite_item(flow_instance->composite_value, 8, drain_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6597 {
AzureIoTClient 28:add19eb7defa 6598 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6599 }
AzureIoTClient 28:add19eb7defa 6600 else
AzureIoTClient 28:add19eb7defa 6601 {
AzureIoTClient 28:add19eb7defa 6602 result = 0;
AzureIoTClient 28:add19eb7defa 6603 }
AzureIoTClient 28:add19eb7defa 6604
AzureIoTClient 28:add19eb7defa 6605 amqpvalue_destroy(drain_amqp_value);
AzureIoTClient 28:add19eb7defa 6606 }
AzureIoTClient 28:add19eb7defa 6607 }
AzureIoTClient 28:add19eb7defa 6608
AzureIoTClient 28:add19eb7defa 6609 return result;
Azure.IoT Build 0:6ae2f7bca550 6610 }
Azure.IoT Build 0:6ae2f7bca550 6611
Azure.IoT Build 0:6ae2f7bca550 6612 int flow_get_echo(FLOW_HANDLE flow, bool* echo_value)
Azure.IoT Build 0:6ae2f7bca550 6613 {
AzureIoTClient 28:add19eb7defa 6614 int result;
AzureIoTClient 28:add19eb7defa 6615
AzureIoTClient 28:add19eb7defa 6616 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6617 {
AzureIoTClient 28:add19eb7defa 6618 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6619 }
AzureIoTClient 28:add19eb7defa 6620 else
AzureIoTClient 28:add19eb7defa 6621 {
AzureIoTClient 28:add19eb7defa 6622 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6623 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6624 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6625 {
AzureIoTClient 23:1111ee8bcba4 6626 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6627 }
AzureIoTClient 23:1111ee8bcba4 6628 else
AzureIoTClient 23:1111ee8bcba4 6629 {
AzureIoTClient 23:1111ee8bcba4 6630 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 6631 {
AzureIoTClient 28:add19eb7defa 6632 *echo_value = false;
AzureIoTClient 28:add19eb7defa 6633 result = 0;
AzureIoTClient 28:add19eb7defa 6634 }
AzureIoTClient 28:add19eb7defa 6635 else
AzureIoTClient 28:add19eb7defa 6636 {
AzureIoTClient 28:add19eb7defa 6637 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 6638 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6639 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6640 {
AzureIoTClient 28:add19eb7defa 6641 *echo_value = false;
AzureIoTClient 28:add19eb7defa 6642 result = 0;
AzureIoTClient 28:add19eb7defa 6643 }
AzureIoTClient 28:add19eb7defa 6644 else
AzureIoTClient 28:add19eb7defa 6645 {
AzureIoTClient 28:add19eb7defa 6646 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6647 if ((get_single_value_result = amqpvalue_get_boolean(item_value, echo_value)) != 0)
AzureIoTClient 28:add19eb7defa 6648 {
AzureIoTClient 23:1111ee8bcba4 6649 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 6650 {
AzureIoTClient 28:add19eb7defa 6651 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6652 }
AzureIoTClient 28:add19eb7defa 6653 else
AzureIoTClient 28:add19eb7defa 6654 {
AzureIoTClient 28:add19eb7defa 6655 *echo_value = false;
AzureIoTClient 23:1111ee8bcba4 6656 result = 0;
AzureIoTClient 23:1111ee8bcba4 6657 }
AzureIoTClient 28:add19eb7defa 6658 }
AzureIoTClient 28:add19eb7defa 6659 else
AzureIoTClient 28:add19eb7defa 6660 {
AzureIoTClient 28:add19eb7defa 6661 result = 0;
AzureIoTClient 28:add19eb7defa 6662 }
AzureIoTClient 28:add19eb7defa 6663 }
AzureIoTClient 28:add19eb7defa 6664 }
AzureIoTClient 28:add19eb7defa 6665 }
AzureIoTClient 28:add19eb7defa 6666 }
AzureIoTClient 28:add19eb7defa 6667
AzureIoTClient 28:add19eb7defa 6668 return result;
Azure.IoT Build 0:6ae2f7bca550 6669 }
Azure.IoT Build 0:6ae2f7bca550 6670
Azure.IoT Build 0:6ae2f7bca550 6671 int flow_set_echo(FLOW_HANDLE flow, bool echo_value)
Azure.IoT Build 0:6ae2f7bca550 6672 {
AzureIoTClient 28:add19eb7defa 6673 int result;
AzureIoTClient 28:add19eb7defa 6674
AzureIoTClient 28:add19eb7defa 6675 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6676 {
AzureIoTClient 28:add19eb7defa 6677 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6678 }
AzureIoTClient 28:add19eb7defa 6679 else
AzureIoTClient 28:add19eb7defa 6680 {
AzureIoTClient 28:add19eb7defa 6681 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6682 AMQP_VALUE echo_amqp_value = amqpvalue_create_boolean(echo_value);
AzureIoTClient 28:add19eb7defa 6683 if (echo_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6684 {
AzureIoTClient 28:add19eb7defa 6685 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6686 }
AzureIoTClient 28:add19eb7defa 6687 else
AzureIoTClient 28:add19eb7defa 6688 {
AzureIoTClient 28:add19eb7defa 6689 if (amqpvalue_set_composite_item(flow_instance->composite_value, 9, echo_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6690 {
AzureIoTClient 28:add19eb7defa 6691 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6692 }
AzureIoTClient 28:add19eb7defa 6693 else
AzureIoTClient 28:add19eb7defa 6694 {
AzureIoTClient 28:add19eb7defa 6695 result = 0;
AzureIoTClient 28:add19eb7defa 6696 }
AzureIoTClient 28:add19eb7defa 6697
AzureIoTClient 28:add19eb7defa 6698 amqpvalue_destroy(echo_amqp_value);
AzureIoTClient 28:add19eb7defa 6699 }
AzureIoTClient 28:add19eb7defa 6700 }
AzureIoTClient 28:add19eb7defa 6701
AzureIoTClient 28:add19eb7defa 6702 return result;
Azure.IoT Build 0:6ae2f7bca550 6703 }
Azure.IoT Build 0:6ae2f7bca550 6704
Azure.IoT Build 0:6ae2f7bca550 6705 int flow_get_properties(FLOW_HANDLE flow, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 6706 {
AzureIoTClient 28:add19eb7defa 6707 int result;
AzureIoTClient 28:add19eb7defa 6708
AzureIoTClient 28:add19eb7defa 6709 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6710 {
AzureIoTClient 28:add19eb7defa 6711 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6712 }
AzureIoTClient 28:add19eb7defa 6713 else
AzureIoTClient 28:add19eb7defa 6714 {
AzureIoTClient 28:add19eb7defa 6715 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6716 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6717 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6718 {
AzureIoTClient 23:1111ee8bcba4 6719 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6720 }
AzureIoTClient 23:1111ee8bcba4 6721 else
AzureIoTClient 23:1111ee8bcba4 6722 {
AzureIoTClient 23:1111ee8bcba4 6723 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 6724 {
AzureIoTClient 28:add19eb7defa 6725 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6726 }
AzureIoTClient 28:add19eb7defa 6727 else
AzureIoTClient 28:add19eb7defa 6728 {
AzureIoTClient 28:add19eb7defa 6729 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 6730 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6731 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6732 {
AzureIoTClient 28:add19eb7defa 6733 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6734 }
AzureIoTClient 28:add19eb7defa 6735 else
AzureIoTClient 28:add19eb7defa 6736 {
AzureIoTClient 28:add19eb7defa 6737 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6738 if ((get_single_value_result = amqpvalue_get_fields(item_value, properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 6739 {
AzureIoTClient 28:add19eb7defa 6740 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6741 }
AzureIoTClient 28:add19eb7defa 6742 else
AzureIoTClient 28:add19eb7defa 6743 {
AzureIoTClient 28:add19eb7defa 6744 result = 0;
AzureIoTClient 28:add19eb7defa 6745 }
AzureIoTClient 28:add19eb7defa 6746 }
AzureIoTClient 28:add19eb7defa 6747 }
AzureIoTClient 28:add19eb7defa 6748 }
AzureIoTClient 28:add19eb7defa 6749 }
AzureIoTClient 28:add19eb7defa 6750
AzureIoTClient 28:add19eb7defa 6751 return result;
Azure.IoT Build 0:6ae2f7bca550 6752 }
Azure.IoT Build 0:6ae2f7bca550 6753
Azure.IoT Build 0:6ae2f7bca550 6754 int flow_set_properties(FLOW_HANDLE flow, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 6755 {
AzureIoTClient 28:add19eb7defa 6756 int result;
AzureIoTClient 28:add19eb7defa 6757
AzureIoTClient 28:add19eb7defa 6758 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6759 {
AzureIoTClient 28:add19eb7defa 6760 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6761 }
AzureIoTClient 28:add19eb7defa 6762 else
AzureIoTClient 28:add19eb7defa 6763 {
AzureIoTClient 28:add19eb7defa 6764 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6765 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 6766 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6767 {
AzureIoTClient 28:add19eb7defa 6768 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6769 }
AzureIoTClient 28:add19eb7defa 6770 else
AzureIoTClient 28:add19eb7defa 6771 {
AzureIoTClient 28:add19eb7defa 6772 if (amqpvalue_set_composite_item(flow_instance->composite_value, 10, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6773 {
AzureIoTClient 28:add19eb7defa 6774 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6775 }
AzureIoTClient 28:add19eb7defa 6776 else
AzureIoTClient 28:add19eb7defa 6777 {
AzureIoTClient 28:add19eb7defa 6778 result = 0;
AzureIoTClient 28:add19eb7defa 6779 }
AzureIoTClient 28:add19eb7defa 6780
AzureIoTClient 28:add19eb7defa 6781 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 6782 }
AzureIoTClient 28:add19eb7defa 6783 }
AzureIoTClient 28:add19eb7defa 6784
AzureIoTClient 28:add19eb7defa 6785 return result;
Azure.IoT Build 0:6ae2f7bca550 6786 }
Azure.IoT Build 0:6ae2f7bca550 6787
Azure.IoT Build 0:6ae2f7bca550 6788
Azure.IoT Build 0:6ae2f7bca550 6789 /* transfer */
Azure.IoT Build 0:6ae2f7bca550 6790
Azure.IoT Build 0:6ae2f7bca550 6791 typedef struct TRANSFER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 6792 {
AzureIoTClient 28:add19eb7defa 6793 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 6794 } TRANSFER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 6795
Azure.IoT Build 0:6ae2f7bca550 6796 static TRANSFER_HANDLE transfer_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 6797 {
AzureIoTClient 28:add19eb7defa 6798 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6799 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6800 {
AzureIoTClient 28:add19eb7defa 6801 transfer_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 6802 }
AzureIoTClient 28:add19eb7defa 6803
AzureIoTClient 28:add19eb7defa 6804 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6805 }
Azure.IoT Build 0:6ae2f7bca550 6806
Azure.IoT Build 0:6ae2f7bca550 6807 TRANSFER_HANDLE transfer_create(handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 6808 {
AzureIoTClient 28:add19eb7defa 6809 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6810 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6811 {
AzureIoTClient 28:add19eb7defa 6812 transfer_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(20);
AzureIoTClient 28:add19eb7defa 6813 if (transfer_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 6814 {
AzureIoTClient 28:add19eb7defa 6815 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6816 transfer_instance = NULL;
AzureIoTClient 28:add19eb7defa 6817 }
AzureIoTClient 28:add19eb7defa 6818 else
AzureIoTClient 28:add19eb7defa 6819 {
AzureIoTClient 28:add19eb7defa 6820 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 6821 int result = 0;
AzureIoTClient 28:add19eb7defa 6822
AzureIoTClient 28:add19eb7defa 6823 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 6824 if ((result == 0) && (amqpvalue_set_composite_item(transfer_instance->composite_value, 0, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 6825 {
AzureIoTClient 28:add19eb7defa 6826 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6827 }
AzureIoTClient 28:add19eb7defa 6828
AzureIoTClient 28:add19eb7defa 6829 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 6830 }
AzureIoTClient 28:add19eb7defa 6831 }
AzureIoTClient 28:add19eb7defa 6832
AzureIoTClient 28:add19eb7defa 6833 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6834 }
Azure.IoT Build 0:6ae2f7bca550 6835
Azure.IoT Build 0:6ae2f7bca550 6836 TRANSFER_HANDLE transfer_clone(TRANSFER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 6837 {
AzureIoTClient 28:add19eb7defa 6838 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6839 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6840 {
AzureIoTClient 28:add19eb7defa 6841 transfer_instance->composite_value = amqpvalue_clone(((TRANSFER_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 6842 if (transfer_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 6843 {
AzureIoTClient 28:add19eb7defa 6844 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6845 transfer_instance = NULL;
AzureIoTClient 28:add19eb7defa 6846 }
AzureIoTClient 28:add19eb7defa 6847 }
AzureIoTClient 28:add19eb7defa 6848
AzureIoTClient 28:add19eb7defa 6849 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6850 }
Azure.IoT Build 0:6ae2f7bca550 6851
Azure.IoT Build 0:6ae2f7bca550 6852 void transfer_destroy(TRANSFER_HANDLE transfer)
Azure.IoT Build 0:6ae2f7bca550 6853 {
AzureIoTClient 28:add19eb7defa 6854 if (transfer != NULL)
AzureIoTClient 28:add19eb7defa 6855 {
AzureIoTClient 28:add19eb7defa 6856 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 6857 amqpvalue_destroy(transfer_instance->composite_value);
AzureIoTClient 28:add19eb7defa 6858 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6859 }
Azure.IoT Build 0:6ae2f7bca550 6860 }
Azure.IoT Build 0:6ae2f7bca550 6861
Azure.IoT Build 0:6ae2f7bca550 6862 AMQP_VALUE amqpvalue_create_transfer(TRANSFER_HANDLE transfer)
Azure.IoT Build 0:6ae2f7bca550 6863 {
AzureIoTClient 28:add19eb7defa 6864 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 6865
AzureIoTClient 28:add19eb7defa 6866 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 6867 {
AzureIoTClient 28:add19eb7defa 6868 result = NULL;
AzureIoTClient 28:add19eb7defa 6869 }
AzureIoTClient 28:add19eb7defa 6870 else
AzureIoTClient 28:add19eb7defa 6871 {
AzureIoTClient 28:add19eb7defa 6872 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 6873 result = amqpvalue_clone(transfer_instance->composite_value);
AzureIoTClient 28:add19eb7defa 6874 }
AzureIoTClient 28:add19eb7defa 6875
AzureIoTClient 28:add19eb7defa 6876 return result;
Azure.IoT Build 0:6ae2f7bca550 6877 }
Azure.IoT Build 0:6ae2f7bca550 6878
Azure.IoT Build 0:6ae2f7bca550 6879 bool is_transfer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 6880 {
AzureIoTClient 28:add19eb7defa 6881 bool result;
AzureIoTClient 28:add19eb7defa 6882
AzureIoTClient 28:add19eb7defa 6883 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 6884 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 6885 (descriptor_ulong == 20))
AzureIoTClient 28:add19eb7defa 6886 {
AzureIoTClient 28:add19eb7defa 6887 result = true;
AzureIoTClient 28:add19eb7defa 6888 }
AzureIoTClient 28:add19eb7defa 6889 else
AzureIoTClient 28:add19eb7defa 6890 {
AzureIoTClient 28:add19eb7defa 6891 result = false;
AzureIoTClient 28:add19eb7defa 6892 }
AzureIoTClient 28:add19eb7defa 6893
AzureIoTClient 28:add19eb7defa 6894 return result;
Azure.IoT Build 0:6ae2f7bca550 6895 }
Azure.IoT Build 0:6ae2f7bca550 6896
Azure.IoT Build 0:6ae2f7bca550 6897
Azure.IoT Build 0:6ae2f7bca550 6898 int amqpvalue_get_transfer(AMQP_VALUE value, TRANSFER_HANDLE* transfer_handle)
Azure.IoT Build 0:6ae2f7bca550 6899 {
AzureIoTClient 28:add19eb7defa 6900 int result;
AzureIoTClient 28:add19eb7defa 6901 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer_create_internal();
AzureIoTClient 28:add19eb7defa 6902 *transfer_handle = transfer_instance;
AzureIoTClient 28:add19eb7defa 6903 if (*transfer_handle == NULL)
AzureIoTClient 28:add19eb7defa 6904 {
AzureIoTClient 28:add19eb7defa 6905 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6906 }
AzureIoTClient 28:add19eb7defa 6907 else
AzureIoTClient 28:add19eb7defa 6908 {
AzureIoTClient 28:add19eb7defa 6909 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 6910 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 6911 {
AzureIoTClient 28:add19eb7defa 6912 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6913 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6914 }
AzureIoTClient 28:add19eb7defa 6915 else
AzureIoTClient 28:add19eb7defa 6916 {
AzureIoTClient 23:1111ee8bcba4 6917 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 6918 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6919 {
AzureIoTClient 23:1111ee8bcba4 6920 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6921 }
AzureIoTClient 23:1111ee8bcba4 6922 else
AzureIoTClient 23:1111ee8bcba4 6923 {
AzureIoTClient 28:add19eb7defa 6924 do
AzureIoTClient 28:add19eb7defa 6925 {
AzureIoTClient 28:add19eb7defa 6926 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 6927 /* handle */
AzureIoTClient 28:add19eb7defa 6928 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 6929 {
AzureIoTClient 23:1111ee8bcba4 6930 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 6931 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6932 {
AzureIoTClient 28:add19eb7defa 6933 {
AzureIoTClient 28:add19eb7defa 6934 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6935 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6936 break;
AzureIoTClient 28:add19eb7defa 6937 }
AzureIoTClient 28:add19eb7defa 6938 }
AzureIoTClient 28:add19eb7defa 6939 else
AzureIoTClient 28:add19eb7defa 6940 {
AzureIoTClient 28:add19eb7defa 6941 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6942 {
AzureIoTClient 28:add19eb7defa 6943 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6944 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6945 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6946 break;
AzureIoTClient 28:add19eb7defa 6947 }
AzureIoTClient 28:add19eb7defa 6948 else
AzureIoTClient 28:add19eb7defa 6949 {
AzureIoTClient 28:add19eb7defa 6950 handle handle;
AzureIoTClient 28:add19eb7defa 6951 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 6952 {
AzureIoTClient 28:add19eb7defa 6953 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6954 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6955 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6956 break;
AzureIoTClient 28:add19eb7defa 6957 }
AzureIoTClient 28:add19eb7defa 6958 }
AzureIoTClient 28:add19eb7defa 6959
AzureIoTClient 28:add19eb7defa 6960 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6961 }
AzureIoTClient 28:add19eb7defa 6962 }
AzureIoTClient 28:add19eb7defa 6963 else
AzureIoTClient 28:add19eb7defa 6964 {
AzureIoTClient 28:add19eb7defa 6965 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6966 }
AzureIoTClient 28:add19eb7defa 6967 /* delivery-id */
AzureIoTClient 28:add19eb7defa 6968 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 6969 {
AzureIoTClient 23:1111ee8bcba4 6970 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 6971 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6972 {
AzureIoTClient 28:add19eb7defa 6973 /* do nothing */
AzureIoTClient 28:add19eb7defa 6974 }
AzureIoTClient 28:add19eb7defa 6975 else
AzureIoTClient 28:add19eb7defa 6976 {
AzureIoTClient 28:add19eb7defa 6977 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6978 {
AzureIoTClient 28:add19eb7defa 6979 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 6980 }
AzureIoTClient 28:add19eb7defa 6981 else
AzureIoTClient 28:add19eb7defa 6982 {
AzureIoTClient 28:add19eb7defa 6983 delivery_number delivery_id;
AzureIoTClient 28:add19eb7defa 6984 if (amqpvalue_get_delivery_number(item_value, &delivery_id) != 0)
AzureIoTClient 28:add19eb7defa 6985 {
AzureIoTClient 28:add19eb7defa 6986 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6987 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6988 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6989 break;
AzureIoTClient 28:add19eb7defa 6990 }
AzureIoTClient 28:add19eb7defa 6991 }
AzureIoTClient 28:add19eb7defa 6992
AzureIoTClient 28:add19eb7defa 6993 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6994 }
AzureIoTClient 28:add19eb7defa 6995 }
AzureIoTClient 28:add19eb7defa 6996 /* delivery-tag */
AzureIoTClient 28:add19eb7defa 6997 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 6998 {
AzureIoTClient 23:1111ee8bcba4 6999 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 7000 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7001 {
AzureIoTClient 28:add19eb7defa 7002 /* do nothing */
AzureIoTClient 28:add19eb7defa 7003 }
AzureIoTClient 28:add19eb7defa 7004 else
AzureIoTClient 28:add19eb7defa 7005 {
AzureIoTClient 28:add19eb7defa 7006 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7007 {
AzureIoTClient 28:add19eb7defa 7008 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7009 }
AzureIoTClient 28:add19eb7defa 7010 else
AzureIoTClient 28:add19eb7defa 7011 {
AzureIoTClient 28:add19eb7defa 7012 delivery_tag delivery_tag;
AzureIoTClient 28:add19eb7defa 7013 if (amqpvalue_get_delivery_tag(item_value, &delivery_tag) != 0)
AzureIoTClient 28:add19eb7defa 7014 {
AzureIoTClient 28:add19eb7defa 7015 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7016 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7017 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7018 break;
AzureIoTClient 28:add19eb7defa 7019 }
AzureIoTClient 28:add19eb7defa 7020 }
AzureIoTClient 28:add19eb7defa 7021
AzureIoTClient 28:add19eb7defa 7022 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7023 }
AzureIoTClient 28:add19eb7defa 7024 }
AzureIoTClient 28:add19eb7defa 7025 /* message-format */
AzureIoTClient 28:add19eb7defa 7026 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 7027 {
AzureIoTClient 23:1111ee8bcba4 7028 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 7029 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7030 {
AzureIoTClient 28:add19eb7defa 7031 /* do nothing */
AzureIoTClient 28:add19eb7defa 7032 }
AzureIoTClient 28:add19eb7defa 7033 else
AzureIoTClient 28:add19eb7defa 7034 {
AzureIoTClient 28:add19eb7defa 7035 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7036 {
AzureIoTClient 28:add19eb7defa 7037 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7038 }
AzureIoTClient 28:add19eb7defa 7039 else
AzureIoTClient 28:add19eb7defa 7040 {
AzureIoTClient 28:add19eb7defa 7041 message_format message_format;
AzureIoTClient 28:add19eb7defa 7042 if (amqpvalue_get_message_format(item_value, &message_format) != 0)
AzureIoTClient 28:add19eb7defa 7043 {
AzureIoTClient 28:add19eb7defa 7044 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7045 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7046 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7047 break;
AzureIoTClient 28:add19eb7defa 7048 }
AzureIoTClient 28:add19eb7defa 7049 }
AzureIoTClient 28:add19eb7defa 7050
AzureIoTClient 28:add19eb7defa 7051 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7052 }
AzureIoTClient 28:add19eb7defa 7053 }
AzureIoTClient 28:add19eb7defa 7054 /* settled */
AzureIoTClient 28:add19eb7defa 7055 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 7056 {
AzureIoTClient 23:1111ee8bcba4 7057 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 7058 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7059 {
AzureIoTClient 28:add19eb7defa 7060 /* do nothing */
AzureIoTClient 28:add19eb7defa 7061 }
AzureIoTClient 28:add19eb7defa 7062 else
AzureIoTClient 28:add19eb7defa 7063 {
AzureIoTClient 28:add19eb7defa 7064 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7065 {
AzureIoTClient 28:add19eb7defa 7066 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7067 }
AzureIoTClient 28:add19eb7defa 7068 else
AzureIoTClient 28:add19eb7defa 7069 {
AzureIoTClient 28:add19eb7defa 7070 bool settled;
AzureIoTClient 28:add19eb7defa 7071 if (amqpvalue_get_boolean(item_value, &settled) != 0)
AzureIoTClient 28:add19eb7defa 7072 {
AzureIoTClient 28:add19eb7defa 7073 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7074 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7075 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7076 break;
AzureIoTClient 28:add19eb7defa 7077 }
AzureIoTClient 28:add19eb7defa 7078 }
AzureIoTClient 28:add19eb7defa 7079
AzureIoTClient 28:add19eb7defa 7080 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7081 }
AzureIoTClient 28:add19eb7defa 7082 }
AzureIoTClient 28:add19eb7defa 7083 /* more */
AzureIoTClient 28:add19eb7defa 7084 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 7085 {
AzureIoTClient 23:1111ee8bcba4 7086 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 7087 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7088 {
AzureIoTClient 28:add19eb7defa 7089 /* do nothing */
AzureIoTClient 28:add19eb7defa 7090 }
AzureIoTClient 28:add19eb7defa 7091 else
AzureIoTClient 28:add19eb7defa 7092 {
AzureIoTClient 28:add19eb7defa 7093 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7094 {
AzureIoTClient 28:add19eb7defa 7095 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7096 }
AzureIoTClient 28:add19eb7defa 7097 else
AzureIoTClient 28:add19eb7defa 7098 {
AzureIoTClient 28:add19eb7defa 7099 bool more;
AzureIoTClient 28:add19eb7defa 7100 if (amqpvalue_get_boolean(item_value, &more) != 0)
AzureIoTClient 28:add19eb7defa 7101 {
AzureIoTClient 28:add19eb7defa 7102 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7103 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7104 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7105 break;
AzureIoTClient 28:add19eb7defa 7106 }
AzureIoTClient 28:add19eb7defa 7107 }
AzureIoTClient 28:add19eb7defa 7108
AzureIoTClient 28:add19eb7defa 7109 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7110 }
AzureIoTClient 28:add19eb7defa 7111 }
AzureIoTClient 28:add19eb7defa 7112 /* rcv-settle-mode */
AzureIoTClient 28:add19eb7defa 7113 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 7114 {
AzureIoTClient 23:1111ee8bcba4 7115 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 7116 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7117 {
AzureIoTClient 28:add19eb7defa 7118 /* do nothing */
AzureIoTClient 28:add19eb7defa 7119 }
AzureIoTClient 28:add19eb7defa 7120 else
AzureIoTClient 28:add19eb7defa 7121 {
AzureIoTClient 28:add19eb7defa 7122 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7123 {
AzureIoTClient 28:add19eb7defa 7124 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7125 }
AzureIoTClient 28:add19eb7defa 7126 else
AzureIoTClient 28:add19eb7defa 7127 {
AzureIoTClient 28:add19eb7defa 7128 receiver_settle_mode rcv_settle_mode;
AzureIoTClient 28:add19eb7defa 7129 if (amqpvalue_get_receiver_settle_mode(item_value, &rcv_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 7130 {
AzureIoTClient 28:add19eb7defa 7131 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7132 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7133 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7134 break;
AzureIoTClient 28:add19eb7defa 7135 }
AzureIoTClient 28:add19eb7defa 7136 }
AzureIoTClient 28:add19eb7defa 7137
AzureIoTClient 28:add19eb7defa 7138 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7139 }
AzureIoTClient 28:add19eb7defa 7140 }
AzureIoTClient 28:add19eb7defa 7141 /* state */
AzureIoTClient 28:add19eb7defa 7142 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 7143 {
AzureIoTClient 23:1111ee8bcba4 7144 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 7145 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7146 {
AzureIoTClient 28:add19eb7defa 7147 /* do nothing */
AzureIoTClient 28:add19eb7defa 7148 }
AzureIoTClient 28:add19eb7defa 7149 else
AzureIoTClient 28:add19eb7defa 7150 {
AzureIoTClient 28:add19eb7defa 7151 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7152 }
AzureIoTClient 28:add19eb7defa 7153 }
AzureIoTClient 28:add19eb7defa 7154 /* resume */
AzureIoTClient 28:add19eb7defa 7155 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 7156 {
AzureIoTClient 23:1111ee8bcba4 7157 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 7158 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7159 {
AzureIoTClient 28:add19eb7defa 7160 /* do nothing */
AzureIoTClient 28:add19eb7defa 7161 }
AzureIoTClient 28:add19eb7defa 7162 else
AzureIoTClient 28:add19eb7defa 7163 {
AzureIoTClient 28:add19eb7defa 7164 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7165 {
AzureIoTClient 28:add19eb7defa 7166 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7167 }
AzureIoTClient 28:add19eb7defa 7168 else
AzureIoTClient 28:add19eb7defa 7169 {
AzureIoTClient 28:add19eb7defa 7170 bool resume;
AzureIoTClient 28:add19eb7defa 7171 if (amqpvalue_get_boolean(item_value, &resume) != 0)
AzureIoTClient 28:add19eb7defa 7172 {
AzureIoTClient 28:add19eb7defa 7173 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7174 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7175 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7176 break;
AzureIoTClient 28:add19eb7defa 7177 }
AzureIoTClient 28:add19eb7defa 7178 }
AzureIoTClient 28:add19eb7defa 7179
AzureIoTClient 28:add19eb7defa 7180 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7181 }
AzureIoTClient 28:add19eb7defa 7182 }
AzureIoTClient 28:add19eb7defa 7183 /* aborted */
AzureIoTClient 28:add19eb7defa 7184 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 7185 {
AzureIoTClient 23:1111ee8bcba4 7186 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 7187 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7188 {
AzureIoTClient 28:add19eb7defa 7189 /* do nothing */
AzureIoTClient 28:add19eb7defa 7190 }
AzureIoTClient 28:add19eb7defa 7191 else
AzureIoTClient 28:add19eb7defa 7192 {
AzureIoTClient 28:add19eb7defa 7193 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7194 {
AzureIoTClient 28:add19eb7defa 7195 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7196 }
AzureIoTClient 28:add19eb7defa 7197 else
AzureIoTClient 28:add19eb7defa 7198 {
AzureIoTClient 28:add19eb7defa 7199 bool aborted;
AzureIoTClient 28:add19eb7defa 7200 if (amqpvalue_get_boolean(item_value, &aborted) != 0)
AzureIoTClient 28:add19eb7defa 7201 {
AzureIoTClient 28:add19eb7defa 7202 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7203 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7204 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7205 break;
AzureIoTClient 28:add19eb7defa 7206 }
AzureIoTClient 28:add19eb7defa 7207 }
AzureIoTClient 28:add19eb7defa 7208
AzureIoTClient 28:add19eb7defa 7209 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7210 }
AzureIoTClient 28:add19eb7defa 7211 }
AzureIoTClient 28:add19eb7defa 7212 /* batchable */
AzureIoTClient 28:add19eb7defa 7213 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 7214 {
AzureIoTClient 23:1111ee8bcba4 7215 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 7216 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7217 {
AzureIoTClient 28:add19eb7defa 7218 /* do nothing */
AzureIoTClient 28:add19eb7defa 7219 }
AzureIoTClient 28:add19eb7defa 7220 else
AzureIoTClient 28:add19eb7defa 7221 {
AzureIoTClient 28:add19eb7defa 7222 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7223 {
AzureIoTClient 28:add19eb7defa 7224 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7225 }
AzureIoTClient 28:add19eb7defa 7226 else
AzureIoTClient 28:add19eb7defa 7227 {
AzureIoTClient 28:add19eb7defa 7228 bool batchable;
AzureIoTClient 28:add19eb7defa 7229 if (amqpvalue_get_boolean(item_value, &batchable) != 0)
AzureIoTClient 28:add19eb7defa 7230 {
AzureIoTClient 28:add19eb7defa 7231 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7232 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7233 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7234 break;
AzureIoTClient 28:add19eb7defa 7235 }
AzureIoTClient 28:add19eb7defa 7236 }
AzureIoTClient 28:add19eb7defa 7237
AzureIoTClient 28:add19eb7defa 7238 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7239 }
AzureIoTClient 28:add19eb7defa 7240 }
AzureIoTClient 28:add19eb7defa 7241
AzureIoTClient 28:add19eb7defa 7242 transfer_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 7243
AzureIoTClient 28:add19eb7defa 7244 result = 0;
AzureIoTClient 28:add19eb7defa 7245 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 7246 }
AzureIoTClient 28:add19eb7defa 7247 }
AzureIoTClient 28:add19eb7defa 7248 }
AzureIoTClient 28:add19eb7defa 7249
AzureIoTClient 28:add19eb7defa 7250 return result;
Azure.IoT Build 0:6ae2f7bca550 7251 }
Azure.IoT Build 0:6ae2f7bca550 7252
Azure.IoT Build 0:6ae2f7bca550 7253 int transfer_get_handle(TRANSFER_HANDLE transfer, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 7254 {
AzureIoTClient 28:add19eb7defa 7255 int result;
AzureIoTClient 28:add19eb7defa 7256
AzureIoTClient 28:add19eb7defa 7257 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7258 {
AzureIoTClient 28:add19eb7defa 7259 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7260 }
AzureIoTClient 28:add19eb7defa 7261 else
AzureIoTClient 28:add19eb7defa 7262 {
AzureIoTClient 28:add19eb7defa 7263 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7264 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7265 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7266 {
AzureIoTClient 23:1111ee8bcba4 7267 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7268 }
AzureIoTClient 23:1111ee8bcba4 7269 else
AzureIoTClient 23:1111ee8bcba4 7270 {
AzureIoTClient 23:1111ee8bcba4 7271 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 7272 {
AzureIoTClient 28:add19eb7defa 7273 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7274 }
AzureIoTClient 28:add19eb7defa 7275 else
AzureIoTClient 28:add19eb7defa 7276 {
AzureIoTClient 28:add19eb7defa 7277 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 7278 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7279 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7280 {
AzureIoTClient 28:add19eb7defa 7281 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7282 }
AzureIoTClient 28:add19eb7defa 7283 else
AzureIoTClient 28:add19eb7defa 7284 {
AzureIoTClient 28:add19eb7defa 7285 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7286 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_value)) != 0)
AzureIoTClient 28:add19eb7defa 7287 {
AzureIoTClient 28:add19eb7defa 7288 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7289 }
AzureIoTClient 28:add19eb7defa 7290 else
AzureIoTClient 28:add19eb7defa 7291 {
AzureIoTClient 28:add19eb7defa 7292 result = 0;
AzureIoTClient 28:add19eb7defa 7293 }
AzureIoTClient 28:add19eb7defa 7294 }
AzureIoTClient 28:add19eb7defa 7295 }
AzureIoTClient 28:add19eb7defa 7296 }
AzureIoTClient 28:add19eb7defa 7297 }
AzureIoTClient 28:add19eb7defa 7298
AzureIoTClient 28:add19eb7defa 7299 return result;
Azure.IoT Build 0:6ae2f7bca550 7300 }
Azure.IoT Build 0:6ae2f7bca550 7301
Azure.IoT Build 0:6ae2f7bca550 7302 int transfer_set_handle(TRANSFER_HANDLE transfer, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 7303 {
AzureIoTClient 28:add19eb7defa 7304 int result;
AzureIoTClient 28:add19eb7defa 7305
AzureIoTClient 28:add19eb7defa 7306 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7307 {
AzureIoTClient 28:add19eb7defa 7308 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7309 }
AzureIoTClient 28:add19eb7defa 7310 else
AzureIoTClient 28:add19eb7defa 7311 {
AzureIoTClient 28:add19eb7defa 7312 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7313 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 7314 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7315 {
AzureIoTClient 28:add19eb7defa 7316 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7317 }
AzureIoTClient 28:add19eb7defa 7318 else
AzureIoTClient 28:add19eb7defa 7319 {
AzureIoTClient 28:add19eb7defa 7320 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 0, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7321 {
AzureIoTClient 28:add19eb7defa 7322 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7323 }
AzureIoTClient 28:add19eb7defa 7324 else
AzureIoTClient 28:add19eb7defa 7325 {
AzureIoTClient 28:add19eb7defa 7326 result = 0;
AzureIoTClient 28:add19eb7defa 7327 }
AzureIoTClient 28:add19eb7defa 7328
AzureIoTClient 28:add19eb7defa 7329 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 7330 }
AzureIoTClient 28:add19eb7defa 7331 }
AzureIoTClient 28:add19eb7defa 7332
AzureIoTClient 28:add19eb7defa 7333 return result;
Azure.IoT Build 0:6ae2f7bca550 7334 }
Azure.IoT Build 0:6ae2f7bca550 7335
Azure.IoT Build 0:6ae2f7bca550 7336 int transfer_get_delivery_id(TRANSFER_HANDLE transfer, delivery_number* delivery_id_value)
Azure.IoT Build 0:6ae2f7bca550 7337 {
AzureIoTClient 28:add19eb7defa 7338 int result;
AzureIoTClient 28:add19eb7defa 7339
AzureIoTClient 28:add19eb7defa 7340 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7341 {
AzureIoTClient 28:add19eb7defa 7342 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7343 }
AzureIoTClient 28:add19eb7defa 7344 else
AzureIoTClient 28:add19eb7defa 7345 {
AzureIoTClient 28:add19eb7defa 7346 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7347 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7348 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7349 {
AzureIoTClient 23:1111ee8bcba4 7350 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7351 }
AzureIoTClient 23:1111ee8bcba4 7352 else
AzureIoTClient 23:1111ee8bcba4 7353 {
AzureIoTClient 23:1111ee8bcba4 7354 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 7355 {
AzureIoTClient 28:add19eb7defa 7356 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7357 }
AzureIoTClient 28:add19eb7defa 7358 else
AzureIoTClient 28:add19eb7defa 7359 {
AzureIoTClient 28:add19eb7defa 7360 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 7361 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7362 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7363 {
AzureIoTClient 28:add19eb7defa 7364 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7365 }
AzureIoTClient 28:add19eb7defa 7366 else
AzureIoTClient 28:add19eb7defa 7367 {
AzureIoTClient 28:add19eb7defa 7368 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7369 if ((get_single_value_result = amqpvalue_get_delivery_number(item_value, delivery_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 7370 {
AzureIoTClient 28:add19eb7defa 7371 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7372 }
AzureIoTClient 28:add19eb7defa 7373 else
AzureIoTClient 28:add19eb7defa 7374 {
AzureIoTClient 28:add19eb7defa 7375 result = 0;
AzureIoTClient 28:add19eb7defa 7376 }
AzureIoTClient 28:add19eb7defa 7377 }
AzureIoTClient 28:add19eb7defa 7378 }
AzureIoTClient 28:add19eb7defa 7379 }
AzureIoTClient 28:add19eb7defa 7380 }
AzureIoTClient 28:add19eb7defa 7381
AzureIoTClient 28:add19eb7defa 7382 return result;
Azure.IoT Build 0:6ae2f7bca550 7383 }
Azure.IoT Build 0:6ae2f7bca550 7384
Azure.IoT Build 0:6ae2f7bca550 7385 int transfer_set_delivery_id(TRANSFER_HANDLE transfer, delivery_number delivery_id_value)
Azure.IoT Build 0:6ae2f7bca550 7386 {
AzureIoTClient 28:add19eb7defa 7387 int result;
AzureIoTClient 28:add19eb7defa 7388
AzureIoTClient 28:add19eb7defa 7389 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7390 {
AzureIoTClient 28:add19eb7defa 7391 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7392 }
AzureIoTClient 28:add19eb7defa 7393 else
AzureIoTClient 28:add19eb7defa 7394 {
AzureIoTClient 28:add19eb7defa 7395 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7396 AMQP_VALUE delivery_id_amqp_value = amqpvalue_create_delivery_number(delivery_id_value);
AzureIoTClient 28:add19eb7defa 7397 if (delivery_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7398 {
AzureIoTClient 28:add19eb7defa 7399 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7400 }
AzureIoTClient 28:add19eb7defa 7401 else
AzureIoTClient 28:add19eb7defa 7402 {
AzureIoTClient 28:add19eb7defa 7403 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 1, delivery_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7404 {
AzureIoTClient 28:add19eb7defa 7405 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7406 }
AzureIoTClient 28:add19eb7defa 7407 else
AzureIoTClient 28:add19eb7defa 7408 {
AzureIoTClient 28:add19eb7defa 7409 result = 0;
AzureIoTClient 28:add19eb7defa 7410 }
AzureIoTClient 28:add19eb7defa 7411
AzureIoTClient 28:add19eb7defa 7412 amqpvalue_destroy(delivery_id_amqp_value);
AzureIoTClient 28:add19eb7defa 7413 }
AzureIoTClient 28:add19eb7defa 7414 }
AzureIoTClient 28:add19eb7defa 7415
AzureIoTClient 28:add19eb7defa 7416 return result;
Azure.IoT Build 0:6ae2f7bca550 7417 }
Azure.IoT Build 0:6ae2f7bca550 7418
Azure.IoT Build 0:6ae2f7bca550 7419 int transfer_get_delivery_tag(TRANSFER_HANDLE transfer, delivery_tag* delivery_tag_value)
Azure.IoT Build 0:6ae2f7bca550 7420 {
AzureIoTClient 28:add19eb7defa 7421 int result;
AzureIoTClient 28:add19eb7defa 7422
AzureIoTClient 28:add19eb7defa 7423 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7424 {
AzureIoTClient 28:add19eb7defa 7425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7426 }
AzureIoTClient 28:add19eb7defa 7427 else
AzureIoTClient 28:add19eb7defa 7428 {
AzureIoTClient 28:add19eb7defa 7429 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7430 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7431 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7432 {
AzureIoTClient 23:1111ee8bcba4 7433 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7434 }
AzureIoTClient 23:1111ee8bcba4 7435 else
AzureIoTClient 23:1111ee8bcba4 7436 {
AzureIoTClient 23:1111ee8bcba4 7437 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 7438 {
AzureIoTClient 28:add19eb7defa 7439 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7440 }
AzureIoTClient 28:add19eb7defa 7441 else
AzureIoTClient 28:add19eb7defa 7442 {
AzureIoTClient 28:add19eb7defa 7443 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 7444 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7445 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7446 {
AzureIoTClient 28:add19eb7defa 7447 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7448 }
AzureIoTClient 28:add19eb7defa 7449 else
AzureIoTClient 28:add19eb7defa 7450 {
AzureIoTClient 28:add19eb7defa 7451 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7452 if ((get_single_value_result = amqpvalue_get_delivery_tag(item_value, delivery_tag_value)) != 0)
AzureIoTClient 28:add19eb7defa 7453 {
AzureIoTClient 28:add19eb7defa 7454 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7455 }
AzureIoTClient 28:add19eb7defa 7456 else
AzureIoTClient 28:add19eb7defa 7457 {
AzureIoTClient 28:add19eb7defa 7458 result = 0;
AzureIoTClient 28:add19eb7defa 7459 }
AzureIoTClient 28:add19eb7defa 7460 }
AzureIoTClient 28:add19eb7defa 7461 }
AzureIoTClient 28:add19eb7defa 7462 }
AzureIoTClient 28:add19eb7defa 7463 }
AzureIoTClient 28:add19eb7defa 7464
AzureIoTClient 28:add19eb7defa 7465 return result;
Azure.IoT Build 0:6ae2f7bca550 7466 }
Azure.IoT Build 0:6ae2f7bca550 7467
Azure.IoT Build 0:6ae2f7bca550 7468 int transfer_set_delivery_tag(TRANSFER_HANDLE transfer, delivery_tag delivery_tag_value)
Azure.IoT Build 0:6ae2f7bca550 7469 {
AzureIoTClient 28:add19eb7defa 7470 int result;
AzureIoTClient 28:add19eb7defa 7471
AzureIoTClient 28:add19eb7defa 7472 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7473 {
AzureIoTClient 28:add19eb7defa 7474 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7475 }
AzureIoTClient 28:add19eb7defa 7476 else
AzureIoTClient 28:add19eb7defa 7477 {
AzureIoTClient 28:add19eb7defa 7478 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7479 AMQP_VALUE delivery_tag_amqp_value = amqpvalue_create_delivery_tag(delivery_tag_value);
AzureIoTClient 28:add19eb7defa 7480 if (delivery_tag_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7481 {
AzureIoTClient 28:add19eb7defa 7482 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7483 }
AzureIoTClient 28:add19eb7defa 7484 else
AzureIoTClient 28:add19eb7defa 7485 {
AzureIoTClient 28:add19eb7defa 7486 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 2, delivery_tag_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7487 {
AzureIoTClient 28:add19eb7defa 7488 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7489 }
AzureIoTClient 28:add19eb7defa 7490 else
AzureIoTClient 28:add19eb7defa 7491 {
AzureIoTClient 28:add19eb7defa 7492 result = 0;
AzureIoTClient 28:add19eb7defa 7493 }
AzureIoTClient 28:add19eb7defa 7494
AzureIoTClient 28:add19eb7defa 7495 amqpvalue_destroy(delivery_tag_amqp_value);
AzureIoTClient 28:add19eb7defa 7496 }
AzureIoTClient 28:add19eb7defa 7497 }
AzureIoTClient 28:add19eb7defa 7498
AzureIoTClient 28:add19eb7defa 7499 return result;
Azure.IoT Build 0:6ae2f7bca550 7500 }
Azure.IoT Build 0:6ae2f7bca550 7501
Azure.IoT Build 0:6ae2f7bca550 7502 int transfer_get_message_format(TRANSFER_HANDLE transfer, message_format* message_format_value)
Azure.IoT Build 0:6ae2f7bca550 7503 {
AzureIoTClient 28:add19eb7defa 7504 int result;
AzureIoTClient 28:add19eb7defa 7505
AzureIoTClient 28:add19eb7defa 7506 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7507 {
AzureIoTClient 28:add19eb7defa 7508 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7509 }
AzureIoTClient 28:add19eb7defa 7510 else
AzureIoTClient 28:add19eb7defa 7511 {
AzureIoTClient 28:add19eb7defa 7512 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7513 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7514 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7515 {
AzureIoTClient 23:1111ee8bcba4 7516 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7517 }
AzureIoTClient 23:1111ee8bcba4 7518 else
AzureIoTClient 23:1111ee8bcba4 7519 {
AzureIoTClient 23:1111ee8bcba4 7520 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 7521 {
AzureIoTClient 28:add19eb7defa 7522 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7523 }
AzureIoTClient 28:add19eb7defa 7524 else
AzureIoTClient 28:add19eb7defa 7525 {
AzureIoTClient 28:add19eb7defa 7526 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 7527 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7528 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7529 {
AzureIoTClient 28:add19eb7defa 7530 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7531 }
AzureIoTClient 28:add19eb7defa 7532 else
AzureIoTClient 28:add19eb7defa 7533 {
AzureIoTClient 28:add19eb7defa 7534 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7535 if ((get_single_value_result = amqpvalue_get_message_format(item_value, message_format_value)) != 0)
AzureIoTClient 28:add19eb7defa 7536 {
AzureIoTClient 28:add19eb7defa 7537 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7538 }
AzureIoTClient 28:add19eb7defa 7539 else
AzureIoTClient 28:add19eb7defa 7540 {
AzureIoTClient 28:add19eb7defa 7541 result = 0;
AzureIoTClient 28:add19eb7defa 7542 }
AzureIoTClient 28:add19eb7defa 7543 }
AzureIoTClient 28:add19eb7defa 7544 }
AzureIoTClient 28:add19eb7defa 7545 }
AzureIoTClient 28:add19eb7defa 7546 }
AzureIoTClient 28:add19eb7defa 7547
AzureIoTClient 28:add19eb7defa 7548 return result;
Azure.IoT Build 0:6ae2f7bca550 7549 }
Azure.IoT Build 0:6ae2f7bca550 7550
Azure.IoT Build 0:6ae2f7bca550 7551 int transfer_set_message_format(TRANSFER_HANDLE transfer, message_format message_format_value)
Azure.IoT Build 0:6ae2f7bca550 7552 {
AzureIoTClient 28:add19eb7defa 7553 int result;
AzureIoTClient 28:add19eb7defa 7554
AzureIoTClient 28:add19eb7defa 7555 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7556 {
AzureIoTClient 28:add19eb7defa 7557 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7558 }
AzureIoTClient 28:add19eb7defa 7559 else
AzureIoTClient 28:add19eb7defa 7560 {
AzureIoTClient 28:add19eb7defa 7561 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7562 AMQP_VALUE message_format_amqp_value = amqpvalue_create_message_format(message_format_value);
AzureIoTClient 28:add19eb7defa 7563 if (message_format_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7564 {
AzureIoTClient 28:add19eb7defa 7565 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7566 }
AzureIoTClient 28:add19eb7defa 7567 else
AzureIoTClient 28:add19eb7defa 7568 {
AzureIoTClient 28:add19eb7defa 7569 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 3, message_format_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7570 {
AzureIoTClient 28:add19eb7defa 7571 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7572 }
AzureIoTClient 28:add19eb7defa 7573 else
AzureIoTClient 28:add19eb7defa 7574 {
AzureIoTClient 28:add19eb7defa 7575 result = 0;
AzureIoTClient 28:add19eb7defa 7576 }
AzureIoTClient 28:add19eb7defa 7577
AzureIoTClient 28:add19eb7defa 7578 amqpvalue_destroy(message_format_amqp_value);
AzureIoTClient 28:add19eb7defa 7579 }
AzureIoTClient 28:add19eb7defa 7580 }
AzureIoTClient 28:add19eb7defa 7581
AzureIoTClient 28:add19eb7defa 7582 return result;
Azure.IoT Build 0:6ae2f7bca550 7583 }
Azure.IoT Build 0:6ae2f7bca550 7584
Azure.IoT Build 0:6ae2f7bca550 7585 int transfer_get_settled(TRANSFER_HANDLE transfer, bool* settled_value)
Azure.IoT Build 0:6ae2f7bca550 7586 {
AzureIoTClient 28:add19eb7defa 7587 int result;
AzureIoTClient 28:add19eb7defa 7588
AzureIoTClient 28:add19eb7defa 7589 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7590 {
AzureIoTClient 28:add19eb7defa 7591 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7592 }
AzureIoTClient 28:add19eb7defa 7593 else
AzureIoTClient 28:add19eb7defa 7594 {
AzureIoTClient 28:add19eb7defa 7595 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7596 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7597 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7598 {
AzureIoTClient 23:1111ee8bcba4 7599 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7600 }
AzureIoTClient 23:1111ee8bcba4 7601 else
AzureIoTClient 23:1111ee8bcba4 7602 {
AzureIoTClient 23:1111ee8bcba4 7603 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 7604 {
AzureIoTClient 28:add19eb7defa 7605 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7606 }
AzureIoTClient 28:add19eb7defa 7607 else
AzureIoTClient 28:add19eb7defa 7608 {
AzureIoTClient 28:add19eb7defa 7609 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 7610 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7611 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7612 {
AzureIoTClient 28:add19eb7defa 7613 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7614 }
AzureIoTClient 28:add19eb7defa 7615 else
AzureIoTClient 28:add19eb7defa 7616 {
AzureIoTClient 28:add19eb7defa 7617 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7618 if ((get_single_value_result = amqpvalue_get_boolean(item_value, settled_value)) != 0)
AzureIoTClient 28:add19eb7defa 7619 {
AzureIoTClient 28:add19eb7defa 7620 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7621 }
AzureIoTClient 28:add19eb7defa 7622 else
AzureIoTClient 28:add19eb7defa 7623 {
AzureIoTClient 28:add19eb7defa 7624 result = 0;
AzureIoTClient 28:add19eb7defa 7625 }
AzureIoTClient 28:add19eb7defa 7626 }
AzureIoTClient 28:add19eb7defa 7627 }
AzureIoTClient 28:add19eb7defa 7628 }
AzureIoTClient 28:add19eb7defa 7629 }
AzureIoTClient 28:add19eb7defa 7630
AzureIoTClient 28:add19eb7defa 7631 return result;
Azure.IoT Build 0:6ae2f7bca550 7632 }
Azure.IoT Build 0:6ae2f7bca550 7633
Azure.IoT Build 0:6ae2f7bca550 7634 int transfer_set_settled(TRANSFER_HANDLE transfer, bool settled_value)
Azure.IoT Build 0:6ae2f7bca550 7635 {
AzureIoTClient 28:add19eb7defa 7636 int result;
AzureIoTClient 28:add19eb7defa 7637
AzureIoTClient 28:add19eb7defa 7638 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7639 {
AzureIoTClient 28:add19eb7defa 7640 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7641 }
AzureIoTClient 28:add19eb7defa 7642 else
AzureIoTClient 28:add19eb7defa 7643 {
AzureIoTClient 28:add19eb7defa 7644 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7645 AMQP_VALUE settled_amqp_value = amqpvalue_create_boolean(settled_value);
AzureIoTClient 28:add19eb7defa 7646 if (settled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7647 {
AzureIoTClient 28:add19eb7defa 7648 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7649 }
AzureIoTClient 28:add19eb7defa 7650 else
AzureIoTClient 28:add19eb7defa 7651 {
AzureIoTClient 28:add19eb7defa 7652 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 4, settled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7653 {
AzureIoTClient 28:add19eb7defa 7654 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7655 }
AzureIoTClient 28:add19eb7defa 7656 else
AzureIoTClient 28:add19eb7defa 7657 {
AzureIoTClient 28:add19eb7defa 7658 result = 0;
AzureIoTClient 28:add19eb7defa 7659 }
AzureIoTClient 28:add19eb7defa 7660
AzureIoTClient 28:add19eb7defa 7661 amqpvalue_destroy(settled_amqp_value);
AzureIoTClient 28:add19eb7defa 7662 }
AzureIoTClient 28:add19eb7defa 7663 }
AzureIoTClient 28:add19eb7defa 7664
AzureIoTClient 28:add19eb7defa 7665 return result;
Azure.IoT Build 0:6ae2f7bca550 7666 }
Azure.IoT Build 0:6ae2f7bca550 7667
Azure.IoT Build 0:6ae2f7bca550 7668 int transfer_get_more(TRANSFER_HANDLE transfer, bool* more_value)
Azure.IoT Build 0:6ae2f7bca550 7669 {
AzureIoTClient 28:add19eb7defa 7670 int result;
AzureIoTClient 28:add19eb7defa 7671
AzureIoTClient 28:add19eb7defa 7672 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7673 {
AzureIoTClient 28:add19eb7defa 7674 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7675 }
AzureIoTClient 28:add19eb7defa 7676 else
AzureIoTClient 28:add19eb7defa 7677 {
AzureIoTClient 28:add19eb7defa 7678 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7679 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7680 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7681 {
AzureIoTClient 23:1111ee8bcba4 7682 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7683 }
AzureIoTClient 23:1111ee8bcba4 7684 else
AzureIoTClient 23:1111ee8bcba4 7685 {
AzureIoTClient 23:1111ee8bcba4 7686 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 7687 {
AzureIoTClient 28:add19eb7defa 7688 *more_value = false;
AzureIoTClient 28:add19eb7defa 7689 result = 0;
AzureIoTClient 28:add19eb7defa 7690 }
AzureIoTClient 28:add19eb7defa 7691 else
AzureIoTClient 28:add19eb7defa 7692 {
AzureIoTClient 28:add19eb7defa 7693 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 7694 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7695 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7696 {
AzureIoTClient 28:add19eb7defa 7697 *more_value = false;
AzureIoTClient 28:add19eb7defa 7698 result = 0;
AzureIoTClient 28:add19eb7defa 7699 }
AzureIoTClient 28:add19eb7defa 7700 else
AzureIoTClient 28:add19eb7defa 7701 {
AzureIoTClient 28:add19eb7defa 7702 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7703 if ((get_single_value_result = amqpvalue_get_boolean(item_value, more_value)) != 0)
AzureIoTClient 28:add19eb7defa 7704 {
AzureIoTClient 23:1111ee8bcba4 7705 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7706 {
AzureIoTClient 28:add19eb7defa 7707 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7708 }
AzureIoTClient 28:add19eb7defa 7709 else
AzureIoTClient 28:add19eb7defa 7710 {
AzureIoTClient 28:add19eb7defa 7711 *more_value = false;
AzureIoTClient 23:1111ee8bcba4 7712 result = 0;
AzureIoTClient 23:1111ee8bcba4 7713 }
AzureIoTClient 28:add19eb7defa 7714 }
AzureIoTClient 28:add19eb7defa 7715 else
AzureIoTClient 28:add19eb7defa 7716 {
AzureIoTClient 28:add19eb7defa 7717 result = 0;
AzureIoTClient 28:add19eb7defa 7718 }
AzureIoTClient 28:add19eb7defa 7719 }
AzureIoTClient 28:add19eb7defa 7720 }
AzureIoTClient 28:add19eb7defa 7721 }
AzureIoTClient 28:add19eb7defa 7722 }
AzureIoTClient 28:add19eb7defa 7723
AzureIoTClient 28:add19eb7defa 7724 return result;
Azure.IoT Build 0:6ae2f7bca550 7725 }
Azure.IoT Build 0:6ae2f7bca550 7726
Azure.IoT Build 0:6ae2f7bca550 7727 int transfer_set_more(TRANSFER_HANDLE transfer, bool more_value)
Azure.IoT Build 0:6ae2f7bca550 7728 {
AzureIoTClient 28:add19eb7defa 7729 int result;
AzureIoTClient 28:add19eb7defa 7730
AzureIoTClient 28:add19eb7defa 7731 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7732 {
AzureIoTClient 28:add19eb7defa 7733 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7734 }
AzureIoTClient 28:add19eb7defa 7735 else
AzureIoTClient 28:add19eb7defa 7736 {
AzureIoTClient 28:add19eb7defa 7737 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7738 AMQP_VALUE more_amqp_value = amqpvalue_create_boolean(more_value);
AzureIoTClient 28:add19eb7defa 7739 if (more_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7740 {
AzureIoTClient 28:add19eb7defa 7741 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7742 }
AzureIoTClient 28:add19eb7defa 7743 else
AzureIoTClient 28:add19eb7defa 7744 {
AzureIoTClient 28:add19eb7defa 7745 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 5, more_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7746 {
AzureIoTClient 28:add19eb7defa 7747 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7748 }
AzureIoTClient 28:add19eb7defa 7749 else
AzureIoTClient 28:add19eb7defa 7750 {
AzureIoTClient 28:add19eb7defa 7751 result = 0;
AzureIoTClient 28:add19eb7defa 7752 }
AzureIoTClient 28:add19eb7defa 7753
AzureIoTClient 28:add19eb7defa 7754 amqpvalue_destroy(more_amqp_value);
AzureIoTClient 28:add19eb7defa 7755 }
AzureIoTClient 28:add19eb7defa 7756 }
AzureIoTClient 28:add19eb7defa 7757
AzureIoTClient 28:add19eb7defa 7758 return result;
Azure.IoT Build 0:6ae2f7bca550 7759 }
Azure.IoT Build 0:6ae2f7bca550 7760
Azure.IoT Build 0:6ae2f7bca550 7761 int transfer_get_rcv_settle_mode(TRANSFER_HANDLE transfer, receiver_settle_mode* rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 7762 {
AzureIoTClient 28:add19eb7defa 7763 int result;
AzureIoTClient 28:add19eb7defa 7764
AzureIoTClient 28:add19eb7defa 7765 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7766 {
AzureIoTClient 28:add19eb7defa 7767 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7768 }
AzureIoTClient 28:add19eb7defa 7769 else
AzureIoTClient 28:add19eb7defa 7770 {
AzureIoTClient 28:add19eb7defa 7771 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7772 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7773 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7774 {
AzureIoTClient 23:1111ee8bcba4 7775 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7776 }
AzureIoTClient 23:1111ee8bcba4 7777 else
AzureIoTClient 23:1111ee8bcba4 7778 {
AzureIoTClient 23:1111ee8bcba4 7779 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 7780 {
AzureIoTClient 28:add19eb7defa 7781 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7782 }
AzureIoTClient 28:add19eb7defa 7783 else
AzureIoTClient 28:add19eb7defa 7784 {
AzureIoTClient 28:add19eb7defa 7785 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 7786 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7787 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7788 {
AzureIoTClient 28:add19eb7defa 7789 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7790 }
AzureIoTClient 28:add19eb7defa 7791 else
AzureIoTClient 28:add19eb7defa 7792 {
AzureIoTClient 28:add19eb7defa 7793 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7794 if ((get_single_value_result = amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 7795 {
AzureIoTClient 28:add19eb7defa 7796 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7797 }
AzureIoTClient 28:add19eb7defa 7798 else
AzureIoTClient 28:add19eb7defa 7799 {
AzureIoTClient 28:add19eb7defa 7800 result = 0;
AzureIoTClient 28:add19eb7defa 7801 }
AzureIoTClient 28:add19eb7defa 7802 }
AzureIoTClient 28:add19eb7defa 7803 }
AzureIoTClient 28:add19eb7defa 7804 }
AzureIoTClient 28:add19eb7defa 7805 }
AzureIoTClient 28:add19eb7defa 7806
AzureIoTClient 28:add19eb7defa 7807 return result;
Azure.IoT Build 0:6ae2f7bca550 7808 }
Azure.IoT Build 0:6ae2f7bca550 7809
Azure.IoT Build 0:6ae2f7bca550 7810 int transfer_set_rcv_settle_mode(TRANSFER_HANDLE transfer, receiver_settle_mode rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 7811 {
AzureIoTClient 28:add19eb7defa 7812 int result;
AzureIoTClient 28:add19eb7defa 7813
AzureIoTClient 28:add19eb7defa 7814 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7815 {
AzureIoTClient 28:add19eb7defa 7816 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7817 }
AzureIoTClient 28:add19eb7defa 7818 else
AzureIoTClient 28:add19eb7defa 7819 {
AzureIoTClient 28:add19eb7defa 7820 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7821 AMQP_VALUE rcv_settle_mode_amqp_value = amqpvalue_create_receiver_settle_mode(rcv_settle_mode_value);
AzureIoTClient 28:add19eb7defa 7822 if (rcv_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7823 {
AzureIoTClient 28:add19eb7defa 7824 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7825 }
AzureIoTClient 28:add19eb7defa 7826 else
AzureIoTClient 28:add19eb7defa 7827 {
AzureIoTClient 28:add19eb7defa 7828 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 6, rcv_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7829 {
AzureIoTClient 28:add19eb7defa 7830 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7831 }
AzureIoTClient 28:add19eb7defa 7832 else
AzureIoTClient 28:add19eb7defa 7833 {
AzureIoTClient 28:add19eb7defa 7834 result = 0;
AzureIoTClient 28:add19eb7defa 7835 }
AzureIoTClient 28:add19eb7defa 7836
AzureIoTClient 28:add19eb7defa 7837 amqpvalue_destroy(rcv_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 7838 }
AzureIoTClient 28:add19eb7defa 7839 }
AzureIoTClient 28:add19eb7defa 7840
AzureIoTClient 28:add19eb7defa 7841 return result;
Azure.IoT Build 0:6ae2f7bca550 7842 }
Azure.IoT Build 0:6ae2f7bca550 7843
Azure.IoT Build 0:6ae2f7bca550 7844 int transfer_get_state(TRANSFER_HANDLE transfer, AMQP_VALUE* state_value)
Azure.IoT Build 0:6ae2f7bca550 7845 {
AzureIoTClient 28:add19eb7defa 7846 int result;
AzureIoTClient 28:add19eb7defa 7847
AzureIoTClient 28:add19eb7defa 7848 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7849 {
AzureIoTClient 28:add19eb7defa 7850 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7851 }
AzureIoTClient 28:add19eb7defa 7852 else
AzureIoTClient 28:add19eb7defa 7853 {
AzureIoTClient 28:add19eb7defa 7854 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7855 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7856 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7857 {
AzureIoTClient 23:1111ee8bcba4 7858 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7859 }
AzureIoTClient 23:1111ee8bcba4 7860 else
AzureIoTClient 23:1111ee8bcba4 7861 {
AzureIoTClient 23:1111ee8bcba4 7862 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 7863 {
AzureIoTClient 28:add19eb7defa 7864 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7865 }
AzureIoTClient 28:add19eb7defa 7866 else
AzureIoTClient 28:add19eb7defa 7867 {
AzureIoTClient 28:add19eb7defa 7868 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 7869 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7870 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7871 {
AzureIoTClient 28:add19eb7defa 7872 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7873 }
AzureIoTClient 28:add19eb7defa 7874 else
AzureIoTClient 28:add19eb7defa 7875 {
AzureIoTClient 28:add19eb7defa 7876 *state_value = item_value;
AzureIoTClient 28:add19eb7defa 7877 result = 0;
AzureIoTClient 28:add19eb7defa 7878 }
AzureIoTClient 28:add19eb7defa 7879 }
AzureIoTClient 28:add19eb7defa 7880 }
AzureIoTClient 28:add19eb7defa 7881 }
AzureIoTClient 28:add19eb7defa 7882
AzureIoTClient 28:add19eb7defa 7883 return result;
Azure.IoT Build 0:6ae2f7bca550 7884 }
Azure.IoT Build 0:6ae2f7bca550 7885
Azure.IoT Build 0:6ae2f7bca550 7886 int transfer_set_state(TRANSFER_HANDLE transfer, AMQP_VALUE state_value)
Azure.IoT Build 0:6ae2f7bca550 7887 {
AzureIoTClient 28:add19eb7defa 7888 int result;
AzureIoTClient 28:add19eb7defa 7889
AzureIoTClient 28:add19eb7defa 7890 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7891 {
AzureIoTClient 28:add19eb7defa 7892 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7893 }
AzureIoTClient 28:add19eb7defa 7894 else
AzureIoTClient 28:add19eb7defa 7895 {
AzureIoTClient 28:add19eb7defa 7896 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7897 AMQP_VALUE state_amqp_value;
AzureIoTClient 23:1111ee8bcba4 7898 if (state_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7899 {
AzureIoTClient 23:1111ee8bcba4 7900 state_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 7901 }
AzureIoTClient 23:1111ee8bcba4 7902 else
AzureIoTClient 23:1111ee8bcba4 7903 {
AzureIoTClient 23:1111ee8bcba4 7904 state_amqp_value = amqpvalue_clone(state_value);
AzureIoTClient 23:1111ee8bcba4 7905 }
AzureIoTClient 28:add19eb7defa 7906 if (state_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7907 {
AzureIoTClient 28:add19eb7defa 7908 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7909 }
AzureIoTClient 28:add19eb7defa 7910 else
AzureIoTClient 28:add19eb7defa 7911 {
AzureIoTClient 28:add19eb7defa 7912 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 7, state_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7913 {
AzureIoTClient 28:add19eb7defa 7914 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7915 }
AzureIoTClient 28:add19eb7defa 7916 else
AzureIoTClient 28:add19eb7defa 7917 {
AzureIoTClient 28:add19eb7defa 7918 result = 0;
AzureIoTClient 28:add19eb7defa 7919 }
AzureIoTClient 28:add19eb7defa 7920
AzureIoTClient 28:add19eb7defa 7921 amqpvalue_destroy(state_amqp_value);
AzureIoTClient 28:add19eb7defa 7922 }
AzureIoTClient 28:add19eb7defa 7923 }
AzureIoTClient 28:add19eb7defa 7924
AzureIoTClient 28:add19eb7defa 7925 return result;
Azure.IoT Build 0:6ae2f7bca550 7926 }
Azure.IoT Build 0:6ae2f7bca550 7927
Azure.IoT Build 0:6ae2f7bca550 7928 int transfer_get_resume(TRANSFER_HANDLE transfer, bool* resume_value)
Azure.IoT Build 0:6ae2f7bca550 7929 {
AzureIoTClient 28:add19eb7defa 7930 int result;
AzureIoTClient 28:add19eb7defa 7931
AzureIoTClient 28:add19eb7defa 7932 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7933 {
AzureIoTClient 28:add19eb7defa 7934 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7935 }
AzureIoTClient 28:add19eb7defa 7936 else
AzureIoTClient 28:add19eb7defa 7937 {
AzureIoTClient 28:add19eb7defa 7938 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7939 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7940 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7941 {
AzureIoTClient 23:1111ee8bcba4 7942 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7943 }
AzureIoTClient 23:1111ee8bcba4 7944 else
AzureIoTClient 23:1111ee8bcba4 7945 {
AzureIoTClient 23:1111ee8bcba4 7946 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 7947 {
AzureIoTClient 28:add19eb7defa 7948 *resume_value = false;
AzureIoTClient 28:add19eb7defa 7949 result = 0;
AzureIoTClient 28:add19eb7defa 7950 }
AzureIoTClient 28:add19eb7defa 7951 else
AzureIoTClient 28:add19eb7defa 7952 {
AzureIoTClient 28:add19eb7defa 7953 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 7954 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7955 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7956 {
AzureIoTClient 28:add19eb7defa 7957 *resume_value = false;
AzureIoTClient 28:add19eb7defa 7958 result = 0;
AzureIoTClient 28:add19eb7defa 7959 }
AzureIoTClient 28:add19eb7defa 7960 else
AzureIoTClient 28:add19eb7defa 7961 {
AzureIoTClient 28:add19eb7defa 7962 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7963 if ((get_single_value_result = amqpvalue_get_boolean(item_value, resume_value)) != 0)
AzureIoTClient 28:add19eb7defa 7964 {
AzureIoTClient 23:1111ee8bcba4 7965 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7966 {
AzureIoTClient 28:add19eb7defa 7967 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7968 }
AzureIoTClient 28:add19eb7defa 7969 else
AzureIoTClient 28:add19eb7defa 7970 {
AzureIoTClient 28:add19eb7defa 7971 *resume_value = false;
AzureIoTClient 23:1111ee8bcba4 7972 result = 0;
AzureIoTClient 23:1111ee8bcba4 7973 }
AzureIoTClient 28:add19eb7defa 7974 }
AzureIoTClient 28:add19eb7defa 7975 else
AzureIoTClient 28:add19eb7defa 7976 {
AzureIoTClient 28:add19eb7defa 7977 result = 0;
AzureIoTClient 28:add19eb7defa 7978 }
AzureIoTClient 28:add19eb7defa 7979 }
AzureIoTClient 28:add19eb7defa 7980 }
AzureIoTClient 28:add19eb7defa 7981 }
AzureIoTClient 28:add19eb7defa 7982 }
AzureIoTClient 28:add19eb7defa 7983
AzureIoTClient 28:add19eb7defa 7984 return result;
Azure.IoT Build 0:6ae2f7bca550 7985 }
Azure.IoT Build 0:6ae2f7bca550 7986
Azure.IoT Build 0:6ae2f7bca550 7987 int transfer_set_resume(TRANSFER_HANDLE transfer, bool resume_value)
Azure.IoT Build 0:6ae2f7bca550 7988 {
AzureIoTClient 28:add19eb7defa 7989 int result;
AzureIoTClient 28:add19eb7defa 7990
AzureIoTClient 28:add19eb7defa 7991 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7992 {
AzureIoTClient 28:add19eb7defa 7993 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7994 }
AzureIoTClient 28:add19eb7defa 7995 else
AzureIoTClient 28:add19eb7defa 7996 {
AzureIoTClient 28:add19eb7defa 7997 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7998 AMQP_VALUE resume_amqp_value = amqpvalue_create_boolean(resume_value);
AzureIoTClient 28:add19eb7defa 7999 if (resume_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8000 {
AzureIoTClient 28:add19eb7defa 8001 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8002 }
AzureIoTClient 28:add19eb7defa 8003 else
AzureIoTClient 28:add19eb7defa 8004 {
AzureIoTClient 28:add19eb7defa 8005 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 8, resume_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8006 {
AzureIoTClient 28:add19eb7defa 8007 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8008 }
AzureIoTClient 28:add19eb7defa 8009 else
AzureIoTClient 28:add19eb7defa 8010 {
AzureIoTClient 28:add19eb7defa 8011 result = 0;
AzureIoTClient 28:add19eb7defa 8012 }
AzureIoTClient 28:add19eb7defa 8013
AzureIoTClient 28:add19eb7defa 8014 amqpvalue_destroy(resume_amqp_value);
AzureIoTClient 28:add19eb7defa 8015 }
AzureIoTClient 28:add19eb7defa 8016 }
AzureIoTClient 28:add19eb7defa 8017
AzureIoTClient 28:add19eb7defa 8018 return result;
Azure.IoT Build 0:6ae2f7bca550 8019 }
Azure.IoT Build 0:6ae2f7bca550 8020
Azure.IoT Build 0:6ae2f7bca550 8021 int transfer_get_aborted(TRANSFER_HANDLE transfer, bool* aborted_value)
Azure.IoT Build 0:6ae2f7bca550 8022 {
AzureIoTClient 28:add19eb7defa 8023 int result;
AzureIoTClient 28:add19eb7defa 8024
AzureIoTClient 28:add19eb7defa 8025 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8026 {
AzureIoTClient 28:add19eb7defa 8027 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8028 }
AzureIoTClient 28:add19eb7defa 8029 else
AzureIoTClient 28:add19eb7defa 8030 {
AzureIoTClient 28:add19eb7defa 8031 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8032 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 8033 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8034 {
AzureIoTClient 23:1111ee8bcba4 8035 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8036 }
AzureIoTClient 23:1111ee8bcba4 8037 else
AzureIoTClient 23:1111ee8bcba4 8038 {
AzureIoTClient 23:1111ee8bcba4 8039 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 8040 {
AzureIoTClient 28:add19eb7defa 8041 *aborted_value = false;
AzureIoTClient 28:add19eb7defa 8042 result = 0;
AzureIoTClient 28:add19eb7defa 8043 }
AzureIoTClient 28:add19eb7defa 8044 else
AzureIoTClient 28:add19eb7defa 8045 {
AzureIoTClient 28:add19eb7defa 8046 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 8047 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8048 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8049 {
AzureIoTClient 28:add19eb7defa 8050 *aborted_value = false;
AzureIoTClient 28:add19eb7defa 8051 result = 0;
AzureIoTClient 28:add19eb7defa 8052 }
AzureIoTClient 28:add19eb7defa 8053 else
AzureIoTClient 28:add19eb7defa 8054 {
AzureIoTClient 28:add19eb7defa 8055 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8056 if ((get_single_value_result = amqpvalue_get_boolean(item_value, aborted_value)) != 0)
AzureIoTClient 28:add19eb7defa 8057 {
AzureIoTClient 23:1111ee8bcba4 8058 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8059 {
AzureIoTClient 28:add19eb7defa 8060 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8061 }
AzureIoTClient 28:add19eb7defa 8062 else
AzureIoTClient 28:add19eb7defa 8063 {
AzureIoTClient 28:add19eb7defa 8064 *aborted_value = false;
AzureIoTClient 23:1111ee8bcba4 8065 result = 0;
AzureIoTClient 23:1111ee8bcba4 8066 }
AzureIoTClient 28:add19eb7defa 8067 }
AzureIoTClient 28:add19eb7defa 8068 else
AzureIoTClient 28:add19eb7defa 8069 {
AzureIoTClient 28:add19eb7defa 8070 result = 0;
AzureIoTClient 28:add19eb7defa 8071 }
AzureIoTClient 28:add19eb7defa 8072 }
AzureIoTClient 28:add19eb7defa 8073 }
AzureIoTClient 28:add19eb7defa 8074 }
AzureIoTClient 28:add19eb7defa 8075 }
AzureIoTClient 28:add19eb7defa 8076
AzureIoTClient 28:add19eb7defa 8077 return result;
Azure.IoT Build 0:6ae2f7bca550 8078 }
Azure.IoT Build 0:6ae2f7bca550 8079
Azure.IoT Build 0:6ae2f7bca550 8080 int transfer_set_aborted(TRANSFER_HANDLE transfer, bool aborted_value)
Azure.IoT Build 0:6ae2f7bca550 8081 {
AzureIoTClient 28:add19eb7defa 8082 int result;
AzureIoTClient 28:add19eb7defa 8083
AzureIoTClient 28:add19eb7defa 8084 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8085 {
AzureIoTClient 28:add19eb7defa 8086 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8087 }
AzureIoTClient 28:add19eb7defa 8088 else
AzureIoTClient 28:add19eb7defa 8089 {
AzureIoTClient 28:add19eb7defa 8090 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 8091 AMQP_VALUE aborted_amqp_value = amqpvalue_create_boolean(aborted_value);
AzureIoTClient 28:add19eb7defa 8092 if (aborted_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8093 {
AzureIoTClient 28:add19eb7defa 8094 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8095 }
AzureIoTClient 28:add19eb7defa 8096 else
AzureIoTClient 28:add19eb7defa 8097 {
AzureIoTClient 28:add19eb7defa 8098 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 9, aborted_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8099 {
AzureIoTClient 28:add19eb7defa 8100 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8101 }
AzureIoTClient 28:add19eb7defa 8102 else
AzureIoTClient 28:add19eb7defa 8103 {
AzureIoTClient 28:add19eb7defa 8104 result = 0;
AzureIoTClient 28:add19eb7defa 8105 }
AzureIoTClient 28:add19eb7defa 8106
AzureIoTClient 28:add19eb7defa 8107 amqpvalue_destroy(aborted_amqp_value);
AzureIoTClient 28:add19eb7defa 8108 }
AzureIoTClient 28:add19eb7defa 8109 }
AzureIoTClient 28:add19eb7defa 8110
AzureIoTClient 28:add19eb7defa 8111 return result;
Azure.IoT Build 0:6ae2f7bca550 8112 }
Azure.IoT Build 0:6ae2f7bca550 8113
Azure.IoT Build 0:6ae2f7bca550 8114 int transfer_get_batchable(TRANSFER_HANDLE transfer, bool* batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8115 {
AzureIoTClient 28:add19eb7defa 8116 int result;
AzureIoTClient 28:add19eb7defa 8117
AzureIoTClient 28:add19eb7defa 8118 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8119 {
AzureIoTClient 28:add19eb7defa 8120 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8121 }
AzureIoTClient 28:add19eb7defa 8122 else
AzureIoTClient 28:add19eb7defa 8123 {
AzureIoTClient 28:add19eb7defa 8124 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8125 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 8126 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8127 {
AzureIoTClient 23:1111ee8bcba4 8128 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8129 }
AzureIoTClient 23:1111ee8bcba4 8130 else
AzureIoTClient 23:1111ee8bcba4 8131 {
AzureIoTClient 23:1111ee8bcba4 8132 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 8133 {
AzureIoTClient 28:add19eb7defa 8134 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8135 result = 0;
AzureIoTClient 28:add19eb7defa 8136 }
AzureIoTClient 28:add19eb7defa 8137 else
AzureIoTClient 28:add19eb7defa 8138 {
AzureIoTClient 28:add19eb7defa 8139 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 8140 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8141 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8142 {
AzureIoTClient 28:add19eb7defa 8143 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8144 result = 0;
AzureIoTClient 28:add19eb7defa 8145 }
AzureIoTClient 28:add19eb7defa 8146 else
AzureIoTClient 28:add19eb7defa 8147 {
AzureIoTClient 28:add19eb7defa 8148 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8149 if ((get_single_value_result = amqpvalue_get_boolean(item_value, batchable_value)) != 0)
AzureIoTClient 28:add19eb7defa 8150 {
AzureIoTClient 23:1111ee8bcba4 8151 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8152 {
AzureIoTClient 28:add19eb7defa 8153 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8154 }
AzureIoTClient 28:add19eb7defa 8155 else
AzureIoTClient 28:add19eb7defa 8156 {
AzureIoTClient 28:add19eb7defa 8157 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 8158 result = 0;
AzureIoTClient 23:1111ee8bcba4 8159 }
AzureIoTClient 28:add19eb7defa 8160 }
AzureIoTClient 28:add19eb7defa 8161 else
AzureIoTClient 28:add19eb7defa 8162 {
AzureIoTClient 28:add19eb7defa 8163 result = 0;
AzureIoTClient 28:add19eb7defa 8164 }
AzureIoTClient 28:add19eb7defa 8165 }
AzureIoTClient 28:add19eb7defa 8166 }
AzureIoTClient 28:add19eb7defa 8167 }
AzureIoTClient 28:add19eb7defa 8168 }
AzureIoTClient 28:add19eb7defa 8169
AzureIoTClient 28:add19eb7defa 8170 return result;
Azure.IoT Build 0:6ae2f7bca550 8171 }
Azure.IoT Build 0:6ae2f7bca550 8172
Azure.IoT Build 0:6ae2f7bca550 8173 int transfer_set_batchable(TRANSFER_HANDLE transfer, bool batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8174 {
AzureIoTClient 28:add19eb7defa 8175 int result;
AzureIoTClient 28:add19eb7defa 8176
AzureIoTClient 28:add19eb7defa 8177 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8178 {
AzureIoTClient 28:add19eb7defa 8179 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8180 }
AzureIoTClient 28:add19eb7defa 8181 else
AzureIoTClient 28:add19eb7defa 8182 {
AzureIoTClient 28:add19eb7defa 8183 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 8184 AMQP_VALUE batchable_amqp_value = amqpvalue_create_boolean(batchable_value);
AzureIoTClient 28:add19eb7defa 8185 if (batchable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8186 {
AzureIoTClient 28:add19eb7defa 8187 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8188 }
AzureIoTClient 28:add19eb7defa 8189 else
AzureIoTClient 28:add19eb7defa 8190 {
AzureIoTClient 28:add19eb7defa 8191 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 10, batchable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8192 {
AzureIoTClient 28:add19eb7defa 8193 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8194 }
AzureIoTClient 28:add19eb7defa 8195 else
AzureIoTClient 28:add19eb7defa 8196 {
AzureIoTClient 28:add19eb7defa 8197 result = 0;
AzureIoTClient 28:add19eb7defa 8198 }
AzureIoTClient 28:add19eb7defa 8199
AzureIoTClient 28:add19eb7defa 8200 amqpvalue_destroy(batchable_amqp_value);
AzureIoTClient 28:add19eb7defa 8201 }
AzureIoTClient 28:add19eb7defa 8202 }
AzureIoTClient 28:add19eb7defa 8203
AzureIoTClient 28:add19eb7defa 8204 return result;
Azure.IoT Build 0:6ae2f7bca550 8205 }
Azure.IoT Build 0:6ae2f7bca550 8206
Azure.IoT Build 0:6ae2f7bca550 8207
Azure.IoT Build 0:6ae2f7bca550 8208 /* disposition */
Azure.IoT Build 0:6ae2f7bca550 8209
Azure.IoT Build 0:6ae2f7bca550 8210 typedef struct DISPOSITION_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 8211 {
AzureIoTClient 28:add19eb7defa 8212 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 8213 } DISPOSITION_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 8214
Azure.IoT Build 0:6ae2f7bca550 8215 static DISPOSITION_HANDLE disposition_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 8216 {
AzureIoTClient 28:add19eb7defa 8217 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8218 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8219 {
AzureIoTClient 28:add19eb7defa 8220 disposition_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 8221 }
AzureIoTClient 28:add19eb7defa 8222
AzureIoTClient 28:add19eb7defa 8223 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8224 }
Azure.IoT Build 0:6ae2f7bca550 8225
Azure.IoT Build 0:6ae2f7bca550 8226 DISPOSITION_HANDLE disposition_create(role role_value, delivery_number first_value)
Azure.IoT Build 0:6ae2f7bca550 8227 {
AzureIoTClient 28:add19eb7defa 8228 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8229 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8230 {
AzureIoTClient 28:add19eb7defa 8231 disposition_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(21);
AzureIoTClient 28:add19eb7defa 8232 if (disposition_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 8233 {
AzureIoTClient 28:add19eb7defa 8234 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8235 disposition_instance = NULL;
AzureIoTClient 28:add19eb7defa 8236 }
AzureIoTClient 28:add19eb7defa 8237 else
AzureIoTClient 28:add19eb7defa 8238 {
AzureIoTClient 28:add19eb7defa 8239 AMQP_VALUE role_amqp_value;
AzureIoTClient 28:add19eb7defa 8240 AMQP_VALUE first_amqp_value;
AzureIoTClient 28:add19eb7defa 8241 int result = 0;
AzureIoTClient 28:add19eb7defa 8242
AzureIoTClient 28:add19eb7defa 8243 role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 8244 if ((result == 0) && (amqpvalue_set_composite_item(disposition_instance->composite_value, 0, role_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 8245 {
AzureIoTClient 28:add19eb7defa 8246 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8247 }
AzureIoTClient 28:add19eb7defa 8248 first_amqp_value = amqpvalue_create_delivery_number(first_value);
AzureIoTClient 28:add19eb7defa 8249 if ((result == 0) && (amqpvalue_set_composite_item(disposition_instance->composite_value, 1, first_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 8250 {
AzureIoTClient 28:add19eb7defa 8251 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8252 }
AzureIoTClient 28:add19eb7defa 8253
AzureIoTClient 28:add19eb7defa 8254 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 8255 amqpvalue_destroy(first_amqp_value);
AzureIoTClient 28:add19eb7defa 8256 }
AzureIoTClient 28:add19eb7defa 8257 }
AzureIoTClient 28:add19eb7defa 8258
AzureIoTClient 28:add19eb7defa 8259 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8260 }
Azure.IoT Build 0:6ae2f7bca550 8261
Azure.IoT Build 0:6ae2f7bca550 8262 DISPOSITION_HANDLE disposition_clone(DISPOSITION_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 8263 {
AzureIoTClient 28:add19eb7defa 8264 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8265 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8266 {
AzureIoTClient 28:add19eb7defa 8267 disposition_instance->composite_value = amqpvalue_clone(((DISPOSITION_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 8268 if (disposition_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 8269 {
AzureIoTClient 28:add19eb7defa 8270 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8271 disposition_instance = NULL;
AzureIoTClient 28:add19eb7defa 8272 }
AzureIoTClient 28:add19eb7defa 8273 }
AzureIoTClient 28:add19eb7defa 8274
AzureIoTClient 28:add19eb7defa 8275 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8276 }
Azure.IoT Build 0:6ae2f7bca550 8277
Azure.IoT Build 0:6ae2f7bca550 8278 void disposition_destroy(DISPOSITION_HANDLE disposition)
Azure.IoT Build 0:6ae2f7bca550 8279 {
AzureIoTClient 28:add19eb7defa 8280 if (disposition != NULL)
AzureIoTClient 28:add19eb7defa 8281 {
AzureIoTClient 28:add19eb7defa 8282 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8283 amqpvalue_destroy(disposition_instance->composite_value);
AzureIoTClient 28:add19eb7defa 8284 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8285 }
Azure.IoT Build 0:6ae2f7bca550 8286 }
Azure.IoT Build 0:6ae2f7bca550 8287
Azure.IoT Build 0:6ae2f7bca550 8288 AMQP_VALUE amqpvalue_create_disposition(DISPOSITION_HANDLE disposition)
Azure.IoT Build 0:6ae2f7bca550 8289 {
AzureIoTClient 28:add19eb7defa 8290 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 8291
AzureIoTClient 28:add19eb7defa 8292 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8293 {
AzureIoTClient 28:add19eb7defa 8294 result = NULL;
AzureIoTClient 28:add19eb7defa 8295 }
AzureIoTClient 28:add19eb7defa 8296 else
AzureIoTClient 28:add19eb7defa 8297 {
AzureIoTClient 28:add19eb7defa 8298 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8299 result = amqpvalue_clone(disposition_instance->composite_value);
AzureIoTClient 28:add19eb7defa 8300 }
AzureIoTClient 28:add19eb7defa 8301
AzureIoTClient 28:add19eb7defa 8302 return result;
Azure.IoT Build 0:6ae2f7bca550 8303 }
Azure.IoT Build 0:6ae2f7bca550 8304
Azure.IoT Build 0:6ae2f7bca550 8305 bool is_disposition_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 8306 {
AzureIoTClient 28:add19eb7defa 8307 bool result;
AzureIoTClient 28:add19eb7defa 8308
AzureIoTClient 28:add19eb7defa 8309 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 8310 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 8311 (descriptor_ulong == 21))
AzureIoTClient 28:add19eb7defa 8312 {
AzureIoTClient 28:add19eb7defa 8313 result = true;
AzureIoTClient 28:add19eb7defa 8314 }
AzureIoTClient 28:add19eb7defa 8315 else
AzureIoTClient 28:add19eb7defa 8316 {
AzureIoTClient 28:add19eb7defa 8317 result = false;
AzureIoTClient 28:add19eb7defa 8318 }
AzureIoTClient 28:add19eb7defa 8319
AzureIoTClient 28:add19eb7defa 8320 return result;
Azure.IoT Build 0:6ae2f7bca550 8321 }
Azure.IoT Build 0:6ae2f7bca550 8322
Azure.IoT Build 0:6ae2f7bca550 8323
Azure.IoT Build 0:6ae2f7bca550 8324 int amqpvalue_get_disposition(AMQP_VALUE value, DISPOSITION_HANDLE* disposition_handle)
Azure.IoT Build 0:6ae2f7bca550 8325 {
AzureIoTClient 28:add19eb7defa 8326 int result;
AzureIoTClient 28:add19eb7defa 8327 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition_create_internal();
AzureIoTClient 28:add19eb7defa 8328 *disposition_handle = disposition_instance;
AzureIoTClient 28:add19eb7defa 8329 if (*disposition_handle == NULL)
AzureIoTClient 28:add19eb7defa 8330 {
AzureIoTClient 28:add19eb7defa 8331 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8332 }
AzureIoTClient 28:add19eb7defa 8333 else
AzureIoTClient 28:add19eb7defa 8334 {
AzureIoTClient 28:add19eb7defa 8335 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 8336 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 8337 {
AzureIoTClient 28:add19eb7defa 8338 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8339 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8340 }
AzureIoTClient 28:add19eb7defa 8341 else
AzureIoTClient 28:add19eb7defa 8342 {
AzureIoTClient 23:1111ee8bcba4 8343 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 8344 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8345 {
AzureIoTClient 23:1111ee8bcba4 8346 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8347 }
AzureIoTClient 23:1111ee8bcba4 8348 else
AzureIoTClient 23:1111ee8bcba4 8349 {
AzureIoTClient 28:add19eb7defa 8350 do
AzureIoTClient 28:add19eb7defa 8351 {
AzureIoTClient 28:add19eb7defa 8352 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 8353 /* role */
AzureIoTClient 28:add19eb7defa 8354 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 8355 {
AzureIoTClient 23:1111ee8bcba4 8356 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 8357 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8358 {
AzureIoTClient 28:add19eb7defa 8359 {
AzureIoTClient 28:add19eb7defa 8360 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8361 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8362 break;
AzureIoTClient 28:add19eb7defa 8363 }
AzureIoTClient 28:add19eb7defa 8364 }
AzureIoTClient 28:add19eb7defa 8365 else
AzureIoTClient 28:add19eb7defa 8366 {
AzureIoTClient 28:add19eb7defa 8367 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8368 {
AzureIoTClient 28:add19eb7defa 8369 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8370 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8371 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8372 break;
AzureIoTClient 28:add19eb7defa 8373 }
AzureIoTClient 28:add19eb7defa 8374 else
AzureIoTClient 28:add19eb7defa 8375 {
AzureIoTClient 28:add19eb7defa 8376 role role;
AzureIoTClient 28:add19eb7defa 8377 if (amqpvalue_get_role(item_value, &role) != 0)
AzureIoTClient 28:add19eb7defa 8378 {
AzureIoTClient 28:add19eb7defa 8379 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8380 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8382 break;
AzureIoTClient 28:add19eb7defa 8383 }
AzureIoTClient 28:add19eb7defa 8384 }
AzureIoTClient 28:add19eb7defa 8385
AzureIoTClient 28:add19eb7defa 8386 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8387 }
AzureIoTClient 28:add19eb7defa 8388 }
AzureIoTClient 28:add19eb7defa 8389 else
AzureIoTClient 28:add19eb7defa 8390 {
AzureIoTClient 28:add19eb7defa 8391 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8392 }
AzureIoTClient 28:add19eb7defa 8393 /* first */
AzureIoTClient 28:add19eb7defa 8394 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 8395 {
AzureIoTClient 23:1111ee8bcba4 8396 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 8397 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8398 {
AzureIoTClient 28:add19eb7defa 8399 {
AzureIoTClient 28:add19eb7defa 8400 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8401 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8402 break;
AzureIoTClient 28:add19eb7defa 8403 }
AzureIoTClient 28:add19eb7defa 8404 }
AzureIoTClient 28:add19eb7defa 8405 else
AzureIoTClient 28:add19eb7defa 8406 {
AzureIoTClient 28:add19eb7defa 8407 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8408 {
AzureIoTClient 28:add19eb7defa 8409 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8410 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8411 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8412 break;
AzureIoTClient 28:add19eb7defa 8413 }
AzureIoTClient 28:add19eb7defa 8414 else
AzureIoTClient 28:add19eb7defa 8415 {
AzureIoTClient 28:add19eb7defa 8416 delivery_number first;
AzureIoTClient 28:add19eb7defa 8417 if (amqpvalue_get_delivery_number(item_value, &first) != 0)
AzureIoTClient 28:add19eb7defa 8418 {
AzureIoTClient 28:add19eb7defa 8419 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8420 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8421 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8422 break;
AzureIoTClient 28:add19eb7defa 8423 }
AzureIoTClient 28:add19eb7defa 8424 }
AzureIoTClient 28:add19eb7defa 8425
AzureIoTClient 28:add19eb7defa 8426 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8427 }
AzureIoTClient 28:add19eb7defa 8428 }
AzureIoTClient 28:add19eb7defa 8429 else
AzureIoTClient 28:add19eb7defa 8430 {
AzureIoTClient 28:add19eb7defa 8431 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8432 }
AzureIoTClient 28:add19eb7defa 8433 /* last */
AzureIoTClient 28:add19eb7defa 8434 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 8435 {
AzureIoTClient 23:1111ee8bcba4 8436 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 8437 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8438 {
AzureIoTClient 28:add19eb7defa 8439 /* do nothing */
AzureIoTClient 28:add19eb7defa 8440 }
AzureIoTClient 28:add19eb7defa 8441 else
AzureIoTClient 28:add19eb7defa 8442 {
AzureIoTClient 28:add19eb7defa 8443 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8444 {
AzureIoTClient 28:add19eb7defa 8445 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8446 }
AzureIoTClient 28:add19eb7defa 8447 else
AzureIoTClient 28:add19eb7defa 8448 {
AzureIoTClient 28:add19eb7defa 8449 delivery_number last;
AzureIoTClient 28:add19eb7defa 8450 if (amqpvalue_get_delivery_number(item_value, &last) != 0)
AzureIoTClient 28:add19eb7defa 8451 {
AzureIoTClient 28:add19eb7defa 8452 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8453 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8454 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8455 break;
AzureIoTClient 28:add19eb7defa 8456 }
AzureIoTClient 28:add19eb7defa 8457 }
AzureIoTClient 28:add19eb7defa 8458
AzureIoTClient 28:add19eb7defa 8459 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8460 }
AzureIoTClient 28:add19eb7defa 8461 }
AzureIoTClient 28:add19eb7defa 8462 /* settled */
AzureIoTClient 28:add19eb7defa 8463 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 8464 {
AzureIoTClient 23:1111ee8bcba4 8465 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 8466 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8467 {
AzureIoTClient 28:add19eb7defa 8468 /* do nothing */
AzureIoTClient 28:add19eb7defa 8469 }
AzureIoTClient 28:add19eb7defa 8470 else
AzureIoTClient 28:add19eb7defa 8471 {
AzureIoTClient 28:add19eb7defa 8472 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8473 {
AzureIoTClient 28:add19eb7defa 8474 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8475 }
AzureIoTClient 28:add19eb7defa 8476 else
AzureIoTClient 28:add19eb7defa 8477 {
AzureIoTClient 28:add19eb7defa 8478 bool settled;
AzureIoTClient 28:add19eb7defa 8479 if (amqpvalue_get_boolean(item_value, &settled) != 0)
AzureIoTClient 28:add19eb7defa 8480 {
AzureIoTClient 28:add19eb7defa 8481 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8482 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8483 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8484 break;
AzureIoTClient 28:add19eb7defa 8485 }
AzureIoTClient 28:add19eb7defa 8486 }
AzureIoTClient 28:add19eb7defa 8487
AzureIoTClient 28:add19eb7defa 8488 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8489 }
AzureIoTClient 28:add19eb7defa 8490 }
AzureIoTClient 28:add19eb7defa 8491 /* state */
AzureIoTClient 28:add19eb7defa 8492 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 8493 {
AzureIoTClient 23:1111ee8bcba4 8494 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 8495 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8496 {
AzureIoTClient 28:add19eb7defa 8497 /* do nothing */
AzureIoTClient 28:add19eb7defa 8498 }
AzureIoTClient 28:add19eb7defa 8499 else
AzureIoTClient 28:add19eb7defa 8500 {
AzureIoTClient 28:add19eb7defa 8501 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8502 }
AzureIoTClient 28:add19eb7defa 8503 }
AzureIoTClient 28:add19eb7defa 8504 /* batchable */
AzureIoTClient 28:add19eb7defa 8505 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 8506 {
AzureIoTClient 23:1111ee8bcba4 8507 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 8508 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8509 {
AzureIoTClient 28:add19eb7defa 8510 /* do nothing */
AzureIoTClient 28:add19eb7defa 8511 }
AzureIoTClient 28:add19eb7defa 8512 else
AzureIoTClient 28:add19eb7defa 8513 {
AzureIoTClient 28:add19eb7defa 8514 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8515 {
AzureIoTClient 28:add19eb7defa 8516 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8517 }
AzureIoTClient 28:add19eb7defa 8518 else
AzureIoTClient 28:add19eb7defa 8519 {
AzureIoTClient 28:add19eb7defa 8520 bool batchable;
AzureIoTClient 28:add19eb7defa 8521 if (amqpvalue_get_boolean(item_value, &batchable) != 0)
AzureIoTClient 28:add19eb7defa 8522 {
AzureIoTClient 28:add19eb7defa 8523 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8524 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8525 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8526 break;
AzureIoTClient 28:add19eb7defa 8527 }
AzureIoTClient 28:add19eb7defa 8528 }
AzureIoTClient 28:add19eb7defa 8529
AzureIoTClient 28:add19eb7defa 8530 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8531 }
AzureIoTClient 28:add19eb7defa 8532 }
AzureIoTClient 28:add19eb7defa 8533
AzureIoTClient 28:add19eb7defa 8534 disposition_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 8535
AzureIoTClient 28:add19eb7defa 8536 result = 0;
AzureIoTClient 28:add19eb7defa 8537 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 8538 }
AzureIoTClient 28:add19eb7defa 8539 }
AzureIoTClient 28:add19eb7defa 8540 }
AzureIoTClient 28:add19eb7defa 8541
AzureIoTClient 28:add19eb7defa 8542 return result;
Azure.IoT Build 0:6ae2f7bca550 8543 }
Azure.IoT Build 0:6ae2f7bca550 8544
Azure.IoT Build 0:6ae2f7bca550 8545 int disposition_get_role(DISPOSITION_HANDLE disposition, role* role_value)
Azure.IoT Build 0:6ae2f7bca550 8546 {
AzureIoTClient 28:add19eb7defa 8547 int result;
AzureIoTClient 28:add19eb7defa 8548
AzureIoTClient 28:add19eb7defa 8549 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8550 {
AzureIoTClient 28:add19eb7defa 8551 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8552 }
AzureIoTClient 28:add19eb7defa 8553 else
AzureIoTClient 28:add19eb7defa 8554 {
AzureIoTClient 28:add19eb7defa 8555 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8556 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8557 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8558 {
AzureIoTClient 23:1111ee8bcba4 8559 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8560 }
AzureIoTClient 23:1111ee8bcba4 8561 else
AzureIoTClient 23:1111ee8bcba4 8562 {
AzureIoTClient 23:1111ee8bcba4 8563 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 8564 {
AzureIoTClient 28:add19eb7defa 8565 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8566 }
AzureIoTClient 28:add19eb7defa 8567 else
AzureIoTClient 28:add19eb7defa 8568 {
AzureIoTClient 28:add19eb7defa 8569 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 8570 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8571 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8572 {
AzureIoTClient 28:add19eb7defa 8573 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8574 }
AzureIoTClient 28:add19eb7defa 8575 else
AzureIoTClient 28:add19eb7defa 8576 {
AzureIoTClient 28:add19eb7defa 8577 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8578 if ((get_single_value_result = amqpvalue_get_role(item_value, role_value)) != 0)
AzureIoTClient 28:add19eb7defa 8579 {
AzureIoTClient 28:add19eb7defa 8580 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8581 }
AzureIoTClient 28:add19eb7defa 8582 else
AzureIoTClient 28:add19eb7defa 8583 {
AzureIoTClient 28:add19eb7defa 8584 result = 0;
AzureIoTClient 28:add19eb7defa 8585 }
AzureIoTClient 28:add19eb7defa 8586 }
AzureIoTClient 28:add19eb7defa 8587 }
AzureIoTClient 28:add19eb7defa 8588 }
AzureIoTClient 28:add19eb7defa 8589 }
AzureIoTClient 28:add19eb7defa 8590
AzureIoTClient 28:add19eb7defa 8591 return result;
Azure.IoT Build 0:6ae2f7bca550 8592 }
Azure.IoT Build 0:6ae2f7bca550 8593
Azure.IoT Build 0:6ae2f7bca550 8594 int disposition_set_role(DISPOSITION_HANDLE disposition, role role_value)
Azure.IoT Build 0:6ae2f7bca550 8595 {
AzureIoTClient 28:add19eb7defa 8596 int result;
AzureIoTClient 28:add19eb7defa 8597
AzureIoTClient 28:add19eb7defa 8598 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8599 {
AzureIoTClient 28:add19eb7defa 8600 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8601 }
AzureIoTClient 28:add19eb7defa 8602 else
AzureIoTClient 28:add19eb7defa 8603 {
AzureIoTClient 28:add19eb7defa 8604 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8605 AMQP_VALUE role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 8606 if (role_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8607 {
AzureIoTClient 28:add19eb7defa 8608 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8609 }
AzureIoTClient 28:add19eb7defa 8610 else
AzureIoTClient 28:add19eb7defa 8611 {
AzureIoTClient 28:add19eb7defa 8612 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 0, role_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8613 {
AzureIoTClient 28:add19eb7defa 8614 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8615 }
AzureIoTClient 28:add19eb7defa 8616 else
AzureIoTClient 28:add19eb7defa 8617 {
AzureIoTClient 28:add19eb7defa 8618 result = 0;
AzureIoTClient 28:add19eb7defa 8619 }
AzureIoTClient 28:add19eb7defa 8620
AzureIoTClient 28:add19eb7defa 8621 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 8622 }
AzureIoTClient 28:add19eb7defa 8623 }
AzureIoTClient 28:add19eb7defa 8624
AzureIoTClient 28:add19eb7defa 8625 return result;
Azure.IoT Build 0:6ae2f7bca550 8626 }
Azure.IoT Build 0:6ae2f7bca550 8627
Azure.IoT Build 0:6ae2f7bca550 8628 int disposition_get_first(DISPOSITION_HANDLE disposition, delivery_number* first_value)
Azure.IoT Build 0:6ae2f7bca550 8629 {
AzureIoTClient 28:add19eb7defa 8630 int result;
AzureIoTClient 28:add19eb7defa 8631
AzureIoTClient 28:add19eb7defa 8632 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8633 {
AzureIoTClient 28:add19eb7defa 8634 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8635 }
AzureIoTClient 28:add19eb7defa 8636 else
AzureIoTClient 28:add19eb7defa 8637 {
AzureIoTClient 28:add19eb7defa 8638 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8639 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8640 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8641 {
AzureIoTClient 23:1111ee8bcba4 8642 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8643 }
AzureIoTClient 23:1111ee8bcba4 8644 else
AzureIoTClient 23:1111ee8bcba4 8645 {
AzureIoTClient 23:1111ee8bcba4 8646 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 8647 {
AzureIoTClient 28:add19eb7defa 8648 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8649 }
AzureIoTClient 28:add19eb7defa 8650 else
AzureIoTClient 28:add19eb7defa 8651 {
AzureIoTClient 28:add19eb7defa 8652 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 8653 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8654 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8655 {
AzureIoTClient 28:add19eb7defa 8656 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8657 }
AzureIoTClient 28:add19eb7defa 8658 else
AzureIoTClient 28:add19eb7defa 8659 {
AzureIoTClient 28:add19eb7defa 8660 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8661 if ((get_single_value_result = amqpvalue_get_delivery_number(item_value, first_value)) != 0)
AzureIoTClient 28:add19eb7defa 8662 {
AzureIoTClient 28:add19eb7defa 8663 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8664 }
AzureIoTClient 28:add19eb7defa 8665 else
AzureIoTClient 28:add19eb7defa 8666 {
AzureIoTClient 28:add19eb7defa 8667 result = 0;
AzureIoTClient 28:add19eb7defa 8668 }
AzureIoTClient 28:add19eb7defa 8669 }
AzureIoTClient 28:add19eb7defa 8670 }
AzureIoTClient 28:add19eb7defa 8671 }
AzureIoTClient 28:add19eb7defa 8672 }
AzureIoTClient 28:add19eb7defa 8673
AzureIoTClient 28:add19eb7defa 8674 return result;
Azure.IoT Build 0:6ae2f7bca550 8675 }
Azure.IoT Build 0:6ae2f7bca550 8676
Azure.IoT Build 0:6ae2f7bca550 8677 int disposition_set_first(DISPOSITION_HANDLE disposition, delivery_number first_value)
Azure.IoT Build 0:6ae2f7bca550 8678 {
AzureIoTClient 28:add19eb7defa 8679 int result;
AzureIoTClient 28:add19eb7defa 8680
AzureIoTClient 28:add19eb7defa 8681 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8682 {
AzureIoTClient 28:add19eb7defa 8683 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8684 }
AzureIoTClient 28:add19eb7defa 8685 else
AzureIoTClient 28:add19eb7defa 8686 {
AzureIoTClient 28:add19eb7defa 8687 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8688 AMQP_VALUE first_amqp_value = amqpvalue_create_delivery_number(first_value);
AzureIoTClient 28:add19eb7defa 8689 if (first_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8690 {
AzureIoTClient 28:add19eb7defa 8691 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8692 }
AzureIoTClient 28:add19eb7defa 8693 else
AzureIoTClient 28:add19eb7defa 8694 {
AzureIoTClient 28:add19eb7defa 8695 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 1, first_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8696 {
AzureIoTClient 28:add19eb7defa 8697 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8698 }
AzureIoTClient 28:add19eb7defa 8699 else
AzureIoTClient 28:add19eb7defa 8700 {
AzureIoTClient 28:add19eb7defa 8701 result = 0;
AzureIoTClient 28:add19eb7defa 8702 }
AzureIoTClient 28:add19eb7defa 8703
AzureIoTClient 28:add19eb7defa 8704 amqpvalue_destroy(first_amqp_value);
AzureIoTClient 28:add19eb7defa 8705 }
AzureIoTClient 28:add19eb7defa 8706 }
AzureIoTClient 28:add19eb7defa 8707
AzureIoTClient 28:add19eb7defa 8708 return result;
Azure.IoT Build 0:6ae2f7bca550 8709 }
Azure.IoT Build 0:6ae2f7bca550 8710
Azure.IoT Build 0:6ae2f7bca550 8711 int disposition_get_last(DISPOSITION_HANDLE disposition, delivery_number* last_value)
Azure.IoT Build 0:6ae2f7bca550 8712 {
AzureIoTClient 28:add19eb7defa 8713 int result;
AzureIoTClient 28:add19eb7defa 8714
AzureIoTClient 28:add19eb7defa 8715 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8716 {
AzureIoTClient 28:add19eb7defa 8717 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8718 }
AzureIoTClient 28:add19eb7defa 8719 else
AzureIoTClient 28:add19eb7defa 8720 {
AzureIoTClient 28:add19eb7defa 8721 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8722 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8723 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8724 {
AzureIoTClient 23:1111ee8bcba4 8725 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8726 }
AzureIoTClient 23:1111ee8bcba4 8727 else
AzureIoTClient 23:1111ee8bcba4 8728 {
AzureIoTClient 23:1111ee8bcba4 8729 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 8730 {
AzureIoTClient 28:add19eb7defa 8731 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8732 }
AzureIoTClient 28:add19eb7defa 8733 else
AzureIoTClient 28:add19eb7defa 8734 {
AzureIoTClient 28:add19eb7defa 8735 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 8736 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8737 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8738 {
AzureIoTClient 28:add19eb7defa 8739 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8740 }
AzureIoTClient 28:add19eb7defa 8741 else
AzureIoTClient 28:add19eb7defa 8742 {
AzureIoTClient 28:add19eb7defa 8743 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8744 if ((get_single_value_result = amqpvalue_get_delivery_number(item_value, last_value)) != 0)
AzureIoTClient 28:add19eb7defa 8745 {
AzureIoTClient 28:add19eb7defa 8746 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8747 }
AzureIoTClient 28:add19eb7defa 8748 else
AzureIoTClient 28:add19eb7defa 8749 {
AzureIoTClient 28:add19eb7defa 8750 result = 0;
AzureIoTClient 28:add19eb7defa 8751 }
AzureIoTClient 28:add19eb7defa 8752 }
AzureIoTClient 28:add19eb7defa 8753 }
AzureIoTClient 28:add19eb7defa 8754 }
AzureIoTClient 28:add19eb7defa 8755 }
AzureIoTClient 28:add19eb7defa 8756
AzureIoTClient 28:add19eb7defa 8757 return result;
Azure.IoT Build 0:6ae2f7bca550 8758 }
Azure.IoT Build 0:6ae2f7bca550 8759
Azure.IoT Build 0:6ae2f7bca550 8760 int disposition_set_last(DISPOSITION_HANDLE disposition, delivery_number last_value)
Azure.IoT Build 0:6ae2f7bca550 8761 {
AzureIoTClient 28:add19eb7defa 8762 int result;
AzureIoTClient 28:add19eb7defa 8763
AzureIoTClient 28:add19eb7defa 8764 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8765 {
AzureIoTClient 28:add19eb7defa 8766 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8767 }
AzureIoTClient 28:add19eb7defa 8768 else
AzureIoTClient 28:add19eb7defa 8769 {
AzureIoTClient 28:add19eb7defa 8770 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8771 AMQP_VALUE last_amqp_value = amqpvalue_create_delivery_number(last_value);
AzureIoTClient 28:add19eb7defa 8772 if (last_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8773 {
AzureIoTClient 28:add19eb7defa 8774 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8775 }
AzureIoTClient 28:add19eb7defa 8776 else
AzureIoTClient 28:add19eb7defa 8777 {
AzureIoTClient 28:add19eb7defa 8778 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 2, last_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8779 {
AzureIoTClient 28:add19eb7defa 8780 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8781 }
AzureIoTClient 28:add19eb7defa 8782 else
AzureIoTClient 28:add19eb7defa 8783 {
AzureIoTClient 28:add19eb7defa 8784 result = 0;
AzureIoTClient 28:add19eb7defa 8785 }
AzureIoTClient 28:add19eb7defa 8786
AzureIoTClient 28:add19eb7defa 8787 amqpvalue_destroy(last_amqp_value);
AzureIoTClient 28:add19eb7defa 8788 }
AzureIoTClient 28:add19eb7defa 8789 }
AzureIoTClient 28:add19eb7defa 8790
AzureIoTClient 28:add19eb7defa 8791 return result;
Azure.IoT Build 0:6ae2f7bca550 8792 }
Azure.IoT Build 0:6ae2f7bca550 8793
Azure.IoT Build 0:6ae2f7bca550 8794 int disposition_get_settled(DISPOSITION_HANDLE disposition, bool* settled_value)
Azure.IoT Build 0:6ae2f7bca550 8795 {
AzureIoTClient 28:add19eb7defa 8796 int result;
AzureIoTClient 28:add19eb7defa 8797
AzureIoTClient 28:add19eb7defa 8798 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8799 {
AzureIoTClient 28:add19eb7defa 8800 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8801 }
AzureIoTClient 28:add19eb7defa 8802 else
AzureIoTClient 28:add19eb7defa 8803 {
AzureIoTClient 28:add19eb7defa 8804 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8805 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8806 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8807 {
AzureIoTClient 23:1111ee8bcba4 8808 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8809 }
AzureIoTClient 23:1111ee8bcba4 8810 else
AzureIoTClient 23:1111ee8bcba4 8811 {
AzureIoTClient 23:1111ee8bcba4 8812 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 8813 {
AzureIoTClient 28:add19eb7defa 8814 *settled_value = false;
AzureIoTClient 28:add19eb7defa 8815 result = 0;
AzureIoTClient 28:add19eb7defa 8816 }
AzureIoTClient 28:add19eb7defa 8817 else
AzureIoTClient 28:add19eb7defa 8818 {
AzureIoTClient 28:add19eb7defa 8819 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 8820 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8821 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8822 {
AzureIoTClient 28:add19eb7defa 8823 *settled_value = false;
AzureIoTClient 28:add19eb7defa 8824 result = 0;
AzureIoTClient 28:add19eb7defa 8825 }
AzureIoTClient 28:add19eb7defa 8826 else
AzureIoTClient 28:add19eb7defa 8827 {
AzureIoTClient 28:add19eb7defa 8828 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8829 if ((get_single_value_result = amqpvalue_get_boolean(item_value, settled_value)) != 0)
AzureIoTClient 28:add19eb7defa 8830 {
AzureIoTClient 23:1111ee8bcba4 8831 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8832 {
AzureIoTClient 28:add19eb7defa 8833 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8834 }
AzureIoTClient 28:add19eb7defa 8835 else
AzureIoTClient 28:add19eb7defa 8836 {
AzureIoTClient 28:add19eb7defa 8837 *settled_value = false;
AzureIoTClient 23:1111ee8bcba4 8838 result = 0;
AzureIoTClient 23:1111ee8bcba4 8839 }
AzureIoTClient 28:add19eb7defa 8840 }
AzureIoTClient 28:add19eb7defa 8841 else
AzureIoTClient 28:add19eb7defa 8842 {
AzureIoTClient 28:add19eb7defa 8843 result = 0;
AzureIoTClient 28:add19eb7defa 8844 }
AzureIoTClient 28:add19eb7defa 8845 }
AzureIoTClient 28:add19eb7defa 8846 }
AzureIoTClient 28:add19eb7defa 8847 }
AzureIoTClient 28:add19eb7defa 8848 }
AzureIoTClient 28:add19eb7defa 8849
AzureIoTClient 28:add19eb7defa 8850 return result;
Azure.IoT Build 0:6ae2f7bca550 8851 }
Azure.IoT Build 0:6ae2f7bca550 8852
Azure.IoT Build 0:6ae2f7bca550 8853 int disposition_set_settled(DISPOSITION_HANDLE disposition, bool settled_value)
Azure.IoT Build 0:6ae2f7bca550 8854 {
AzureIoTClient 28:add19eb7defa 8855 int result;
AzureIoTClient 28:add19eb7defa 8856
AzureIoTClient 28:add19eb7defa 8857 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8858 {
AzureIoTClient 28:add19eb7defa 8859 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8860 }
AzureIoTClient 28:add19eb7defa 8861 else
AzureIoTClient 28:add19eb7defa 8862 {
AzureIoTClient 28:add19eb7defa 8863 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8864 AMQP_VALUE settled_amqp_value = amqpvalue_create_boolean(settled_value);
AzureIoTClient 28:add19eb7defa 8865 if (settled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8866 {
AzureIoTClient 28:add19eb7defa 8867 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8868 }
AzureIoTClient 28:add19eb7defa 8869 else
AzureIoTClient 28:add19eb7defa 8870 {
AzureIoTClient 28:add19eb7defa 8871 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 3, settled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8872 {
AzureIoTClient 28:add19eb7defa 8873 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8874 }
AzureIoTClient 28:add19eb7defa 8875 else
AzureIoTClient 28:add19eb7defa 8876 {
AzureIoTClient 28:add19eb7defa 8877 result = 0;
AzureIoTClient 28:add19eb7defa 8878 }
AzureIoTClient 28:add19eb7defa 8879
AzureIoTClient 28:add19eb7defa 8880 amqpvalue_destroy(settled_amqp_value);
AzureIoTClient 28:add19eb7defa 8881 }
AzureIoTClient 28:add19eb7defa 8882 }
AzureIoTClient 28:add19eb7defa 8883
AzureIoTClient 28:add19eb7defa 8884 return result;
Azure.IoT Build 0:6ae2f7bca550 8885 }
Azure.IoT Build 0:6ae2f7bca550 8886
Azure.IoT Build 0:6ae2f7bca550 8887 int disposition_get_state(DISPOSITION_HANDLE disposition, AMQP_VALUE* state_value)
Azure.IoT Build 0:6ae2f7bca550 8888 {
AzureIoTClient 28:add19eb7defa 8889 int result;
AzureIoTClient 28:add19eb7defa 8890
AzureIoTClient 28:add19eb7defa 8891 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8892 {
AzureIoTClient 28:add19eb7defa 8893 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8894 }
AzureIoTClient 28:add19eb7defa 8895 else
AzureIoTClient 28:add19eb7defa 8896 {
AzureIoTClient 28:add19eb7defa 8897 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8898 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8899 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8900 {
AzureIoTClient 23:1111ee8bcba4 8901 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8902 }
AzureIoTClient 23:1111ee8bcba4 8903 else
AzureIoTClient 23:1111ee8bcba4 8904 {
AzureIoTClient 23:1111ee8bcba4 8905 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 8906 {
AzureIoTClient 28:add19eb7defa 8907 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8908 }
AzureIoTClient 28:add19eb7defa 8909 else
AzureIoTClient 28:add19eb7defa 8910 {
AzureIoTClient 28:add19eb7defa 8911 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 8912 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8913 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8914 {
AzureIoTClient 28:add19eb7defa 8915 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8916 }
AzureIoTClient 28:add19eb7defa 8917 else
AzureIoTClient 28:add19eb7defa 8918 {
AzureIoTClient 28:add19eb7defa 8919 *state_value = item_value;
AzureIoTClient 28:add19eb7defa 8920 result = 0;
AzureIoTClient 28:add19eb7defa 8921 }
AzureIoTClient 28:add19eb7defa 8922 }
AzureIoTClient 28:add19eb7defa 8923 }
AzureIoTClient 28:add19eb7defa 8924 }
AzureIoTClient 28:add19eb7defa 8925
AzureIoTClient 28:add19eb7defa 8926 return result;
Azure.IoT Build 0:6ae2f7bca550 8927 }
Azure.IoT Build 0:6ae2f7bca550 8928
Azure.IoT Build 0:6ae2f7bca550 8929 int disposition_set_state(DISPOSITION_HANDLE disposition, AMQP_VALUE state_value)
Azure.IoT Build 0:6ae2f7bca550 8930 {
AzureIoTClient 28:add19eb7defa 8931 int result;
AzureIoTClient 28:add19eb7defa 8932
AzureIoTClient 28:add19eb7defa 8933 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8934 {
AzureIoTClient 28:add19eb7defa 8935 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8936 }
AzureIoTClient 28:add19eb7defa 8937 else
AzureIoTClient 28:add19eb7defa 8938 {
AzureIoTClient 28:add19eb7defa 8939 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8940 AMQP_VALUE state_amqp_value;
AzureIoTClient 23:1111ee8bcba4 8941 if (state_value == NULL)
AzureIoTClient 23:1111ee8bcba4 8942 {
AzureIoTClient 23:1111ee8bcba4 8943 state_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 8944 }
AzureIoTClient 23:1111ee8bcba4 8945 else
AzureIoTClient 23:1111ee8bcba4 8946 {
AzureIoTClient 23:1111ee8bcba4 8947 state_amqp_value = amqpvalue_clone(state_value);
AzureIoTClient 23:1111ee8bcba4 8948 }
AzureIoTClient 28:add19eb7defa 8949 if (state_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8950 {
AzureIoTClient 28:add19eb7defa 8951 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8952 }
AzureIoTClient 28:add19eb7defa 8953 else
AzureIoTClient 28:add19eb7defa 8954 {
AzureIoTClient 28:add19eb7defa 8955 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 4, state_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8956 {
AzureIoTClient 28:add19eb7defa 8957 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8958 }
AzureIoTClient 28:add19eb7defa 8959 else
AzureIoTClient 28:add19eb7defa 8960 {
AzureIoTClient 28:add19eb7defa 8961 result = 0;
AzureIoTClient 28:add19eb7defa 8962 }
AzureIoTClient 28:add19eb7defa 8963
AzureIoTClient 28:add19eb7defa 8964 amqpvalue_destroy(state_amqp_value);
AzureIoTClient 28:add19eb7defa 8965 }
AzureIoTClient 28:add19eb7defa 8966 }
AzureIoTClient 28:add19eb7defa 8967
AzureIoTClient 28:add19eb7defa 8968 return result;
Azure.IoT Build 0:6ae2f7bca550 8969 }
Azure.IoT Build 0:6ae2f7bca550 8970
Azure.IoT Build 0:6ae2f7bca550 8971 int disposition_get_batchable(DISPOSITION_HANDLE disposition, bool* batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8972 {
AzureIoTClient 28:add19eb7defa 8973 int result;
AzureIoTClient 28:add19eb7defa 8974
AzureIoTClient 28:add19eb7defa 8975 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8976 {
AzureIoTClient 28:add19eb7defa 8977 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8978 }
AzureIoTClient 28:add19eb7defa 8979 else
AzureIoTClient 28:add19eb7defa 8980 {
AzureIoTClient 28:add19eb7defa 8981 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8982 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8983 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8984 {
AzureIoTClient 23:1111ee8bcba4 8985 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8986 }
AzureIoTClient 23:1111ee8bcba4 8987 else
AzureIoTClient 23:1111ee8bcba4 8988 {
AzureIoTClient 23:1111ee8bcba4 8989 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 8990 {
AzureIoTClient 28:add19eb7defa 8991 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8992 result = 0;
AzureIoTClient 28:add19eb7defa 8993 }
AzureIoTClient 28:add19eb7defa 8994 else
AzureIoTClient 28:add19eb7defa 8995 {
AzureIoTClient 28:add19eb7defa 8996 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 8997 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8998 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8999 {
AzureIoTClient 28:add19eb7defa 9000 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 9001 result = 0;
AzureIoTClient 28:add19eb7defa 9002 }
AzureIoTClient 28:add19eb7defa 9003 else
AzureIoTClient 28:add19eb7defa 9004 {
AzureIoTClient 28:add19eb7defa 9005 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9006 if ((get_single_value_result = amqpvalue_get_boolean(item_value, batchable_value)) != 0)
AzureIoTClient 28:add19eb7defa 9007 {
AzureIoTClient 23:1111ee8bcba4 9008 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 9009 {
AzureIoTClient 28:add19eb7defa 9010 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9011 }
AzureIoTClient 28:add19eb7defa 9012 else
AzureIoTClient 28:add19eb7defa 9013 {
AzureIoTClient 28:add19eb7defa 9014 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 9015 result = 0;
AzureIoTClient 23:1111ee8bcba4 9016 }
AzureIoTClient 28:add19eb7defa 9017 }
AzureIoTClient 28:add19eb7defa 9018 else
AzureIoTClient 28:add19eb7defa 9019 {
AzureIoTClient 28:add19eb7defa 9020 result = 0;
AzureIoTClient 28:add19eb7defa 9021 }
AzureIoTClient 28:add19eb7defa 9022 }
AzureIoTClient 28:add19eb7defa 9023 }
AzureIoTClient 28:add19eb7defa 9024 }
AzureIoTClient 28:add19eb7defa 9025 }
AzureIoTClient 28:add19eb7defa 9026
AzureIoTClient 28:add19eb7defa 9027 return result;
Azure.IoT Build 0:6ae2f7bca550 9028 }
Azure.IoT Build 0:6ae2f7bca550 9029
Azure.IoT Build 0:6ae2f7bca550 9030 int disposition_set_batchable(DISPOSITION_HANDLE disposition, bool batchable_value)
Azure.IoT Build 0:6ae2f7bca550 9031 {
AzureIoTClient 28:add19eb7defa 9032 int result;
AzureIoTClient 28:add19eb7defa 9033
AzureIoTClient 28:add19eb7defa 9034 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 9035 {
AzureIoTClient 28:add19eb7defa 9036 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9037 }
AzureIoTClient 28:add19eb7defa 9038 else
AzureIoTClient 28:add19eb7defa 9039 {
AzureIoTClient 28:add19eb7defa 9040 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 9041 AMQP_VALUE batchable_amqp_value = amqpvalue_create_boolean(batchable_value);
AzureIoTClient 28:add19eb7defa 9042 if (batchable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9043 {
AzureIoTClient 28:add19eb7defa 9044 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9045 }
AzureIoTClient 28:add19eb7defa 9046 else
AzureIoTClient 28:add19eb7defa 9047 {
AzureIoTClient 28:add19eb7defa 9048 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 5, batchable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9049 {
AzureIoTClient 28:add19eb7defa 9050 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9051 }
AzureIoTClient 28:add19eb7defa 9052 else
AzureIoTClient 28:add19eb7defa 9053 {
AzureIoTClient 28:add19eb7defa 9054 result = 0;
AzureIoTClient 28:add19eb7defa 9055 }
AzureIoTClient 28:add19eb7defa 9056
AzureIoTClient 28:add19eb7defa 9057 amqpvalue_destroy(batchable_amqp_value);
AzureIoTClient 28:add19eb7defa 9058 }
AzureIoTClient 28:add19eb7defa 9059 }
AzureIoTClient 28:add19eb7defa 9060
AzureIoTClient 28:add19eb7defa 9061 return result;
Azure.IoT Build 0:6ae2f7bca550 9062 }
Azure.IoT Build 0:6ae2f7bca550 9063
Azure.IoT Build 0:6ae2f7bca550 9064
Azure.IoT Build 0:6ae2f7bca550 9065 /* detach */
Azure.IoT Build 0:6ae2f7bca550 9066
Azure.IoT Build 0:6ae2f7bca550 9067 typedef struct DETACH_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9068 {
AzureIoTClient 28:add19eb7defa 9069 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9070 } DETACH_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9071
Azure.IoT Build 0:6ae2f7bca550 9072 static DETACH_HANDLE detach_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9073 {
AzureIoTClient 28:add19eb7defa 9074 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 9075 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 9076 {
AzureIoTClient 28:add19eb7defa 9077 detach_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 9078 }
AzureIoTClient 28:add19eb7defa 9079
AzureIoTClient 28:add19eb7defa 9080 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 9081 }
Azure.IoT Build 0:6ae2f7bca550 9082
Azure.IoT Build 0:6ae2f7bca550 9083 DETACH_HANDLE detach_create(handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 9084 {
AzureIoTClient 28:add19eb7defa 9085 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 9086 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 9087 {
AzureIoTClient 28:add19eb7defa 9088 detach_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(22);
AzureIoTClient 28:add19eb7defa 9089 if (detach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9090 {
AzureIoTClient 28:add19eb7defa 9091 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9092 detach_instance = NULL;
AzureIoTClient 28:add19eb7defa 9093 }
AzureIoTClient 28:add19eb7defa 9094 else
AzureIoTClient 28:add19eb7defa 9095 {
AzureIoTClient 28:add19eb7defa 9096 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 9097 int result = 0;
AzureIoTClient 28:add19eb7defa 9098
AzureIoTClient 28:add19eb7defa 9099 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 9100 if ((result == 0) && (amqpvalue_set_composite_item(detach_instance->composite_value, 0, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 9101 {
AzureIoTClient 28:add19eb7defa 9102 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9103 }
AzureIoTClient 28:add19eb7defa 9104
AzureIoTClient 28:add19eb7defa 9105 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 9106 }
AzureIoTClient 28:add19eb7defa 9107 }
AzureIoTClient 28:add19eb7defa 9108
AzureIoTClient 28:add19eb7defa 9109 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 9110 }
Azure.IoT Build 0:6ae2f7bca550 9111
Azure.IoT Build 0:6ae2f7bca550 9112 DETACH_HANDLE detach_clone(DETACH_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9113 {
AzureIoTClient 28:add19eb7defa 9114 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 9115 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 9116 {
AzureIoTClient 28:add19eb7defa 9117 detach_instance->composite_value = amqpvalue_clone(((DETACH_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9118 if (detach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9119 {
AzureIoTClient 28:add19eb7defa 9120 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9121 detach_instance = NULL;
AzureIoTClient 28:add19eb7defa 9122 }
AzureIoTClient 28:add19eb7defa 9123 }
AzureIoTClient 28:add19eb7defa 9124
AzureIoTClient 28:add19eb7defa 9125 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 9126 }
Azure.IoT Build 0:6ae2f7bca550 9127
Azure.IoT Build 0:6ae2f7bca550 9128 void detach_destroy(DETACH_HANDLE detach)
Azure.IoT Build 0:6ae2f7bca550 9129 {
AzureIoTClient 28:add19eb7defa 9130 if (detach != NULL)
AzureIoTClient 28:add19eb7defa 9131 {
AzureIoTClient 28:add19eb7defa 9132 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9133 amqpvalue_destroy(detach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9134 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9135 }
Azure.IoT Build 0:6ae2f7bca550 9136 }
Azure.IoT Build 0:6ae2f7bca550 9137
Azure.IoT Build 0:6ae2f7bca550 9138 AMQP_VALUE amqpvalue_create_detach(DETACH_HANDLE detach)
Azure.IoT Build 0:6ae2f7bca550 9139 {
AzureIoTClient 28:add19eb7defa 9140 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9141
AzureIoTClient 28:add19eb7defa 9142 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9143 {
AzureIoTClient 28:add19eb7defa 9144 result = NULL;
AzureIoTClient 28:add19eb7defa 9145 }
AzureIoTClient 28:add19eb7defa 9146 else
AzureIoTClient 28:add19eb7defa 9147 {
AzureIoTClient 28:add19eb7defa 9148 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9149 result = amqpvalue_clone(detach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9150 }
AzureIoTClient 28:add19eb7defa 9151
AzureIoTClient 28:add19eb7defa 9152 return result;
Azure.IoT Build 0:6ae2f7bca550 9153 }
Azure.IoT Build 0:6ae2f7bca550 9154
Azure.IoT Build 0:6ae2f7bca550 9155 bool is_detach_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9156 {
AzureIoTClient 28:add19eb7defa 9157 bool result;
AzureIoTClient 28:add19eb7defa 9158
AzureIoTClient 28:add19eb7defa 9159 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9160 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9161 (descriptor_ulong == 22))
AzureIoTClient 28:add19eb7defa 9162 {
AzureIoTClient 28:add19eb7defa 9163 result = true;
AzureIoTClient 28:add19eb7defa 9164 }
AzureIoTClient 28:add19eb7defa 9165 else
AzureIoTClient 28:add19eb7defa 9166 {
AzureIoTClient 28:add19eb7defa 9167 result = false;
AzureIoTClient 28:add19eb7defa 9168 }
AzureIoTClient 28:add19eb7defa 9169
AzureIoTClient 28:add19eb7defa 9170 return result;
Azure.IoT Build 0:6ae2f7bca550 9171 }
Azure.IoT Build 0:6ae2f7bca550 9172
Azure.IoT Build 0:6ae2f7bca550 9173
Azure.IoT Build 0:6ae2f7bca550 9174 int amqpvalue_get_detach(AMQP_VALUE value, DETACH_HANDLE* detach_handle)
Azure.IoT Build 0:6ae2f7bca550 9175 {
AzureIoTClient 28:add19eb7defa 9176 int result;
AzureIoTClient 28:add19eb7defa 9177 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach_create_internal();
AzureIoTClient 28:add19eb7defa 9178 *detach_handle = detach_instance;
AzureIoTClient 28:add19eb7defa 9179 if (*detach_handle == NULL)
AzureIoTClient 28:add19eb7defa 9180 {
AzureIoTClient 28:add19eb7defa 9181 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9182 }
AzureIoTClient 28:add19eb7defa 9183 else
AzureIoTClient 28:add19eb7defa 9184 {
AzureIoTClient 28:add19eb7defa 9185 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9186 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9187 {
AzureIoTClient 28:add19eb7defa 9188 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9189 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9190 }
AzureIoTClient 28:add19eb7defa 9191 else
AzureIoTClient 28:add19eb7defa 9192 {
AzureIoTClient 23:1111ee8bcba4 9193 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9194 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9195 {
AzureIoTClient 23:1111ee8bcba4 9196 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9197 }
AzureIoTClient 23:1111ee8bcba4 9198 else
AzureIoTClient 23:1111ee8bcba4 9199 {
AzureIoTClient 28:add19eb7defa 9200 do
AzureIoTClient 28:add19eb7defa 9201 {
AzureIoTClient 28:add19eb7defa 9202 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9203 /* handle */
AzureIoTClient 28:add19eb7defa 9204 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9205 {
AzureIoTClient 23:1111ee8bcba4 9206 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9207 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9208 {
AzureIoTClient 28:add19eb7defa 9209 {
AzureIoTClient 28:add19eb7defa 9210 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9211 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9212 break;
AzureIoTClient 28:add19eb7defa 9213 }
AzureIoTClient 28:add19eb7defa 9214 }
AzureIoTClient 28:add19eb7defa 9215 else
AzureIoTClient 28:add19eb7defa 9216 {
AzureIoTClient 28:add19eb7defa 9217 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9218 {
AzureIoTClient 28:add19eb7defa 9219 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9220 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9221 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9222 break;
AzureIoTClient 28:add19eb7defa 9223 }
AzureIoTClient 28:add19eb7defa 9224 else
AzureIoTClient 28:add19eb7defa 9225 {
AzureIoTClient 28:add19eb7defa 9226 handle handle;
AzureIoTClient 28:add19eb7defa 9227 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 9228 {
AzureIoTClient 28:add19eb7defa 9229 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9230 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9231 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9232 break;
AzureIoTClient 28:add19eb7defa 9233 }
AzureIoTClient 28:add19eb7defa 9234 }
AzureIoTClient 28:add19eb7defa 9235
AzureIoTClient 28:add19eb7defa 9236 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9237 }
AzureIoTClient 28:add19eb7defa 9238 }
AzureIoTClient 28:add19eb7defa 9239 else
AzureIoTClient 28:add19eb7defa 9240 {
AzureIoTClient 28:add19eb7defa 9241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9242 }
AzureIoTClient 28:add19eb7defa 9243 /* closed */
AzureIoTClient 28:add19eb7defa 9244 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 9245 {
AzureIoTClient 23:1111ee8bcba4 9246 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 9247 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9248 {
AzureIoTClient 28:add19eb7defa 9249 /* do nothing */
AzureIoTClient 28:add19eb7defa 9250 }
AzureIoTClient 28:add19eb7defa 9251 else
AzureIoTClient 28:add19eb7defa 9252 {
AzureIoTClient 28:add19eb7defa 9253 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9254 {
AzureIoTClient 28:add19eb7defa 9255 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9256 }
AzureIoTClient 28:add19eb7defa 9257 else
AzureIoTClient 28:add19eb7defa 9258 {
AzureIoTClient 28:add19eb7defa 9259 bool closed;
AzureIoTClient 28:add19eb7defa 9260 if (amqpvalue_get_boolean(item_value, &closed) != 0)
AzureIoTClient 28:add19eb7defa 9261 {
AzureIoTClient 28:add19eb7defa 9262 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9263 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9264 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9265 break;
AzureIoTClient 28:add19eb7defa 9266 }
AzureIoTClient 28:add19eb7defa 9267 }
AzureIoTClient 28:add19eb7defa 9268
AzureIoTClient 28:add19eb7defa 9269 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9270 }
AzureIoTClient 28:add19eb7defa 9271 }
AzureIoTClient 28:add19eb7defa 9272 /* error */
AzureIoTClient 28:add19eb7defa 9273 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 9274 {
AzureIoTClient 23:1111ee8bcba4 9275 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 9276 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9277 {
AzureIoTClient 28:add19eb7defa 9278 /* do nothing */
AzureIoTClient 28:add19eb7defa 9279 }
AzureIoTClient 28:add19eb7defa 9280 else
AzureIoTClient 28:add19eb7defa 9281 {
AzureIoTClient 28:add19eb7defa 9282 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9283 {
AzureIoTClient 28:add19eb7defa 9284 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9285 }
AzureIoTClient 28:add19eb7defa 9286 else
AzureIoTClient 28:add19eb7defa 9287 {
AzureIoTClient 28:add19eb7defa 9288 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9289 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9290 {
AzureIoTClient 28:add19eb7defa 9291 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9292 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9293 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9294 break;
AzureIoTClient 28:add19eb7defa 9295 }
AzureIoTClient 25:1101516ee67d 9296 else
AzureIoTClient 25:1101516ee67d 9297 {
AzureIoTClient 28:add19eb7defa 9298 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9299 }
AzureIoTClient 28:add19eb7defa 9300 }
AzureIoTClient 28:add19eb7defa 9301
AzureIoTClient 28:add19eb7defa 9302 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9303 }
AzureIoTClient 28:add19eb7defa 9304 }
AzureIoTClient 28:add19eb7defa 9305
AzureIoTClient 28:add19eb7defa 9306 detach_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9307
AzureIoTClient 28:add19eb7defa 9308 result = 0;
AzureIoTClient 28:add19eb7defa 9309 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9310 }
AzureIoTClient 28:add19eb7defa 9311 }
AzureIoTClient 28:add19eb7defa 9312 }
AzureIoTClient 28:add19eb7defa 9313
AzureIoTClient 28:add19eb7defa 9314 return result;
Azure.IoT Build 0:6ae2f7bca550 9315 }
Azure.IoT Build 0:6ae2f7bca550 9316
Azure.IoT Build 0:6ae2f7bca550 9317 int detach_get_handle(DETACH_HANDLE detach, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 9318 {
AzureIoTClient 28:add19eb7defa 9319 int result;
AzureIoTClient 28:add19eb7defa 9320
AzureIoTClient 28:add19eb7defa 9321 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9322 {
AzureIoTClient 28:add19eb7defa 9323 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9324 }
AzureIoTClient 28:add19eb7defa 9325 else
AzureIoTClient 28:add19eb7defa 9326 {
AzureIoTClient 28:add19eb7defa 9327 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9328 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9329 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9330 {
AzureIoTClient 23:1111ee8bcba4 9331 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9332 }
AzureIoTClient 23:1111ee8bcba4 9333 else
AzureIoTClient 23:1111ee8bcba4 9334 {
AzureIoTClient 23:1111ee8bcba4 9335 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9336 {
AzureIoTClient 28:add19eb7defa 9337 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9338 }
AzureIoTClient 28:add19eb7defa 9339 else
AzureIoTClient 28:add19eb7defa 9340 {
AzureIoTClient 28:add19eb7defa 9341 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 9342 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9343 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9344 {
AzureIoTClient 28:add19eb7defa 9345 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9346 }
AzureIoTClient 28:add19eb7defa 9347 else
AzureIoTClient 28:add19eb7defa 9348 {
AzureIoTClient 28:add19eb7defa 9349 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9350 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_value)) != 0)
AzureIoTClient 28:add19eb7defa 9351 {
AzureIoTClient 28:add19eb7defa 9352 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9353 }
AzureIoTClient 28:add19eb7defa 9354 else
AzureIoTClient 28:add19eb7defa 9355 {
AzureIoTClient 28:add19eb7defa 9356 result = 0;
AzureIoTClient 28:add19eb7defa 9357 }
AzureIoTClient 28:add19eb7defa 9358 }
AzureIoTClient 28:add19eb7defa 9359 }
AzureIoTClient 28:add19eb7defa 9360 }
AzureIoTClient 28:add19eb7defa 9361 }
AzureIoTClient 28:add19eb7defa 9362
AzureIoTClient 28:add19eb7defa 9363 return result;
Azure.IoT Build 0:6ae2f7bca550 9364 }
Azure.IoT Build 0:6ae2f7bca550 9365
Azure.IoT Build 0:6ae2f7bca550 9366 int detach_set_handle(DETACH_HANDLE detach, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 9367 {
AzureIoTClient 28:add19eb7defa 9368 int result;
AzureIoTClient 28:add19eb7defa 9369
AzureIoTClient 28:add19eb7defa 9370 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9371 {
AzureIoTClient 28:add19eb7defa 9372 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9373 }
AzureIoTClient 28:add19eb7defa 9374 else
AzureIoTClient 28:add19eb7defa 9375 {
AzureIoTClient 28:add19eb7defa 9376 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9377 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 9378 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9379 {
AzureIoTClient 28:add19eb7defa 9380 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9381 }
AzureIoTClient 28:add19eb7defa 9382 else
AzureIoTClient 28:add19eb7defa 9383 {
AzureIoTClient 28:add19eb7defa 9384 if (amqpvalue_set_composite_item(detach_instance->composite_value, 0, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9385 {
AzureIoTClient 28:add19eb7defa 9386 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9387 }
AzureIoTClient 28:add19eb7defa 9388 else
AzureIoTClient 28:add19eb7defa 9389 {
AzureIoTClient 28:add19eb7defa 9390 result = 0;
AzureIoTClient 28:add19eb7defa 9391 }
AzureIoTClient 28:add19eb7defa 9392
AzureIoTClient 28:add19eb7defa 9393 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 9394 }
AzureIoTClient 28:add19eb7defa 9395 }
AzureIoTClient 28:add19eb7defa 9396
AzureIoTClient 28:add19eb7defa 9397 return result;
Azure.IoT Build 0:6ae2f7bca550 9398 }
Azure.IoT Build 0:6ae2f7bca550 9399
Azure.IoT Build 0:6ae2f7bca550 9400 int detach_get_closed(DETACH_HANDLE detach, bool* closed_value)
Azure.IoT Build 0:6ae2f7bca550 9401 {
AzureIoTClient 28:add19eb7defa 9402 int result;
AzureIoTClient 28:add19eb7defa 9403
AzureIoTClient 28:add19eb7defa 9404 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9405 {
AzureIoTClient 28:add19eb7defa 9406 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9407 }
AzureIoTClient 28:add19eb7defa 9408 else
AzureIoTClient 28:add19eb7defa 9409 {
AzureIoTClient 28:add19eb7defa 9410 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9411 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9412 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9413 {
AzureIoTClient 23:1111ee8bcba4 9414 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9415 }
AzureIoTClient 23:1111ee8bcba4 9416 else
AzureIoTClient 23:1111ee8bcba4 9417 {
AzureIoTClient 23:1111ee8bcba4 9418 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 9419 {
AzureIoTClient 28:add19eb7defa 9420 *closed_value = false;
AzureIoTClient 28:add19eb7defa 9421 result = 0;
AzureIoTClient 28:add19eb7defa 9422 }
AzureIoTClient 28:add19eb7defa 9423 else
AzureIoTClient 28:add19eb7defa 9424 {
AzureIoTClient 28:add19eb7defa 9425 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 9426 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9427 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9428 {
AzureIoTClient 28:add19eb7defa 9429 *closed_value = false;
AzureIoTClient 28:add19eb7defa 9430 result = 0;
AzureIoTClient 28:add19eb7defa 9431 }
AzureIoTClient 28:add19eb7defa 9432 else
AzureIoTClient 28:add19eb7defa 9433 {
AzureIoTClient 28:add19eb7defa 9434 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9435 if ((get_single_value_result = amqpvalue_get_boolean(item_value, closed_value)) != 0)
AzureIoTClient 28:add19eb7defa 9436 {
AzureIoTClient 23:1111ee8bcba4 9437 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 9438 {
AzureIoTClient 28:add19eb7defa 9439 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9440 }
AzureIoTClient 28:add19eb7defa 9441 else
AzureIoTClient 28:add19eb7defa 9442 {
AzureIoTClient 28:add19eb7defa 9443 *closed_value = false;
AzureIoTClient 23:1111ee8bcba4 9444 result = 0;
AzureIoTClient 23:1111ee8bcba4 9445 }
AzureIoTClient 28:add19eb7defa 9446 }
AzureIoTClient 28:add19eb7defa 9447 else
AzureIoTClient 28:add19eb7defa 9448 {
AzureIoTClient 28:add19eb7defa 9449 result = 0;
AzureIoTClient 28:add19eb7defa 9450 }
AzureIoTClient 28:add19eb7defa 9451 }
AzureIoTClient 28:add19eb7defa 9452 }
AzureIoTClient 28:add19eb7defa 9453 }
AzureIoTClient 28:add19eb7defa 9454 }
AzureIoTClient 28:add19eb7defa 9455
AzureIoTClient 28:add19eb7defa 9456 return result;
Azure.IoT Build 0:6ae2f7bca550 9457 }
Azure.IoT Build 0:6ae2f7bca550 9458
Azure.IoT Build 0:6ae2f7bca550 9459 int detach_set_closed(DETACH_HANDLE detach, bool closed_value)
Azure.IoT Build 0:6ae2f7bca550 9460 {
AzureIoTClient 28:add19eb7defa 9461 int result;
AzureIoTClient 28:add19eb7defa 9462
AzureIoTClient 28:add19eb7defa 9463 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9464 {
AzureIoTClient 28:add19eb7defa 9465 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9466 }
AzureIoTClient 28:add19eb7defa 9467 else
AzureIoTClient 28:add19eb7defa 9468 {
AzureIoTClient 28:add19eb7defa 9469 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9470 AMQP_VALUE closed_amqp_value = amqpvalue_create_boolean(closed_value);
AzureIoTClient 28:add19eb7defa 9471 if (closed_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9472 {
AzureIoTClient 28:add19eb7defa 9473 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9474 }
AzureIoTClient 28:add19eb7defa 9475 else
AzureIoTClient 28:add19eb7defa 9476 {
AzureIoTClient 28:add19eb7defa 9477 if (amqpvalue_set_composite_item(detach_instance->composite_value, 1, closed_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9478 {
AzureIoTClient 28:add19eb7defa 9479 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9480 }
AzureIoTClient 28:add19eb7defa 9481 else
AzureIoTClient 28:add19eb7defa 9482 {
AzureIoTClient 28:add19eb7defa 9483 result = 0;
AzureIoTClient 28:add19eb7defa 9484 }
AzureIoTClient 28:add19eb7defa 9485
AzureIoTClient 28:add19eb7defa 9486 amqpvalue_destroy(closed_amqp_value);
AzureIoTClient 28:add19eb7defa 9487 }
AzureIoTClient 28:add19eb7defa 9488 }
AzureIoTClient 28:add19eb7defa 9489
AzureIoTClient 28:add19eb7defa 9490 return result;
Azure.IoT Build 0:6ae2f7bca550 9491 }
Azure.IoT Build 0:6ae2f7bca550 9492
Azure.IoT Build 0:6ae2f7bca550 9493 int detach_get_error(DETACH_HANDLE detach, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9494 {
AzureIoTClient 28:add19eb7defa 9495 int result;
AzureIoTClient 28:add19eb7defa 9496
AzureIoTClient 28:add19eb7defa 9497 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9498 {
AzureIoTClient 28:add19eb7defa 9499 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9500 }
AzureIoTClient 28:add19eb7defa 9501 else
AzureIoTClient 28:add19eb7defa 9502 {
AzureIoTClient 28:add19eb7defa 9503 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9504 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9505 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9506 {
AzureIoTClient 23:1111ee8bcba4 9507 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9508 }
AzureIoTClient 23:1111ee8bcba4 9509 else
AzureIoTClient 23:1111ee8bcba4 9510 {
AzureIoTClient 23:1111ee8bcba4 9511 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 9512 {
AzureIoTClient 28:add19eb7defa 9513 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9514 }
AzureIoTClient 28:add19eb7defa 9515 else
AzureIoTClient 28:add19eb7defa 9516 {
AzureIoTClient 28:add19eb7defa 9517 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 9518 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9519 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9520 {
AzureIoTClient 28:add19eb7defa 9521 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9522 }
AzureIoTClient 28:add19eb7defa 9523 else
AzureIoTClient 28:add19eb7defa 9524 {
AzureIoTClient 28:add19eb7defa 9525 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9526 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 9527 {
AzureIoTClient 28:add19eb7defa 9528 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9529 }
AzureIoTClient 28:add19eb7defa 9530 else
AzureIoTClient 28:add19eb7defa 9531 {
AzureIoTClient 28:add19eb7defa 9532 result = 0;
AzureIoTClient 28:add19eb7defa 9533 }
AzureIoTClient 28:add19eb7defa 9534 }
AzureIoTClient 28:add19eb7defa 9535 }
AzureIoTClient 28:add19eb7defa 9536 }
AzureIoTClient 28:add19eb7defa 9537 }
AzureIoTClient 28:add19eb7defa 9538
AzureIoTClient 28:add19eb7defa 9539 return result;
Azure.IoT Build 0:6ae2f7bca550 9540 }
Azure.IoT Build 0:6ae2f7bca550 9541
Azure.IoT Build 0:6ae2f7bca550 9542 int detach_set_error(DETACH_HANDLE detach, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9543 {
AzureIoTClient 28:add19eb7defa 9544 int result;
AzureIoTClient 28:add19eb7defa 9545
AzureIoTClient 28:add19eb7defa 9546 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9547 {
AzureIoTClient 28:add19eb7defa 9548 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9549 }
AzureIoTClient 28:add19eb7defa 9550 else
AzureIoTClient 28:add19eb7defa 9551 {
AzureIoTClient 28:add19eb7defa 9552 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9553 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 9554 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9555 {
AzureIoTClient 28:add19eb7defa 9556 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9557 }
AzureIoTClient 28:add19eb7defa 9558 else
AzureIoTClient 28:add19eb7defa 9559 {
AzureIoTClient 28:add19eb7defa 9560 if (amqpvalue_set_composite_item(detach_instance->composite_value, 2, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9561 {
AzureIoTClient 28:add19eb7defa 9562 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9563 }
AzureIoTClient 28:add19eb7defa 9564 else
AzureIoTClient 28:add19eb7defa 9565 {
AzureIoTClient 28:add19eb7defa 9566 result = 0;
AzureIoTClient 28:add19eb7defa 9567 }
AzureIoTClient 28:add19eb7defa 9568
AzureIoTClient 28:add19eb7defa 9569 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 9570 }
AzureIoTClient 28:add19eb7defa 9571 }
AzureIoTClient 28:add19eb7defa 9572
AzureIoTClient 28:add19eb7defa 9573 return result;
Azure.IoT Build 0:6ae2f7bca550 9574 }
Azure.IoT Build 0:6ae2f7bca550 9575
Azure.IoT Build 0:6ae2f7bca550 9576
Azure.IoT Build 0:6ae2f7bca550 9577 /* end */
Azure.IoT Build 0:6ae2f7bca550 9578
Azure.IoT Build 0:6ae2f7bca550 9579 typedef struct END_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9580 {
AzureIoTClient 28:add19eb7defa 9581 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9582 } END_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9583
Azure.IoT Build 0:6ae2f7bca550 9584 static END_HANDLE end_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9585 {
AzureIoTClient 28:add19eb7defa 9586 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9587 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9588 {
AzureIoTClient 28:add19eb7defa 9589 end_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 9590 }
AzureIoTClient 28:add19eb7defa 9591
AzureIoTClient 28:add19eb7defa 9592 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9593 }
Azure.IoT Build 0:6ae2f7bca550 9594
Azure.IoT Build 0:6ae2f7bca550 9595 END_HANDLE end_create(void)
Azure.IoT Build 0:6ae2f7bca550 9596 {
AzureIoTClient 28:add19eb7defa 9597 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9598 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9599 {
AzureIoTClient 28:add19eb7defa 9600 end_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(23);
AzureIoTClient 28:add19eb7defa 9601 if (end_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9602 {
AzureIoTClient 28:add19eb7defa 9603 free(end_instance);
AzureIoTClient 28:add19eb7defa 9604 end_instance = NULL;
AzureIoTClient 28:add19eb7defa 9605 }
AzureIoTClient 28:add19eb7defa 9606 }
AzureIoTClient 28:add19eb7defa 9607
AzureIoTClient 28:add19eb7defa 9608 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9609 }
Azure.IoT Build 0:6ae2f7bca550 9610
Azure.IoT Build 0:6ae2f7bca550 9611 END_HANDLE end_clone(END_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9612 {
AzureIoTClient 28:add19eb7defa 9613 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9614 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9615 {
AzureIoTClient 28:add19eb7defa 9616 end_instance->composite_value = amqpvalue_clone(((END_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9617 if (end_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9618 {
AzureIoTClient 28:add19eb7defa 9619 free(end_instance);
AzureIoTClient 28:add19eb7defa 9620 end_instance = NULL;
AzureIoTClient 28:add19eb7defa 9621 }
AzureIoTClient 28:add19eb7defa 9622 }
AzureIoTClient 28:add19eb7defa 9623
AzureIoTClient 28:add19eb7defa 9624 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9625 }
Azure.IoT Build 0:6ae2f7bca550 9626
Azure.IoT Build 0:6ae2f7bca550 9627 void end_destroy(END_HANDLE end)
Azure.IoT Build 0:6ae2f7bca550 9628 {
AzureIoTClient 28:add19eb7defa 9629 if (end != NULL)
AzureIoTClient 28:add19eb7defa 9630 {
AzureIoTClient 28:add19eb7defa 9631 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9632 amqpvalue_destroy(end_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9633 free(end_instance);
AzureIoTClient 28:add19eb7defa 9634 }
Azure.IoT Build 0:6ae2f7bca550 9635 }
Azure.IoT Build 0:6ae2f7bca550 9636
Azure.IoT Build 0:6ae2f7bca550 9637 AMQP_VALUE amqpvalue_create_end(END_HANDLE end)
Azure.IoT Build 0:6ae2f7bca550 9638 {
AzureIoTClient 28:add19eb7defa 9639 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9640
AzureIoTClient 28:add19eb7defa 9641 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9642 {
AzureIoTClient 28:add19eb7defa 9643 result = NULL;
AzureIoTClient 28:add19eb7defa 9644 }
AzureIoTClient 28:add19eb7defa 9645 else
AzureIoTClient 28:add19eb7defa 9646 {
AzureIoTClient 28:add19eb7defa 9647 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9648 result = amqpvalue_clone(end_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9649 }
AzureIoTClient 28:add19eb7defa 9650
AzureIoTClient 28:add19eb7defa 9651 return result;
Azure.IoT Build 0:6ae2f7bca550 9652 }
Azure.IoT Build 0:6ae2f7bca550 9653
Azure.IoT Build 0:6ae2f7bca550 9654 bool is_end_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9655 {
AzureIoTClient 28:add19eb7defa 9656 bool result;
AzureIoTClient 28:add19eb7defa 9657
AzureIoTClient 28:add19eb7defa 9658 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9659 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9660 (descriptor_ulong == 23))
AzureIoTClient 28:add19eb7defa 9661 {
AzureIoTClient 28:add19eb7defa 9662 result = true;
AzureIoTClient 28:add19eb7defa 9663 }
AzureIoTClient 28:add19eb7defa 9664 else
AzureIoTClient 28:add19eb7defa 9665 {
AzureIoTClient 28:add19eb7defa 9666 result = false;
AzureIoTClient 28:add19eb7defa 9667 }
AzureIoTClient 28:add19eb7defa 9668
AzureIoTClient 28:add19eb7defa 9669 return result;
Azure.IoT Build 0:6ae2f7bca550 9670 }
Azure.IoT Build 0:6ae2f7bca550 9671
Azure.IoT Build 0:6ae2f7bca550 9672
Azure.IoT Build 0:6ae2f7bca550 9673 int amqpvalue_get_end(AMQP_VALUE value, END_HANDLE* end_handle)
Azure.IoT Build 0:6ae2f7bca550 9674 {
AzureIoTClient 28:add19eb7defa 9675 int result;
AzureIoTClient 28:add19eb7defa 9676 END_INSTANCE* end_instance = (END_INSTANCE*)end_create_internal();
AzureIoTClient 28:add19eb7defa 9677 *end_handle = end_instance;
AzureIoTClient 28:add19eb7defa 9678 if (*end_handle == NULL)
AzureIoTClient 28:add19eb7defa 9679 {
AzureIoTClient 28:add19eb7defa 9680 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9681 }
AzureIoTClient 28:add19eb7defa 9682 else
AzureIoTClient 28:add19eb7defa 9683 {
AzureIoTClient 28:add19eb7defa 9684 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9685 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9686 {
AzureIoTClient 28:add19eb7defa 9687 end_destroy(*end_handle);
AzureIoTClient 28:add19eb7defa 9688 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9689 }
AzureIoTClient 28:add19eb7defa 9690 else
AzureIoTClient 28:add19eb7defa 9691 {
AzureIoTClient 23:1111ee8bcba4 9692 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9693 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9694 {
AzureIoTClient 23:1111ee8bcba4 9695 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9696 }
AzureIoTClient 23:1111ee8bcba4 9697 else
AzureIoTClient 23:1111ee8bcba4 9698 {
AzureIoTClient 28:add19eb7defa 9699 do
AzureIoTClient 28:add19eb7defa 9700 {
AzureIoTClient 28:add19eb7defa 9701 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9702 /* error */
AzureIoTClient 28:add19eb7defa 9703 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9704 {
AzureIoTClient 23:1111ee8bcba4 9705 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9706 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9707 {
AzureIoTClient 28:add19eb7defa 9708 /* do nothing */
AzureIoTClient 28:add19eb7defa 9709 }
AzureIoTClient 28:add19eb7defa 9710 else
AzureIoTClient 28:add19eb7defa 9711 {
AzureIoTClient 28:add19eb7defa 9712 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9713 {
AzureIoTClient 28:add19eb7defa 9714 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9715 }
AzureIoTClient 28:add19eb7defa 9716 else
AzureIoTClient 28:add19eb7defa 9717 {
AzureIoTClient 28:add19eb7defa 9718 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9719 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9720 {
AzureIoTClient 28:add19eb7defa 9721 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9722 end_destroy(*end_handle);
AzureIoTClient 28:add19eb7defa 9723 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9724 break;
AzureIoTClient 28:add19eb7defa 9725 }
AzureIoTClient 25:1101516ee67d 9726 else
AzureIoTClient 25:1101516ee67d 9727 {
AzureIoTClient 28:add19eb7defa 9728 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9729 }
AzureIoTClient 28:add19eb7defa 9730 }
AzureIoTClient 28:add19eb7defa 9731
AzureIoTClient 28:add19eb7defa 9732 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9733 }
AzureIoTClient 28:add19eb7defa 9734 }
AzureIoTClient 28:add19eb7defa 9735
AzureIoTClient 28:add19eb7defa 9736 end_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9737
AzureIoTClient 28:add19eb7defa 9738 result = 0;
AzureIoTClient 28:add19eb7defa 9739 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9740 }
AzureIoTClient 28:add19eb7defa 9741 }
AzureIoTClient 28:add19eb7defa 9742 }
AzureIoTClient 28:add19eb7defa 9743
AzureIoTClient 28:add19eb7defa 9744 return result;
Azure.IoT Build 0:6ae2f7bca550 9745 }
Azure.IoT Build 0:6ae2f7bca550 9746
Azure.IoT Build 0:6ae2f7bca550 9747 int end_get_error(END_HANDLE end, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9748 {
AzureIoTClient 28:add19eb7defa 9749 int result;
AzureIoTClient 28:add19eb7defa 9750
AzureIoTClient 28:add19eb7defa 9751 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9752 {
AzureIoTClient 28:add19eb7defa 9753 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9754 }
AzureIoTClient 28:add19eb7defa 9755 else
AzureIoTClient 28:add19eb7defa 9756 {
AzureIoTClient 28:add19eb7defa 9757 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9758 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 23:1111ee8bcba4 9759 if (amqpvalue_get_composite_item_count(end_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9760 {
AzureIoTClient 23:1111ee8bcba4 9761 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9762 }
AzureIoTClient 23:1111ee8bcba4 9763 else
AzureIoTClient 23:1111ee8bcba4 9764 {
AzureIoTClient 23:1111ee8bcba4 9765 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9766 {
AzureIoTClient 28:add19eb7defa 9767 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9768 }
AzureIoTClient 28:add19eb7defa 9769 else
AzureIoTClient 28:add19eb7defa 9770 {
AzureIoTClient 28:add19eb7defa 9771 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(end_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 9772 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9773 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9774 {
AzureIoTClient 28:add19eb7defa 9775 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9776 }
AzureIoTClient 28:add19eb7defa 9777 else
AzureIoTClient 28:add19eb7defa 9778 {
AzureIoTClient 28:add19eb7defa 9779 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9780 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 9781 {
AzureIoTClient 28:add19eb7defa 9782 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9783 }
AzureIoTClient 28:add19eb7defa 9784 else
AzureIoTClient 28:add19eb7defa 9785 {
AzureIoTClient 28:add19eb7defa 9786 result = 0;
AzureIoTClient 28:add19eb7defa 9787 }
AzureIoTClient 28:add19eb7defa 9788 }
AzureIoTClient 28:add19eb7defa 9789 }
AzureIoTClient 28:add19eb7defa 9790 }
AzureIoTClient 28:add19eb7defa 9791 }
AzureIoTClient 28:add19eb7defa 9792
AzureIoTClient 28:add19eb7defa 9793 return result;
Azure.IoT Build 0:6ae2f7bca550 9794 }
Azure.IoT Build 0:6ae2f7bca550 9795
Azure.IoT Build 0:6ae2f7bca550 9796 int end_set_error(END_HANDLE end, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9797 {
AzureIoTClient 28:add19eb7defa 9798 int result;
AzureIoTClient 28:add19eb7defa 9799
AzureIoTClient 28:add19eb7defa 9800 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9801 {
AzureIoTClient 28:add19eb7defa 9802 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9803 }
AzureIoTClient 28:add19eb7defa 9804 else
AzureIoTClient 28:add19eb7defa 9805 {
AzureIoTClient 28:add19eb7defa 9806 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9807 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 9808 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9809 {
AzureIoTClient 28:add19eb7defa 9810 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9811 }
AzureIoTClient 28:add19eb7defa 9812 else
AzureIoTClient 28:add19eb7defa 9813 {
AzureIoTClient 28:add19eb7defa 9814 if (amqpvalue_set_composite_item(end_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9815 {
AzureIoTClient 28:add19eb7defa 9816 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9817 }
AzureIoTClient 28:add19eb7defa 9818 else
AzureIoTClient 28:add19eb7defa 9819 {
AzureIoTClient 28:add19eb7defa 9820 result = 0;
AzureIoTClient 28:add19eb7defa 9821 }
AzureIoTClient 28:add19eb7defa 9822
AzureIoTClient 28:add19eb7defa 9823 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 9824 }
AzureIoTClient 28:add19eb7defa 9825 }
AzureIoTClient 28:add19eb7defa 9826
AzureIoTClient 28:add19eb7defa 9827 return result;
Azure.IoT Build 0:6ae2f7bca550 9828 }
Azure.IoT Build 0:6ae2f7bca550 9829
Azure.IoT Build 0:6ae2f7bca550 9830
Azure.IoT Build 0:6ae2f7bca550 9831 /* close */
Azure.IoT Build 0:6ae2f7bca550 9832
Azure.IoT Build 0:6ae2f7bca550 9833 typedef struct CLOSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9834 {
AzureIoTClient 28:add19eb7defa 9835 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9836 } CLOSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9837
Azure.IoT Build 0:6ae2f7bca550 9838 static CLOSE_HANDLE close_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9839 {
AzureIoTClient 28:add19eb7defa 9840 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9841 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9842 {
AzureIoTClient 28:add19eb7defa 9843 close_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 9844 }
AzureIoTClient 28:add19eb7defa 9845
AzureIoTClient 28:add19eb7defa 9846 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9847 }
Azure.IoT Build 0:6ae2f7bca550 9848
Azure.IoT Build 0:6ae2f7bca550 9849 CLOSE_HANDLE close_create(void)
Azure.IoT Build 0:6ae2f7bca550 9850 {
AzureIoTClient 28:add19eb7defa 9851 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9852 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9853 {
AzureIoTClient 28:add19eb7defa 9854 close_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(24);
AzureIoTClient 28:add19eb7defa 9855 if (close_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9856 {
AzureIoTClient 28:add19eb7defa 9857 free(close_instance);
AzureIoTClient 28:add19eb7defa 9858 close_instance = NULL;
AzureIoTClient 28:add19eb7defa 9859 }
AzureIoTClient 28:add19eb7defa 9860 }
AzureIoTClient 28:add19eb7defa 9861
AzureIoTClient 28:add19eb7defa 9862 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9863 }
Azure.IoT Build 0:6ae2f7bca550 9864
Azure.IoT Build 0:6ae2f7bca550 9865 CLOSE_HANDLE close_clone(CLOSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9866 {
AzureIoTClient 28:add19eb7defa 9867 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9868 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9869 {
AzureIoTClient 28:add19eb7defa 9870 close_instance->composite_value = amqpvalue_clone(((CLOSE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9871 if (close_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9872 {
AzureIoTClient 28:add19eb7defa 9873 free(close_instance);
AzureIoTClient 28:add19eb7defa 9874 close_instance = NULL;
AzureIoTClient 28:add19eb7defa 9875 }
AzureIoTClient 28:add19eb7defa 9876 }
AzureIoTClient 28:add19eb7defa 9877
AzureIoTClient 28:add19eb7defa 9878 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9879 }
Azure.IoT Build 0:6ae2f7bca550 9880
Azure.IoT Build 0:6ae2f7bca550 9881 void close_destroy(CLOSE_HANDLE close)
Azure.IoT Build 0:6ae2f7bca550 9882 {
AzureIoTClient 28:add19eb7defa 9883 if (close != NULL)
AzureIoTClient 28:add19eb7defa 9884 {
AzureIoTClient 28:add19eb7defa 9885 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 9886 amqpvalue_destroy(close_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9887 free(close_instance);
AzureIoTClient 28:add19eb7defa 9888 }
Azure.IoT Build 0:6ae2f7bca550 9889 }
Azure.IoT Build 0:6ae2f7bca550 9890
Azure.IoT Build 0:6ae2f7bca550 9891 AMQP_VALUE amqpvalue_create_close(CLOSE_HANDLE close)
Azure.IoT Build 0:6ae2f7bca550 9892 {
AzureIoTClient 28:add19eb7defa 9893 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9894
AzureIoTClient 28:add19eb7defa 9895 if (close == NULL)
AzureIoTClient 28:add19eb7defa 9896 {
AzureIoTClient 28:add19eb7defa 9897 result = NULL;
AzureIoTClient 28:add19eb7defa 9898 }
AzureIoTClient 28:add19eb7defa 9899 else
AzureIoTClient 28:add19eb7defa 9900 {
AzureIoTClient 28:add19eb7defa 9901 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 9902 result = amqpvalue_clone(close_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9903 }
AzureIoTClient 28:add19eb7defa 9904
AzureIoTClient 28:add19eb7defa 9905 return result;
Azure.IoT Build 0:6ae2f7bca550 9906 }
Azure.IoT Build 0:6ae2f7bca550 9907
Azure.IoT Build 0:6ae2f7bca550 9908 bool is_close_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9909 {
AzureIoTClient 28:add19eb7defa 9910 bool result;
AzureIoTClient 28:add19eb7defa 9911
AzureIoTClient 28:add19eb7defa 9912 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9913 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9914 (descriptor_ulong == 24))
AzureIoTClient 28:add19eb7defa 9915 {
AzureIoTClient 28:add19eb7defa 9916 result = true;
AzureIoTClient 28:add19eb7defa 9917 }
AzureIoTClient 28:add19eb7defa 9918 else
AzureIoTClient 28:add19eb7defa 9919 {
AzureIoTClient 28:add19eb7defa 9920 result = false;
AzureIoTClient 28:add19eb7defa 9921 }
AzureIoTClient 28:add19eb7defa 9922
AzureIoTClient 28:add19eb7defa 9923 return result;
Azure.IoT Build 0:6ae2f7bca550 9924 }
Azure.IoT Build 0:6ae2f7bca550 9925
Azure.IoT Build 0:6ae2f7bca550 9926
Azure.IoT Build 0:6ae2f7bca550 9927 int amqpvalue_get_close(AMQP_VALUE value, CLOSE_HANDLE* close_handle)
Azure.IoT Build 0:6ae2f7bca550 9928 {
AzureIoTClient 28:add19eb7defa 9929 int result;
AzureIoTClient 28:add19eb7defa 9930 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close_create_internal();
AzureIoTClient 28:add19eb7defa 9931 *close_handle = close_instance;
AzureIoTClient 28:add19eb7defa 9932 if (*close_handle == NULL)
AzureIoTClient 28:add19eb7defa 9933 {
AzureIoTClient 28:add19eb7defa 9934 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9935 }
AzureIoTClient 28:add19eb7defa 9936 else
AzureIoTClient 28:add19eb7defa 9937 {
AzureIoTClient 28:add19eb7defa 9938 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9939 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9940 {
AzureIoTClient 28:add19eb7defa 9941 close_destroy(*close_handle);
AzureIoTClient 28:add19eb7defa 9942 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9943 }
AzureIoTClient 28:add19eb7defa 9944 else
AzureIoTClient 28:add19eb7defa 9945 {
AzureIoTClient 23:1111ee8bcba4 9946 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9947 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9948 {
AzureIoTClient 23:1111ee8bcba4 9949 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9950 }
AzureIoTClient 23:1111ee8bcba4 9951 else
AzureIoTClient 23:1111ee8bcba4 9952 {
AzureIoTClient 28:add19eb7defa 9953 do
AzureIoTClient 28:add19eb7defa 9954 {
AzureIoTClient 28:add19eb7defa 9955 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9956 /* error */
AzureIoTClient 28:add19eb7defa 9957 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9958 {
AzureIoTClient 23:1111ee8bcba4 9959 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9960 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9961 {
AzureIoTClient 28:add19eb7defa 9962 /* do nothing */
AzureIoTClient 28:add19eb7defa 9963 }
AzureIoTClient 28:add19eb7defa 9964 else
AzureIoTClient 28:add19eb7defa 9965 {
AzureIoTClient 28:add19eb7defa 9966 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9967 {
AzureIoTClient 28:add19eb7defa 9968 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9969 }
AzureIoTClient 28:add19eb7defa 9970 else
AzureIoTClient 28:add19eb7defa 9971 {
AzureIoTClient 28:add19eb7defa 9972 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9973 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9974 {
AzureIoTClient 28:add19eb7defa 9975 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9976 close_destroy(*close_handle);
AzureIoTClient 28:add19eb7defa 9977 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9978 break;
AzureIoTClient 28:add19eb7defa 9979 }
AzureIoTClient 25:1101516ee67d 9980 else
AzureIoTClient 25:1101516ee67d 9981 {
AzureIoTClient 28:add19eb7defa 9982 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9983 }
AzureIoTClient 28:add19eb7defa 9984 }
AzureIoTClient 28:add19eb7defa 9985
AzureIoTClient 28:add19eb7defa 9986 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9987 }
AzureIoTClient 28:add19eb7defa 9988 }
AzureIoTClient 28:add19eb7defa 9989
AzureIoTClient 28:add19eb7defa 9990 close_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9991
AzureIoTClient 28:add19eb7defa 9992 result = 0;
AzureIoTClient 28:add19eb7defa 9993 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9994 }
AzureIoTClient 28:add19eb7defa 9995 }
AzureIoTClient 28:add19eb7defa 9996 }
AzureIoTClient 28:add19eb7defa 9997
AzureIoTClient 28:add19eb7defa 9998 return result;
Azure.IoT Build 0:6ae2f7bca550 9999 }
Azure.IoT Build 0:6ae2f7bca550 10000
Azure.IoT Build 0:6ae2f7bca550 10001 int close_get_error(CLOSE_HANDLE close, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 10002 {
AzureIoTClient 28:add19eb7defa 10003 int result;
AzureIoTClient 28:add19eb7defa 10004
AzureIoTClient 28:add19eb7defa 10005 if (close == NULL)
AzureIoTClient 28:add19eb7defa 10006 {
AzureIoTClient 28:add19eb7defa 10007 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10008 }
AzureIoTClient 28:add19eb7defa 10009 else
AzureIoTClient 28:add19eb7defa 10010 {
AzureIoTClient 28:add19eb7defa 10011 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10012 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 23:1111ee8bcba4 10013 if (amqpvalue_get_composite_item_count(close_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10014 {
AzureIoTClient 23:1111ee8bcba4 10015 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10016 }
AzureIoTClient 23:1111ee8bcba4 10017 else
AzureIoTClient 23:1111ee8bcba4 10018 {
AzureIoTClient 23:1111ee8bcba4 10019 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10020 {
AzureIoTClient 28:add19eb7defa 10021 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10022 }
AzureIoTClient 28:add19eb7defa 10023 else
AzureIoTClient 28:add19eb7defa 10024 {
AzureIoTClient 28:add19eb7defa 10025 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(close_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10026 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10027 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10028 {
AzureIoTClient 28:add19eb7defa 10029 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10030 }
AzureIoTClient 28:add19eb7defa 10031 else
AzureIoTClient 28:add19eb7defa 10032 {
AzureIoTClient 28:add19eb7defa 10033 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10034 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 10035 {
AzureIoTClient 28:add19eb7defa 10036 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10037 }
AzureIoTClient 28:add19eb7defa 10038 else
AzureIoTClient 28:add19eb7defa 10039 {
AzureIoTClient 28:add19eb7defa 10040 result = 0;
AzureIoTClient 28:add19eb7defa 10041 }
AzureIoTClient 28:add19eb7defa 10042 }
AzureIoTClient 28:add19eb7defa 10043 }
AzureIoTClient 28:add19eb7defa 10044 }
AzureIoTClient 28:add19eb7defa 10045 }
AzureIoTClient 28:add19eb7defa 10046
AzureIoTClient 28:add19eb7defa 10047 return result;
Azure.IoT Build 0:6ae2f7bca550 10048 }
Azure.IoT Build 0:6ae2f7bca550 10049
Azure.IoT Build 0:6ae2f7bca550 10050 int close_set_error(CLOSE_HANDLE close, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 10051 {
AzureIoTClient 28:add19eb7defa 10052 int result;
AzureIoTClient 28:add19eb7defa 10053
AzureIoTClient 28:add19eb7defa 10054 if (close == NULL)
AzureIoTClient 28:add19eb7defa 10055 {
AzureIoTClient 28:add19eb7defa 10056 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10057 }
AzureIoTClient 28:add19eb7defa 10058 else
AzureIoTClient 28:add19eb7defa 10059 {
AzureIoTClient 28:add19eb7defa 10060 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 10061 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 10062 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10063 {
AzureIoTClient 28:add19eb7defa 10064 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10065 }
AzureIoTClient 28:add19eb7defa 10066 else
AzureIoTClient 28:add19eb7defa 10067 {
AzureIoTClient 28:add19eb7defa 10068 if (amqpvalue_set_composite_item(close_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10069 {
AzureIoTClient 28:add19eb7defa 10070 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10071 }
AzureIoTClient 28:add19eb7defa 10072 else
AzureIoTClient 28:add19eb7defa 10073 {
AzureIoTClient 28:add19eb7defa 10074 result = 0;
AzureIoTClient 28:add19eb7defa 10075 }
AzureIoTClient 28:add19eb7defa 10076
AzureIoTClient 28:add19eb7defa 10077 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 10078 }
AzureIoTClient 28:add19eb7defa 10079 }
AzureIoTClient 28:add19eb7defa 10080
AzureIoTClient 28:add19eb7defa 10081 return result;
Azure.IoT Build 0:6ae2f7bca550 10082 }
Azure.IoT Build 0:6ae2f7bca550 10083
Azure.IoT Build 0:6ae2f7bca550 10084
Azure.IoT Build 0:6ae2f7bca550 10085 /* sasl-code */
Azure.IoT Build 0:6ae2f7bca550 10086
Azure.IoT Build 0:6ae2f7bca550 10087 AMQP_VALUE amqpvalue_create_sasl_code(sasl_code value)
Azure.IoT Build 0:6ae2f7bca550 10088 {
AzureIoTClient 28:add19eb7defa 10089 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 10090 }
Azure.IoT Build 0:6ae2f7bca550 10091
Azure.IoT Build 0:6ae2f7bca550 10092 /* sasl-mechanisms */
Azure.IoT Build 0:6ae2f7bca550 10093
Azure.IoT Build 0:6ae2f7bca550 10094 typedef struct SASL_MECHANISMS_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10095 {
AzureIoTClient 28:add19eb7defa 10096 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10097 } SASL_MECHANISMS_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10098
Azure.IoT Build 0:6ae2f7bca550 10099 static SASL_MECHANISMS_HANDLE sasl_mechanisms_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10100 {
AzureIoTClient 28:add19eb7defa 10101 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10102 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10103 {
AzureIoTClient 28:add19eb7defa 10104 sasl_mechanisms_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10105 }
AzureIoTClient 28:add19eb7defa 10106
AzureIoTClient 28:add19eb7defa 10107 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10108 }
Azure.IoT Build 0:6ae2f7bca550 10109
Azure.IoT Build 0:6ae2f7bca550 10110 SASL_MECHANISMS_HANDLE sasl_mechanisms_create(AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10111 {
AzureIoTClient 28:add19eb7defa 10112 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10113 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10114 {
AzureIoTClient 28:add19eb7defa 10115 sasl_mechanisms_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(64);
AzureIoTClient 28:add19eb7defa 10116 if (sasl_mechanisms_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10117 {
AzureIoTClient 28:add19eb7defa 10118 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10119 sasl_mechanisms_instance = NULL;
AzureIoTClient 28:add19eb7defa 10120 }
AzureIoTClient 28:add19eb7defa 10121 else
AzureIoTClient 28:add19eb7defa 10122 {
AzureIoTClient 28:add19eb7defa 10123 AMQP_VALUE sasl_server_mechanisms_amqp_value;
AzureIoTClient 28:add19eb7defa 10124 int result = 0;
AzureIoTClient 28:add19eb7defa 10125
AzureIoTClient 28:add19eb7defa 10126 sasl_server_mechanisms_amqp_value = sasl_server_mechanisms_value;
AzureIoTClient 28:add19eb7defa 10127 if ((result == 0) && (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10128 {
AzureIoTClient 28:add19eb7defa 10129 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10130 }
AzureIoTClient 28:add19eb7defa 10131
AzureIoTClient 28:add19eb7defa 10132 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
AzureIoTClient 28:add19eb7defa 10133 }
AzureIoTClient 28:add19eb7defa 10134 }
AzureIoTClient 28:add19eb7defa 10135
AzureIoTClient 28:add19eb7defa 10136 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10137 }
Azure.IoT Build 0:6ae2f7bca550 10138
Azure.IoT Build 0:6ae2f7bca550 10139 SASL_MECHANISMS_HANDLE sasl_mechanisms_clone(SASL_MECHANISMS_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10140 {
AzureIoTClient 28:add19eb7defa 10141 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10142 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10143 {
AzureIoTClient 28:add19eb7defa 10144 sasl_mechanisms_instance->composite_value = amqpvalue_clone(((SASL_MECHANISMS_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10145 if (sasl_mechanisms_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10146 {
AzureIoTClient 28:add19eb7defa 10147 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10148 sasl_mechanisms_instance = NULL;
AzureIoTClient 28:add19eb7defa 10149 }
AzureIoTClient 28:add19eb7defa 10150 }
AzureIoTClient 28:add19eb7defa 10151
AzureIoTClient 28:add19eb7defa 10152 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10153 }
Azure.IoT Build 0:6ae2f7bca550 10154
Azure.IoT Build 0:6ae2f7bca550 10155 void sasl_mechanisms_destroy(SASL_MECHANISMS_HANDLE sasl_mechanisms)
Azure.IoT Build 0:6ae2f7bca550 10156 {
AzureIoTClient 28:add19eb7defa 10157 if (sasl_mechanisms != NULL)
AzureIoTClient 28:add19eb7defa 10158 {
AzureIoTClient 28:add19eb7defa 10159 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10160 amqpvalue_destroy(sasl_mechanisms_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10161 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10162 }
Azure.IoT Build 0:6ae2f7bca550 10163 }
Azure.IoT Build 0:6ae2f7bca550 10164
Azure.IoT Build 0:6ae2f7bca550 10165 AMQP_VALUE amqpvalue_create_sasl_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms)
Azure.IoT Build 0:6ae2f7bca550 10166 {
AzureIoTClient 28:add19eb7defa 10167 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 10168
AzureIoTClient 28:add19eb7defa 10169 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10170 {
AzureIoTClient 28:add19eb7defa 10171 result = NULL;
AzureIoTClient 28:add19eb7defa 10172 }
AzureIoTClient 28:add19eb7defa 10173 else
AzureIoTClient 28:add19eb7defa 10174 {
AzureIoTClient 28:add19eb7defa 10175 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10176 result = amqpvalue_clone(sasl_mechanisms_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10177 }
AzureIoTClient 28:add19eb7defa 10178
AzureIoTClient 28:add19eb7defa 10179 return result;
Azure.IoT Build 0:6ae2f7bca550 10180 }
Azure.IoT Build 0:6ae2f7bca550 10181
Azure.IoT Build 0:6ae2f7bca550 10182 bool is_sasl_mechanisms_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10183 {
AzureIoTClient 28:add19eb7defa 10184 bool result;
AzureIoTClient 28:add19eb7defa 10185
AzureIoTClient 28:add19eb7defa 10186 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 10187 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 10188 (descriptor_ulong == 64))
AzureIoTClient 28:add19eb7defa 10189 {
AzureIoTClient 28:add19eb7defa 10190 result = true;
AzureIoTClient 28:add19eb7defa 10191 }
AzureIoTClient 28:add19eb7defa 10192 else
AzureIoTClient 28:add19eb7defa 10193 {
AzureIoTClient 28:add19eb7defa 10194 result = false;
AzureIoTClient 28:add19eb7defa 10195 }
AzureIoTClient 28:add19eb7defa 10196
AzureIoTClient 28:add19eb7defa 10197 return result;
Azure.IoT Build 0:6ae2f7bca550 10198 }
Azure.IoT Build 0:6ae2f7bca550 10199
Azure.IoT Build 0:6ae2f7bca550 10200
Azure.IoT Build 0:6ae2f7bca550 10201 int amqpvalue_get_sasl_mechanisms(AMQP_VALUE value, SASL_MECHANISMS_HANDLE* sasl_mechanisms_handle)
Azure.IoT Build 0:6ae2f7bca550 10202 {
AzureIoTClient 28:add19eb7defa 10203 int result;
AzureIoTClient 28:add19eb7defa 10204 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms_create_internal();
AzureIoTClient 28:add19eb7defa 10205 *sasl_mechanisms_handle = sasl_mechanisms_instance;
AzureIoTClient 28:add19eb7defa 10206 if (*sasl_mechanisms_handle == NULL)
AzureIoTClient 28:add19eb7defa 10207 {
AzureIoTClient 28:add19eb7defa 10208 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10209 }
AzureIoTClient 28:add19eb7defa 10210 else
AzureIoTClient 28:add19eb7defa 10211 {
AzureIoTClient 28:add19eb7defa 10212 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 10213 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 10214 {
AzureIoTClient 28:add19eb7defa 10215 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10216 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10217 }
AzureIoTClient 28:add19eb7defa 10218 else
AzureIoTClient 28:add19eb7defa 10219 {
AzureIoTClient 23:1111ee8bcba4 10220 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10221 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10222 {
AzureIoTClient 23:1111ee8bcba4 10223 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10224 }
AzureIoTClient 23:1111ee8bcba4 10225 else
AzureIoTClient 23:1111ee8bcba4 10226 {
AzureIoTClient 28:add19eb7defa 10227 do
AzureIoTClient 28:add19eb7defa 10228 {
AzureIoTClient 28:add19eb7defa 10229 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 10230 /* sasl-server-mechanisms */
AzureIoTClient 28:add19eb7defa 10231 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10232 {
AzureIoTClient 23:1111ee8bcba4 10233 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 10234 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10235 {
AzureIoTClient 28:add19eb7defa 10236 {
AzureIoTClient 28:add19eb7defa 10237 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10238 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10239 break;
AzureIoTClient 28:add19eb7defa 10240 }
AzureIoTClient 28:add19eb7defa 10241 }
AzureIoTClient 28:add19eb7defa 10242 else
AzureIoTClient 28:add19eb7defa 10243 {
AzureIoTClient 28:add19eb7defa 10244 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10245 {
AzureIoTClient 28:add19eb7defa 10246 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10247 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10248 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10249 break;
AzureIoTClient 28:add19eb7defa 10250 }
AzureIoTClient 28:add19eb7defa 10251 else
AzureIoTClient 28:add19eb7defa 10252 {
AzureIoTClient 28:add19eb7defa 10253 const char* sasl_server_mechanisms = NULL;
AzureIoTClient 28:add19eb7defa 10254 AMQP_VALUE sasl_server_mechanisms_array;
AzureIoTClient 28:add19eb7defa 10255 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &sasl_server_mechanisms_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 10256 (amqpvalue_get_symbol(item_value, &sasl_server_mechanisms) != 0))
AzureIoTClient 28:add19eb7defa 10257 {
AzureIoTClient 28:add19eb7defa 10258 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10259 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10260 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10261 break;
AzureIoTClient 28:add19eb7defa 10262 }
AzureIoTClient 28:add19eb7defa 10263 }
AzureIoTClient 28:add19eb7defa 10264
AzureIoTClient 28:add19eb7defa 10265 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10266 }
AzureIoTClient 28:add19eb7defa 10267 }
AzureIoTClient 28:add19eb7defa 10268 else
AzureIoTClient 28:add19eb7defa 10269 {
AzureIoTClient 28:add19eb7defa 10270 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10271 }
AzureIoTClient 28:add19eb7defa 10272
AzureIoTClient 28:add19eb7defa 10273 sasl_mechanisms_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 10274
AzureIoTClient 28:add19eb7defa 10275 result = 0;
AzureIoTClient 28:add19eb7defa 10276 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 10277 }
AzureIoTClient 28:add19eb7defa 10278 }
AzureIoTClient 28:add19eb7defa 10279 }
AzureIoTClient 28:add19eb7defa 10280
AzureIoTClient 28:add19eb7defa 10281 return result;
Azure.IoT Build 0:6ae2f7bca550 10282 }
Azure.IoT Build 0:6ae2f7bca550 10283
Azure.IoT Build 0:6ae2f7bca550 10284 int sasl_mechanisms_get_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE* sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10285 {
AzureIoTClient 28:add19eb7defa 10286 int result;
AzureIoTClient 28:add19eb7defa 10287
AzureIoTClient 28:add19eb7defa 10288 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10289 {
AzureIoTClient 28:add19eb7defa 10290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10291 }
AzureIoTClient 28:add19eb7defa 10292 else
AzureIoTClient 28:add19eb7defa 10293 {
AzureIoTClient 28:add19eb7defa 10294 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10295 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 23:1111ee8bcba4 10296 if (amqpvalue_get_composite_item_count(sasl_mechanisms_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10297 {
AzureIoTClient 23:1111ee8bcba4 10298 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10299 }
AzureIoTClient 23:1111ee8bcba4 10300 else
AzureIoTClient 23:1111ee8bcba4 10301 {
AzureIoTClient 23:1111ee8bcba4 10302 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10303 {
AzureIoTClient 28:add19eb7defa 10304 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10305 }
AzureIoTClient 28:add19eb7defa 10306 else
AzureIoTClient 28:add19eb7defa 10307 {
AzureIoTClient 28:add19eb7defa 10308 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_mechanisms_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10309 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10310 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10311 {
AzureIoTClient 28:add19eb7defa 10312 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10313 }
AzureIoTClient 28:add19eb7defa 10314 else
AzureIoTClient 28:add19eb7defa 10315 {
AzureIoTClient 28:add19eb7defa 10316 const char* sasl_server_mechanisms_single_value;
AzureIoTClient 28:add19eb7defa 10317 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10318 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 10319 {
AzureIoTClient 28:add19eb7defa 10320 get_single_value_result = amqpvalue_get_symbol(item_value, &sasl_server_mechanisms_single_value);
AzureIoTClient 28:add19eb7defa 10321 }
AzureIoTClient 28:add19eb7defa 10322 else
AzureIoTClient 28:add19eb7defa 10323 {
AzureIoTClient 28:add19eb7defa 10324 (void)memset((void*)&sasl_server_mechanisms_single_value, 0, sizeof(sasl_server_mechanisms_single_value));
AzureIoTClient 28:add19eb7defa 10325 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 10326 }
AzureIoTClient 28:add19eb7defa 10327
AzureIoTClient 28:add19eb7defa 10328 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, sasl_server_mechanisms_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 10329 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 10330 {
AzureIoTClient 28:add19eb7defa 10331 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10332 }
AzureIoTClient 28:add19eb7defa 10333 else
AzureIoTClient 28:add19eb7defa 10334 {
AzureIoTClient 28:add19eb7defa 10335 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 10336 {
AzureIoTClient 28:add19eb7defa 10337 *sasl_server_mechanisms_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 10338 if (*sasl_server_mechanisms_value == NULL)
AzureIoTClient 28:add19eb7defa 10339 {
AzureIoTClient 28:add19eb7defa 10340 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10341 }
AzureIoTClient 28:add19eb7defa 10342 else
AzureIoTClient 28:add19eb7defa 10343 {
AzureIoTClient 28:add19eb7defa 10344 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(sasl_server_mechanisms_single_value);
AzureIoTClient 28:add19eb7defa 10345 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10346 {
AzureIoTClient 28:add19eb7defa 10347 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10348 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10349 }
AzureIoTClient 28:add19eb7defa 10350 else
AzureIoTClient 28:add19eb7defa 10351 {
AzureIoTClient 28:add19eb7defa 10352 if (amqpvalue_add_array_item(*sasl_server_mechanisms_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10353 {
AzureIoTClient 28:add19eb7defa 10354 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10355 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 10356 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10357 }
AzureIoTClient 28:add19eb7defa 10358 else
AzureIoTClient 28:add19eb7defa 10359 {
AzureIoTClient 29:4a11413cf217 10360 if (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, *sasl_server_mechanisms_value) != 0)
AzureIoTClient 29:4a11413cf217 10361 {
AzureIoTClient 29:4a11413cf217 10362 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 29:4a11413cf217 10363 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 10364 }
AzureIoTClient 29:4a11413cf217 10365 else
AzureIoTClient 29:4a11413cf217 10366 {
AzureIoTClient 29:4a11413cf217 10367 result = 0;
AzureIoTClient 29:4a11413cf217 10368 }
AzureIoTClient 28:add19eb7defa 10369 }
AzureIoTClient 29:4a11413cf217 10370
AzureIoTClient 29:4a11413cf217 10371 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 10372 }
AzureIoTClient 29:4a11413cf217 10373 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10374 }
AzureIoTClient 28:add19eb7defa 10375 }
AzureIoTClient 28:add19eb7defa 10376 else
AzureIoTClient 28:add19eb7defa 10377 {
AzureIoTClient 28:add19eb7defa 10378 result = 0;
AzureIoTClient 28:add19eb7defa 10379 }
AzureIoTClient 28:add19eb7defa 10380 }
AzureIoTClient 28:add19eb7defa 10381 }
AzureIoTClient 28:add19eb7defa 10382 }
AzureIoTClient 28:add19eb7defa 10383 }
AzureIoTClient 28:add19eb7defa 10384 }
AzureIoTClient 28:add19eb7defa 10385
AzureIoTClient 28:add19eb7defa 10386 return result;
Azure.IoT Build 0:6ae2f7bca550 10387 }
Azure.IoT Build 0:6ae2f7bca550 10388
Azure.IoT Build 0:6ae2f7bca550 10389 int sasl_mechanisms_set_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10390 {
AzureIoTClient 28:add19eb7defa 10391 int result;
AzureIoTClient 28:add19eb7defa 10392
AzureIoTClient 28:add19eb7defa 10393 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10394 {
AzureIoTClient 28:add19eb7defa 10395 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10396 }
AzureIoTClient 28:add19eb7defa 10397 else
AzureIoTClient 28:add19eb7defa 10398 {
AzureIoTClient 28:add19eb7defa 10399 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10400 AMQP_VALUE sasl_server_mechanisms_amqp_value;
AzureIoTClient 23:1111ee8bcba4 10401 if (sasl_server_mechanisms_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10402 {
AzureIoTClient 23:1111ee8bcba4 10403 sasl_server_mechanisms_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 10404 }
AzureIoTClient 23:1111ee8bcba4 10405 else
AzureIoTClient 23:1111ee8bcba4 10406 {
AzureIoTClient 23:1111ee8bcba4 10407 sasl_server_mechanisms_amqp_value = amqpvalue_clone(sasl_server_mechanisms_value);
AzureIoTClient 23:1111ee8bcba4 10408 }
AzureIoTClient 28:add19eb7defa 10409 if (sasl_server_mechanisms_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10410 {
AzureIoTClient 28:add19eb7defa 10411 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10412 }
AzureIoTClient 28:add19eb7defa 10413 else
AzureIoTClient 28:add19eb7defa 10414 {
AzureIoTClient 28:add19eb7defa 10415 if (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10416 {
AzureIoTClient 28:add19eb7defa 10417 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10418 }
AzureIoTClient 28:add19eb7defa 10419 else
AzureIoTClient 28:add19eb7defa 10420 {
AzureIoTClient 28:add19eb7defa 10421 result = 0;
AzureIoTClient 28:add19eb7defa 10422 }
AzureIoTClient 28:add19eb7defa 10423
AzureIoTClient 28:add19eb7defa 10424 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
AzureIoTClient 28:add19eb7defa 10425 }
AzureIoTClient 28:add19eb7defa 10426 }
AzureIoTClient 28:add19eb7defa 10427
AzureIoTClient 28:add19eb7defa 10428 return result;
Azure.IoT Build 0:6ae2f7bca550 10429 }
Azure.IoT Build 0:6ae2f7bca550 10430
Azure.IoT Build 0:6ae2f7bca550 10431
Azure.IoT Build 0:6ae2f7bca550 10432 /* sasl-init */
Azure.IoT Build 0:6ae2f7bca550 10433
Azure.IoT Build 0:6ae2f7bca550 10434 typedef struct SASL_INIT_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10435 {
AzureIoTClient 28:add19eb7defa 10436 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10437 } SASL_INIT_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10438
Azure.IoT Build 0:6ae2f7bca550 10439 static SASL_INIT_HANDLE sasl_init_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10440 {
AzureIoTClient 28:add19eb7defa 10441 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10442 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10443 {
AzureIoTClient 28:add19eb7defa 10444 sasl_init_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10445 }
AzureIoTClient 28:add19eb7defa 10446
AzureIoTClient 28:add19eb7defa 10447 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10448 }
Azure.IoT Build 0:6ae2f7bca550 10449
Azure.IoT Build 0:6ae2f7bca550 10450 SASL_INIT_HANDLE sasl_init_create(const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10451 {
AzureIoTClient 28:add19eb7defa 10452 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10453 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10454 {
AzureIoTClient 28:add19eb7defa 10455 sasl_init_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(65);
AzureIoTClient 28:add19eb7defa 10456 if (sasl_init_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10457 {
AzureIoTClient 28:add19eb7defa 10458 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10459 sasl_init_instance = NULL;
AzureIoTClient 28:add19eb7defa 10460 }
AzureIoTClient 28:add19eb7defa 10461 else
AzureIoTClient 28:add19eb7defa 10462 {
AzureIoTClient 28:add19eb7defa 10463 AMQP_VALUE mechanism_amqp_value;
AzureIoTClient 28:add19eb7defa 10464 int result = 0;
AzureIoTClient 28:add19eb7defa 10465
AzureIoTClient 28:add19eb7defa 10466 mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
AzureIoTClient 28:add19eb7defa 10467 if ((result == 0) && (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10468 {
AzureIoTClient 28:add19eb7defa 10469 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10470 }
AzureIoTClient 28:add19eb7defa 10471
AzureIoTClient 28:add19eb7defa 10472 amqpvalue_destroy(mechanism_amqp_value);
AzureIoTClient 28:add19eb7defa 10473 }
AzureIoTClient 28:add19eb7defa 10474 }
AzureIoTClient 28:add19eb7defa 10475
AzureIoTClient 28:add19eb7defa 10476 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10477 }
Azure.IoT Build 0:6ae2f7bca550 10478
Azure.IoT Build 0:6ae2f7bca550 10479 SASL_INIT_HANDLE sasl_init_clone(SASL_INIT_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10480 {
AzureIoTClient 28:add19eb7defa 10481 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10482 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10483 {
AzureIoTClient 28:add19eb7defa 10484 sasl_init_instance->composite_value = amqpvalue_clone(((SASL_INIT_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10485 if (sasl_init_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10486 {
AzureIoTClient 28:add19eb7defa 10487 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10488 sasl_init_instance = NULL;
AzureIoTClient 28:add19eb7defa 10489 }
AzureIoTClient 28:add19eb7defa 10490 }
AzureIoTClient 28:add19eb7defa 10491
AzureIoTClient 28:add19eb7defa 10492 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10493 }
Azure.IoT Build 0:6ae2f7bca550 10494
Azure.IoT Build 0:6ae2f7bca550 10495 void sasl_init_destroy(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 10496 {
AzureIoTClient 28:add19eb7defa 10497 if (sasl_init != NULL)
AzureIoTClient 28:add19eb7defa 10498 {
AzureIoTClient 28:add19eb7defa 10499 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10500 amqpvalue_destroy(sasl_init_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10501 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10502 }
Azure.IoT Build 0:6ae2f7bca550 10503 }
Azure.IoT Build 0:6ae2f7bca550 10504
Azure.IoT Build 0:6ae2f7bca550 10505 AMQP_VALUE amqpvalue_create_sasl_init(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 10506 {
AzureIoTClient 28:add19eb7defa 10507 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 10508
AzureIoTClient 28:add19eb7defa 10509 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10510 {
AzureIoTClient 28:add19eb7defa 10511 result = NULL;
AzureIoTClient 28:add19eb7defa 10512 }
AzureIoTClient 28:add19eb7defa 10513 else
AzureIoTClient 28:add19eb7defa 10514 {
AzureIoTClient 28:add19eb7defa 10515 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10516 result = amqpvalue_clone(sasl_init_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10517 }
AzureIoTClient 28:add19eb7defa 10518
AzureIoTClient 28:add19eb7defa 10519 return result;
Azure.IoT Build 0:6ae2f7bca550 10520 }
Azure.IoT Build 0:6ae2f7bca550 10521
Azure.IoT Build 0:6ae2f7bca550 10522 bool is_sasl_init_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10523 {
AzureIoTClient 28:add19eb7defa 10524 bool result;
AzureIoTClient 28:add19eb7defa 10525
AzureIoTClient 28:add19eb7defa 10526 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 10527 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 10528 (descriptor_ulong == 65))
AzureIoTClient 28:add19eb7defa 10529 {
AzureIoTClient 28:add19eb7defa 10530 result = true;
AzureIoTClient 28:add19eb7defa 10531 }
AzureIoTClient 28:add19eb7defa 10532 else
AzureIoTClient 28:add19eb7defa 10533 {
AzureIoTClient 28:add19eb7defa 10534 result = false;
AzureIoTClient 28:add19eb7defa 10535 }
AzureIoTClient 28:add19eb7defa 10536
AzureIoTClient 28:add19eb7defa 10537 return result;
Azure.IoT Build 0:6ae2f7bca550 10538 }
Azure.IoT Build 0:6ae2f7bca550 10539
Azure.IoT Build 0:6ae2f7bca550 10540
Azure.IoT Build 0:6ae2f7bca550 10541 int amqpvalue_get_sasl_init(AMQP_VALUE value, SASL_INIT_HANDLE* sasl_init_handle)
Azure.IoT Build 0:6ae2f7bca550 10542 {
AzureIoTClient 28:add19eb7defa 10543 int result;
AzureIoTClient 28:add19eb7defa 10544 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init_create_internal();
AzureIoTClient 28:add19eb7defa 10545 *sasl_init_handle = sasl_init_instance;
AzureIoTClient 28:add19eb7defa 10546 if (*sasl_init_handle == NULL)
AzureIoTClient 28:add19eb7defa 10547 {
AzureIoTClient 28:add19eb7defa 10548 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10549 }
AzureIoTClient 28:add19eb7defa 10550 else
AzureIoTClient 28:add19eb7defa 10551 {
AzureIoTClient 28:add19eb7defa 10552 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 10553 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 10554 {
AzureIoTClient 28:add19eb7defa 10555 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10556 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10557 }
AzureIoTClient 28:add19eb7defa 10558 else
AzureIoTClient 28:add19eb7defa 10559 {
AzureIoTClient 23:1111ee8bcba4 10560 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10561 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10562 {
AzureIoTClient 23:1111ee8bcba4 10563 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10564 }
AzureIoTClient 23:1111ee8bcba4 10565 else
AzureIoTClient 23:1111ee8bcba4 10566 {
AzureIoTClient 28:add19eb7defa 10567 do
AzureIoTClient 28:add19eb7defa 10568 {
AzureIoTClient 28:add19eb7defa 10569 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 10570 /* mechanism */
AzureIoTClient 28:add19eb7defa 10571 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10572 {
AzureIoTClient 23:1111ee8bcba4 10573 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 10574 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10575 {
AzureIoTClient 28:add19eb7defa 10576 {
AzureIoTClient 28:add19eb7defa 10577 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10578 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10579 break;
AzureIoTClient 28:add19eb7defa 10580 }
AzureIoTClient 28:add19eb7defa 10581 }
AzureIoTClient 28:add19eb7defa 10582 else
AzureIoTClient 28:add19eb7defa 10583 {
AzureIoTClient 28:add19eb7defa 10584 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10585 {
AzureIoTClient 28:add19eb7defa 10586 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10587 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10588 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10589 break;
AzureIoTClient 28:add19eb7defa 10590 }
AzureIoTClient 28:add19eb7defa 10591 else
AzureIoTClient 28:add19eb7defa 10592 {
AzureIoTClient 28:add19eb7defa 10593 const char* mechanism;
AzureIoTClient 28:add19eb7defa 10594 if (amqpvalue_get_symbol(item_value, &mechanism) != 0)
AzureIoTClient 28:add19eb7defa 10595 {
AzureIoTClient 28:add19eb7defa 10596 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10597 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10598 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10599 break;
AzureIoTClient 28:add19eb7defa 10600 }
AzureIoTClient 28:add19eb7defa 10601 }
AzureIoTClient 28:add19eb7defa 10602
AzureIoTClient 28:add19eb7defa 10603 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10604 }
AzureIoTClient 28:add19eb7defa 10605 }
AzureIoTClient 28:add19eb7defa 10606 else
AzureIoTClient 28:add19eb7defa 10607 {
AzureIoTClient 28:add19eb7defa 10608 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10609 }
AzureIoTClient 28:add19eb7defa 10610 /* initial-response */
AzureIoTClient 28:add19eb7defa 10611 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 10612 {
AzureIoTClient 23:1111ee8bcba4 10613 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 10614 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10615 {
AzureIoTClient 28:add19eb7defa 10616 /* do nothing */
AzureIoTClient 28:add19eb7defa 10617 }
AzureIoTClient 28:add19eb7defa 10618 else
AzureIoTClient 28:add19eb7defa 10619 {
AzureIoTClient 28:add19eb7defa 10620 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10621 {
AzureIoTClient 28:add19eb7defa 10622 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 10623 }
AzureIoTClient 28:add19eb7defa 10624 else
AzureIoTClient 28:add19eb7defa 10625 {
AzureIoTClient 28:add19eb7defa 10626 amqp_binary initial_response;
AzureIoTClient 28:add19eb7defa 10627 if (amqpvalue_get_binary(item_value, &initial_response) != 0)
AzureIoTClient 28:add19eb7defa 10628 {
AzureIoTClient 28:add19eb7defa 10629 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10630 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10631 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10632 break;
AzureIoTClient 28:add19eb7defa 10633 }
AzureIoTClient 28:add19eb7defa 10634 }
AzureIoTClient 28:add19eb7defa 10635
AzureIoTClient 28:add19eb7defa 10636 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10637 }
AzureIoTClient 28:add19eb7defa 10638 }
AzureIoTClient 28:add19eb7defa 10639 /* hostname */
AzureIoTClient 28:add19eb7defa 10640 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 10641 {
AzureIoTClient 23:1111ee8bcba4 10642 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 10643 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10644 {
AzureIoTClient 28:add19eb7defa 10645 /* do nothing */
AzureIoTClient 28:add19eb7defa 10646 }
AzureIoTClient 28:add19eb7defa 10647 else
AzureIoTClient 28:add19eb7defa 10648 {
AzureIoTClient 28:add19eb7defa 10649 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10650 {
AzureIoTClient 28:add19eb7defa 10651 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 10652 }
AzureIoTClient 28:add19eb7defa 10653 else
AzureIoTClient 28:add19eb7defa 10654 {
AzureIoTClient 28:add19eb7defa 10655 const char* hostname;
AzureIoTClient 28:add19eb7defa 10656 if (amqpvalue_get_string(item_value, &hostname) != 0)
AzureIoTClient 28:add19eb7defa 10657 {
AzureIoTClient 28:add19eb7defa 10658 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10659 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10660 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10661 break;
AzureIoTClient 28:add19eb7defa 10662 }
AzureIoTClient 28:add19eb7defa 10663 }
AzureIoTClient 28:add19eb7defa 10664
AzureIoTClient 28:add19eb7defa 10665 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10666 }
AzureIoTClient 28:add19eb7defa 10667 }
AzureIoTClient 28:add19eb7defa 10668
AzureIoTClient 28:add19eb7defa 10669 sasl_init_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 10670
AzureIoTClient 28:add19eb7defa 10671 result = 0;
AzureIoTClient 28:add19eb7defa 10672 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 10673 }
AzureIoTClient 28:add19eb7defa 10674 }
AzureIoTClient 28:add19eb7defa 10675 }
AzureIoTClient 28:add19eb7defa 10676
AzureIoTClient 28:add19eb7defa 10677 return result;
Azure.IoT Build 0:6ae2f7bca550 10678 }
Azure.IoT Build 0:6ae2f7bca550 10679
Azure.IoT Build 0:6ae2f7bca550 10680 int sasl_init_get_mechanism(SASL_INIT_HANDLE sasl_init, const char** mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10681 {
AzureIoTClient 28:add19eb7defa 10682 int result;
AzureIoTClient 28:add19eb7defa 10683
AzureIoTClient 28:add19eb7defa 10684 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10685 {
AzureIoTClient 28:add19eb7defa 10686 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10687 }
AzureIoTClient 28:add19eb7defa 10688 else
AzureIoTClient 28:add19eb7defa 10689 {
AzureIoTClient 28:add19eb7defa 10690 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10691 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10692 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10693 {
AzureIoTClient 23:1111ee8bcba4 10694 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10695 }
AzureIoTClient 23:1111ee8bcba4 10696 else
AzureIoTClient 23:1111ee8bcba4 10697 {
AzureIoTClient 23:1111ee8bcba4 10698 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10699 {
AzureIoTClient 28:add19eb7defa 10700 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10701 }
AzureIoTClient 28:add19eb7defa 10702 else
AzureIoTClient 28:add19eb7defa 10703 {
AzureIoTClient 28:add19eb7defa 10704 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10705 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10706 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10707 {
AzureIoTClient 28:add19eb7defa 10708 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10709 }
AzureIoTClient 28:add19eb7defa 10710 else
AzureIoTClient 28:add19eb7defa 10711 {
AzureIoTClient 28:add19eb7defa 10712 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10713 if ((get_single_value_result = amqpvalue_get_symbol(item_value, mechanism_value)) != 0)
AzureIoTClient 28:add19eb7defa 10714 {
AzureIoTClient 28:add19eb7defa 10715 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10716 }
AzureIoTClient 28:add19eb7defa 10717 else
AzureIoTClient 28:add19eb7defa 10718 {
AzureIoTClient 28:add19eb7defa 10719 result = 0;
AzureIoTClient 28:add19eb7defa 10720 }
AzureIoTClient 28:add19eb7defa 10721 }
AzureIoTClient 28:add19eb7defa 10722 }
AzureIoTClient 28:add19eb7defa 10723 }
AzureIoTClient 28:add19eb7defa 10724 }
AzureIoTClient 28:add19eb7defa 10725
AzureIoTClient 28:add19eb7defa 10726 return result;
Azure.IoT Build 0:6ae2f7bca550 10727 }
Azure.IoT Build 0:6ae2f7bca550 10728
Azure.IoT Build 0:6ae2f7bca550 10729 int sasl_init_set_mechanism(SASL_INIT_HANDLE sasl_init, const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10730 {
AzureIoTClient 28:add19eb7defa 10731 int result;
AzureIoTClient 28:add19eb7defa 10732
AzureIoTClient 28:add19eb7defa 10733 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10734 {
AzureIoTClient 28:add19eb7defa 10735 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10736 }
AzureIoTClient 28:add19eb7defa 10737 else
AzureIoTClient 28:add19eb7defa 10738 {
AzureIoTClient 28:add19eb7defa 10739 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10740 AMQP_VALUE mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
AzureIoTClient 28:add19eb7defa 10741 if (mechanism_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10742 {
AzureIoTClient 28:add19eb7defa 10743 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10744 }
AzureIoTClient 28:add19eb7defa 10745 else
AzureIoTClient 28:add19eb7defa 10746 {
AzureIoTClient 28:add19eb7defa 10747 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10748 {
AzureIoTClient 28:add19eb7defa 10749 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10750 }
AzureIoTClient 28:add19eb7defa 10751 else
AzureIoTClient 28:add19eb7defa 10752 {
AzureIoTClient 28:add19eb7defa 10753 result = 0;
AzureIoTClient 28:add19eb7defa 10754 }
AzureIoTClient 28:add19eb7defa 10755
AzureIoTClient 28:add19eb7defa 10756 amqpvalue_destroy(mechanism_amqp_value);
AzureIoTClient 28:add19eb7defa 10757 }
AzureIoTClient 28:add19eb7defa 10758 }
AzureIoTClient 28:add19eb7defa 10759
AzureIoTClient 28:add19eb7defa 10760 return result;
Azure.IoT Build 0:6ae2f7bca550 10761 }
Azure.IoT Build 0:6ae2f7bca550 10762
Azure.IoT Build 0:6ae2f7bca550 10763 int sasl_init_get_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary* initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10764 {
AzureIoTClient 28:add19eb7defa 10765 int result;
AzureIoTClient 28:add19eb7defa 10766
AzureIoTClient 28:add19eb7defa 10767 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10768 {
AzureIoTClient 28:add19eb7defa 10769 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10770 }
AzureIoTClient 28:add19eb7defa 10771 else
AzureIoTClient 28:add19eb7defa 10772 {
AzureIoTClient 28:add19eb7defa 10773 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10774 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10775 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10776 {
AzureIoTClient 23:1111ee8bcba4 10777 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10778 }
AzureIoTClient 23:1111ee8bcba4 10779 else
AzureIoTClient 23:1111ee8bcba4 10780 {
AzureIoTClient 23:1111ee8bcba4 10781 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 10782 {
AzureIoTClient 28:add19eb7defa 10783 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10784 }
AzureIoTClient 28:add19eb7defa 10785 else
AzureIoTClient 28:add19eb7defa 10786 {
AzureIoTClient 28:add19eb7defa 10787 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 10788 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10789 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10790 {
AzureIoTClient 28:add19eb7defa 10791 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10792 }
AzureIoTClient 28:add19eb7defa 10793 else
AzureIoTClient 28:add19eb7defa 10794 {
AzureIoTClient 28:add19eb7defa 10795 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10796 if ((get_single_value_result = amqpvalue_get_binary(item_value, initial_response_value)) != 0)
AzureIoTClient 28:add19eb7defa 10797 {
AzureIoTClient 28:add19eb7defa 10798 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10799 }
AzureIoTClient 28:add19eb7defa 10800 else
AzureIoTClient 28:add19eb7defa 10801 {
AzureIoTClient 28:add19eb7defa 10802 result = 0;
AzureIoTClient 28:add19eb7defa 10803 }
AzureIoTClient 28:add19eb7defa 10804 }
AzureIoTClient 28:add19eb7defa 10805 }
AzureIoTClient 28:add19eb7defa 10806 }
AzureIoTClient 28:add19eb7defa 10807 }
AzureIoTClient 28:add19eb7defa 10808
AzureIoTClient 28:add19eb7defa 10809 return result;
Azure.IoT Build 0:6ae2f7bca550 10810 }
Azure.IoT Build 0:6ae2f7bca550 10811
Azure.IoT Build 0:6ae2f7bca550 10812 int sasl_init_set_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10813 {
AzureIoTClient 28:add19eb7defa 10814 int result;
AzureIoTClient 28:add19eb7defa 10815
AzureIoTClient 28:add19eb7defa 10816 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10817 {
AzureIoTClient 28:add19eb7defa 10818 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10819 }
AzureIoTClient 28:add19eb7defa 10820 else
AzureIoTClient 28:add19eb7defa 10821 {
AzureIoTClient 28:add19eb7defa 10822 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10823 AMQP_VALUE initial_response_amqp_value = amqpvalue_create_binary(initial_response_value);
AzureIoTClient 28:add19eb7defa 10824 if (initial_response_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10825 {
AzureIoTClient 28:add19eb7defa 10826 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10827 }
AzureIoTClient 28:add19eb7defa 10828 else
AzureIoTClient 28:add19eb7defa 10829 {
AzureIoTClient 28:add19eb7defa 10830 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 1, initial_response_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10831 {
AzureIoTClient 28:add19eb7defa 10832 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10833 }
AzureIoTClient 28:add19eb7defa 10834 else
AzureIoTClient 28:add19eb7defa 10835 {
AzureIoTClient 28:add19eb7defa 10836 result = 0;
AzureIoTClient 28:add19eb7defa 10837 }
AzureIoTClient 28:add19eb7defa 10838
AzureIoTClient 28:add19eb7defa 10839 amqpvalue_destroy(initial_response_amqp_value);
AzureIoTClient 28:add19eb7defa 10840 }
AzureIoTClient 28:add19eb7defa 10841 }
AzureIoTClient 28:add19eb7defa 10842
AzureIoTClient 28:add19eb7defa 10843 return result;
Azure.IoT Build 0:6ae2f7bca550 10844 }
Azure.IoT Build 0:6ae2f7bca550 10845
Azure.IoT Build 0:6ae2f7bca550 10846 int sasl_init_get_hostname(SASL_INIT_HANDLE sasl_init, const char** hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10847 {
AzureIoTClient 28:add19eb7defa 10848 int result;
AzureIoTClient 28:add19eb7defa 10849
AzureIoTClient 28:add19eb7defa 10850 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10851 {
AzureIoTClient 28:add19eb7defa 10852 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10853 }
AzureIoTClient 28:add19eb7defa 10854 else
AzureIoTClient 28:add19eb7defa 10855 {
AzureIoTClient 28:add19eb7defa 10856 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10857 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10858 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10859 {
AzureIoTClient 23:1111ee8bcba4 10860 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10861 }
AzureIoTClient 23:1111ee8bcba4 10862 else
AzureIoTClient 23:1111ee8bcba4 10863 {
AzureIoTClient 23:1111ee8bcba4 10864 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 10865 {
AzureIoTClient 28:add19eb7defa 10866 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10867 }
AzureIoTClient 28:add19eb7defa 10868 else
AzureIoTClient 28:add19eb7defa 10869 {
AzureIoTClient 28:add19eb7defa 10870 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 10871 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10872 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10873 {
AzureIoTClient 28:add19eb7defa 10874 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10875 }
AzureIoTClient 28:add19eb7defa 10876 else
AzureIoTClient 28:add19eb7defa 10877 {
AzureIoTClient 28:add19eb7defa 10878 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10879 if ((get_single_value_result = amqpvalue_get_string(item_value, hostname_value)) != 0)
AzureIoTClient 28:add19eb7defa 10880 {
AzureIoTClient 28:add19eb7defa 10881 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10882 }
AzureIoTClient 28:add19eb7defa 10883 else
AzureIoTClient 28:add19eb7defa 10884 {
AzureIoTClient 28:add19eb7defa 10885 result = 0;
AzureIoTClient 28:add19eb7defa 10886 }
AzureIoTClient 28:add19eb7defa 10887 }
AzureIoTClient 28:add19eb7defa 10888 }
AzureIoTClient 28:add19eb7defa 10889 }
AzureIoTClient 28:add19eb7defa 10890 }
AzureIoTClient 28:add19eb7defa 10891
AzureIoTClient 28:add19eb7defa 10892 return result;
Azure.IoT Build 0:6ae2f7bca550 10893 }
Azure.IoT Build 0:6ae2f7bca550 10894
Azure.IoT Build 0:6ae2f7bca550 10895 int sasl_init_set_hostname(SASL_INIT_HANDLE sasl_init, const char* hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10896 {
AzureIoTClient 28:add19eb7defa 10897 int result;
AzureIoTClient 28:add19eb7defa 10898
AzureIoTClient 28:add19eb7defa 10899 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10900 {
AzureIoTClient 28:add19eb7defa 10901 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10902 }
AzureIoTClient 28:add19eb7defa 10903 else
AzureIoTClient 28:add19eb7defa 10904 {
AzureIoTClient 28:add19eb7defa 10905 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10906 AMQP_VALUE hostname_amqp_value = amqpvalue_create_string(hostname_value);
AzureIoTClient 28:add19eb7defa 10907 if (hostname_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10908 {
AzureIoTClient 28:add19eb7defa 10909 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10910 }
AzureIoTClient 28:add19eb7defa 10911 else
AzureIoTClient 28:add19eb7defa 10912 {
AzureIoTClient 28:add19eb7defa 10913 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 2, hostname_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10914 {
AzureIoTClient 28:add19eb7defa 10915 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10916 }
AzureIoTClient 28:add19eb7defa 10917 else
AzureIoTClient 28:add19eb7defa 10918 {
AzureIoTClient 28:add19eb7defa 10919 result = 0;
AzureIoTClient 28:add19eb7defa 10920 }
AzureIoTClient 28:add19eb7defa 10921
AzureIoTClient 28:add19eb7defa 10922 amqpvalue_destroy(hostname_amqp_value);
AzureIoTClient 28:add19eb7defa 10923 }
AzureIoTClient 28:add19eb7defa 10924 }
AzureIoTClient 28:add19eb7defa 10925
AzureIoTClient 28:add19eb7defa 10926 return result;
Azure.IoT Build 0:6ae2f7bca550 10927 }
Azure.IoT Build 0:6ae2f7bca550 10928
Azure.IoT Build 0:6ae2f7bca550 10929
Azure.IoT Build 0:6ae2f7bca550 10930 /* sasl-challenge */
Azure.IoT Build 0:6ae2f7bca550 10931
Azure.IoT Build 0:6ae2f7bca550 10932 typedef struct SASL_CHALLENGE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10933 {
AzureIoTClient 28:add19eb7defa 10934 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10935 } SASL_CHALLENGE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10936
Azure.IoT Build 0:6ae2f7bca550 10937 static SASL_CHALLENGE_HANDLE sasl_challenge_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10938 {
AzureIoTClient 28:add19eb7defa 10939 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10940 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10941 {
AzureIoTClient 28:add19eb7defa 10942 sasl_challenge_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10943 }
AzureIoTClient 28:add19eb7defa 10944
AzureIoTClient 28:add19eb7defa 10945 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10946 }
Azure.IoT Build 0:6ae2f7bca550 10947
Azure.IoT Build 0:6ae2f7bca550 10948 SASL_CHALLENGE_HANDLE sasl_challenge_create(amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 10949 {
AzureIoTClient 28:add19eb7defa 10950 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10951 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10952 {
AzureIoTClient 28:add19eb7defa 10953 sasl_challenge_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(66);
AzureIoTClient 28:add19eb7defa 10954 if (sasl_challenge_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10955 {
AzureIoTClient 28:add19eb7defa 10956 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10957 sasl_challenge_instance = NULL;
AzureIoTClient 28:add19eb7defa 10958 }
AzureIoTClient 28:add19eb7defa 10959 else
AzureIoTClient 28:add19eb7defa 10960 {
AzureIoTClient 28:add19eb7defa 10961 AMQP_VALUE challenge_amqp_value;
AzureIoTClient 28:add19eb7defa 10962 int result = 0;
AzureIoTClient 28:add19eb7defa 10963
AzureIoTClient 28:add19eb7defa 10964 challenge_amqp_value = amqpvalue_create_binary(challenge_value);
AzureIoTClient 28:add19eb7defa 10965 if ((result == 0) && (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10966 {
AzureIoTClient 28:add19eb7defa 10967 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10968 }
AzureIoTClient 28:add19eb7defa 10969
AzureIoTClient 28:add19eb7defa 10970 amqpvalue_destroy(challenge_amqp_value);
AzureIoTClient 28:add19eb7defa 10971 }
AzureIoTClient 28:add19eb7defa 10972 }
AzureIoTClient 28:add19eb7defa 10973
AzureIoTClient 28:add19eb7defa 10974 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10975 }
Azure.IoT Build 0:6ae2f7bca550 10976
Azure.IoT Build 0:6ae2f7bca550 10977 SASL_CHALLENGE_HANDLE sasl_challenge_clone(SASL_CHALLENGE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10978 {
AzureIoTClient 28:add19eb7defa 10979 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10980 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10981 {
AzureIoTClient 28:add19eb7defa 10982 sasl_challenge_instance->composite_value = amqpvalue_clone(((SASL_CHALLENGE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10983 if (sasl_challenge_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10984 {
AzureIoTClient 28:add19eb7defa 10985 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10986 sasl_challenge_instance = NULL;
AzureIoTClient 28:add19eb7defa 10987 }
AzureIoTClient 28:add19eb7defa 10988 }
AzureIoTClient 28:add19eb7defa 10989
AzureIoTClient 28:add19eb7defa 10990 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10991 }
Azure.IoT Build 0:6ae2f7bca550 10992
Azure.IoT Build 0:6ae2f7bca550 10993 void sasl_challenge_destroy(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 10994 {
AzureIoTClient 28:add19eb7defa 10995 if (sasl_challenge != NULL)
AzureIoTClient 28:add19eb7defa 10996 {
AzureIoTClient 28:add19eb7defa 10997 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 10998 amqpvalue_destroy(sasl_challenge_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10999 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 11000 }
Azure.IoT Build 0:6ae2f7bca550 11001 }
Azure.IoT Build 0:6ae2f7bca550 11002
Azure.IoT Build 0:6ae2f7bca550 11003 AMQP_VALUE amqpvalue_create_sasl_challenge(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 11004 {
AzureIoTClient 28:add19eb7defa 11005 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11006
AzureIoTClient 28:add19eb7defa 11007 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11008 {
AzureIoTClient 28:add19eb7defa 11009 result = NULL;
AzureIoTClient 28:add19eb7defa 11010 }
AzureIoTClient 28:add19eb7defa 11011 else
AzureIoTClient 28:add19eb7defa 11012 {
AzureIoTClient 28:add19eb7defa 11013 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 11014 result = amqpvalue_clone(sasl_challenge_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11015 }
AzureIoTClient 28:add19eb7defa 11016
AzureIoTClient 28:add19eb7defa 11017 return result;
Azure.IoT Build 0:6ae2f7bca550 11018 }
Azure.IoT Build 0:6ae2f7bca550 11019
Azure.IoT Build 0:6ae2f7bca550 11020 bool is_sasl_challenge_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11021 {
AzureIoTClient 28:add19eb7defa 11022 bool result;
AzureIoTClient 28:add19eb7defa 11023
AzureIoTClient 28:add19eb7defa 11024 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11025 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11026 (descriptor_ulong == 66))
AzureIoTClient 28:add19eb7defa 11027 {
AzureIoTClient 28:add19eb7defa 11028 result = true;
AzureIoTClient 28:add19eb7defa 11029 }
AzureIoTClient 28:add19eb7defa 11030 else
AzureIoTClient 28:add19eb7defa 11031 {
AzureIoTClient 28:add19eb7defa 11032 result = false;
AzureIoTClient 28:add19eb7defa 11033 }
AzureIoTClient 28:add19eb7defa 11034
AzureIoTClient 28:add19eb7defa 11035 return result;
Azure.IoT Build 0:6ae2f7bca550 11036 }
Azure.IoT Build 0:6ae2f7bca550 11037
Azure.IoT Build 0:6ae2f7bca550 11038
Azure.IoT Build 0:6ae2f7bca550 11039 int amqpvalue_get_sasl_challenge(AMQP_VALUE value, SASL_CHALLENGE_HANDLE* sasl_challenge_handle)
Azure.IoT Build 0:6ae2f7bca550 11040 {
AzureIoTClient 28:add19eb7defa 11041 int result;
AzureIoTClient 28:add19eb7defa 11042 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge_create_internal();
AzureIoTClient 28:add19eb7defa 11043 *sasl_challenge_handle = sasl_challenge_instance;
AzureIoTClient 28:add19eb7defa 11044 if (*sasl_challenge_handle == NULL)
AzureIoTClient 28:add19eb7defa 11045 {
AzureIoTClient 28:add19eb7defa 11046 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11047 }
AzureIoTClient 28:add19eb7defa 11048 else
AzureIoTClient 28:add19eb7defa 11049 {
AzureIoTClient 28:add19eb7defa 11050 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11051 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11052 {
AzureIoTClient 28:add19eb7defa 11053 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11054 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11055 }
AzureIoTClient 28:add19eb7defa 11056 else
AzureIoTClient 28:add19eb7defa 11057 {
AzureIoTClient 23:1111ee8bcba4 11058 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11059 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11060 {
AzureIoTClient 23:1111ee8bcba4 11061 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11062 }
AzureIoTClient 23:1111ee8bcba4 11063 else
AzureIoTClient 23:1111ee8bcba4 11064 {
AzureIoTClient 28:add19eb7defa 11065 do
AzureIoTClient 28:add19eb7defa 11066 {
AzureIoTClient 28:add19eb7defa 11067 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11068 /* challenge */
AzureIoTClient 28:add19eb7defa 11069 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11070 {
AzureIoTClient 23:1111ee8bcba4 11071 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11072 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11073 {
AzureIoTClient 28:add19eb7defa 11074 {
AzureIoTClient 28:add19eb7defa 11075 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11076 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11077 break;
AzureIoTClient 28:add19eb7defa 11078 }
AzureIoTClient 28:add19eb7defa 11079 }
AzureIoTClient 28:add19eb7defa 11080 else
AzureIoTClient 28:add19eb7defa 11081 {
AzureIoTClient 28:add19eb7defa 11082 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11083 {
AzureIoTClient 28:add19eb7defa 11084 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11085 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11086 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11087 break;
AzureIoTClient 28:add19eb7defa 11088 }
AzureIoTClient 28:add19eb7defa 11089 else
AzureIoTClient 28:add19eb7defa 11090 {
AzureIoTClient 28:add19eb7defa 11091 amqp_binary challenge;
AzureIoTClient 28:add19eb7defa 11092 if (amqpvalue_get_binary(item_value, &challenge) != 0)
AzureIoTClient 28:add19eb7defa 11093 {
AzureIoTClient 28:add19eb7defa 11094 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11095 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11096 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11097 break;
AzureIoTClient 28:add19eb7defa 11098 }
AzureIoTClient 28:add19eb7defa 11099 }
AzureIoTClient 28:add19eb7defa 11100
AzureIoTClient 28:add19eb7defa 11101 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11102 }
AzureIoTClient 28:add19eb7defa 11103 }
AzureIoTClient 28:add19eb7defa 11104 else
AzureIoTClient 28:add19eb7defa 11105 {
AzureIoTClient 28:add19eb7defa 11106 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11107 }
AzureIoTClient 28:add19eb7defa 11108
AzureIoTClient 28:add19eb7defa 11109 sasl_challenge_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11110
AzureIoTClient 28:add19eb7defa 11111 result = 0;
AzureIoTClient 28:add19eb7defa 11112 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11113 }
AzureIoTClient 28:add19eb7defa 11114 }
AzureIoTClient 28:add19eb7defa 11115 }
AzureIoTClient 28:add19eb7defa 11116
AzureIoTClient 28:add19eb7defa 11117 return result;
Azure.IoT Build 0:6ae2f7bca550 11118 }
Azure.IoT Build 0:6ae2f7bca550 11119
Azure.IoT Build 0:6ae2f7bca550 11120 int sasl_challenge_get_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary* challenge_value)
Azure.IoT Build 0:6ae2f7bca550 11121 {
AzureIoTClient 28:add19eb7defa 11122 int result;
AzureIoTClient 28:add19eb7defa 11123
AzureIoTClient 28:add19eb7defa 11124 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11125 {
AzureIoTClient 28:add19eb7defa 11126 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11127 }
AzureIoTClient 28:add19eb7defa 11128 else
AzureIoTClient 28:add19eb7defa 11129 {
AzureIoTClient 28:add19eb7defa 11130 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11131 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 23:1111ee8bcba4 11132 if (amqpvalue_get_composite_item_count(sasl_challenge_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11133 {
AzureIoTClient 23:1111ee8bcba4 11134 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11135 }
AzureIoTClient 23:1111ee8bcba4 11136 else
AzureIoTClient 23:1111ee8bcba4 11137 {
AzureIoTClient 23:1111ee8bcba4 11138 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11139 {
AzureIoTClient 28:add19eb7defa 11140 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11141 }
AzureIoTClient 28:add19eb7defa 11142 else
AzureIoTClient 28:add19eb7defa 11143 {
AzureIoTClient 28:add19eb7defa 11144 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_challenge_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11145 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11146 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11147 {
AzureIoTClient 28:add19eb7defa 11148 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11149 }
AzureIoTClient 28:add19eb7defa 11150 else
AzureIoTClient 28:add19eb7defa 11151 {
AzureIoTClient 28:add19eb7defa 11152 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11153 if ((get_single_value_result = amqpvalue_get_binary(item_value, challenge_value)) != 0)
AzureIoTClient 28:add19eb7defa 11154 {
AzureIoTClient 28:add19eb7defa 11155 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11156 }
AzureIoTClient 28:add19eb7defa 11157 else
AzureIoTClient 28:add19eb7defa 11158 {
AzureIoTClient 28:add19eb7defa 11159 result = 0;
AzureIoTClient 28:add19eb7defa 11160 }
AzureIoTClient 28:add19eb7defa 11161 }
AzureIoTClient 28:add19eb7defa 11162 }
AzureIoTClient 28:add19eb7defa 11163 }
AzureIoTClient 28:add19eb7defa 11164 }
AzureIoTClient 28:add19eb7defa 11165
AzureIoTClient 28:add19eb7defa 11166 return result;
Azure.IoT Build 0:6ae2f7bca550 11167 }
Azure.IoT Build 0:6ae2f7bca550 11168
Azure.IoT Build 0:6ae2f7bca550 11169 int sasl_challenge_set_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 11170 {
AzureIoTClient 28:add19eb7defa 11171 int result;
AzureIoTClient 28:add19eb7defa 11172
AzureIoTClient 28:add19eb7defa 11173 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11174 {
AzureIoTClient 28:add19eb7defa 11175 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11176 }
AzureIoTClient 28:add19eb7defa 11177 else
AzureIoTClient 28:add19eb7defa 11178 {
AzureIoTClient 28:add19eb7defa 11179 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 11180 AMQP_VALUE challenge_amqp_value = amqpvalue_create_binary(challenge_value);
AzureIoTClient 28:add19eb7defa 11181 if (challenge_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11182 {
AzureIoTClient 28:add19eb7defa 11183 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11184 }
AzureIoTClient 28:add19eb7defa 11185 else
AzureIoTClient 28:add19eb7defa 11186 {
AzureIoTClient 28:add19eb7defa 11187 if (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11188 {
AzureIoTClient 28:add19eb7defa 11189 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11190 }
AzureIoTClient 28:add19eb7defa 11191 else
AzureIoTClient 28:add19eb7defa 11192 {
AzureIoTClient 28:add19eb7defa 11193 result = 0;
AzureIoTClient 28:add19eb7defa 11194 }
AzureIoTClient 28:add19eb7defa 11195
AzureIoTClient 28:add19eb7defa 11196 amqpvalue_destroy(challenge_amqp_value);
AzureIoTClient 28:add19eb7defa 11197 }
AzureIoTClient 28:add19eb7defa 11198 }
AzureIoTClient 28:add19eb7defa 11199
AzureIoTClient 28:add19eb7defa 11200 return result;
Azure.IoT Build 0:6ae2f7bca550 11201 }
Azure.IoT Build 0:6ae2f7bca550 11202
Azure.IoT Build 0:6ae2f7bca550 11203
Azure.IoT Build 0:6ae2f7bca550 11204 /* sasl-response */
Azure.IoT Build 0:6ae2f7bca550 11205
Azure.IoT Build 0:6ae2f7bca550 11206 typedef struct SASL_RESPONSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11207 {
AzureIoTClient 28:add19eb7defa 11208 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11209 } SASL_RESPONSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11210
Azure.IoT Build 0:6ae2f7bca550 11211 static SASL_RESPONSE_HANDLE sasl_response_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11212 {
AzureIoTClient 28:add19eb7defa 11213 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11214 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11215 {
AzureIoTClient 28:add19eb7defa 11216 sasl_response_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11217 }
AzureIoTClient 28:add19eb7defa 11218
AzureIoTClient 28:add19eb7defa 11219 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11220 }
Azure.IoT Build 0:6ae2f7bca550 11221
Azure.IoT Build 0:6ae2f7bca550 11222 SASL_RESPONSE_HANDLE sasl_response_create(amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 11223 {
AzureIoTClient 28:add19eb7defa 11224 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11225 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11226 {
AzureIoTClient 28:add19eb7defa 11227 sasl_response_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(67);
AzureIoTClient 28:add19eb7defa 11228 if (sasl_response_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11229 {
AzureIoTClient 28:add19eb7defa 11230 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11231 sasl_response_instance = NULL;
AzureIoTClient 28:add19eb7defa 11232 }
AzureIoTClient 28:add19eb7defa 11233 else
AzureIoTClient 28:add19eb7defa 11234 {
AzureIoTClient 28:add19eb7defa 11235 AMQP_VALUE response_amqp_value;
AzureIoTClient 28:add19eb7defa 11236 int result = 0;
AzureIoTClient 28:add19eb7defa 11237
AzureIoTClient 28:add19eb7defa 11238 response_amqp_value = amqpvalue_create_binary(response_value);
AzureIoTClient 28:add19eb7defa 11239 if ((result == 0) && (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 11240 {
AzureIoTClient 28:add19eb7defa 11241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11242 }
AzureIoTClient 28:add19eb7defa 11243
AzureIoTClient 28:add19eb7defa 11244 amqpvalue_destroy(response_amqp_value);
AzureIoTClient 28:add19eb7defa 11245 }
AzureIoTClient 28:add19eb7defa 11246 }
AzureIoTClient 28:add19eb7defa 11247
AzureIoTClient 28:add19eb7defa 11248 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11249 }
Azure.IoT Build 0:6ae2f7bca550 11250
Azure.IoT Build 0:6ae2f7bca550 11251 SASL_RESPONSE_HANDLE sasl_response_clone(SASL_RESPONSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11252 {
AzureIoTClient 28:add19eb7defa 11253 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11254 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11255 {
AzureIoTClient 28:add19eb7defa 11256 sasl_response_instance->composite_value = amqpvalue_clone(((SASL_RESPONSE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11257 if (sasl_response_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11258 {
AzureIoTClient 28:add19eb7defa 11259 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11260 sasl_response_instance = NULL;
AzureIoTClient 28:add19eb7defa 11261 }
AzureIoTClient 28:add19eb7defa 11262 }
AzureIoTClient 28:add19eb7defa 11263
AzureIoTClient 28:add19eb7defa 11264 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11265 }
Azure.IoT Build 0:6ae2f7bca550 11266
Azure.IoT Build 0:6ae2f7bca550 11267 void sasl_response_destroy(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 11268 {
AzureIoTClient 28:add19eb7defa 11269 if (sasl_response != NULL)
AzureIoTClient 28:add19eb7defa 11270 {
AzureIoTClient 28:add19eb7defa 11271 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11272 amqpvalue_destroy(sasl_response_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11273 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11274 }
Azure.IoT Build 0:6ae2f7bca550 11275 }
Azure.IoT Build 0:6ae2f7bca550 11276
Azure.IoT Build 0:6ae2f7bca550 11277 AMQP_VALUE amqpvalue_create_sasl_response(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 11278 {
AzureIoTClient 28:add19eb7defa 11279 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11280
AzureIoTClient 28:add19eb7defa 11281 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11282 {
AzureIoTClient 28:add19eb7defa 11283 result = NULL;
AzureIoTClient 28:add19eb7defa 11284 }
AzureIoTClient 28:add19eb7defa 11285 else
AzureIoTClient 28:add19eb7defa 11286 {
AzureIoTClient 28:add19eb7defa 11287 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11288 result = amqpvalue_clone(sasl_response_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11289 }
AzureIoTClient 28:add19eb7defa 11290
AzureIoTClient 28:add19eb7defa 11291 return result;
Azure.IoT Build 0:6ae2f7bca550 11292 }
Azure.IoT Build 0:6ae2f7bca550 11293
Azure.IoT Build 0:6ae2f7bca550 11294 bool is_sasl_response_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11295 {
AzureIoTClient 28:add19eb7defa 11296 bool result;
AzureIoTClient 28:add19eb7defa 11297
AzureIoTClient 28:add19eb7defa 11298 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11299 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11300 (descriptor_ulong == 67))
AzureIoTClient 28:add19eb7defa 11301 {
AzureIoTClient 28:add19eb7defa 11302 result = true;
AzureIoTClient 28:add19eb7defa 11303 }
AzureIoTClient 28:add19eb7defa 11304 else
AzureIoTClient 28:add19eb7defa 11305 {
AzureIoTClient 28:add19eb7defa 11306 result = false;
AzureIoTClient 28:add19eb7defa 11307 }
AzureIoTClient 28:add19eb7defa 11308
AzureIoTClient 28:add19eb7defa 11309 return result;
Azure.IoT Build 0:6ae2f7bca550 11310 }
Azure.IoT Build 0:6ae2f7bca550 11311
Azure.IoT Build 0:6ae2f7bca550 11312
Azure.IoT Build 0:6ae2f7bca550 11313 int amqpvalue_get_sasl_response(AMQP_VALUE value, SASL_RESPONSE_HANDLE* sasl_response_handle)
Azure.IoT Build 0:6ae2f7bca550 11314 {
AzureIoTClient 28:add19eb7defa 11315 int result;
AzureIoTClient 28:add19eb7defa 11316 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response_create_internal();
AzureIoTClient 28:add19eb7defa 11317 *sasl_response_handle = sasl_response_instance;
AzureIoTClient 28:add19eb7defa 11318 if (*sasl_response_handle == NULL)
AzureIoTClient 28:add19eb7defa 11319 {
AzureIoTClient 28:add19eb7defa 11320 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11321 }
AzureIoTClient 28:add19eb7defa 11322 else
AzureIoTClient 28:add19eb7defa 11323 {
AzureIoTClient 28:add19eb7defa 11324 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11325 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11326 {
AzureIoTClient 28:add19eb7defa 11327 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11328 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11329 }
AzureIoTClient 28:add19eb7defa 11330 else
AzureIoTClient 28:add19eb7defa 11331 {
AzureIoTClient 23:1111ee8bcba4 11332 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11333 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11334 {
AzureIoTClient 23:1111ee8bcba4 11335 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11336 }
AzureIoTClient 23:1111ee8bcba4 11337 else
AzureIoTClient 23:1111ee8bcba4 11338 {
AzureIoTClient 28:add19eb7defa 11339 do
AzureIoTClient 28:add19eb7defa 11340 {
AzureIoTClient 28:add19eb7defa 11341 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11342 /* response */
AzureIoTClient 28:add19eb7defa 11343 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11344 {
AzureIoTClient 23:1111ee8bcba4 11345 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11346 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11347 {
AzureIoTClient 28:add19eb7defa 11348 {
AzureIoTClient 28:add19eb7defa 11349 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11350 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11351 break;
AzureIoTClient 28:add19eb7defa 11352 }
AzureIoTClient 28:add19eb7defa 11353 }
AzureIoTClient 28:add19eb7defa 11354 else
AzureIoTClient 28:add19eb7defa 11355 {
AzureIoTClient 28:add19eb7defa 11356 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11357 {
AzureIoTClient 28:add19eb7defa 11358 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11359 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11360 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11361 break;
AzureIoTClient 28:add19eb7defa 11362 }
AzureIoTClient 28:add19eb7defa 11363 else
AzureIoTClient 28:add19eb7defa 11364 {
AzureIoTClient 28:add19eb7defa 11365 amqp_binary response;
AzureIoTClient 28:add19eb7defa 11366 if (amqpvalue_get_binary(item_value, &response) != 0)
AzureIoTClient 28:add19eb7defa 11367 {
AzureIoTClient 28:add19eb7defa 11368 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11369 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11370 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11371 break;
AzureIoTClient 28:add19eb7defa 11372 }
AzureIoTClient 28:add19eb7defa 11373 }
AzureIoTClient 28:add19eb7defa 11374
AzureIoTClient 28:add19eb7defa 11375 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11376 }
AzureIoTClient 28:add19eb7defa 11377 }
AzureIoTClient 28:add19eb7defa 11378 else
AzureIoTClient 28:add19eb7defa 11379 {
AzureIoTClient 28:add19eb7defa 11380 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11381 }
AzureIoTClient 28:add19eb7defa 11382
AzureIoTClient 28:add19eb7defa 11383 sasl_response_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11384
AzureIoTClient 28:add19eb7defa 11385 result = 0;
AzureIoTClient 28:add19eb7defa 11386 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11387 }
AzureIoTClient 28:add19eb7defa 11388 }
AzureIoTClient 28:add19eb7defa 11389 }
AzureIoTClient 28:add19eb7defa 11390
AzureIoTClient 28:add19eb7defa 11391 return result;
Azure.IoT Build 0:6ae2f7bca550 11392 }
Azure.IoT Build 0:6ae2f7bca550 11393
Azure.IoT Build 0:6ae2f7bca550 11394 int sasl_response_get_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary* response_value)
Azure.IoT Build 0:6ae2f7bca550 11395 {
AzureIoTClient 28:add19eb7defa 11396 int result;
AzureIoTClient 28:add19eb7defa 11397
AzureIoTClient 28:add19eb7defa 11398 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11399 {
AzureIoTClient 28:add19eb7defa 11400 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11401 }
AzureIoTClient 28:add19eb7defa 11402 else
AzureIoTClient 28:add19eb7defa 11403 {
AzureIoTClient 28:add19eb7defa 11404 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11405 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 23:1111ee8bcba4 11406 if (amqpvalue_get_composite_item_count(sasl_response_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11407 {
AzureIoTClient 23:1111ee8bcba4 11408 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11409 }
AzureIoTClient 23:1111ee8bcba4 11410 else
AzureIoTClient 23:1111ee8bcba4 11411 {
AzureIoTClient 23:1111ee8bcba4 11412 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11413 {
AzureIoTClient 28:add19eb7defa 11414 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11415 }
AzureIoTClient 28:add19eb7defa 11416 else
AzureIoTClient 28:add19eb7defa 11417 {
AzureIoTClient 28:add19eb7defa 11418 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_response_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11419 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11420 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11421 {
AzureIoTClient 28:add19eb7defa 11422 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11423 }
AzureIoTClient 28:add19eb7defa 11424 else
AzureIoTClient 28:add19eb7defa 11425 {
AzureIoTClient 28:add19eb7defa 11426 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11427 if ((get_single_value_result = amqpvalue_get_binary(item_value, response_value)) != 0)
AzureIoTClient 28:add19eb7defa 11428 {
AzureIoTClient 28:add19eb7defa 11429 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11430 }
AzureIoTClient 28:add19eb7defa 11431 else
AzureIoTClient 28:add19eb7defa 11432 {
AzureIoTClient 28:add19eb7defa 11433 result = 0;
AzureIoTClient 28:add19eb7defa 11434 }
AzureIoTClient 28:add19eb7defa 11435 }
AzureIoTClient 28:add19eb7defa 11436 }
AzureIoTClient 28:add19eb7defa 11437 }
AzureIoTClient 28:add19eb7defa 11438 }
AzureIoTClient 28:add19eb7defa 11439
AzureIoTClient 28:add19eb7defa 11440 return result;
Azure.IoT Build 0:6ae2f7bca550 11441 }
Azure.IoT Build 0:6ae2f7bca550 11442
Azure.IoT Build 0:6ae2f7bca550 11443 int sasl_response_set_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 11444 {
AzureIoTClient 28:add19eb7defa 11445 int result;
AzureIoTClient 28:add19eb7defa 11446
AzureIoTClient 28:add19eb7defa 11447 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11448 {
AzureIoTClient 28:add19eb7defa 11449 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11450 }
AzureIoTClient 28:add19eb7defa 11451 else
AzureIoTClient 28:add19eb7defa 11452 {
AzureIoTClient 28:add19eb7defa 11453 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11454 AMQP_VALUE response_amqp_value = amqpvalue_create_binary(response_value);
AzureIoTClient 28:add19eb7defa 11455 if (response_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11456 {
AzureIoTClient 28:add19eb7defa 11457 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11458 }
AzureIoTClient 28:add19eb7defa 11459 else
AzureIoTClient 28:add19eb7defa 11460 {
AzureIoTClient 28:add19eb7defa 11461 if (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11462 {
AzureIoTClient 28:add19eb7defa 11463 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11464 }
AzureIoTClient 28:add19eb7defa 11465 else
AzureIoTClient 28:add19eb7defa 11466 {
AzureIoTClient 28:add19eb7defa 11467 result = 0;
AzureIoTClient 28:add19eb7defa 11468 }
AzureIoTClient 28:add19eb7defa 11469
AzureIoTClient 28:add19eb7defa 11470 amqpvalue_destroy(response_amqp_value);
AzureIoTClient 28:add19eb7defa 11471 }
AzureIoTClient 28:add19eb7defa 11472 }
AzureIoTClient 28:add19eb7defa 11473
AzureIoTClient 28:add19eb7defa 11474 return result;
Azure.IoT Build 0:6ae2f7bca550 11475 }
Azure.IoT Build 0:6ae2f7bca550 11476
Azure.IoT Build 0:6ae2f7bca550 11477
Azure.IoT Build 0:6ae2f7bca550 11478 /* sasl-outcome */
Azure.IoT Build 0:6ae2f7bca550 11479
Azure.IoT Build 0:6ae2f7bca550 11480 typedef struct SASL_OUTCOME_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11481 {
AzureIoTClient 28:add19eb7defa 11482 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11483 } SASL_OUTCOME_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11484
Azure.IoT Build 0:6ae2f7bca550 11485 static SASL_OUTCOME_HANDLE sasl_outcome_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11486 {
AzureIoTClient 28:add19eb7defa 11487 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11488 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11489 {
AzureIoTClient 28:add19eb7defa 11490 sasl_outcome_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11491 }
AzureIoTClient 28:add19eb7defa 11492
AzureIoTClient 28:add19eb7defa 11493 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11494 }
Azure.IoT Build 0:6ae2f7bca550 11495
Azure.IoT Build 0:6ae2f7bca550 11496 SASL_OUTCOME_HANDLE sasl_outcome_create(sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11497 {
AzureIoTClient 28:add19eb7defa 11498 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11499 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11500 {
AzureIoTClient 28:add19eb7defa 11501 sasl_outcome_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(68);
AzureIoTClient 28:add19eb7defa 11502 if (sasl_outcome_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11503 {
AzureIoTClient 28:add19eb7defa 11504 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11505 sasl_outcome_instance = NULL;
AzureIoTClient 28:add19eb7defa 11506 }
AzureIoTClient 28:add19eb7defa 11507 else
AzureIoTClient 28:add19eb7defa 11508 {
AzureIoTClient 28:add19eb7defa 11509 AMQP_VALUE code_amqp_value;
AzureIoTClient 28:add19eb7defa 11510 int result = 0;
AzureIoTClient 28:add19eb7defa 11511
AzureIoTClient 28:add19eb7defa 11512 code_amqp_value = amqpvalue_create_sasl_code(code_value);
AzureIoTClient 28:add19eb7defa 11513 if ((result == 0) && (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 11514 {
AzureIoTClient 28:add19eb7defa 11515 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11516 }
AzureIoTClient 28:add19eb7defa 11517
AzureIoTClient 28:add19eb7defa 11518 amqpvalue_destroy(code_amqp_value);
AzureIoTClient 28:add19eb7defa 11519 }
AzureIoTClient 28:add19eb7defa 11520 }
AzureIoTClient 28:add19eb7defa 11521
AzureIoTClient 28:add19eb7defa 11522 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11523 }
Azure.IoT Build 0:6ae2f7bca550 11524
Azure.IoT Build 0:6ae2f7bca550 11525 SASL_OUTCOME_HANDLE sasl_outcome_clone(SASL_OUTCOME_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11526 {
AzureIoTClient 28:add19eb7defa 11527 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11528 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11529 {
AzureIoTClient 28:add19eb7defa 11530 sasl_outcome_instance->composite_value = amqpvalue_clone(((SASL_OUTCOME_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11531 if (sasl_outcome_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11532 {
AzureIoTClient 28:add19eb7defa 11533 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11534 sasl_outcome_instance = NULL;
AzureIoTClient 28:add19eb7defa 11535 }
AzureIoTClient 28:add19eb7defa 11536 }
AzureIoTClient 28:add19eb7defa 11537
AzureIoTClient 28:add19eb7defa 11538 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11539 }
Azure.IoT Build 0:6ae2f7bca550 11540
Azure.IoT Build 0:6ae2f7bca550 11541 void sasl_outcome_destroy(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 11542 {
AzureIoTClient 28:add19eb7defa 11543 if (sasl_outcome != NULL)
AzureIoTClient 28:add19eb7defa 11544 {
AzureIoTClient 28:add19eb7defa 11545 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11546 amqpvalue_destroy(sasl_outcome_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11547 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11548 }
Azure.IoT Build 0:6ae2f7bca550 11549 }
Azure.IoT Build 0:6ae2f7bca550 11550
Azure.IoT Build 0:6ae2f7bca550 11551 AMQP_VALUE amqpvalue_create_sasl_outcome(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 11552 {
AzureIoTClient 28:add19eb7defa 11553 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11554
AzureIoTClient 28:add19eb7defa 11555 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11556 {
AzureIoTClient 28:add19eb7defa 11557 result = NULL;
AzureIoTClient 28:add19eb7defa 11558 }
AzureIoTClient 28:add19eb7defa 11559 else
AzureIoTClient 28:add19eb7defa 11560 {
AzureIoTClient 28:add19eb7defa 11561 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11562 result = amqpvalue_clone(sasl_outcome_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11563 }
AzureIoTClient 28:add19eb7defa 11564
AzureIoTClient 28:add19eb7defa 11565 return result;
Azure.IoT Build 0:6ae2f7bca550 11566 }
Azure.IoT Build 0:6ae2f7bca550 11567
Azure.IoT Build 0:6ae2f7bca550 11568 bool is_sasl_outcome_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11569 {
AzureIoTClient 28:add19eb7defa 11570 bool result;
AzureIoTClient 28:add19eb7defa 11571
AzureIoTClient 28:add19eb7defa 11572 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11573 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11574 (descriptor_ulong == 68))
AzureIoTClient 28:add19eb7defa 11575 {
AzureIoTClient 28:add19eb7defa 11576 result = true;
AzureIoTClient 28:add19eb7defa 11577 }
AzureIoTClient 28:add19eb7defa 11578 else
AzureIoTClient 28:add19eb7defa 11579 {
AzureIoTClient 28:add19eb7defa 11580 result = false;
AzureIoTClient 28:add19eb7defa 11581 }
AzureIoTClient 28:add19eb7defa 11582
AzureIoTClient 28:add19eb7defa 11583 return result;
Azure.IoT Build 0:6ae2f7bca550 11584 }
Azure.IoT Build 0:6ae2f7bca550 11585
Azure.IoT Build 0:6ae2f7bca550 11586
Azure.IoT Build 0:6ae2f7bca550 11587 int amqpvalue_get_sasl_outcome(AMQP_VALUE value, SASL_OUTCOME_HANDLE* sasl_outcome_handle)
Azure.IoT Build 0:6ae2f7bca550 11588 {
AzureIoTClient 28:add19eb7defa 11589 int result;
AzureIoTClient 28:add19eb7defa 11590 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome_create_internal();
AzureIoTClient 28:add19eb7defa 11591 *sasl_outcome_handle = sasl_outcome_instance;
AzureIoTClient 28:add19eb7defa 11592 if (*sasl_outcome_handle == NULL)
AzureIoTClient 28:add19eb7defa 11593 {
AzureIoTClient 28:add19eb7defa 11594 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11595 }
AzureIoTClient 28:add19eb7defa 11596 else
AzureIoTClient 28:add19eb7defa 11597 {
AzureIoTClient 28:add19eb7defa 11598 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11599 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11600 {
AzureIoTClient 28:add19eb7defa 11601 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11602 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11603 }
AzureIoTClient 28:add19eb7defa 11604 else
AzureIoTClient 28:add19eb7defa 11605 {
AzureIoTClient 23:1111ee8bcba4 11606 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11607 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11608 {
AzureIoTClient 23:1111ee8bcba4 11609 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11610 }
AzureIoTClient 23:1111ee8bcba4 11611 else
AzureIoTClient 23:1111ee8bcba4 11612 {
AzureIoTClient 28:add19eb7defa 11613 do
AzureIoTClient 28:add19eb7defa 11614 {
AzureIoTClient 28:add19eb7defa 11615 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11616 /* code */
AzureIoTClient 28:add19eb7defa 11617 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11618 {
AzureIoTClient 23:1111ee8bcba4 11619 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11620 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11621 {
AzureIoTClient 28:add19eb7defa 11622 {
AzureIoTClient 28:add19eb7defa 11623 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11624 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11625 break;
AzureIoTClient 28:add19eb7defa 11626 }
AzureIoTClient 28:add19eb7defa 11627 }
AzureIoTClient 28:add19eb7defa 11628 else
AzureIoTClient 28:add19eb7defa 11629 {
AzureIoTClient 28:add19eb7defa 11630 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11631 {
AzureIoTClient 28:add19eb7defa 11632 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11633 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11634 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11635 break;
AzureIoTClient 28:add19eb7defa 11636 }
AzureIoTClient 28:add19eb7defa 11637 else
AzureIoTClient 28:add19eb7defa 11638 {
AzureIoTClient 28:add19eb7defa 11639 sasl_code code;
AzureIoTClient 28:add19eb7defa 11640 if (amqpvalue_get_sasl_code(item_value, &code) != 0)
AzureIoTClient 28:add19eb7defa 11641 {
AzureIoTClient 28:add19eb7defa 11642 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11643 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11644 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11645 break;
AzureIoTClient 28:add19eb7defa 11646 }
AzureIoTClient 28:add19eb7defa 11647 }
AzureIoTClient 28:add19eb7defa 11648
AzureIoTClient 28:add19eb7defa 11649 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11650 }
AzureIoTClient 28:add19eb7defa 11651 }
AzureIoTClient 28:add19eb7defa 11652 else
AzureIoTClient 28:add19eb7defa 11653 {
AzureIoTClient 28:add19eb7defa 11654 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11655 }
AzureIoTClient 28:add19eb7defa 11656 /* additional-data */
AzureIoTClient 28:add19eb7defa 11657 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 11658 {
AzureIoTClient 23:1111ee8bcba4 11659 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 11660 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11661 {
AzureIoTClient 28:add19eb7defa 11662 /* do nothing */
AzureIoTClient 28:add19eb7defa 11663 }
AzureIoTClient 28:add19eb7defa 11664 else
AzureIoTClient 28:add19eb7defa 11665 {
AzureIoTClient 28:add19eb7defa 11666 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11667 {
AzureIoTClient 28:add19eb7defa 11668 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 11669 }
AzureIoTClient 28:add19eb7defa 11670 else
AzureIoTClient 28:add19eb7defa 11671 {
AzureIoTClient 28:add19eb7defa 11672 amqp_binary additional_data;
AzureIoTClient 28:add19eb7defa 11673 if (amqpvalue_get_binary(item_value, &additional_data) != 0)
AzureIoTClient 28:add19eb7defa 11674 {
AzureIoTClient 28:add19eb7defa 11675 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11676 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11677 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11678 break;
AzureIoTClient 28:add19eb7defa 11679 }
AzureIoTClient 28:add19eb7defa 11680 }
AzureIoTClient 28:add19eb7defa 11681
AzureIoTClient 28:add19eb7defa 11682 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11683 }
AzureIoTClient 28:add19eb7defa 11684 }
AzureIoTClient 28:add19eb7defa 11685
AzureIoTClient 28:add19eb7defa 11686 sasl_outcome_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11687
AzureIoTClient 28:add19eb7defa 11688 result = 0;
AzureIoTClient 28:add19eb7defa 11689 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11690 }
AzureIoTClient 28:add19eb7defa 11691 }
AzureIoTClient 28:add19eb7defa 11692 }
AzureIoTClient 28:add19eb7defa 11693
AzureIoTClient 28:add19eb7defa 11694 return result;
Azure.IoT Build 0:6ae2f7bca550 11695 }
Azure.IoT Build 0:6ae2f7bca550 11696
Azure.IoT Build 0:6ae2f7bca550 11697 int sasl_outcome_get_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code* code_value)
Azure.IoT Build 0:6ae2f7bca550 11698 {
AzureIoTClient 28:add19eb7defa 11699 int result;
AzureIoTClient 28:add19eb7defa 11700
AzureIoTClient 28:add19eb7defa 11701 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11702 {
AzureIoTClient 28:add19eb7defa 11703 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11704 }
AzureIoTClient 28:add19eb7defa 11705 else
AzureIoTClient 28:add19eb7defa 11706 {
AzureIoTClient 28:add19eb7defa 11707 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11708 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11709 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11710 {
AzureIoTClient 23:1111ee8bcba4 11711 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11712 }
AzureIoTClient 23:1111ee8bcba4 11713 else
AzureIoTClient 23:1111ee8bcba4 11714 {
AzureIoTClient 23:1111ee8bcba4 11715 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11716 {
AzureIoTClient 28:add19eb7defa 11717 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11718 }
AzureIoTClient 28:add19eb7defa 11719 else
AzureIoTClient 28:add19eb7defa 11720 {
AzureIoTClient 28:add19eb7defa 11721 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11722 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11723 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11724 {
AzureIoTClient 28:add19eb7defa 11725 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11726 }
AzureIoTClient 28:add19eb7defa 11727 else
AzureIoTClient 28:add19eb7defa 11728 {
AzureIoTClient 28:add19eb7defa 11729 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11730 if ((get_single_value_result = amqpvalue_get_sasl_code(item_value, code_value)) != 0)
AzureIoTClient 28:add19eb7defa 11731 {
AzureIoTClient 28:add19eb7defa 11732 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11733 }
AzureIoTClient 28:add19eb7defa 11734 else
AzureIoTClient 28:add19eb7defa 11735 {
AzureIoTClient 28:add19eb7defa 11736 result = 0;
AzureIoTClient 28:add19eb7defa 11737 }
AzureIoTClient 28:add19eb7defa 11738 }
AzureIoTClient 28:add19eb7defa 11739 }
AzureIoTClient 28:add19eb7defa 11740 }
AzureIoTClient 28:add19eb7defa 11741 }
AzureIoTClient 28:add19eb7defa 11742
AzureIoTClient 28:add19eb7defa 11743 return result;
Azure.IoT Build 0:6ae2f7bca550 11744 }
Azure.IoT Build 0:6ae2f7bca550 11745
Azure.IoT Build 0:6ae2f7bca550 11746 int sasl_outcome_set_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11747 {
AzureIoTClient 28:add19eb7defa 11748 int result;
AzureIoTClient 28:add19eb7defa 11749
AzureIoTClient 28:add19eb7defa 11750 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11751 {
AzureIoTClient 28:add19eb7defa 11752 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11753 }
AzureIoTClient 28:add19eb7defa 11754 else
AzureIoTClient 28:add19eb7defa 11755 {
AzureIoTClient 28:add19eb7defa 11756 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11757 AMQP_VALUE code_amqp_value = amqpvalue_create_sasl_code(code_value);
AzureIoTClient 28:add19eb7defa 11758 if (code_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11759 {
AzureIoTClient 28:add19eb7defa 11760 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11761 }
AzureIoTClient 28:add19eb7defa 11762 else
AzureIoTClient 28:add19eb7defa 11763 {
AzureIoTClient 28:add19eb7defa 11764 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11765 {
AzureIoTClient 28:add19eb7defa 11766 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11767 }
AzureIoTClient 28:add19eb7defa 11768 else
AzureIoTClient 28:add19eb7defa 11769 {
AzureIoTClient 28:add19eb7defa 11770 result = 0;
AzureIoTClient 28:add19eb7defa 11771 }
AzureIoTClient 28:add19eb7defa 11772
AzureIoTClient 28:add19eb7defa 11773 amqpvalue_destroy(code_amqp_value);
AzureIoTClient 28:add19eb7defa 11774 }
AzureIoTClient 28:add19eb7defa 11775 }
AzureIoTClient 28:add19eb7defa 11776
AzureIoTClient 28:add19eb7defa 11777 return result;
Azure.IoT Build 0:6ae2f7bca550 11778 }
Azure.IoT Build 0:6ae2f7bca550 11779
Azure.IoT Build 0:6ae2f7bca550 11780 int sasl_outcome_get_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary* additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11781 {
AzureIoTClient 28:add19eb7defa 11782 int result;
AzureIoTClient 28:add19eb7defa 11783
AzureIoTClient 28:add19eb7defa 11784 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11785 {
AzureIoTClient 28:add19eb7defa 11786 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11787 }
AzureIoTClient 28:add19eb7defa 11788 else
AzureIoTClient 28:add19eb7defa 11789 {
AzureIoTClient 28:add19eb7defa 11790 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11791 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11792 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11793 {
AzureIoTClient 23:1111ee8bcba4 11794 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11795 }
AzureIoTClient 23:1111ee8bcba4 11796 else
AzureIoTClient 23:1111ee8bcba4 11797 {
AzureIoTClient 23:1111ee8bcba4 11798 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 11799 {
AzureIoTClient 28:add19eb7defa 11800 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11801 }
AzureIoTClient 28:add19eb7defa 11802 else
AzureIoTClient 28:add19eb7defa 11803 {
AzureIoTClient 28:add19eb7defa 11804 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 11805 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11806 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11807 {
AzureIoTClient 28:add19eb7defa 11808 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11809 }
AzureIoTClient 28:add19eb7defa 11810 else
AzureIoTClient 28:add19eb7defa 11811 {
AzureIoTClient 28:add19eb7defa 11812 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11813 if ((get_single_value_result = amqpvalue_get_binary(item_value, additional_data_value)) != 0)
AzureIoTClient 28:add19eb7defa 11814 {
AzureIoTClient 28:add19eb7defa 11815 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11816 }
AzureIoTClient 28:add19eb7defa 11817 else
AzureIoTClient 28:add19eb7defa 11818 {
AzureIoTClient 28:add19eb7defa 11819 result = 0;
AzureIoTClient 28:add19eb7defa 11820 }
AzureIoTClient 28:add19eb7defa 11821 }
AzureIoTClient 28:add19eb7defa 11822 }
AzureIoTClient 28:add19eb7defa 11823 }
AzureIoTClient 28:add19eb7defa 11824 }
AzureIoTClient 28:add19eb7defa 11825
AzureIoTClient 28:add19eb7defa 11826 return result;
Azure.IoT Build 0:6ae2f7bca550 11827 }
Azure.IoT Build 0:6ae2f7bca550 11828
Azure.IoT Build 0:6ae2f7bca550 11829 int sasl_outcome_set_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11830 {
AzureIoTClient 28:add19eb7defa 11831 int result;
AzureIoTClient 28:add19eb7defa 11832
AzureIoTClient 28:add19eb7defa 11833 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11834 {
AzureIoTClient 28:add19eb7defa 11835 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11836 }
AzureIoTClient 28:add19eb7defa 11837 else
AzureIoTClient 28:add19eb7defa 11838 {
AzureIoTClient 28:add19eb7defa 11839 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11840 AMQP_VALUE additional_data_amqp_value = amqpvalue_create_binary(additional_data_value);
AzureIoTClient 28:add19eb7defa 11841 if (additional_data_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11842 {
AzureIoTClient 28:add19eb7defa 11843 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11844 }
AzureIoTClient 28:add19eb7defa 11845 else
AzureIoTClient 28:add19eb7defa 11846 {
AzureIoTClient 28:add19eb7defa 11847 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 1, additional_data_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11848 {
AzureIoTClient 28:add19eb7defa 11849 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11850 }
AzureIoTClient 28:add19eb7defa 11851 else
AzureIoTClient 28:add19eb7defa 11852 {
AzureIoTClient 28:add19eb7defa 11853 result = 0;
AzureIoTClient 28:add19eb7defa 11854 }
AzureIoTClient 28:add19eb7defa 11855
AzureIoTClient 28:add19eb7defa 11856 amqpvalue_destroy(additional_data_amqp_value);
AzureIoTClient 28:add19eb7defa 11857 }
AzureIoTClient 28:add19eb7defa 11858 }
AzureIoTClient 28:add19eb7defa 11859
AzureIoTClient 28:add19eb7defa 11860 return result;
Azure.IoT Build 0:6ae2f7bca550 11861 }
Azure.IoT Build 0:6ae2f7bca550 11862
Azure.IoT Build 0:6ae2f7bca550 11863
Azure.IoT Build 0:6ae2f7bca550 11864 /* terminus-durability */
Azure.IoT Build 0:6ae2f7bca550 11865
Azure.IoT Build 0:6ae2f7bca550 11866 AMQP_VALUE amqpvalue_create_terminus_durability(terminus_durability value)
Azure.IoT Build 0:6ae2f7bca550 11867 {
AzureIoTClient 28:add19eb7defa 11868 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 11869 }
Azure.IoT Build 0:6ae2f7bca550 11870
Azure.IoT Build 0:6ae2f7bca550 11871 /* terminus-expiry-policy */
Azure.IoT Build 0:6ae2f7bca550 11872
Azure.IoT Build 0:6ae2f7bca550 11873 AMQP_VALUE amqpvalue_create_terminus_expiry_policy(terminus_expiry_policy value)
Azure.IoT Build 0:6ae2f7bca550 11874 {
AzureIoTClient 28:add19eb7defa 11875 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 11876 }
Azure.IoT Build 0:6ae2f7bca550 11877
Azure.IoT Build 0:6ae2f7bca550 11878 /* node-properties */
Azure.IoT Build 0:6ae2f7bca550 11879
Azure.IoT Build 0:6ae2f7bca550 11880 AMQP_VALUE amqpvalue_create_node_properties(node_properties value)
Azure.IoT Build 0:6ae2f7bca550 11881 {
AzureIoTClient 28:add19eb7defa 11882 return amqpvalue_create_fields(value);
Azure.IoT Build 0:6ae2f7bca550 11883 }
Azure.IoT Build 0:6ae2f7bca550 11884
Azure.IoT Build 0:6ae2f7bca550 11885 /* filter-set */
Azure.IoT Build 0:6ae2f7bca550 11886
Azure.IoT Build 0:6ae2f7bca550 11887 AMQP_VALUE amqpvalue_create_filter_set(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 11888 {
AzureIoTClient 28:add19eb7defa 11889 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 11890 }
Azure.IoT Build 0:6ae2f7bca550 11891
Azure.IoT Build 0:6ae2f7bca550 11892 /* source */
Azure.IoT Build 0:6ae2f7bca550 11893
Azure.IoT Build 0:6ae2f7bca550 11894 typedef struct SOURCE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11895 {
AzureIoTClient 28:add19eb7defa 11896 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11897 } SOURCE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11898
Azure.IoT Build 0:6ae2f7bca550 11899 static SOURCE_HANDLE source_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11900 {
AzureIoTClient 28:add19eb7defa 11901 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11902 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11903 {
AzureIoTClient 28:add19eb7defa 11904 source_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11905 }
AzureIoTClient 28:add19eb7defa 11906
AzureIoTClient 28:add19eb7defa 11907 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11908 }
Azure.IoT Build 0:6ae2f7bca550 11909
Azure.IoT Build 0:6ae2f7bca550 11910 SOURCE_HANDLE source_create(void)
Azure.IoT Build 0:6ae2f7bca550 11911 {
AzureIoTClient 28:add19eb7defa 11912 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11913 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11914 {
AzureIoTClient 28:add19eb7defa 11915 source_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(40);
AzureIoTClient 28:add19eb7defa 11916 if (source_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11917 {
AzureIoTClient 28:add19eb7defa 11918 free(source_instance);
AzureIoTClient 28:add19eb7defa 11919 source_instance = NULL;
AzureIoTClient 28:add19eb7defa 11920 }
AzureIoTClient 28:add19eb7defa 11921 }
AzureIoTClient 28:add19eb7defa 11922
AzureIoTClient 28:add19eb7defa 11923 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11924 }
Azure.IoT Build 0:6ae2f7bca550 11925
Azure.IoT Build 0:6ae2f7bca550 11926 SOURCE_HANDLE source_clone(SOURCE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11927 {
AzureIoTClient 28:add19eb7defa 11928 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11929 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11930 {
AzureIoTClient 28:add19eb7defa 11931 source_instance->composite_value = amqpvalue_clone(((SOURCE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11932 if (source_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11933 {
AzureIoTClient 28:add19eb7defa 11934 free(source_instance);
AzureIoTClient 28:add19eb7defa 11935 source_instance = NULL;
AzureIoTClient 28:add19eb7defa 11936 }
AzureIoTClient 28:add19eb7defa 11937 }
AzureIoTClient 28:add19eb7defa 11938
AzureIoTClient 28:add19eb7defa 11939 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11940 }
Azure.IoT Build 0:6ae2f7bca550 11941
Azure.IoT Build 0:6ae2f7bca550 11942 void source_destroy(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11943 {
AzureIoTClient 28:add19eb7defa 11944 if (source != NULL)
AzureIoTClient 28:add19eb7defa 11945 {
AzureIoTClient 28:add19eb7defa 11946 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 11947 amqpvalue_destroy(source_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11948 free(source_instance);
AzureIoTClient 28:add19eb7defa 11949 }
Azure.IoT Build 0:6ae2f7bca550 11950 }
Azure.IoT Build 0:6ae2f7bca550 11951
Azure.IoT Build 0:6ae2f7bca550 11952 AMQP_VALUE amqpvalue_create_source(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11953 {
AzureIoTClient 28:add19eb7defa 11954 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11955
AzureIoTClient 28:add19eb7defa 11956 if (source == NULL)
AzureIoTClient 28:add19eb7defa 11957 {
AzureIoTClient 28:add19eb7defa 11958 result = NULL;
AzureIoTClient 28:add19eb7defa 11959 }
AzureIoTClient 28:add19eb7defa 11960 else
AzureIoTClient 28:add19eb7defa 11961 {
AzureIoTClient 28:add19eb7defa 11962 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 11963 result = amqpvalue_clone(source_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11964 }
AzureIoTClient 28:add19eb7defa 11965
AzureIoTClient 28:add19eb7defa 11966 return result;
Azure.IoT Build 0:6ae2f7bca550 11967 }
Azure.IoT Build 0:6ae2f7bca550 11968
Azure.IoT Build 0:6ae2f7bca550 11969 bool is_source_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11970 {
AzureIoTClient 28:add19eb7defa 11971 bool result;
AzureIoTClient 28:add19eb7defa 11972
AzureIoTClient 28:add19eb7defa 11973 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11974 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11975 (descriptor_ulong == 40))
AzureIoTClient 28:add19eb7defa 11976 {
AzureIoTClient 28:add19eb7defa 11977 result = true;
AzureIoTClient 28:add19eb7defa 11978 }
AzureIoTClient 28:add19eb7defa 11979 else
AzureIoTClient 28:add19eb7defa 11980 {
AzureIoTClient 28:add19eb7defa 11981 result = false;
AzureIoTClient 28:add19eb7defa 11982 }
AzureIoTClient 28:add19eb7defa 11983
AzureIoTClient 28:add19eb7defa 11984 return result;
Azure.IoT Build 0:6ae2f7bca550 11985 }
Azure.IoT Build 0:6ae2f7bca550 11986
Azure.IoT Build 0:6ae2f7bca550 11987
Azure.IoT Build 0:6ae2f7bca550 11988 int amqpvalue_get_source(AMQP_VALUE value, SOURCE_HANDLE* source_handle)
Azure.IoT Build 0:6ae2f7bca550 11989 {
AzureIoTClient 28:add19eb7defa 11990 int result;
AzureIoTClient 28:add19eb7defa 11991 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source_create_internal();
AzureIoTClient 28:add19eb7defa 11992 *source_handle = source_instance;
AzureIoTClient 28:add19eb7defa 11993 if (*source_handle == NULL)
AzureIoTClient 28:add19eb7defa 11994 {
AzureIoTClient 28:add19eb7defa 11995 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11996 }
AzureIoTClient 28:add19eb7defa 11997 else
AzureIoTClient 28:add19eb7defa 11998 {
AzureIoTClient 28:add19eb7defa 11999 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 12000 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 12001 {
AzureIoTClient 28:add19eb7defa 12002 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12003 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12004 }
AzureIoTClient 28:add19eb7defa 12005 else
AzureIoTClient 28:add19eb7defa 12006 {
AzureIoTClient 23:1111ee8bcba4 12007 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 12008 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12009 {
AzureIoTClient 23:1111ee8bcba4 12010 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12011 }
AzureIoTClient 23:1111ee8bcba4 12012 else
AzureIoTClient 23:1111ee8bcba4 12013 {
AzureIoTClient 28:add19eb7defa 12014 do
AzureIoTClient 28:add19eb7defa 12015 {
AzureIoTClient 28:add19eb7defa 12016 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 12017 /* address */
AzureIoTClient 28:add19eb7defa 12018 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 12019 {
AzureIoTClient 23:1111ee8bcba4 12020 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 12021 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12022 {
AzureIoTClient 28:add19eb7defa 12023 /* do nothing */
AzureIoTClient 28:add19eb7defa 12024 }
AzureIoTClient 28:add19eb7defa 12025 else
AzureIoTClient 28:add19eb7defa 12026 {
AzureIoTClient 28:add19eb7defa 12027 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12028 }
AzureIoTClient 28:add19eb7defa 12029 }
AzureIoTClient 28:add19eb7defa 12030 /* durable */
AzureIoTClient 28:add19eb7defa 12031 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 12032 {
AzureIoTClient 23:1111ee8bcba4 12033 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 12034 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12035 {
AzureIoTClient 28:add19eb7defa 12036 /* do nothing */
AzureIoTClient 28:add19eb7defa 12037 }
AzureIoTClient 28:add19eb7defa 12038 else
AzureIoTClient 28:add19eb7defa 12039 {
AzureIoTClient 28:add19eb7defa 12040 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12041 {
AzureIoTClient 28:add19eb7defa 12042 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12043 }
AzureIoTClient 28:add19eb7defa 12044 else
AzureIoTClient 28:add19eb7defa 12045 {
AzureIoTClient 28:add19eb7defa 12046 terminus_durability durable;
AzureIoTClient 28:add19eb7defa 12047 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 12048 {
AzureIoTClient 28:add19eb7defa 12049 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12050 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12051 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12052 break;
AzureIoTClient 28:add19eb7defa 12053 }
AzureIoTClient 28:add19eb7defa 12054 }
AzureIoTClient 28:add19eb7defa 12055
AzureIoTClient 28:add19eb7defa 12056 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12057 }
AzureIoTClient 28:add19eb7defa 12058 }
AzureIoTClient 28:add19eb7defa 12059 /* expiry-policy */
AzureIoTClient 28:add19eb7defa 12060 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 12061 {
AzureIoTClient 23:1111ee8bcba4 12062 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 12063 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12064 {
AzureIoTClient 28:add19eb7defa 12065 /* do nothing */
AzureIoTClient 28:add19eb7defa 12066 }
AzureIoTClient 28:add19eb7defa 12067 else
AzureIoTClient 28:add19eb7defa 12068 {
AzureIoTClient 28:add19eb7defa 12069 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12070 {
AzureIoTClient 28:add19eb7defa 12071 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12072 }
AzureIoTClient 28:add19eb7defa 12073 else
AzureIoTClient 28:add19eb7defa 12074 {
AzureIoTClient 28:add19eb7defa 12075 terminus_expiry_policy expiry_policy;
AzureIoTClient 28:add19eb7defa 12076 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 28:add19eb7defa 12077 {
AzureIoTClient 28:add19eb7defa 12078 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12079 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12080 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12081 break;
AzureIoTClient 28:add19eb7defa 12082 }
AzureIoTClient 28:add19eb7defa 12083 }
AzureIoTClient 28:add19eb7defa 12084
AzureIoTClient 28:add19eb7defa 12085 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12086 }
AzureIoTClient 28:add19eb7defa 12087 }
AzureIoTClient 28:add19eb7defa 12088 /* timeout */
AzureIoTClient 28:add19eb7defa 12089 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 12090 {
AzureIoTClient 23:1111ee8bcba4 12091 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 12092 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12093 {
AzureIoTClient 28:add19eb7defa 12094 /* do nothing */
AzureIoTClient 28:add19eb7defa 12095 }
AzureIoTClient 28:add19eb7defa 12096 else
AzureIoTClient 28:add19eb7defa 12097 {
AzureIoTClient 28:add19eb7defa 12098 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12099 {
AzureIoTClient 28:add19eb7defa 12100 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12101 }
AzureIoTClient 28:add19eb7defa 12102 else
AzureIoTClient 28:add19eb7defa 12103 {
AzureIoTClient 28:add19eb7defa 12104 seconds timeout;
AzureIoTClient 28:add19eb7defa 12105 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 28:add19eb7defa 12106 {
AzureIoTClient 28:add19eb7defa 12107 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12108 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12109 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12110 break;
AzureIoTClient 28:add19eb7defa 12111 }
AzureIoTClient 28:add19eb7defa 12112 }
AzureIoTClient 28:add19eb7defa 12113
AzureIoTClient 28:add19eb7defa 12114 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12115 }
AzureIoTClient 28:add19eb7defa 12116 }
AzureIoTClient 28:add19eb7defa 12117 /* dynamic */
AzureIoTClient 28:add19eb7defa 12118 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 12119 {
AzureIoTClient 23:1111ee8bcba4 12120 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 12121 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12122 {
AzureIoTClient 28:add19eb7defa 12123 /* do nothing */
AzureIoTClient 28:add19eb7defa 12124 }
AzureIoTClient 28:add19eb7defa 12125 else
AzureIoTClient 28:add19eb7defa 12126 {
AzureIoTClient 28:add19eb7defa 12127 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12128 {
AzureIoTClient 28:add19eb7defa 12129 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12130 }
AzureIoTClient 28:add19eb7defa 12131 else
AzureIoTClient 28:add19eb7defa 12132 {
AzureIoTClient 28:add19eb7defa 12133 bool dynamic;
AzureIoTClient 28:add19eb7defa 12134 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 28:add19eb7defa 12135 {
AzureIoTClient 28:add19eb7defa 12136 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12137 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12138 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12139 break;
AzureIoTClient 28:add19eb7defa 12140 }
AzureIoTClient 28:add19eb7defa 12141 }
AzureIoTClient 28:add19eb7defa 12142
AzureIoTClient 28:add19eb7defa 12143 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12144 }
AzureIoTClient 28:add19eb7defa 12145 }
AzureIoTClient 28:add19eb7defa 12146 /* dynamic-node-properties */
AzureIoTClient 28:add19eb7defa 12147 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 12148 {
AzureIoTClient 23:1111ee8bcba4 12149 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 12150 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12151 {
AzureIoTClient 28:add19eb7defa 12152 /* do nothing */
AzureIoTClient 28:add19eb7defa 12153 }
AzureIoTClient 28:add19eb7defa 12154 else
AzureIoTClient 28:add19eb7defa 12155 {
AzureIoTClient 28:add19eb7defa 12156 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12157 {
AzureIoTClient 28:add19eb7defa 12158 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12159 }
AzureIoTClient 28:add19eb7defa 12160 else
AzureIoTClient 28:add19eb7defa 12161 {
AzureIoTClient 28:add19eb7defa 12162 node_properties dynamic_node_properties;
AzureIoTClient 28:add19eb7defa 12163 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 28:add19eb7defa 12164 {
AzureIoTClient 28:add19eb7defa 12165 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12166 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12167 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12168 break;
AzureIoTClient 28:add19eb7defa 12169 }
AzureIoTClient 28:add19eb7defa 12170 }
AzureIoTClient 28:add19eb7defa 12171
AzureIoTClient 28:add19eb7defa 12172 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12173 }
AzureIoTClient 28:add19eb7defa 12174 }
AzureIoTClient 28:add19eb7defa 12175 /* distribution-mode */
AzureIoTClient 28:add19eb7defa 12176 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 12177 {
AzureIoTClient 23:1111ee8bcba4 12178 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 12179 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12180 {
AzureIoTClient 28:add19eb7defa 12181 /* do nothing */
AzureIoTClient 28:add19eb7defa 12182 }
AzureIoTClient 28:add19eb7defa 12183 else
AzureIoTClient 28:add19eb7defa 12184 {
AzureIoTClient 28:add19eb7defa 12185 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12186 {
AzureIoTClient 28:add19eb7defa 12187 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12188 }
AzureIoTClient 28:add19eb7defa 12189 else
AzureIoTClient 28:add19eb7defa 12190 {
AzureIoTClient 28:add19eb7defa 12191 const char* distribution_mode;
AzureIoTClient 28:add19eb7defa 12192 if (amqpvalue_get_symbol(item_value, &distribution_mode) != 0)
AzureIoTClient 28:add19eb7defa 12193 {
AzureIoTClient 28:add19eb7defa 12194 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12195 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12196 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12197 break;
AzureIoTClient 28:add19eb7defa 12198 }
AzureIoTClient 28:add19eb7defa 12199 }
AzureIoTClient 28:add19eb7defa 12200
AzureIoTClient 28:add19eb7defa 12201 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12202 }
AzureIoTClient 28:add19eb7defa 12203 }
AzureIoTClient 28:add19eb7defa 12204 /* filter */
AzureIoTClient 28:add19eb7defa 12205 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 12206 {
AzureIoTClient 23:1111ee8bcba4 12207 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 12208 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12209 {
AzureIoTClient 28:add19eb7defa 12210 /* do nothing */
AzureIoTClient 28:add19eb7defa 12211 }
AzureIoTClient 28:add19eb7defa 12212 else
AzureIoTClient 28:add19eb7defa 12213 {
AzureIoTClient 28:add19eb7defa 12214 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12215 {
AzureIoTClient 28:add19eb7defa 12216 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12217 }
AzureIoTClient 28:add19eb7defa 12218 else
AzureIoTClient 28:add19eb7defa 12219 {
AzureIoTClient 28:add19eb7defa 12220 filter_set filter;
AzureIoTClient 28:add19eb7defa 12221 if (amqpvalue_get_filter_set(item_value, &filter) != 0)
AzureIoTClient 28:add19eb7defa 12222 {
AzureIoTClient 28:add19eb7defa 12223 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12224 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12225 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12226 break;
AzureIoTClient 28:add19eb7defa 12227 }
AzureIoTClient 28:add19eb7defa 12228 }
AzureIoTClient 28:add19eb7defa 12229
AzureIoTClient 28:add19eb7defa 12230 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12231 }
AzureIoTClient 28:add19eb7defa 12232 }
AzureIoTClient 28:add19eb7defa 12233 /* default-outcome */
AzureIoTClient 28:add19eb7defa 12234 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 12235 {
AzureIoTClient 23:1111ee8bcba4 12236 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 12237 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12238 {
AzureIoTClient 28:add19eb7defa 12239 /* do nothing */
AzureIoTClient 28:add19eb7defa 12240 }
AzureIoTClient 28:add19eb7defa 12241 else
AzureIoTClient 28:add19eb7defa 12242 {
AzureIoTClient 28:add19eb7defa 12243 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12244 }
AzureIoTClient 28:add19eb7defa 12245 }
AzureIoTClient 28:add19eb7defa 12246 /* outcomes */
AzureIoTClient 28:add19eb7defa 12247 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 12248 {
AzureIoTClient 23:1111ee8bcba4 12249 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 12250 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12251 {
AzureIoTClient 28:add19eb7defa 12252 /* do nothing */
AzureIoTClient 28:add19eb7defa 12253 }
AzureIoTClient 28:add19eb7defa 12254 else
AzureIoTClient 28:add19eb7defa 12255 {
AzureIoTClient 28:add19eb7defa 12256 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12257 {
AzureIoTClient 28:add19eb7defa 12258 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12259 }
AzureIoTClient 28:add19eb7defa 12260 else
AzureIoTClient 28:add19eb7defa 12261 {
AzureIoTClient 28:add19eb7defa 12262 const char* outcomes = NULL;
AzureIoTClient 28:add19eb7defa 12263 AMQP_VALUE outcomes_array;
AzureIoTClient 28:add19eb7defa 12264 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &outcomes_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 12265 (amqpvalue_get_symbol(item_value, &outcomes) != 0))
AzureIoTClient 28:add19eb7defa 12266 {
AzureIoTClient 28:add19eb7defa 12267 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12268 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12269 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12270 break;
AzureIoTClient 28:add19eb7defa 12271 }
AzureIoTClient 28:add19eb7defa 12272 }
AzureIoTClient 28:add19eb7defa 12273
AzureIoTClient 28:add19eb7defa 12274 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12275 }
AzureIoTClient 28:add19eb7defa 12276 }
AzureIoTClient 28:add19eb7defa 12277 /* capabilities */
AzureIoTClient 28:add19eb7defa 12278 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 12279 {
AzureIoTClient 23:1111ee8bcba4 12280 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 12281 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12282 {
AzureIoTClient 28:add19eb7defa 12283 /* do nothing */
AzureIoTClient 28:add19eb7defa 12284 }
AzureIoTClient 28:add19eb7defa 12285 else
AzureIoTClient 28:add19eb7defa 12286 {
AzureIoTClient 28:add19eb7defa 12287 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12288 {
AzureIoTClient 28:add19eb7defa 12289 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12290 }
AzureIoTClient 28:add19eb7defa 12291 else
AzureIoTClient 28:add19eb7defa 12292 {
AzureIoTClient 28:add19eb7defa 12293 const char* capabilities = NULL;
AzureIoTClient 28:add19eb7defa 12294 AMQP_VALUE capabilities_array;
AzureIoTClient 28:add19eb7defa 12295 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 12296 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 28:add19eb7defa 12297 {
AzureIoTClient 28:add19eb7defa 12298 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12299 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12300 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12301 break;
AzureIoTClient 28:add19eb7defa 12302 }
AzureIoTClient 28:add19eb7defa 12303 }
AzureIoTClient 28:add19eb7defa 12304
AzureIoTClient 28:add19eb7defa 12305 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12306 }
AzureIoTClient 28:add19eb7defa 12307 }
AzureIoTClient 28:add19eb7defa 12308
AzureIoTClient 28:add19eb7defa 12309 source_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 12310
AzureIoTClient 28:add19eb7defa 12311 result = 0;
AzureIoTClient 28:add19eb7defa 12312 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 12313 }
AzureIoTClient 28:add19eb7defa 12314 }
AzureIoTClient 28:add19eb7defa 12315 }
AzureIoTClient 28:add19eb7defa 12316
AzureIoTClient 28:add19eb7defa 12317 return result;
Azure.IoT Build 0:6ae2f7bca550 12318 }
Azure.IoT Build 0:6ae2f7bca550 12319
Azure.IoT Build 0:6ae2f7bca550 12320 int source_get_address(SOURCE_HANDLE source, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 12321 {
AzureIoTClient 28:add19eb7defa 12322 int result;
AzureIoTClient 28:add19eb7defa 12323
AzureIoTClient 28:add19eb7defa 12324 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12325 {
AzureIoTClient 28:add19eb7defa 12326 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12327 }
AzureIoTClient 28:add19eb7defa 12328 else
AzureIoTClient 28:add19eb7defa 12329 {
AzureIoTClient 28:add19eb7defa 12330 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12331 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12332 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12333 {
AzureIoTClient 23:1111ee8bcba4 12334 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12335 }
AzureIoTClient 23:1111ee8bcba4 12336 else
AzureIoTClient 23:1111ee8bcba4 12337 {
AzureIoTClient 23:1111ee8bcba4 12338 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 12339 {
AzureIoTClient 28:add19eb7defa 12340 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12341 }
AzureIoTClient 28:add19eb7defa 12342 else
AzureIoTClient 28:add19eb7defa 12343 {
AzureIoTClient 28:add19eb7defa 12344 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 12345 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12346 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12347 {
AzureIoTClient 28:add19eb7defa 12348 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12349 }
AzureIoTClient 28:add19eb7defa 12350 else
AzureIoTClient 28:add19eb7defa 12351 {
AzureIoTClient 28:add19eb7defa 12352 *address_value = item_value;
AzureIoTClient 28:add19eb7defa 12353 result = 0;
AzureIoTClient 28:add19eb7defa 12354 }
AzureIoTClient 28:add19eb7defa 12355 }
AzureIoTClient 28:add19eb7defa 12356 }
AzureIoTClient 28:add19eb7defa 12357 }
AzureIoTClient 28:add19eb7defa 12358
AzureIoTClient 28:add19eb7defa 12359 return result;
Azure.IoT Build 0:6ae2f7bca550 12360 }
Azure.IoT Build 0:6ae2f7bca550 12361
Azure.IoT Build 0:6ae2f7bca550 12362 int source_set_address(SOURCE_HANDLE source, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 12363 {
AzureIoTClient 28:add19eb7defa 12364 int result;
AzureIoTClient 28:add19eb7defa 12365
AzureIoTClient 28:add19eb7defa 12366 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12367 {
AzureIoTClient 28:add19eb7defa 12368 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12369 }
AzureIoTClient 28:add19eb7defa 12370 else
AzureIoTClient 28:add19eb7defa 12371 {
AzureIoTClient 28:add19eb7defa 12372 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12373 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 12374 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12375 {
AzureIoTClient 23:1111ee8bcba4 12376 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 12377 }
AzureIoTClient 23:1111ee8bcba4 12378 else
AzureIoTClient 23:1111ee8bcba4 12379 {
AzureIoTClient 23:1111ee8bcba4 12380 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 12381 }
AzureIoTClient 28:add19eb7defa 12382 if (address_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12383 {
AzureIoTClient 28:add19eb7defa 12384 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12385 }
AzureIoTClient 28:add19eb7defa 12386 else
AzureIoTClient 28:add19eb7defa 12387 {
AzureIoTClient 28:add19eb7defa 12388 if (amqpvalue_set_composite_item(source_instance->composite_value, 0, address_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12389 {
AzureIoTClient 28:add19eb7defa 12390 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12391 }
AzureIoTClient 28:add19eb7defa 12392 else
AzureIoTClient 28:add19eb7defa 12393 {
AzureIoTClient 28:add19eb7defa 12394 result = 0;
AzureIoTClient 28:add19eb7defa 12395 }
AzureIoTClient 28:add19eb7defa 12396
AzureIoTClient 28:add19eb7defa 12397 amqpvalue_destroy(address_amqp_value);
AzureIoTClient 28:add19eb7defa 12398 }
AzureIoTClient 28:add19eb7defa 12399 }
AzureIoTClient 28:add19eb7defa 12400
AzureIoTClient 28:add19eb7defa 12401 return result;
Azure.IoT Build 0:6ae2f7bca550 12402 }
Azure.IoT Build 0:6ae2f7bca550 12403
Azure.IoT Build 0:6ae2f7bca550 12404 int source_get_durable(SOURCE_HANDLE source, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 12405 {
AzureIoTClient 28:add19eb7defa 12406 int result;
AzureIoTClient 28:add19eb7defa 12407
AzureIoTClient 28:add19eb7defa 12408 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12409 {
AzureIoTClient 28:add19eb7defa 12410 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12411 }
AzureIoTClient 28:add19eb7defa 12412 else
AzureIoTClient 28:add19eb7defa 12413 {
AzureIoTClient 28:add19eb7defa 12414 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12415 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12416 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12417 {
AzureIoTClient 23:1111ee8bcba4 12418 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12419 }
AzureIoTClient 23:1111ee8bcba4 12420 else
AzureIoTClient 23:1111ee8bcba4 12421 {
AzureIoTClient 23:1111ee8bcba4 12422 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 12423 {
AzureIoTClient 23:1111ee8bcba4 12424 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 12425 result = 0;
AzureIoTClient 23:1111ee8bcba4 12426 }
AzureIoTClient 23:1111ee8bcba4 12427 else
AzureIoTClient 23:1111ee8bcba4 12428 {
AzureIoTClient 28:add19eb7defa 12429 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 12430 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12431 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12432 {
AzureIoTClient 16:22a72cf8e416 12433 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 12434 result = 0;
AzureIoTClient 28:add19eb7defa 12435 }
AzureIoTClient 28:add19eb7defa 12436 else
AzureIoTClient 28:add19eb7defa 12437 {
AzureIoTClient 28:add19eb7defa 12438 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12439 if ((get_single_value_result = amqpvalue_get_terminus_durability(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 12440 {
AzureIoTClient 23:1111ee8bcba4 12441 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12442 {
AzureIoTClient 28:add19eb7defa 12443 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12444 }
AzureIoTClient 23:1111ee8bcba4 12445 else
AzureIoTClient 23:1111ee8bcba4 12446 {
AzureIoTClient 23:1111ee8bcba4 12447 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 12448 result = 0;
AzureIoTClient 23:1111ee8bcba4 12449 }
AzureIoTClient 28:add19eb7defa 12450 }
AzureIoTClient 28:add19eb7defa 12451 else
AzureIoTClient 28:add19eb7defa 12452 {
AzureIoTClient 28:add19eb7defa 12453 result = 0;
AzureIoTClient 28:add19eb7defa 12454 }
AzureIoTClient 28:add19eb7defa 12455 }
AzureIoTClient 28:add19eb7defa 12456 }
AzureIoTClient 28:add19eb7defa 12457 }
AzureIoTClient 28:add19eb7defa 12458 }
AzureIoTClient 28:add19eb7defa 12459
AzureIoTClient 28:add19eb7defa 12460 return result;
Azure.IoT Build 0:6ae2f7bca550 12461 }
Azure.IoT Build 0:6ae2f7bca550 12462
Azure.IoT Build 0:6ae2f7bca550 12463 int source_set_durable(SOURCE_HANDLE source, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 12464 {
AzureIoTClient 28:add19eb7defa 12465 int result;
AzureIoTClient 28:add19eb7defa 12466
AzureIoTClient 28:add19eb7defa 12467 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12468 {
AzureIoTClient 28:add19eb7defa 12469 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12470 }
AzureIoTClient 28:add19eb7defa 12471 else
AzureIoTClient 28:add19eb7defa 12472 {
AzureIoTClient 28:add19eb7defa 12473 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12474 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
AzureIoTClient 28:add19eb7defa 12475 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12476 {
AzureIoTClient 28:add19eb7defa 12477 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12478 }
AzureIoTClient 28:add19eb7defa 12479 else
AzureIoTClient 28:add19eb7defa 12480 {
AzureIoTClient 28:add19eb7defa 12481 if (amqpvalue_set_composite_item(source_instance->composite_value, 1, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12482 {
AzureIoTClient 28:add19eb7defa 12483 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12484 }
AzureIoTClient 28:add19eb7defa 12485 else
AzureIoTClient 28:add19eb7defa 12486 {
AzureIoTClient 28:add19eb7defa 12487 result = 0;
AzureIoTClient 28:add19eb7defa 12488 }
AzureIoTClient 28:add19eb7defa 12489
AzureIoTClient 28:add19eb7defa 12490 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 12491 }
AzureIoTClient 28:add19eb7defa 12492 }
AzureIoTClient 28:add19eb7defa 12493
AzureIoTClient 28:add19eb7defa 12494 return result;
Azure.IoT Build 0:6ae2f7bca550 12495 }
Azure.IoT Build 0:6ae2f7bca550 12496
Azure.IoT Build 0:6ae2f7bca550 12497 int source_get_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 12498 {
AzureIoTClient 28:add19eb7defa 12499 int result;
AzureIoTClient 28:add19eb7defa 12500
AzureIoTClient 28:add19eb7defa 12501 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12502 {
AzureIoTClient 28:add19eb7defa 12503 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12504 }
AzureIoTClient 28:add19eb7defa 12505 else
AzureIoTClient 28:add19eb7defa 12506 {
AzureIoTClient 28:add19eb7defa 12507 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12508 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12509 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12510 {
AzureIoTClient 23:1111ee8bcba4 12511 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12512 }
AzureIoTClient 23:1111ee8bcba4 12513 else
AzureIoTClient 23:1111ee8bcba4 12514 {
AzureIoTClient 23:1111ee8bcba4 12515 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 12516 {
AzureIoTClient 23:1111ee8bcba4 12517 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 12518 result = 0;
AzureIoTClient 23:1111ee8bcba4 12519 }
AzureIoTClient 23:1111ee8bcba4 12520 else
AzureIoTClient 23:1111ee8bcba4 12521 {
AzureIoTClient 28:add19eb7defa 12522 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 12523 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12524 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12525 {
AzureIoTClient 16:22a72cf8e416 12526 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 12527 result = 0;
AzureIoTClient 28:add19eb7defa 12528 }
AzureIoTClient 28:add19eb7defa 12529 else
AzureIoTClient 28:add19eb7defa 12530 {
AzureIoTClient 28:add19eb7defa 12531 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12532 if ((get_single_value_result = amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value)) != 0)
AzureIoTClient 28:add19eb7defa 12533 {
AzureIoTClient 23:1111ee8bcba4 12534 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12535 {
AzureIoTClient 28:add19eb7defa 12536 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12537 }
AzureIoTClient 23:1111ee8bcba4 12538 else
AzureIoTClient 23:1111ee8bcba4 12539 {
AzureIoTClient 23:1111ee8bcba4 12540 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 12541 result = 0;
AzureIoTClient 23:1111ee8bcba4 12542 }
AzureIoTClient 28:add19eb7defa 12543 }
AzureIoTClient 28:add19eb7defa 12544 else
AzureIoTClient 28:add19eb7defa 12545 {
AzureIoTClient 28:add19eb7defa 12546 result = 0;
AzureIoTClient 28:add19eb7defa 12547 }
AzureIoTClient 28:add19eb7defa 12548 }
AzureIoTClient 28:add19eb7defa 12549 }
AzureIoTClient 28:add19eb7defa 12550 }
AzureIoTClient 28:add19eb7defa 12551 }
AzureIoTClient 28:add19eb7defa 12552
AzureIoTClient 28:add19eb7defa 12553 return result;
Azure.IoT Build 0:6ae2f7bca550 12554 }
Azure.IoT Build 0:6ae2f7bca550 12555
Azure.IoT Build 0:6ae2f7bca550 12556 int source_set_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 12557 {
AzureIoTClient 28:add19eb7defa 12558 int result;
AzureIoTClient 28:add19eb7defa 12559
AzureIoTClient 28:add19eb7defa 12560 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12561 {
AzureIoTClient 28:add19eb7defa 12562 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12563 }
AzureIoTClient 28:add19eb7defa 12564 else
AzureIoTClient 28:add19eb7defa 12565 {
AzureIoTClient 28:add19eb7defa 12566 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12567 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
AzureIoTClient 28:add19eb7defa 12568 if (expiry_policy_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12569 {
AzureIoTClient 28:add19eb7defa 12570 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12571 }
AzureIoTClient 28:add19eb7defa 12572 else
AzureIoTClient 28:add19eb7defa 12573 {
AzureIoTClient 28:add19eb7defa 12574 if (amqpvalue_set_composite_item(source_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12575 {
AzureIoTClient 28:add19eb7defa 12576 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12577 }
AzureIoTClient 28:add19eb7defa 12578 else
AzureIoTClient 28:add19eb7defa 12579 {
AzureIoTClient 28:add19eb7defa 12580 result = 0;
AzureIoTClient 28:add19eb7defa 12581 }
AzureIoTClient 28:add19eb7defa 12582
AzureIoTClient 28:add19eb7defa 12583 amqpvalue_destroy(expiry_policy_amqp_value);
AzureIoTClient 28:add19eb7defa 12584 }
AzureIoTClient 28:add19eb7defa 12585 }
AzureIoTClient 28:add19eb7defa 12586
AzureIoTClient 28:add19eb7defa 12587 return result;
Azure.IoT Build 0:6ae2f7bca550 12588 }
Azure.IoT Build 0:6ae2f7bca550 12589
Azure.IoT Build 0:6ae2f7bca550 12590 int source_get_timeout(SOURCE_HANDLE source, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12591 {
AzureIoTClient 28:add19eb7defa 12592 int result;
AzureIoTClient 28:add19eb7defa 12593
AzureIoTClient 28:add19eb7defa 12594 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12595 {
AzureIoTClient 28:add19eb7defa 12596 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12597 }
AzureIoTClient 28:add19eb7defa 12598 else
AzureIoTClient 28:add19eb7defa 12599 {
AzureIoTClient 28:add19eb7defa 12600 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12601 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12602 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12603 {
AzureIoTClient 23:1111ee8bcba4 12604 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12605 }
AzureIoTClient 23:1111ee8bcba4 12606 else
AzureIoTClient 23:1111ee8bcba4 12607 {
AzureIoTClient 23:1111ee8bcba4 12608 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 12609 {
AzureIoTClient 28:add19eb7defa 12610 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 12611 result = 0;
AzureIoTClient 28:add19eb7defa 12612 }
AzureIoTClient 28:add19eb7defa 12613 else
AzureIoTClient 28:add19eb7defa 12614 {
AzureIoTClient 28:add19eb7defa 12615 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 12616 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12617 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12618 {
AzureIoTClient 28:add19eb7defa 12619 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 12620 result = 0;
AzureIoTClient 28:add19eb7defa 12621 }
AzureIoTClient 28:add19eb7defa 12622 else
AzureIoTClient 28:add19eb7defa 12623 {
AzureIoTClient 28:add19eb7defa 12624 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12625 if ((get_single_value_result = amqpvalue_get_seconds(item_value, timeout_value)) != 0)
AzureIoTClient 28:add19eb7defa 12626 {
AzureIoTClient 23:1111ee8bcba4 12627 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12628 {
AzureIoTClient 28:add19eb7defa 12629 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12630 }
AzureIoTClient 28:add19eb7defa 12631 else
AzureIoTClient 28:add19eb7defa 12632 {
AzureIoTClient 28:add19eb7defa 12633 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 12634 result = 0;
AzureIoTClient 23:1111ee8bcba4 12635 }
AzureIoTClient 28:add19eb7defa 12636 }
AzureIoTClient 28:add19eb7defa 12637 else
AzureIoTClient 28:add19eb7defa 12638 {
AzureIoTClient 28:add19eb7defa 12639 result = 0;
AzureIoTClient 28:add19eb7defa 12640 }
AzureIoTClient 28:add19eb7defa 12641 }
AzureIoTClient 28:add19eb7defa 12642 }
AzureIoTClient 28:add19eb7defa 12643 }
AzureIoTClient 28:add19eb7defa 12644 }
AzureIoTClient 28:add19eb7defa 12645
AzureIoTClient 28:add19eb7defa 12646 return result;
Azure.IoT Build 0:6ae2f7bca550 12647 }
Azure.IoT Build 0:6ae2f7bca550 12648
Azure.IoT Build 0:6ae2f7bca550 12649 int source_set_timeout(SOURCE_HANDLE source, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12650 {
AzureIoTClient 28:add19eb7defa 12651 int result;
AzureIoTClient 28:add19eb7defa 12652
AzureIoTClient 28:add19eb7defa 12653 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12654 {
AzureIoTClient 28:add19eb7defa 12655 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12656 }
AzureIoTClient 28:add19eb7defa 12657 else
AzureIoTClient 28:add19eb7defa 12658 {
AzureIoTClient 28:add19eb7defa 12659 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12660 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
AzureIoTClient 28:add19eb7defa 12661 if (timeout_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12662 {
AzureIoTClient 28:add19eb7defa 12663 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12664 }
AzureIoTClient 28:add19eb7defa 12665 else
AzureIoTClient 28:add19eb7defa 12666 {
AzureIoTClient 28:add19eb7defa 12667 if (amqpvalue_set_composite_item(source_instance->composite_value, 3, timeout_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12668 {
AzureIoTClient 28:add19eb7defa 12669 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12670 }
AzureIoTClient 28:add19eb7defa 12671 else
AzureIoTClient 28:add19eb7defa 12672 {
AzureIoTClient 28:add19eb7defa 12673 result = 0;
AzureIoTClient 28:add19eb7defa 12674 }
AzureIoTClient 28:add19eb7defa 12675
AzureIoTClient 28:add19eb7defa 12676 amqpvalue_destroy(timeout_amqp_value);
AzureIoTClient 28:add19eb7defa 12677 }
AzureIoTClient 28:add19eb7defa 12678 }
AzureIoTClient 28:add19eb7defa 12679
AzureIoTClient 28:add19eb7defa 12680 return result;
Azure.IoT Build 0:6ae2f7bca550 12681 }
Azure.IoT Build 0:6ae2f7bca550 12682
Azure.IoT Build 0:6ae2f7bca550 12683 int source_get_dynamic(SOURCE_HANDLE source, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12684 {
AzureIoTClient 28:add19eb7defa 12685 int result;
AzureIoTClient 28:add19eb7defa 12686
AzureIoTClient 28:add19eb7defa 12687 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12688 {
AzureIoTClient 28:add19eb7defa 12689 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12690 }
AzureIoTClient 28:add19eb7defa 12691 else
AzureIoTClient 28:add19eb7defa 12692 {
AzureIoTClient 28:add19eb7defa 12693 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12694 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12695 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12696 {
AzureIoTClient 23:1111ee8bcba4 12697 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12698 }
AzureIoTClient 23:1111ee8bcba4 12699 else
AzureIoTClient 23:1111ee8bcba4 12700 {
AzureIoTClient 23:1111ee8bcba4 12701 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 12702 {
AzureIoTClient 28:add19eb7defa 12703 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 12704 result = 0;
AzureIoTClient 28:add19eb7defa 12705 }
AzureIoTClient 28:add19eb7defa 12706 else
AzureIoTClient 28:add19eb7defa 12707 {
AzureIoTClient 28:add19eb7defa 12708 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 12709 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12710 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12711 {
AzureIoTClient 28:add19eb7defa 12712 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 12713 result = 0;
AzureIoTClient 28:add19eb7defa 12714 }
AzureIoTClient 28:add19eb7defa 12715 else
AzureIoTClient 28:add19eb7defa 12716 {
AzureIoTClient 28:add19eb7defa 12717 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12718 if ((get_single_value_result = amqpvalue_get_boolean(item_value, dynamic_value)) != 0)
AzureIoTClient 28:add19eb7defa 12719 {
AzureIoTClient 23:1111ee8bcba4 12720 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12721 {
AzureIoTClient 28:add19eb7defa 12722 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12723 }
AzureIoTClient 28:add19eb7defa 12724 else
AzureIoTClient 28:add19eb7defa 12725 {
AzureIoTClient 28:add19eb7defa 12726 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 12727 result = 0;
AzureIoTClient 23:1111ee8bcba4 12728 }
AzureIoTClient 28:add19eb7defa 12729 }
AzureIoTClient 28:add19eb7defa 12730 else
AzureIoTClient 28:add19eb7defa 12731 {
AzureIoTClient 28:add19eb7defa 12732 result = 0;
AzureIoTClient 28:add19eb7defa 12733 }
AzureIoTClient 28:add19eb7defa 12734 }
AzureIoTClient 28:add19eb7defa 12735 }
AzureIoTClient 28:add19eb7defa 12736 }
AzureIoTClient 28:add19eb7defa 12737 }
AzureIoTClient 28:add19eb7defa 12738
AzureIoTClient 28:add19eb7defa 12739 return result;
Azure.IoT Build 0:6ae2f7bca550 12740 }
Azure.IoT Build 0:6ae2f7bca550 12741
Azure.IoT Build 0:6ae2f7bca550 12742 int source_set_dynamic(SOURCE_HANDLE source, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12743 {
AzureIoTClient 28:add19eb7defa 12744 int result;
AzureIoTClient 28:add19eb7defa 12745
AzureIoTClient 28:add19eb7defa 12746 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12747 {
AzureIoTClient 28:add19eb7defa 12748 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12749 }
AzureIoTClient 28:add19eb7defa 12750 else
AzureIoTClient 28:add19eb7defa 12751 {
AzureIoTClient 28:add19eb7defa 12752 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12753 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
AzureIoTClient 28:add19eb7defa 12754 if (dynamic_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12755 {
AzureIoTClient 28:add19eb7defa 12756 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12757 }
AzureIoTClient 28:add19eb7defa 12758 else
AzureIoTClient 28:add19eb7defa 12759 {
AzureIoTClient 28:add19eb7defa 12760 if (amqpvalue_set_composite_item(source_instance->composite_value, 4, dynamic_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12761 {
AzureIoTClient 28:add19eb7defa 12762 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12763 }
AzureIoTClient 28:add19eb7defa 12764 else
AzureIoTClient 28:add19eb7defa 12765 {
AzureIoTClient 28:add19eb7defa 12766 result = 0;
AzureIoTClient 28:add19eb7defa 12767 }
AzureIoTClient 28:add19eb7defa 12768
AzureIoTClient 28:add19eb7defa 12769 amqpvalue_destroy(dynamic_amqp_value);
AzureIoTClient 28:add19eb7defa 12770 }
AzureIoTClient 28:add19eb7defa 12771 }
AzureIoTClient 28:add19eb7defa 12772
AzureIoTClient 28:add19eb7defa 12773 return result;
Azure.IoT Build 0:6ae2f7bca550 12774 }
Azure.IoT Build 0:6ae2f7bca550 12775
Azure.IoT Build 0:6ae2f7bca550 12776 int source_get_dynamic_node_properties(SOURCE_HANDLE source, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12777 {
AzureIoTClient 28:add19eb7defa 12778 int result;
AzureIoTClient 28:add19eb7defa 12779
AzureIoTClient 28:add19eb7defa 12780 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12781 {
AzureIoTClient 28:add19eb7defa 12782 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12783 }
AzureIoTClient 28:add19eb7defa 12784 else
AzureIoTClient 28:add19eb7defa 12785 {
AzureIoTClient 28:add19eb7defa 12786 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12787 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12788 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12789 {
AzureIoTClient 23:1111ee8bcba4 12790 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12791 }
AzureIoTClient 23:1111ee8bcba4 12792 else
AzureIoTClient 23:1111ee8bcba4 12793 {
AzureIoTClient 23:1111ee8bcba4 12794 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 12795 {
AzureIoTClient 28:add19eb7defa 12796 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12797 }
AzureIoTClient 28:add19eb7defa 12798 else
AzureIoTClient 28:add19eb7defa 12799 {
AzureIoTClient 28:add19eb7defa 12800 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 12801 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12802 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12803 {
AzureIoTClient 28:add19eb7defa 12804 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12805 }
AzureIoTClient 28:add19eb7defa 12806 else
AzureIoTClient 28:add19eb7defa 12807 {
AzureIoTClient 28:add19eb7defa 12808 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12809 if ((get_single_value_result = amqpvalue_get_node_properties(item_value, dynamic_node_properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 12810 {
AzureIoTClient 28:add19eb7defa 12811 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12812 }
AzureIoTClient 28:add19eb7defa 12813 else
AzureIoTClient 28:add19eb7defa 12814 {
AzureIoTClient 28:add19eb7defa 12815 result = 0;
AzureIoTClient 28:add19eb7defa 12816 }
AzureIoTClient 28:add19eb7defa 12817 }
AzureIoTClient 28:add19eb7defa 12818 }
AzureIoTClient 28:add19eb7defa 12819 }
AzureIoTClient 28:add19eb7defa 12820 }
AzureIoTClient 28:add19eb7defa 12821
AzureIoTClient 28:add19eb7defa 12822 return result;
Azure.IoT Build 0:6ae2f7bca550 12823 }
Azure.IoT Build 0:6ae2f7bca550 12824
Azure.IoT Build 0:6ae2f7bca550 12825 int source_set_dynamic_node_properties(SOURCE_HANDLE source, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12826 {
AzureIoTClient 28:add19eb7defa 12827 int result;
AzureIoTClient 28:add19eb7defa 12828
AzureIoTClient 28:add19eb7defa 12829 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12830 {
AzureIoTClient 28:add19eb7defa 12831 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12832 }
AzureIoTClient 28:add19eb7defa 12833 else
AzureIoTClient 28:add19eb7defa 12834 {
AzureIoTClient 28:add19eb7defa 12835 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12836 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
AzureIoTClient 28:add19eb7defa 12837 if (dynamic_node_properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12838 {
AzureIoTClient 28:add19eb7defa 12839 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12840 }
AzureIoTClient 28:add19eb7defa 12841 else
AzureIoTClient 28:add19eb7defa 12842 {
AzureIoTClient 28:add19eb7defa 12843 if (amqpvalue_set_composite_item(source_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12844 {
AzureIoTClient 28:add19eb7defa 12845 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12846 }
AzureIoTClient 28:add19eb7defa 12847 else
AzureIoTClient 28:add19eb7defa 12848 {
AzureIoTClient 28:add19eb7defa 12849 result = 0;
AzureIoTClient 28:add19eb7defa 12850 }
AzureIoTClient 28:add19eb7defa 12851
AzureIoTClient 28:add19eb7defa 12852 amqpvalue_destroy(dynamic_node_properties_amqp_value);
AzureIoTClient 28:add19eb7defa 12853 }
AzureIoTClient 28:add19eb7defa 12854 }
AzureIoTClient 28:add19eb7defa 12855
AzureIoTClient 28:add19eb7defa 12856 return result;
Azure.IoT Build 0:6ae2f7bca550 12857 }
Azure.IoT Build 0:6ae2f7bca550 12858
Azure.IoT Build 0:6ae2f7bca550 12859 int source_get_distribution_mode(SOURCE_HANDLE source, const char** distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12860 {
AzureIoTClient 28:add19eb7defa 12861 int result;
AzureIoTClient 28:add19eb7defa 12862
AzureIoTClient 28:add19eb7defa 12863 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12864 {
AzureIoTClient 28:add19eb7defa 12865 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12866 }
AzureIoTClient 28:add19eb7defa 12867 else
AzureIoTClient 28:add19eb7defa 12868 {
AzureIoTClient 28:add19eb7defa 12869 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12870 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12871 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12872 {
AzureIoTClient 23:1111ee8bcba4 12873 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12874 }
AzureIoTClient 23:1111ee8bcba4 12875 else
AzureIoTClient 23:1111ee8bcba4 12876 {
AzureIoTClient 23:1111ee8bcba4 12877 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 12878 {
AzureIoTClient 28:add19eb7defa 12879 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12880 }
AzureIoTClient 28:add19eb7defa 12881 else
AzureIoTClient 28:add19eb7defa 12882 {
AzureIoTClient 28:add19eb7defa 12883 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 12884 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12885 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12886 {
AzureIoTClient 28:add19eb7defa 12887 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12888 }
AzureIoTClient 28:add19eb7defa 12889 else
AzureIoTClient 28:add19eb7defa 12890 {
AzureIoTClient 28:add19eb7defa 12891 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12892 if ((get_single_value_result = amqpvalue_get_symbol(item_value, distribution_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 12893 {
AzureIoTClient 28:add19eb7defa 12894 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12895 }
AzureIoTClient 28:add19eb7defa 12896 else
AzureIoTClient 28:add19eb7defa 12897 {
AzureIoTClient 28:add19eb7defa 12898 result = 0;
AzureIoTClient 28:add19eb7defa 12899 }
AzureIoTClient 28:add19eb7defa 12900 }
AzureIoTClient 28:add19eb7defa 12901 }
AzureIoTClient 28:add19eb7defa 12902 }
AzureIoTClient 28:add19eb7defa 12903 }
AzureIoTClient 28:add19eb7defa 12904
AzureIoTClient 28:add19eb7defa 12905 return result;
Azure.IoT Build 0:6ae2f7bca550 12906 }
Azure.IoT Build 0:6ae2f7bca550 12907
Azure.IoT Build 0:6ae2f7bca550 12908 int source_set_distribution_mode(SOURCE_HANDLE source, const char* distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12909 {
AzureIoTClient 28:add19eb7defa 12910 int result;
AzureIoTClient 28:add19eb7defa 12911
AzureIoTClient 28:add19eb7defa 12912 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12913 {
AzureIoTClient 28:add19eb7defa 12914 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12915 }
AzureIoTClient 28:add19eb7defa 12916 else
AzureIoTClient 28:add19eb7defa 12917 {
AzureIoTClient 28:add19eb7defa 12918 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12919 AMQP_VALUE distribution_mode_amqp_value = amqpvalue_create_symbol(distribution_mode_value);
AzureIoTClient 28:add19eb7defa 12920 if (distribution_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12921 {
AzureIoTClient 28:add19eb7defa 12922 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12923 }
AzureIoTClient 28:add19eb7defa 12924 else
AzureIoTClient 28:add19eb7defa 12925 {
AzureIoTClient 28:add19eb7defa 12926 if (amqpvalue_set_composite_item(source_instance->composite_value, 6, distribution_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12927 {
AzureIoTClient 28:add19eb7defa 12928 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12929 }
AzureIoTClient 28:add19eb7defa 12930 else
AzureIoTClient 28:add19eb7defa 12931 {
AzureIoTClient 28:add19eb7defa 12932 result = 0;
AzureIoTClient 28:add19eb7defa 12933 }
AzureIoTClient 28:add19eb7defa 12934
AzureIoTClient 28:add19eb7defa 12935 amqpvalue_destroy(distribution_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 12936 }
AzureIoTClient 28:add19eb7defa 12937 }
AzureIoTClient 28:add19eb7defa 12938
AzureIoTClient 28:add19eb7defa 12939 return result;
Azure.IoT Build 0:6ae2f7bca550 12940 }
Azure.IoT Build 0:6ae2f7bca550 12941
Azure.IoT Build 0:6ae2f7bca550 12942 int source_get_filter(SOURCE_HANDLE source, filter_set* filter_value)
Azure.IoT Build 0:6ae2f7bca550 12943 {
AzureIoTClient 28:add19eb7defa 12944 int result;
AzureIoTClient 28:add19eb7defa 12945
AzureIoTClient 28:add19eb7defa 12946 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12947 {
AzureIoTClient 28:add19eb7defa 12948 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12949 }
AzureIoTClient 28:add19eb7defa 12950 else
AzureIoTClient 28:add19eb7defa 12951 {
AzureIoTClient 28:add19eb7defa 12952 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12953 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12954 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12955 {
AzureIoTClient 23:1111ee8bcba4 12956 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12957 }
AzureIoTClient 23:1111ee8bcba4 12958 else
AzureIoTClient 23:1111ee8bcba4 12959 {
AzureIoTClient 23:1111ee8bcba4 12960 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 12961 {
AzureIoTClient 28:add19eb7defa 12962 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12963 }
AzureIoTClient 28:add19eb7defa 12964 else
AzureIoTClient 28:add19eb7defa 12965 {
AzureIoTClient 28:add19eb7defa 12966 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 12967 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12968 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12969 {
AzureIoTClient 28:add19eb7defa 12970 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12971 }
AzureIoTClient 28:add19eb7defa 12972 else
AzureIoTClient 28:add19eb7defa 12973 {
AzureIoTClient 28:add19eb7defa 12974 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12975 if ((get_single_value_result = amqpvalue_get_filter_set(item_value, filter_value)) != 0)
AzureIoTClient 28:add19eb7defa 12976 {
AzureIoTClient 28:add19eb7defa 12977 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12978 }
AzureIoTClient 28:add19eb7defa 12979 else
AzureIoTClient 28:add19eb7defa 12980 {
AzureIoTClient 28:add19eb7defa 12981 result = 0;
AzureIoTClient 28:add19eb7defa 12982 }
AzureIoTClient 28:add19eb7defa 12983 }
AzureIoTClient 28:add19eb7defa 12984 }
AzureIoTClient 28:add19eb7defa 12985 }
AzureIoTClient 28:add19eb7defa 12986 }
AzureIoTClient 28:add19eb7defa 12987
AzureIoTClient 28:add19eb7defa 12988 return result;
Azure.IoT Build 0:6ae2f7bca550 12989 }
Azure.IoT Build 0:6ae2f7bca550 12990
Azure.IoT Build 0:6ae2f7bca550 12991 int source_set_filter(SOURCE_HANDLE source, filter_set filter_value)
Azure.IoT Build 0:6ae2f7bca550 12992 {
AzureIoTClient 28:add19eb7defa 12993 int result;
AzureIoTClient 28:add19eb7defa 12994
AzureIoTClient 28:add19eb7defa 12995 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12996 {
AzureIoTClient 28:add19eb7defa 12997 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12998 }
AzureIoTClient 28:add19eb7defa 12999 else
AzureIoTClient 28:add19eb7defa 13000 {
AzureIoTClient 28:add19eb7defa 13001 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13002 AMQP_VALUE filter_amqp_value = amqpvalue_create_filter_set(filter_value);
AzureIoTClient 28:add19eb7defa 13003 if (filter_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13004 {
AzureIoTClient 28:add19eb7defa 13005 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13006 }
AzureIoTClient 28:add19eb7defa 13007 else
AzureIoTClient 28:add19eb7defa 13008 {
AzureIoTClient 28:add19eb7defa 13009 if (amqpvalue_set_composite_item(source_instance->composite_value, 7, filter_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13010 {
AzureIoTClient 28:add19eb7defa 13011 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13012 }
AzureIoTClient 28:add19eb7defa 13013 else
AzureIoTClient 28:add19eb7defa 13014 {
AzureIoTClient 28:add19eb7defa 13015 result = 0;
AzureIoTClient 28:add19eb7defa 13016 }
AzureIoTClient 28:add19eb7defa 13017
AzureIoTClient 28:add19eb7defa 13018 amqpvalue_destroy(filter_amqp_value);
AzureIoTClient 28:add19eb7defa 13019 }
AzureIoTClient 28:add19eb7defa 13020 }
AzureIoTClient 28:add19eb7defa 13021
AzureIoTClient 28:add19eb7defa 13022 return result;
Azure.IoT Build 0:6ae2f7bca550 13023 }
Azure.IoT Build 0:6ae2f7bca550 13024
Azure.IoT Build 0:6ae2f7bca550 13025 int source_get_default_outcome(SOURCE_HANDLE source, AMQP_VALUE* default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 13026 {
AzureIoTClient 28:add19eb7defa 13027 int result;
AzureIoTClient 28:add19eb7defa 13028
AzureIoTClient 28:add19eb7defa 13029 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13030 {
AzureIoTClient 28:add19eb7defa 13031 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13032 }
AzureIoTClient 28:add19eb7defa 13033 else
AzureIoTClient 28:add19eb7defa 13034 {
AzureIoTClient 28:add19eb7defa 13035 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13036 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13037 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13038 {
AzureIoTClient 23:1111ee8bcba4 13039 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13040 }
AzureIoTClient 23:1111ee8bcba4 13041 else
AzureIoTClient 23:1111ee8bcba4 13042 {
AzureIoTClient 23:1111ee8bcba4 13043 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 13044 {
AzureIoTClient 28:add19eb7defa 13045 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13046 }
AzureIoTClient 28:add19eb7defa 13047 else
AzureIoTClient 28:add19eb7defa 13048 {
AzureIoTClient 28:add19eb7defa 13049 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 13050 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13051 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13052 {
AzureIoTClient 28:add19eb7defa 13053 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13054 }
AzureIoTClient 28:add19eb7defa 13055 else
AzureIoTClient 28:add19eb7defa 13056 {
AzureIoTClient 28:add19eb7defa 13057 *default_outcome_value = item_value;
AzureIoTClient 28:add19eb7defa 13058 result = 0;
AzureIoTClient 28:add19eb7defa 13059 }
AzureIoTClient 28:add19eb7defa 13060 }
AzureIoTClient 28:add19eb7defa 13061 }
AzureIoTClient 28:add19eb7defa 13062 }
AzureIoTClient 28:add19eb7defa 13063
AzureIoTClient 28:add19eb7defa 13064 return result;
Azure.IoT Build 0:6ae2f7bca550 13065 }
Azure.IoT Build 0:6ae2f7bca550 13066
Azure.IoT Build 0:6ae2f7bca550 13067 int source_set_default_outcome(SOURCE_HANDLE source, AMQP_VALUE default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 13068 {
AzureIoTClient 28:add19eb7defa 13069 int result;
AzureIoTClient 28:add19eb7defa 13070
AzureIoTClient 28:add19eb7defa 13071 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13072 {
AzureIoTClient 28:add19eb7defa 13073 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13074 }
AzureIoTClient 28:add19eb7defa 13075 else
AzureIoTClient 28:add19eb7defa 13076 {
AzureIoTClient 28:add19eb7defa 13077 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13078 AMQP_VALUE default_outcome_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13079 if (default_outcome_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13080 {
AzureIoTClient 23:1111ee8bcba4 13081 default_outcome_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13082 }
AzureIoTClient 23:1111ee8bcba4 13083 else
AzureIoTClient 23:1111ee8bcba4 13084 {
AzureIoTClient 23:1111ee8bcba4 13085 default_outcome_amqp_value = amqpvalue_clone(default_outcome_value);
AzureIoTClient 23:1111ee8bcba4 13086 }
AzureIoTClient 28:add19eb7defa 13087 if (default_outcome_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13088 {
AzureIoTClient 28:add19eb7defa 13089 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13090 }
AzureIoTClient 28:add19eb7defa 13091 else
AzureIoTClient 28:add19eb7defa 13092 {
AzureIoTClient 28:add19eb7defa 13093 if (amqpvalue_set_composite_item(source_instance->composite_value, 8, default_outcome_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13094 {
AzureIoTClient 28:add19eb7defa 13095 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13096 }
AzureIoTClient 28:add19eb7defa 13097 else
AzureIoTClient 28:add19eb7defa 13098 {
AzureIoTClient 28:add19eb7defa 13099 result = 0;
AzureIoTClient 28:add19eb7defa 13100 }
AzureIoTClient 28:add19eb7defa 13101
AzureIoTClient 28:add19eb7defa 13102 amqpvalue_destroy(default_outcome_amqp_value);
AzureIoTClient 28:add19eb7defa 13103 }
AzureIoTClient 28:add19eb7defa 13104 }
AzureIoTClient 28:add19eb7defa 13105
AzureIoTClient 28:add19eb7defa 13106 return result;
Azure.IoT Build 0:6ae2f7bca550 13107 }
Azure.IoT Build 0:6ae2f7bca550 13108
Azure.IoT Build 0:6ae2f7bca550 13109 int source_get_outcomes(SOURCE_HANDLE source, AMQP_VALUE* outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 13110 {
AzureIoTClient 28:add19eb7defa 13111 int result;
AzureIoTClient 28:add19eb7defa 13112
AzureIoTClient 28:add19eb7defa 13113 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13114 {
AzureIoTClient 28:add19eb7defa 13115 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13116 }
AzureIoTClient 28:add19eb7defa 13117 else
AzureIoTClient 28:add19eb7defa 13118 {
AzureIoTClient 28:add19eb7defa 13119 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13120 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13121 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13122 {
AzureIoTClient 23:1111ee8bcba4 13123 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13124 }
AzureIoTClient 23:1111ee8bcba4 13125 else
AzureIoTClient 23:1111ee8bcba4 13126 {
AzureIoTClient 23:1111ee8bcba4 13127 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 13128 {
AzureIoTClient 28:add19eb7defa 13129 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13130 }
AzureIoTClient 28:add19eb7defa 13131 else
AzureIoTClient 28:add19eb7defa 13132 {
AzureIoTClient 28:add19eb7defa 13133 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 13134 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13135 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13136 {
AzureIoTClient 28:add19eb7defa 13137 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13138 }
AzureIoTClient 28:add19eb7defa 13139 else
AzureIoTClient 28:add19eb7defa 13140 {
AzureIoTClient 28:add19eb7defa 13141 const char* outcomes_single_value;
AzureIoTClient 28:add19eb7defa 13142 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13143 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13144 {
AzureIoTClient 28:add19eb7defa 13145 get_single_value_result = amqpvalue_get_symbol(item_value, &outcomes_single_value);
AzureIoTClient 28:add19eb7defa 13146 }
AzureIoTClient 28:add19eb7defa 13147 else
AzureIoTClient 28:add19eb7defa 13148 {
AzureIoTClient 28:add19eb7defa 13149 (void)memset((void*)&outcomes_single_value, 0, sizeof(outcomes_single_value));
AzureIoTClient 28:add19eb7defa 13150 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 13151 }
AzureIoTClient 28:add19eb7defa 13152
AzureIoTClient 28:add19eb7defa 13153 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, outcomes_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 13154 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 13155 {
AzureIoTClient 28:add19eb7defa 13156 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13157 }
AzureIoTClient 28:add19eb7defa 13158 else
AzureIoTClient 28:add19eb7defa 13159 {
AzureIoTClient 28:add19eb7defa 13160 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13161 {
AzureIoTClient 28:add19eb7defa 13162 *outcomes_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 13163 if (*outcomes_value == NULL)
AzureIoTClient 28:add19eb7defa 13164 {
AzureIoTClient 28:add19eb7defa 13165 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13166 }
AzureIoTClient 28:add19eb7defa 13167 else
AzureIoTClient 28:add19eb7defa 13168 {
AzureIoTClient 28:add19eb7defa 13169 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(outcomes_single_value);
AzureIoTClient 28:add19eb7defa 13170 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13171 {
AzureIoTClient 28:add19eb7defa 13172 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13173 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13174 }
AzureIoTClient 28:add19eb7defa 13175 else
AzureIoTClient 28:add19eb7defa 13176 {
AzureIoTClient 28:add19eb7defa 13177 if (amqpvalue_add_array_item(*outcomes_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13178 {
AzureIoTClient 28:add19eb7defa 13179 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13180 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 13181 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13182 }
AzureIoTClient 28:add19eb7defa 13183 else
AzureIoTClient 28:add19eb7defa 13184 {
AzureIoTClient 29:4a11413cf217 13185 if (amqpvalue_set_composite_item(source_instance->composite_value, 9, *outcomes_value) != 0)
AzureIoTClient 29:4a11413cf217 13186 {
AzureIoTClient 29:4a11413cf217 13187 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 29:4a11413cf217 13188 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 13189 }
AzureIoTClient 29:4a11413cf217 13190 else
AzureIoTClient 29:4a11413cf217 13191 {
AzureIoTClient 29:4a11413cf217 13192 result = 0;
AzureIoTClient 29:4a11413cf217 13193 }
AzureIoTClient 28:add19eb7defa 13194 }
AzureIoTClient 29:4a11413cf217 13195
AzureIoTClient 29:4a11413cf217 13196 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 13197 }
AzureIoTClient 29:4a11413cf217 13198 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13199 }
AzureIoTClient 28:add19eb7defa 13200 }
AzureIoTClient 28:add19eb7defa 13201 else
AzureIoTClient 28:add19eb7defa 13202 {
AzureIoTClient 28:add19eb7defa 13203 result = 0;
AzureIoTClient 28:add19eb7defa 13204 }
AzureIoTClient 28:add19eb7defa 13205 }
AzureIoTClient 28:add19eb7defa 13206 }
AzureIoTClient 28:add19eb7defa 13207 }
AzureIoTClient 28:add19eb7defa 13208 }
AzureIoTClient 28:add19eb7defa 13209 }
AzureIoTClient 28:add19eb7defa 13210
AzureIoTClient 28:add19eb7defa 13211 return result;
Azure.IoT Build 0:6ae2f7bca550 13212 }
Azure.IoT Build 0:6ae2f7bca550 13213
Azure.IoT Build 0:6ae2f7bca550 13214 int source_set_outcomes(SOURCE_HANDLE source, AMQP_VALUE outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 13215 {
AzureIoTClient 28:add19eb7defa 13216 int result;
AzureIoTClient 28:add19eb7defa 13217
AzureIoTClient 28:add19eb7defa 13218 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13219 {
AzureIoTClient 28:add19eb7defa 13220 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13221 }
AzureIoTClient 28:add19eb7defa 13222 else
AzureIoTClient 28:add19eb7defa 13223 {
AzureIoTClient 28:add19eb7defa 13224 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13225 AMQP_VALUE outcomes_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13226 if (outcomes_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13227 {
AzureIoTClient 23:1111ee8bcba4 13228 outcomes_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13229 }
AzureIoTClient 23:1111ee8bcba4 13230 else
AzureIoTClient 23:1111ee8bcba4 13231 {
AzureIoTClient 23:1111ee8bcba4 13232 outcomes_amqp_value = amqpvalue_clone(outcomes_value);
AzureIoTClient 23:1111ee8bcba4 13233 }
AzureIoTClient 28:add19eb7defa 13234 if (outcomes_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13235 {
AzureIoTClient 28:add19eb7defa 13236 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13237 }
AzureIoTClient 28:add19eb7defa 13238 else
AzureIoTClient 28:add19eb7defa 13239 {
AzureIoTClient 28:add19eb7defa 13240 if (amqpvalue_set_composite_item(source_instance->composite_value, 9, outcomes_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13241 {
AzureIoTClient 28:add19eb7defa 13242 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13243 }
AzureIoTClient 28:add19eb7defa 13244 else
AzureIoTClient 28:add19eb7defa 13245 {
AzureIoTClient 28:add19eb7defa 13246 result = 0;
AzureIoTClient 28:add19eb7defa 13247 }
AzureIoTClient 28:add19eb7defa 13248
AzureIoTClient 28:add19eb7defa 13249 amqpvalue_destroy(outcomes_amqp_value);
AzureIoTClient 28:add19eb7defa 13250 }
AzureIoTClient 28:add19eb7defa 13251 }
AzureIoTClient 28:add19eb7defa 13252
AzureIoTClient 28:add19eb7defa 13253 return result;
Azure.IoT Build 0:6ae2f7bca550 13254 }
Azure.IoT Build 0:6ae2f7bca550 13255
Azure.IoT Build 0:6ae2f7bca550 13256 int source_get_capabilities(SOURCE_HANDLE source, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13257 {
AzureIoTClient 28:add19eb7defa 13258 int result;
AzureIoTClient 28:add19eb7defa 13259
AzureIoTClient 28:add19eb7defa 13260 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13261 {
AzureIoTClient 28:add19eb7defa 13262 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13263 }
AzureIoTClient 28:add19eb7defa 13264 else
AzureIoTClient 28:add19eb7defa 13265 {
AzureIoTClient 28:add19eb7defa 13266 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13267 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13268 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13269 {
AzureIoTClient 23:1111ee8bcba4 13270 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13271 }
AzureIoTClient 23:1111ee8bcba4 13272 else
AzureIoTClient 23:1111ee8bcba4 13273 {
AzureIoTClient 23:1111ee8bcba4 13274 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 13275 {
AzureIoTClient 28:add19eb7defa 13276 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13277 }
AzureIoTClient 28:add19eb7defa 13278 else
AzureIoTClient 28:add19eb7defa 13279 {
AzureIoTClient 28:add19eb7defa 13280 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 13281 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13282 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13283 {
AzureIoTClient 28:add19eb7defa 13284 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13285 }
AzureIoTClient 28:add19eb7defa 13286 else
AzureIoTClient 28:add19eb7defa 13287 {
AzureIoTClient 28:add19eb7defa 13288 const char* capabilities_single_value;
AzureIoTClient 28:add19eb7defa 13289 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13290 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13291 {
AzureIoTClient 28:add19eb7defa 13292 get_single_value_result = amqpvalue_get_symbol(item_value, &capabilities_single_value);
AzureIoTClient 28:add19eb7defa 13293 }
AzureIoTClient 28:add19eb7defa 13294 else
AzureIoTClient 28:add19eb7defa 13295 {
AzureIoTClient 28:add19eb7defa 13296 (void)memset((void*)&capabilities_single_value, 0, sizeof(capabilities_single_value));
AzureIoTClient 28:add19eb7defa 13297 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 13298 }
AzureIoTClient 28:add19eb7defa 13299
AzureIoTClient 28:add19eb7defa 13300 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 13301 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 13302 {
AzureIoTClient 28:add19eb7defa 13303 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13304 }
AzureIoTClient 28:add19eb7defa 13305 else
AzureIoTClient 28:add19eb7defa 13306 {
AzureIoTClient 28:add19eb7defa 13307 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13308 {
AzureIoTClient 28:add19eb7defa 13309 *capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 13310 if (*capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 13311 {
AzureIoTClient 28:add19eb7defa 13312 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13313 }
AzureIoTClient 28:add19eb7defa 13314 else
AzureIoTClient 28:add19eb7defa 13315 {
AzureIoTClient 28:add19eb7defa 13316 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(capabilities_single_value);
AzureIoTClient 28:add19eb7defa 13317 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13318 {
AzureIoTClient 28:add19eb7defa 13319 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13320 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13321 }
AzureIoTClient 28:add19eb7defa 13322 else
AzureIoTClient 28:add19eb7defa 13323 {
AzureIoTClient 28:add19eb7defa 13324 if (amqpvalue_add_array_item(*capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13325 {
AzureIoTClient 28:add19eb7defa 13326 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13327 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 13328 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13329 }
AzureIoTClient 28:add19eb7defa 13330 else
AzureIoTClient 28:add19eb7defa 13331 {
AzureIoTClient 29:4a11413cf217 13332 if (amqpvalue_set_composite_item(source_instance->composite_value, 10, *capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 13333 {
AzureIoTClient 29:4a11413cf217 13334 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 29:4a11413cf217 13335 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 13336 }
AzureIoTClient 29:4a11413cf217 13337 else
AzureIoTClient 29:4a11413cf217 13338 {
AzureIoTClient 29:4a11413cf217 13339 result = 0;
AzureIoTClient 29:4a11413cf217 13340 }
AzureIoTClient 28:add19eb7defa 13341 }
AzureIoTClient 29:4a11413cf217 13342
AzureIoTClient 29:4a11413cf217 13343 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 13344 }
AzureIoTClient 29:4a11413cf217 13345 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13346 }
AzureIoTClient 28:add19eb7defa 13347 }
AzureIoTClient 28:add19eb7defa 13348 else
AzureIoTClient 28:add19eb7defa 13349 {
AzureIoTClient 28:add19eb7defa 13350 result = 0;
AzureIoTClient 28:add19eb7defa 13351 }
AzureIoTClient 28:add19eb7defa 13352 }
AzureIoTClient 28:add19eb7defa 13353 }
AzureIoTClient 28:add19eb7defa 13354 }
AzureIoTClient 28:add19eb7defa 13355 }
AzureIoTClient 28:add19eb7defa 13356 }
AzureIoTClient 28:add19eb7defa 13357
AzureIoTClient 28:add19eb7defa 13358 return result;
Azure.IoT Build 0:6ae2f7bca550 13359 }
Azure.IoT Build 0:6ae2f7bca550 13360
Azure.IoT Build 0:6ae2f7bca550 13361 int source_set_capabilities(SOURCE_HANDLE source, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13362 {
AzureIoTClient 28:add19eb7defa 13363 int result;
AzureIoTClient 28:add19eb7defa 13364
AzureIoTClient 28:add19eb7defa 13365 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13366 {
AzureIoTClient 28:add19eb7defa 13367 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13368 }
AzureIoTClient 28:add19eb7defa 13369 else
AzureIoTClient 28:add19eb7defa 13370 {
AzureIoTClient 28:add19eb7defa 13371 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13372 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13373 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13374 {
AzureIoTClient 23:1111ee8bcba4 13375 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13376 }
AzureIoTClient 23:1111ee8bcba4 13377 else
AzureIoTClient 23:1111ee8bcba4 13378 {
AzureIoTClient 23:1111ee8bcba4 13379 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 13380 }
AzureIoTClient 28:add19eb7defa 13381 if (capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13382 {
AzureIoTClient 28:add19eb7defa 13383 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13384 }
AzureIoTClient 28:add19eb7defa 13385 else
AzureIoTClient 28:add19eb7defa 13386 {
AzureIoTClient 28:add19eb7defa 13387 if (amqpvalue_set_composite_item(source_instance->composite_value, 10, capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13388 {
AzureIoTClient 28:add19eb7defa 13389 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13390 }
AzureIoTClient 28:add19eb7defa 13391 else
AzureIoTClient 28:add19eb7defa 13392 {
AzureIoTClient 28:add19eb7defa 13393 result = 0;
AzureIoTClient 28:add19eb7defa 13394 }
AzureIoTClient 28:add19eb7defa 13395
AzureIoTClient 28:add19eb7defa 13396 amqpvalue_destroy(capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 13397 }
AzureIoTClient 28:add19eb7defa 13398 }
AzureIoTClient 28:add19eb7defa 13399
AzureIoTClient 28:add19eb7defa 13400 return result;
Azure.IoT Build 0:6ae2f7bca550 13401 }
Azure.IoT Build 0:6ae2f7bca550 13402
Azure.IoT Build 0:6ae2f7bca550 13403
Azure.IoT Build 0:6ae2f7bca550 13404 /* target */
Azure.IoT Build 0:6ae2f7bca550 13405
Azure.IoT Build 0:6ae2f7bca550 13406 typedef struct TARGET_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 13407 {
AzureIoTClient 28:add19eb7defa 13408 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 13409 } TARGET_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 13410
Azure.IoT Build 0:6ae2f7bca550 13411 static TARGET_HANDLE target_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 13412 {
AzureIoTClient 28:add19eb7defa 13413 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13414 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13415 {
AzureIoTClient 28:add19eb7defa 13416 target_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 13417 }
AzureIoTClient 28:add19eb7defa 13418
AzureIoTClient 28:add19eb7defa 13419 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13420 }
Azure.IoT Build 0:6ae2f7bca550 13421
Azure.IoT Build 0:6ae2f7bca550 13422 TARGET_HANDLE target_create(void)
Azure.IoT Build 0:6ae2f7bca550 13423 {
AzureIoTClient 28:add19eb7defa 13424 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13425 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13426 {
AzureIoTClient 28:add19eb7defa 13427 target_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(41);
AzureIoTClient 28:add19eb7defa 13428 if (target_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 13429 {
AzureIoTClient 28:add19eb7defa 13430 free(target_instance);
AzureIoTClient 28:add19eb7defa 13431 target_instance = NULL;
AzureIoTClient 28:add19eb7defa 13432 }
AzureIoTClient 28:add19eb7defa 13433 }
AzureIoTClient 28:add19eb7defa 13434
AzureIoTClient 28:add19eb7defa 13435 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13436 }
Azure.IoT Build 0:6ae2f7bca550 13437
Azure.IoT Build 0:6ae2f7bca550 13438 TARGET_HANDLE target_clone(TARGET_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 13439 {
AzureIoTClient 28:add19eb7defa 13440 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13441 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13442 {
AzureIoTClient 28:add19eb7defa 13443 target_instance->composite_value = amqpvalue_clone(((TARGET_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 13444 if (target_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 13445 {
AzureIoTClient 28:add19eb7defa 13446 free(target_instance);
AzureIoTClient 28:add19eb7defa 13447 target_instance = NULL;
AzureIoTClient 28:add19eb7defa 13448 }
AzureIoTClient 28:add19eb7defa 13449 }
AzureIoTClient 28:add19eb7defa 13450
AzureIoTClient 28:add19eb7defa 13451 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13452 }
Azure.IoT Build 0:6ae2f7bca550 13453
Azure.IoT Build 0:6ae2f7bca550 13454 void target_destroy(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 13455 {
AzureIoTClient 28:add19eb7defa 13456 if (target != NULL)
AzureIoTClient 28:add19eb7defa 13457 {
AzureIoTClient 28:add19eb7defa 13458 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13459 amqpvalue_destroy(target_instance->composite_value);
AzureIoTClient 28:add19eb7defa 13460 free(target_instance);
AzureIoTClient 28:add19eb7defa 13461 }
Azure.IoT Build 0:6ae2f7bca550 13462 }
Azure.IoT Build 0:6ae2f7bca550 13463
Azure.IoT Build 0:6ae2f7bca550 13464 AMQP_VALUE amqpvalue_create_target(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 13465 {
AzureIoTClient 28:add19eb7defa 13466 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 13467
AzureIoTClient 28:add19eb7defa 13468 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13469 {
AzureIoTClient 28:add19eb7defa 13470 result = NULL;
AzureIoTClient 28:add19eb7defa 13471 }
AzureIoTClient 28:add19eb7defa 13472 else
AzureIoTClient 28:add19eb7defa 13473 {
AzureIoTClient 28:add19eb7defa 13474 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13475 result = amqpvalue_clone(target_instance->composite_value);
AzureIoTClient 28:add19eb7defa 13476 }
AzureIoTClient 28:add19eb7defa 13477
AzureIoTClient 28:add19eb7defa 13478 return result;
Azure.IoT Build 0:6ae2f7bca550 13479 }
Azure.IoT Build 0:6ae2f7bca550 13480
Azure.IoT Build 0:6ae2f7bca550 13481 bool is_target_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 13482 {
AzureIoTClient 28:add19eb7defa 13483 bool result;
AzureIoTClient 28:add19eb7defa 13484
AzureIoTClient 28:add19eb7defa 13485 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 13486 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 13487 (descriptor_ulong == 41))
AzureIoTClient 28:add19eb7defa 13488 {
AzureIoTClient 28:add19eb7defa 13489 result = true;
AzureIoTClient 28:add19eb7defa 13490 }
AzureIoTClient 28:add19eb7defa 13491 else
AzureIoTClient 28:add19eb7defa 13492 {
AzureIoTClient 28:add19eb7defa 13493 result = false;
AzureIoTClient 28:add19eb7defa 13494 }
AzureIoTClient 28:add19eb7defa 13495
AzureIoTClient 28:add19eb7defa 13496 return result;
Azure.IoT Build 0:6ae2f7bca550 13497 }
Azure.IoT Build 0:6ae2f7bca550 13498
Azure.IoT Build 0:6ae2f7bca550 13499
Azure.IoT Build 0:6ae2f7bca550 13500 int amqpvalue_get_target(AMQP_VALUE value, TARGET_HANDLE* target_handle)
Azure.IoT Build 0:6ae2f7bca550 13501 {
AzureIoTClient 28:add19eb7defa 13502 int result;
AzureIoTClient 28:add19eb7defa 13503 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target_create_internal();
AzureIoTClient 28:add19eb7defa 13504 *target_handle = target_instance;
AzureIoTClient 28:add19eb7defa 13505 if (*target_handle == NULL)
AzureIoTClient 28:add19eb7defa 13506 {
AzureIoTClient 28:add19eb7defa 13507 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13508 }
AzureIoTClient 28:add19eb7defa 13509 else
AzureIoTClient 28:add19eb7defa 13510 {
AzureIoTClient 28:add19eb7defa 13511 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 13512 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 13513 {
AzureIoTClient 28:add19eb7defa 13514 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13515 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13516 }
AzureIoTClient 28:add19eb7defa 13517 else
AzureIoTClient 28:add19eb7defa 13518 {
AzureIoTClient 23:1111ee8bcba4 13519 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 13520 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13521 {
AzureIoTClient 23:1111ee8bcba4 13522 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13523 }
AzureIoTClient 23:1111ee8bcba4 13524 else
AzureIoTClient 23:1111ee8bcba4 13525 {
AzureIoTClient 28:add19eb7defa 13526 do
AzureIoTClient 28:add19eb7defa 13527 {
AzureIoTClient 28:add19eb7defa 13528 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 13529 /* address */
AzureIoTClient 28:add19eb7defa 13530 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 13531 {
AzureIoTClient 23:1111ee8bcba4 13532 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 13533 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13534 {
AzureIoTClient 28:add19eb7defa 13535 /* do nothing */
AzureIoTClient 28:add19eb7defa 13536 }
AzureIoTClient 28:add19eb7defa 13537 else
AzureIoTClient 28:add19eb7defa 13538 {
AzureIoTClient 28:add19eb7defa 13539 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13540 }
AzureIoTClient 28:add19eb7defa 13541 }
AzureIoTClient 28:add19eb7defa 13542 /* durable */
AzureIoTClient 28:add19eb7defa 13543 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 13544 {
AzureIoTClient 23:1111ee8bcba4 13545 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 13546 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13547 {
AzureIoTClient 28:add19eb7defa 13548 /* do nothing */
AzureIoTClient 28:add19eb7defa 13549 }
AzureIoTClient 28:add19eb7defa 13550 else
AzureIoTClient 28:add19eb7defa 13551 {
AzureIoTClient 28:add19eb7defa 13552 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13553 {
AzureIoTClient 28:add19eb7defa 13554 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13555 }
AzureIoTClient 28:add19eb7defa 13556 else
AzureIoTClient 28:add19eb7defa 13557 {
AzureIoTClient 28:add19eb7defa 13558 terminus_durability durable;
AzureIoTClient 28:add19eb7defa 13559 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 13560 {
AzureIoTClient 28:add19eb7defa 13561 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13562 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13563 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13564 break;
AzureIoTClient 28:add19eb7defa 13565 }
AzureIoTClient 28:add19eb7defa 13566 }
AzureIoTClient 28:add19eb7defa 13567
AzureIoTClient 28:add19eb7defa 13568 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13569 }
AzureIoTClient 28:add19eb7defa 13570 }
AzureIoTClient 28:add19eb7defa 13571 /* expiry-policy */
AzureIoTClient 28:add19eb7defa 13572 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 13573 {
AzureIoTClient 23:1111ee8bcba4 13574 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 13575 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13576 {
AzureIoTClient 28:add19eb7defa 13577 /* do nothing */
AzureIoTClient 28:add19eb7defa 13578 }
AzureIoTClient 28:add19eb7defa 13579 else
AzureIoTClient 28:add19eb7defa 13580 {
AzureIoTClient 28:add19eb7defa 13581 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13582 {
AzureIoTClient 28:add19eb7defa 13583 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13584 }
AzureIoTClient 28:add19eb7defa 13585 else
AzureIoTClient 28:add19eb7defa 13586 {
AzureIoTClient 28:add19eb7defa 13587 terminus_expiry_policy expiry_policy;
AzureIoTClient 28:add19eb7defa 13588 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 28:add19eb7defa 13589 {
AzureIoTClient 28:add19eb7defa 13590 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13591 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13592 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13593 break;
AzureIoTClient 28:add19eb7defa 13594 }
AzureIoTClient 28:add19eb7defa 13595 }
AzureIoTClient 28:add19eb7defa 13596
AzureIoTClient 28:add19eb7defa 13597 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13598 }
AzureIoTClient 28:add19eb7defa 13599 }
AzureIoTClient 28:add19eb7defa 13600 /* timeout */
AzureIoTClient 28:add19eb7defa 13601 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 13602 {
AzureIoTClient 23:1111ee8bcba4 13603 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 13604 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13605 {
AzureIoTClient 28:add19eb7defa 13606 /* do nothing */
AzureIoTClient 28:add19eb7defa 13607 }
AzureIoTClient 28:add19eb7defa 13608 else
AzureIoTClient 28:add19eb7defa 13609 {
AzureIoTClient 28:add19eb7defa 13610 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13611 {
AzureIoTClient 28:add19eb7defa 13612 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13613 }
AzureIoTClient 28:add19eb7defa 13614 else
AzureIoTClient 28:add19eb7defa 13615 {
AzureIoTClient 28:add19eb7defa 13616 seconds timeout;
AzureIoTClient 28:add19eb7defa 13617 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 28:add19eb7defa 13618 {
AzureIoTClient 28:add19eb7defa 13619 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13620 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13621 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13622 break;
AzureIoTClient 28:add19eb7defa 13623 }
AzureIoTClient 28:add19eb7defa 13624 }
AzureIoTClient 28:add19eb7defa 13625
AzureIoTClient 28:add19eb7defa 13626 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13627 }
AzureIoTClient 28:add19eb7defa 13628 }
AzureIoTClient 28:add19eb7defa 13629 /* dynamic */
AzureIoTClient 28:add19eb7defa 13630 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 13631 {
AzureIoTClient 23:1111ee8bcba4 13632 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 13633 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13634 {
AzureIoTClient 28:add19eb7defa 13635 /* do nothing */
AzureIoTClient 28:add19eb7defa 13636 }
AzureIoTClient 28:add19eb7defa 13637 else
AzureIoTClient 28:add19eb7defa 13638 {
AzureIoTClient 28:add19eb7defa 13639 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13640 {
AzureIoTClient 28:add19eb7defa 13641 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13642 }
AzureIoTClient 28:add19eb7defa 13643 else
AzureIoTClient 28:add19eb7defa 13644 {
AzureIoTClient 28:add19eb7defa 13645 bool dynamic;
AzureIoTClient 28:add19eb7defa 13646 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 28:add19eb7defa 13647 {
AzureIoTClient 28:add19eb7defa 13648 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13649 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13650 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13651 break;
AzureIoTClient 28:add19eb7defa 13652 }
AzureIoTClient 28:add19eb7defa 13653 }
AzureIoTClient 28:add19eb7defa 13654
AzureIoTClient 28:add19eb7defa 13655 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13656 }
AzureIoTClient 28:add19eb7defa 13657 }
AzureIoTClient 28:add19eb7defa 13658 /* dynamic-node-properties */
AzureIoTClient 28:add19eb7defa 13659 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 13660 {
AzureIoTClient 23:1111ee8bcba4 13661 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 13662 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13663 {
AzureIoTClient 28:add19eb7defa 13664 /* do nothing */
AzureIoTClient 28:add19eb7defa 13665 }
AzureIoTClient 28:add19eb7defa 13666 else
AzureIoTClient 28:add19eb7defa 13667 {
AzureIoTClient 28:add19eb7defa 13668 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13669 {
AzureIoTClient 28:add19eb7defa 13670 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13671 }
AzureIoTClient 28:add19eb7defa 13672 else
AzureIoTClient 28:add19eb7defa 13673 {
AzureIoTClient 28:add19eb7defa 13674 node_properties dynamic_node_properties;
AzureIoTClient 28:add19eb7defa 13675 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 28:add19eb7defa 13676 {
AzureIoTClient 28:add19eb7defa 13677 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13678 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13679 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13680 break;
AzureIoTClient 28:add19eb7defa 13681 }
AzureIoTClient 28:add19eb7defa 13682 }
AzureIoTClient 28:add19eb7defa 13683
AzureIoTClient 28:add19eb7defa 13684 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13685 }
AzureIoTClient 28:add19eb7defa 13686 }
AzureIoTClient 28:add19eb7defa 13687 /* capabilities */
AzureIoTClient 28:add19eb7defa 13688 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 13689 {
AzureIoTClient 23:1111ee8bcba4 13690 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 13691 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13692 {
AzureIoTClient 28:add19eb7defa 13693 /* do nothing */
AzureIoTClient 28:add19eb7defa 13694 }
AzureIoTClient 28:add19eb7defa 13695 else
AzureIoTClient 28:add19eb7defa 13696 {
AzureIoTClient 28:add19eb7defa 13697 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13698 {
AzureIoTClient 28:add19eb7defa 13699 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13700 }
AzureIoTClient 28:add19eb7defa 13701 else
AzureIoTClient 28:add19eb7defa 13702 {
AzureIoTClient 28:add19eb7defa 13703 const char* capabilities = NULL;
AzureIoTClient 28:add19eb7defa 13704 AMQP_VALUE capabilities_array;
AzureIoTClient 28:add19eb7defa 13705 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 13706 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 28:add19eb7defa 13707 {
AzureIoTClient 28:add19eb7defa 13708 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13709 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13710 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13711 break;
AzureIoTClient 28:add19eb7defa 13712 }
AzureIoTClient 28:add19eb7defa 13713 }
AzureIoTClient 28:add19eb7defa 13714
AzureIoTClient 28:add19eb7defa 13715 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13716 }
AzureIoTClient 28:add19eb7defa 13717 }
AzureIoTClient 28:add19eb7defa 13718
AzureIoTClient 28:add19eb7defa 13719 target_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 13720
AzureIoTClient 28:add19eb7defa 13721 result = 0;
AzureIoTClient 28:add19eb7defa 13722 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 13723 }
AzureIoTClient 28:add19eb7defa 13724 }
AzureIoTClient 28:add19eb7defa 13725 }
AzureIoTClient 28:add19eb7defa 13726
AzureIoTClient 28:add19eb7defa 13727 return result;
Azure.IoT Build 0:6ae2f7bca550 13728 }
Azure.IoT Build 0:6ae2f7bca550 13729
Azure.IoT Build 0:6ae2f7bca550 13730 int target_get_address(TARGET_HANDLE target, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 13731 {
AzureIoTClient 28:add19eb7defa 13732 int result;
AzureIoTClient 28:add19eb7defa 13733
AzureIoTClient 28:add19eb7defa 13734 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13735 {
AzureIoTClient 28:add19eb7defa 13736 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13737 }
AzureIoTClient 28:add19eb7defa 13738 else
AzureIoTClient 28:add19eb7defa 13739 {
AzureIoTClient 28:add19eb7defa 13740 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13741 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13742 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13743 {
AzureIoTClient 23:1111ee8bcba4 13744 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13745 }
AzureIoTClient 23:1111ee8bcba4 13746 else
AzureIoTClient 23:1111ee8bcba4 13747 {
AzureIoTClient 23:1111ee8bcba4 13748 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 13749 {
AzureIoTClient 28:add19eb7defa 13750 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13751 }
AzureIoTClient 28:add19eb7defa 13752 else
AzureIoTClient 28:add19eb7defa 13753 {
AzureIoTClient 28:add19eb7defa 13754 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 13755 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13756 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13757 {
AzureIoTClient 28:add19eb7defa 13758 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13759 }
AzureIoTClient 28:add19eb7defa 13760 else
AzureIoTClient 28:add19eb7defa 13761 {
AzureIoTClient 28:add19eb7defa 13762 *address_value = item_value;
AzureIoTClient 28:add19eb7defa 13763 result = 0;
AzureIoTClient 28:add19eb7defa 13764 }
AzureIoTClient 28:add19eb7defa 13765 }
AzureIoTClient 28:add19eb7defa 13766 }
AzureIoTClient 28:add19eb7defa 13767 }
AzureIoTClient 28:add19eb7defa 13768
AzureIoTClient 28:add19eb7defa 13769 return result;
Azure.IoT Build 0:6ae2f7bca550 13770 }
Azure.IoT Build 0:6ae2f7bca550 13771
Azure.IoT Build 0:6ae2f7bca550 13772 int target_set_address(TARGET_HANDLE target, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 13773 {
AzureIoTClient 28:add19eb7defa 13774 int result;
AzureIoTClient 28:add19eb7defa 13775
AzureIoTClient 28:add19eb7defa 13776 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13777 {
AzureIoTClient 28:add19eb7defa 13778 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13779 }
AzureIoTClient 28:add19eb7defa 13780 else
AzureIoTClient 28:add19eb7defa 13781 {
AzureIoTClient 28:add19eb7defa 13782 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13783 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13784 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13785 {
AzureIoTClient 23:1111ee8bcba4 13786 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13787 }
AzureIoTClient 23:1111ee8bcba4 13788 else
AzureIoTClient 23:1111ee8bcba4 13789 {
AzureIoTClient 23:1111ee8bcba4 13790 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 13791 }
AzureIoTClient 28:add19eb7defa 13792 if (address_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13793 {
AzureIoTClient 28:add19eb7defa 13794 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13795 }
AzureIoTClient 28:add19eb7defa 13796 else
AzureIoTClient 28:add19eb7defa 13797 {
AzureIoTClient 28:add19eb7defa 13798 if (amqpvalue_set_composite_item(target_instance->composite_value, 0, address_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13799 {
AzureIoTClient 28:add19eb7defa 13800 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13801 }
AzureIoTClient 28:add19eb7defa 13802 else
AzureIoTClient 28:add19eb7defa 13803 {
AzureIoTClient 28:add19eb7defa 13804 result = 0;
AzureIoTClient 28:add19eb7defa 13805 }
AzureIoTClient 28:add19eb7defa 13806
AzureIoTClient 28:add19eb7defa 13807 amqpvalue_destroy(address_amqp_value);
AzureIoTClient 28:add19eb7defa 13808 }
AzureIoTClient 28:add19eb7defa 13809 }
AzureIoTClient 28:add19eb7defa 13810
AzureIoTClient 28:add19eb7defa 13811 return result;
Azure.IoT Build 0:6ae2f7bca550 13812 }
Azure.IoT Build 0:6ae2f7bca550 13813
Azure.IoT Build 0:6ae2f7bca550 13814 int target_get_durable(TARGET_HANDLE target, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 13815 {
AzureIoTClient 28:add19eb7defa 13816 int result;
AzureIoTClient 28:add19eb7defa 13817
AzureIoTClient 28:add19eb7defa 13818 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13819 {
AzureIoTClient 28:add19eb7defa 13820 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13821 }
AzureIoTClient 28:add19eb7defa 13822 else
AzureIoTClient 28:add19eb7defa 13823 {
AzureIoTClient 28:add19eb7defa 13824 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13825 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13826 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13827 {
AzureIoTClient 23:1111ee8bcba4 13828 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13829 }
AzureIoTClient 23:1111ee8bcba4 13830 else
AzureIoTClient 23:1111ee8bcba4 13831 {
AzureIoTClient 23:1111ee8bcba4 13832 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 13833 {
AzureIoTClient 23:1111ee8bcba4 13834 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13835 result = 0;
AzureIoTClient 23:1111ee8bcba4 13836 }
AzureIoTClient 23:1111ee8bcba4 13837 else
AzureIoTClient 23:1111ee8bcba4 13838 {
AzureIoTClient 28:add19eb7defa 13839 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 13840 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13841 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13842 {
AzureIoTClient 16:22a72cf8e416 13843 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 13844 result = 0;
AzureIoTClient 28:add19eb7defa 13845 }
AzureIoTClient 28:add19eb7defa 13846 else
AzureIoTClient 28:add19eb7defa 13847 {
AzureIoTClient 28:add19eb7defa 13848 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13849 if ((get_single_value_result = amqpvalue_get_terminus_durability(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 13850 {
AzureIoTClient 23:1111ee8bcba4 13851 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13852 {
AzureIoTClient 28:add19eb7defa 13853 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13854 }
AzureIoTClient 23:1111ee8bcba4 13855 else
AzureIoTClient 23:1111ee8bcba4 13856 {
AzureIoTClient 23:1111ee8bcba4 13857 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13858 result = 0;
AzureIoTClient 23:1111ee8bcba4 13859 }
AzureIoTClient 28:add19eb7defa 13860 }
AzureIoTClient 28:add19eb7defa 13861 else
AzureIoTClient 28:add19eb7defa 13862 {
AzureIoTClient 28:add19eb7defa 13863 result = 0;
AzureIoTClient 28:add19eb7defa 13864 }
AzureIoTClient 28:add19eb7defa 13865 }
AzureIoTClient 28:add19eb7defa 13866 }
AzureIoTClient 28:add19eb7defa 13867 }
AzureIoTClient 28:add19eb7defa 13868 }
AzureIoTClient 28:add19eb7defa 13869
AzureIoTClient 28:add19eb7defa 13870 return result;
Azure.IoT Build 0:6ae2f7bca550 13871 }
Azure.IoT Build 0:6ae2f7bca550 13872
Azure.IoT Build 0:6ae2f7bca550 13873 int target_set_durable(TARGET_HANDLE target, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 13874 {
AzureIoTClient 28:add19eb7defa 13875 int result;
AzureIoTClient 28:add19eb7defa 13876
AzureIoTClient 28:add19eb7defa 13877 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13878 {
AzureIoTClient 28:add19eb7defa 13879 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13880 }
AzureIoTClient 28:add19eb7defa 13881 else
AzureIoTClient 28:add19eb7defa 13882 {
AzureIoTClient 28:add19eb7defa 13883 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13884 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
AzureIoTClient 28:add19eb7defa 13885 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13886 {
AzureIoTClient 28:add19eb7defa 13887 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13888 }
AzureIoTClient 28:add19eb7defa 13889 else
AzureIoTClient 28:add19eb7defa 13890 {
AzureIoTClient 28:add19eb7defa 13891 if (amqpvalue_set_composite_item(target_instance->composite_value, 1, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13892 {
AzureIoTClient 28:add19eb7defa 13893 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13894 }
AzureIoTClient 28:add19eb7defa 13895 else
AzureIoTClient 28:add19eb7defa 13896 {
AzureIoTClient 28:add19eb7defa 13897 result = 0;
AzureIoTClient 28:add19eb7defa 13898 }
AzureIoTClient 28:add19eb7defa 13899
AzureIoTClient 28:add19eb7defa 13900 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 13901 }
AzureIoTClient 28:add19eb7defa 13902 }
AzureIoTClient 28:add19eb7defa 13903
AzureIoTClient 28:add19eb7defa 13904 return result;
Azure.IoT Build 0:6ae2f7bca550 13905 }
Azure.IoT Build 0:6ae2f7bca550 13906
Azure.IoT Build 0:6ae2f7bca550 13907 int target_get_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13908 {
AzureIoTClient 28:add19eb7defa 13909 int result;
AzureIoTClient 28:add19eb7defa 13910
AzureIoTClient 28:add19eb7defa 13911 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13912 {
AzureIoTClient 28:add19eb7defa 13913 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13914 }
AzureIoTClient 28:add19eb7defa 13915 else
AzureIoTClient 28:add19eb7defa 13916 {
AzureIoTClient 28:add19eb7defa 13917 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13918 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13919 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13920 {
AzureIoTClient 23:1111ee8bcba4 13921 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13922 }
AzureIoTClient 23:1111ee8bcba4 13923 else
AzureIoTClient 23:1111ee8bcba4 13924 {
AzureIoTClient 23:1111ee8bcba4 13925 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 13926 {
AzureIoTClient 23:1111ee8bcba4 13927 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13928 result = 0;
AzureIoTClient 23:1111ee8bcba4 13929 }
AzureIoTClient 23:1111ee8bcba4 13930 else
AzureIoTClient 23:1111ee8bcba4 13931 {
AzureIoTClient 28:add19eb7defa 13932 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 13933 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13934 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13935 {
AzureIoTClient 16:22a72cf8e416 13936 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 13937 result = 0;
AzureIoTClient 28:add19eb7defa 13938 }
AzureIoTClient 28:add19eb7defa 13939 else
AzureIoTClient 28:add19eb7defa 13940 {
AzureIoTClient 28:add19eb7defa 13941 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13942 if ((get_single_value_result = amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value)) != 0)
AzureIoTClient 28:add19eb7defa 13943 {
AzureIoTClient 23:1111ee8bcba4 13944 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13945 {
AzureIoTClient 28:add19eb7defa 13946 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13947 }
AzureIoTClient 23:1111ee8bcba4 13948 else
AzureIoTClient 23:1111ee8bcba4 13949 {
AzureIoTClient 23:1111ee8bcba4 13950 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13951 result = 0;
AzureIoTClient 23:1111ee8bcba4 13952 }
AzureIoTClient 28:add19eb7defa 13953 }
AzureIoTClient 28:add19eb7defa 13954 else
AzureIoTClient 28:add19eb7defa 13955 {
AzureIoTClient 28:add19eb7defa 13956 result = 0;
AzureIoTClient 28:add19eb7defa 13957 }
AzureIoTClient 28:add19eb7defa 13958 }
AzureIoTClient 28:add19eb7defa 13959 }
AzureIoTClient 28:add19eb7defa 13960 }
AzureIoTClient 28:add19eb7defa 13961 }
AzureIoTClient 28:add19eb7defa 13962
AzureIoTClient 28:add19eb7defa 13963 return result;
Azure.IoT Build 0:6ae2f7bca550 13964 }
Azure.IoT Build 0:6ae2f7bca550 13965
Azure.IoT Build 0:6ae2f7bca550 13966 int target_set_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13967 {
AzureIoTClient 28:add19eb7defa 13968 int result;
AzureIoTClient 28:add19eb7defa 13969
AzureIoTClient 28:add19eb7defa 13970 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13971 {
AzureIoTClient 28:add19eb7defa 13972 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13973 }
AzureIoTClient 28:add19eb7defa 13974 else
AzureIoTClient 28:add19eb7defa 13975 {
AzureIoTClient 28:add19eb7defa 13976 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13977 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
AzureIoTClient 28:add19eb7defa 13978 if (expiry_policy_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13979 {
AzureIoTClient 28:add19eb7defa 13980 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13981 }
AzureIoTClient 28:add19eb7defa 13982 else
AzureIoTClient 28:add19eb7defa 13983 {
AzureIoTClient 28:add19eb7defa 13984 if (amqpvalue_set_composite_item(target_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13985 {
AzureIoTClient 28:add19eb7defa 13986 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13987 }
AzureIoTClient 28:add19eb7defa 13988 else
AzureIoTClient 28:add19eb7defa 13989 {
AzureIoTClient 28:add19eb7defa 13990 result = 0;
AzureIoTClient 28:add19eb7defa 13991 }
AzureIoTClient 28:add19eb7defa 13992
AzureIoTClient 28:add19eb7defa 13993 amqpvalue_destroy(expiry_policy_amqp_value);
AzureIoTClient 28:add19eb7defa 13994 }
AzureIoTClient 28:add19eb7defa 13995 }
AzureIoTClient 28:add19eb7defa 13996
AzureIoTClient 28:add19eb7defa 13997 return result;
Azure.IoT Build 0:6ae2f7bca550 13998 }
Azure.IoT Build 0:6ae2f7bca550 13999
Azure.IoT Build 0:6ae2f7bca550 14000 int target_get_timeout(TARGET_HANDLE target, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 14001 {
AzureIoTClient 28:add19eb7defa 14002 int result;
AzureIoTClient 28:add19eb7defa 14003
AzureIoTClient 28:add19eb7defa 14004 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14005 {
AzureIoTClient 28:add19eb7defa 14006 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14007 }
AzureIoTClient 28:add19eb7defa 14008 else
AzureIoTClient 28:add19eb7defa 14009 {
AzureIoTClient 28:add19eb7defa 14010 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14011 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14012 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14013 {
AzureIoTClient 23:1111ee8bcba4 14014 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14015 }
AzureIoTClient 23:1111ee8bcba4 14016 else
AzureIoTClient 23:1111ee8bcba4 14017 {
AzureIoTClient 23:1111ee8bcba4 14018 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 14019 {
AzureIoTClient 28:add19eb7defa 14020 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 14021 result = 0;
AzureIoTClient 28:add19eb7defa 14022 }
AzureIoTClient 28:add19eb7defa 14023 else
AzureIoTClient 28:add19eb7defa 14024 {
AzureIoTClient 28:add19eb7defa 14025 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 14026 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14027 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14028 {
AzureIoTClient 28:add19eb7defa 14029 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 14030 result = 0;
AzureIoTClient 28:add19eb7defa 14031 }
AzureIoTClient 28:add19eb7defa 14032 else
AzureIoTClient 28:add19eb7defa 14033 {
AzureIoTClient 28:add19eb7defa 14034 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14035 if ((get_single_value_result = amqpvalue_get_seconds(item_value, timeout_value)) != 0)
AzureIoTClient 28:add19eb7defa 14036 {
AzureIoTClient 23:1111ee8bcba4 14037 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14038 {
AzureIoTClient 28:add19eb7defa 14039 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14040 }
AzureIoTClient 28:add19eb7defa 14041 else
AzureIoTClient 28:add19eb7defa 14042 {
AzureIoTClient 28:add19eb7defa 14043 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 14044 result = 0;
AzureIoTClient 23:1111ee8bcba4 14045 }
AzureIoTClient 28:add19eb7defa 14046 }
AzureIoTClient 28:add19eb7defa 14047 else
AzureIoTClient 28:add19eb7defa 14048 {
AzureIoTClient 28:add19eb7defa 14049 result = 0;
AzureIoTClient 28:add19eb7defa 14050 }
AzureIoTClient 28:add19eb7defa 14051 }
AzureIoTClient 28:add19eb7defa 14052 }
AzureIoTClient 28:add19eb7defa 14053 }
AzureIoTClient 28:add19eb7defa 14054 }
AzureIoTClient 28:add19eb7defa 14055
AzureIoTClient 28:add19eb7defa 14056 return result;
Azure.IoT Build 0:6ae2f7bca550 14057 }
Azure.IoT Build 0:6ae2f7bca550 14058
Azure.IoT Build 0:6ae2f7bca550 14059 int target_set_timeout(TARGET_HANDLE target, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 14060 {
AzureIoTClient 28:add19eb7defa 14061 int result;
AzureIoTClient 28:add19eb7defa 14062
AzureIoTClient 28:add19eb7defa 14063 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14064 {
AzureIoTClient 28:add19eb7defa 14065 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14066 }
AzureIoTClient 28:add19eb7defa 14067 else
AzureIoTClient 28:add19eb7defa 14068 {
AzureIoTClient 28:add19eb7defa 14069 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14070 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
AzureIoTClient 28:add19eb7defa 14071 if (timeout_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14072 {
AzureIoTClient 28:add19eb7defa 14073 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14074 }
AzureIoTClient 28:add19eb7defa 14075 else
AzureIoTClient 28:add19eb7defa 14076 {
AzureIoTClient 28:add19eb7defa 14077 if (amqpvalue_set_composite_item(target_instance->composite_value, 3, timeout_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14078 {
AzureIoTClient 28:add19eb7defa 14079 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14080 }
AzureIoTClient 28:add19eb7defa 14081 else
AzureIoTClient 28:add19eb7defa 14082 {
AzureIoTClient 28:add19eb7defa 14083 result = 0;
AzureIoTClient 28:add19eb7defa 14084 }
AzureIoTClient 28:add19eb7defa 14085
AzureIoTClient 28:add19eb7defa 14086 amqpvalue_destroy(timeout_amqp_value);
AzureIoTClient 28:add19eb7defa 14087 }
AzureIoTClient 28:add19eb7defa 14088 }
AzureIoTClient 28:add19eb7defa 14089
AzureIoTClient 28:add19eb7defa 14090 return result;
Azure.IoT Build 0:6ae2f7bca550 14091 }
Azure.IoT Build 0:6ae2f7bca550 14092
Azure.IoT Build 0:6ae2f7bca550 14093 int target_get_dynamic(TARGET_HANDLE target, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 14094 {
AzureIoTClient 28:add19eb7defa 14095 int result;
AzureIoTClient 28:add19eb7defa 14096
AzureIoTClient 28:add19eb7defa 14097 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14098 {
AzureIoTClient 28:add19eb7defa 14099 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14100 }
AzureIoTClient 28:add19eb7defa 14101 else
AzureIoTClient 28:add19eb7defa 14102 {
AzureIoTClient 28:add19eb7defa 14103 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14104 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14105 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14106 {
AzureIoTClient 23:1111ee8bcba4 14107 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14108 }
AzureIoTClient 23:1111ee8bcba4 14109 else
AzureIoTClient 23:1111ee8bcba4 14110 {
AzureIoTClient 23:1111ee8bcba4 14111 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 14112 {
AzureIoTClient 28:add19eb7defa 14113 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 14114 result = 0;
AzureIoTClient 28:add19eb7defa 14115 }
AzureIoTClient 28:add19eb7defa 14116 else
AzureIoTClient 28:add19eb7defa 14117 {
AzureIoTClient 28:add19eb7defa 14118 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 14119 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14120 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14121 {
AzureIoTClient 28:add19eb7defa 14122 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 14123 result = 0;
AzureIoTClient 28:add19eb7defa 14124 }
AzureIoTClient 28:add19eb7defa 14125 else
AzureIoTClient 28:add19eb7defa 14126 {
AzureIoTClient 28:add19eb7defa 14127 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14128 if ((get_single_value_result = amqpvalue_get_boolean(item_value, dynamic_value)) != 0)
AzureIoTClient 28:add19eb7defa 14129 {
AzureIoTClient 23:1111ee8bcba4 14130 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14131 {
AzureIoTClient 28:add19eb7defa 14132 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14133 }
AzureIoTClient 28:add19eb7defa 14134 else
AzureIoTClient 28:add19eb7defa 14135 {
AzureIoTClient 28:add19eb7defa 14136 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 14137 result = 0;
AzureIoTClient 23:1111ee8bcba4 14138 }
AzureIoTClient 28:add19eb7defa 14139 }
AzureIoTClient 28:add19eb7defa 14140 else
AzureIoTClient 28:add19eb7defa 14141 {
AzureIoTClient 28:add19eb7defa 14142 result = 0;
AzureIoTClient 28:add19eb7defa 14143 }
AzureIoTClient 28:add19eb7defa 14144 }
AzureIoTClient 28:add19eb7defa 14145 }
AzureIoTClient 28:add19eb7defa 14146 }
AzureIoTClient 28:add19eb7defa 14147 }
AzureIoTClient 28:add19eb7defa 14148
AzureIoTClient 28:add19eb7defa 14149 return result;
Azure.IoT Build 0:6ae2f7bca550 14150 }
Azure.IoT Build 0:6ae2f7bca550 14151
Azure.IoT Build 0:6ae2f7bca550 14152 int target_set_dynamic(TARGET_HANDLE target, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 14153 {
AzureIoTClient 28:add19eb7defa 14154 int result;
AzureIoTClient 28:add19eb7defa 14155
AzureIoTClient 28:add19eb7defa 14156 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14157 {
AzureIoTClient 28:add19eb7defa 14158 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14159 }
AzureIoTClient 28:add19eb7defa 14160 else
AzureIoTClient 28:add19eb7defa 14161 {
AzureIoTClient 28:add19eb7defa 14162 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14163 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
AzureIoTClient 28:add19eb7defa 14164 if (dynamic_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14165 {
AzureIoTClient 28:add19eb7defa 14166 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14167 }
AzureIoTClient 28:add19eb7defa 14168 else
AzureIoTClient 28:add19eb7defa 14169 {
AzureIoTClient 28:add19eb7defa 14170 if (amqpvalue_set_composite_item(target_instance->composite_value, 4, dynamic_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14171 {
AzureIoTClient 28:add19eb7defa 14172 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14173 }
AzureIoTClient 28:add19eb7defa 14174 else
AzureIoTClient 28:add19eb7defa 14175 {
AzureIoTClient 28:add19eb7defa 14176 result = 0;
AzureIoTClient 28:add19eb7defa 14177 }
AzureIoTClient 28:add19eb7defa 14178
AzureIoTClient 28:add19eb7defa 14179 amqpvalue_destroy(dynamic_amqp_value);
AzureIoTClient 28:add19eb7defa 14180 }
AzureIoTClient 28:add19eb7defa 14181 }
AzureIoTClient 28:add19eb7defa 14182
AzureIoTClient 28:add19eb7defa 14183 return result;
Azure.IoT Build 0:6ae2f7bca550 14184 }
Azure.IoT Build 0:6ae2f7bca550 14185
Azure.IoT Build 0:6ae2f7bca550 14186 int target_get_dynamic_node_properties(TARGET_HANDLE target, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 14187 {
AzureIoTClient 28:add19eb7defa 14188 int result;
AzureIoTClient 28:add19eb7defa 14189
AzureIoTClient 28:add19eb7defa 14190 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14191 {
AzureIoTClient 28:add19eb7defa 14192 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14193 }
AzureIoTClient 28:add19eb7defa 14194 else
AzureIoTClient 28:add19eb7defa 14195 {
AzureIoTClient 28:add19eb7defa 14196 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14197 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14198 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14199 {
AzureIoTClient 23:1111ee8bcba4 14200 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14201 }
AzureIoTClient 23:1111ee8bcba4 14202 else
AzureIoTClient 23:1111ee8bcba4 14203 {
AzureIoTClient 23:1111ee8bcba4 14204 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 14205 {
AzureIoTClient 28:add19eb7defa 14206 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14207 }
AzureIoTClient 28:add19eb7defa 14208 else
AzureIoTClient 28:add19eb7defa 14209 {
AzureIoTClient 28:add19eb7defa 14210 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 14211 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14212 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14213 {
AzureIoTClient 28:add19eb7defa 14214 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14215 }
AzureIoTClient 28:add19eb7defa 14216 else
AzureIoTClient 28:add19eb7defa 14217 {
AzureIoTClient 28:add19eb7defa 14218 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14219 if ((get_single_value_result = amqpvalue_get_node_properties(item_value, dynamic_node_properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 14220 {
AzureIoTClient 28:add19eb7defa 14221 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14222 }
AzureIoTClient 28:add19eb7defa 14223 else
AzureIoTClient 28:add19eb7defa 14224 {
AzureIoTClient 28:add19eb7defa 14225 result = 0;
AzureIoTClient 28:add19eb7defa 14226 }
AzureIoTClient 28:add19eb7defa 14227 }
AzureIoTClient 28:add19eb7defa 14228 }
AzureIoTClient 28:add19eb7defa 14229 }
AzureIoTClient 28:add19eb7defa 14230 }
AzureIoTClient 28:add19eb7defa 14231
AzureIoTClient 28:add19eb7defa 14232 return result;
Azure.IoT Build 0:6ae2f7bca550 14233 }
Azure.IoT Build 0:6ae2f7bca550 14234
Azure.IoT Build 0:6ae2f7bca550 14235 int target_set_dynamic_node_properties(TARGET_HANDLE target, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 14236 {
AzureIoTClient 28:add19eb7defa 14237 int result;
AzureIoTClient 28:add19eb7defa 14238
AzureIoTClient 28:add19eb7defa 14239 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14240 {
AzureIoTClient 28:add19eb7defa 14241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14242 }
AzureIoTClient 28:add19eb7defa 14243 else
AzureIoTClient 28:add19eb7defa 14244 {
AzureIoTClient 28:add19eb7defa 14245 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14246 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
AzureIoTClient 28:add19eb7defa 14247 if (dynamic_node_properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14248 {
AzureIoTClient 28:add19eb7defa 14249 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14250 }
AzureIoTClient 28:add19eb7defa 14251 else
AzureIoTClient 28:add19eb7defa 14252 {
AzureIoTClient 28:add19eb7defa 14253 if (amqpvalue_set_composite_item(target_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14254 {
AzureIoTClient 28:add19eb7defa 14255 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14256 }
AzureIoTClient 28:add19eb7defa 14257 else
AzureIoTClient 28:add19eb7defa 14258 {
AzureIoTClient 28:add19eb7defa 14259 result = 0;
AzureIoTClient 28:add19eb7defa 14260 }
AzureIoTClient 28:add19eb7defa 14261
AzureIoTClient 28:add19eb7defa 14262 amqpvalue_destroy(dynamic_node_properties_amqp_value);
AzureIoTClient 28:add19eb7defa 14263 }
AzureIoTClient 28:add19eb7defa 14264 }
AzureIoTClient 28:add19eb7defa 14265
AzureIoTClient 28:add19eb7defa 14266 return result;
Azure.IoT Build 0:6ae2f7bca550 14267 }
Azure.IoT Build 0:6ae2f7bca550 14268
Azure.IoT Build 0:6ae2f7bca550 14269 int target_get_capabilities(TARGET_HANDLE target, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 14270 {
AzureIoTClient 28:add19eb7defa 14271 int result;
AzureIoTClient 28:add19eb7defa 14272
AzureIoTClient 28:add19eb7defa 14273 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14274 {
AzureIoTClient 28:add19eb7defa 14275 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14276 }
AzureIoTClient 28:add19eb7defa 14277 else
AzureIoTClient 28:add19eb7defa 14278 {
AzureIoTClient 28:add19eb7defa 14279 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14280 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14281 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14282 {
AzureIoTClient 23:1111ee8bcba4 14283 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14284 }
AzureIoTClient 23:1111ee8bcba4 14285 else
AzureIoTClient 23:1111ee8bcba4 14286 {
AzureIoTClient 23:1111ee8bcba4 14287 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 14288 {
AzureIoTClient 28:add19eb7defa 14289 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14290 }
AzureIoTClient 28:add19eb7defa 14291 else
AzureIoTClient 28:add19eb7defa 14292 {
AzureIoTClient 28:add19eb7defa 14293 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 14294 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14295 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14296 {
AzureIoTClient 28:add19eb7defa 14297 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14298 }
AzureIoTClient 28:add19eb7defa 14299 else
AzureIoTClient 28:add19eb7defa 14300 {
AzureIoTClient 28:add19eb7defa 14301 const char* capabilities_single_value;
AzureIoTClient 28:add19eb7defa 14302 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14303 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 14304 {
AzureIoTClient 28:add19eb7defa 14305 get_single_value_result = amqpvalue_get_symbol(item_value, &capabilities_single_value);
AzureIoTClient 28:add19eb7defa 14306 }
AzureIoTClient 28:add19eb7defa 14307 else
AzureIoTClient 28:add19eb7defa 14308 {
AzureIoTClient 28:add19eb7defa 14309 (void)memset((void*)&capabilities_single_value, 0, sizeof(capabilities_single_value));
AzureIoTClient 28:add19eb7defa 14310 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 14311 }
AzureIoTClient 28:add19eb7defa 14312
AzureIoTClient 28:add19eb7defa 14313 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 14314 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 14315 {
AzureIoTClient 28:add19eb7defa 14316 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14317 }
AzureIoTClient 28:add19eb7defa 14318 else
AzureIoTClient 28:add19eb7defa 14319 {
AzureIoTClient 28:add19eb7defa 14320 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 14321 {
AzureIoTClient 28:add19eb7defa 14322 *capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 14323 if (*capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 14324 {
AzureIoTClient 28:add19eb7defa 14325 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14326 }
AzureIoTClient 28:add19eb7defa 14327 else
AzureIoTClient 28:add19eb7defa 14328 {
AzureIoTClient 28:add19eb7defa 14329 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(capabilities_single_value);
AzureIoTClient 28:add19eb7defa 14330 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14331 {
AzureIoTClient 28:add19eb7defa 14332 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14333 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14334 }
AzureIoTClient 28:add19eb7defa 14335 else
AzureIoTClient 28:add19eb7defa 14336 {
AzureIoTClient 28:add19eb7defa 14337 if (amqpvalue_add_array_item(*capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14338 {
AzureIoTClient 28:add19eb7defa 14339 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14340 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 14341 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14342 }
AzureIoTClient 28:add19eb7defa 14343 else
AzureIoTClient 28:add19eb7defa 14344 {
AzureIoTClient 29:4a11413cf217 14345 if (amqpvalue_set_composite_item(target_instance->composite_value, 6, *capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 14346 {
AzureIoTClient 29:4a11413cf217 14347 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 29:4a11413cf217 14348 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 14349 }
AzureIoTClient 29:4a11413cf217 14350 else
AzureIoTClient 29:4a11413cf217 14351 {
AzureIoTClient 29:4a11413cf217 14352 result = 0;
AzureIoTClient 29:4a11413cf217 14353 }
AzureIoTClient 28:add19eb7defa 14354 }
AzureIoTClient 29:4a11413cf217 14355
AzureIoTClient 29:4a11413cf217 14356 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 14357 }
AzureIoTClient 29:4a11413cf217 14358 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14359 }
AzureIoTClient 28:add19eb7defa 14360 }
AzureIoTClient 28:add19eb7defa 14361 else
AzureIoTClient 28:add19eb7defa 14362 {
AzureIoTClient 28:add19eb7defa 14363 result = 0;
AzureIoTClient 28:add19eb7defa 14364 }
AzureIoTClient 28:add19eb7defa 14365 }
AzureIoTClient 28:add19eb7defa 14366 }
AzureIoTClient 28:add19eb7defa 14367 }
AzureIoTClient 28:add19eb7defa 14368 }
AzureIoTClient 28:add19eb7defa 14369 }
AzureIoTClient 28:add19eb7defa 14370
AzureIoTClient 28:add19eb7defa 14371 return result;
Azure.IoT Build 0:6ae2f7bca550 14372 }
Azure.IoT Build 0:6ae2f7bca550 14373
Azure.IoT Build 0:6ae2f7bca550 14374 int target_set_capabilities(TARGET_HANDLE target, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 14375 {
AzureIoTClient 28:add19eb7defa 14376 int result;
AzureIoTClient 28:add19eb7defa 14377
AzureIoTClient 28:add19eb7defa 14378 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14379 {
AzureIoTClient 28:add19eb7defa 14380 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14381 }
AzureIoTClient 28:add19eb7defa 14382 else
AzureIoTClient 28:add19eb7defa 14383 {
AzureIoTClient 28:add19eb7defa 14384 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14385 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 14386 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14387 {
AzureIoTClient 23:1111ee8bcba4 14388 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 14389 }
AzureIoTClient 23:1111ee8bcba4 14390 else
AzureIoTClient 23:1111ee8bcba4 14391 {
AzureIoTClient 23:1111ee8bcba4 14392 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 14393 }
AzureIoTClient 28:add19eb7defa 14394 if (capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14395 {
AzureIoTClient 28:add19eb7defa 14396 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14397 }
AzureIoTClient 28:add19eb7defa 14398 else
AzureIoTClient 28:add19eb7defa 14399 {
AzureIoTClient 28:add19eb7defa 14400 if (amqpvalue_set_composite_item(target_instance->composite_value, 6, capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14401 {
AzureIoTClient 28:add19eb7defa 14402 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14403 }
AzureIoTClient 28:add19eb7defa 14404 else
AzureIoTClient 28:add19eb7defa 14405 {
AzureIoTClient 28:add19eb7defa 14406 result = 0;
AzureIoTClient 28:add19eb7defa 14407 }
AzureIoTClient 28:add19eb7defa 14408
AzureIoTClient 28:add19eb7defa 14409 amqpvalue_destroy(capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 14410 }
AzureIoTClient 28:add19eb7defa 14411 }
AzureIoTClient 28:add19eb7defa 14412
AzureIoTClient 28:add19eb7defa 14413 return result;
Azure.IoT Build 0:6ae2f7bca550 14414 }
Azure.IoT Build 0:6ae2f7bca550 14415
Azure.IoT Build 0:6ae2f7bca550 14416
Azure.IoT Build 0:6ae2f7bca550 14417 /* annotations */
Azure.IoT Build 0:6ae2f7bca550 14418
Azure.IoT Build 0:6ae2f7bca550 14419 AMQP_VALUE amqpvalue_create_annotations(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 14420 {
AzureIoTClient 28:add19eb7defa 14421 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 14422 }
Azure.IoT Build 0:6ae2f7bca550 14423
Azure.IoT Build 0:6ae2f7bca550 14424 /* message-id-ulong */
Azure.IoT Build 0:6ae2f7bca550 14425
Azure.IoT Build 0:6ae2f7bca550 14426 AMQP_VALUE amqpvalue_create_message_id_ulong(message_id_ulong value)
Azure.IoT Build 0:6ae2f7bca550 14427 {
AzureIoTClient 28:add19eb7defa 14428 return amqpvalue_create_ulong(value);
Azure.IoT Build 0:6ae2f7bca550 14429 }
Azure.IoT Build 0:6ae2f7bca550 14430
Azure.IoT Build 0:6ae2f7bca550 14431 /* message-id-uuid */
Azure.IoT Build 0:6ae2f7bca550 14432
Azure.IoT Build 0:6ae2f7bca550 14433 AMQP_VALUE amqpvalue_create_message_id_uuid(message_id_uuid value)
Azure.IoT Build 0:6ae2f7bca550 14434 {
AzureIoTClient 28:add19eb7defa 14435 return amqpvalue_create_uuid(value);
Azure.IoT Build 0:6ae2f7bca550 14436 }
Azure.IoT Build 0:6ae2f7bca550 14437
Azure.IoT Build 0:6ae2f7bca550 14438 /* message-id-binary */
Azure.IoT Build 0:6ae2f7bca550 14439
Azure.IoT Build 0:6ae2f7bca550 14440 AMQP_VALUE amqpvalue_create_message_id_binary(message_id_binary value)
Azure.IoT Build 0:6ae2f7bca550 14441 {
AzureIoTClient 28:add19eb7defa 14442 return amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 14443 }
Azure.IoT Build 0:6ae2f7bca550 14444
Azure.IoT Build 0:6ae2f7bca550 14445 /* message-id-string */
Azure.IoT Build 0:6ae2f7bca550 14446
Azure.IoT Build 0:6ae2f7bca550 14447 AMQP_VALUE amqpvalue_create_message_id_string(message_id_string value)
Azure.IoT Build 0:6ae2f7bca550 14448 {
AzureIoTClient 28:add19eb7defa 14449 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 14450 }
Azure.IoT Build 0:6ae2f7bca550 14451
Azure.IoT Build 0:6ae2f7bca550 14452 /* address-string */
Azure.IoT Build 0:6ae2f7bca550 14453
Azure.IoT Build 0:6ae2f7bca550 14454 AMQP_VALUE amqpvalue_create_address_string(address_string value)
Azure.IoT Build 0:6ae2f7bca550 14455 {
AzureIoTClient 28:add19eb7defa 14456 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 14457 }
Azure.IoT Build 0:6ae2f7bca550 14458
Azure.IoT Build 0:6ae2f7bca550 14459 /* header */
Azure.IoT Build 0:6ae2f7bca550 14460
Azure.IoT Build 0:6ae2f7bca550 14461 typedef struct HEADER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 14462 {
AzureIoTClient 28:add19eb7defa 14463 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 14464 } HEADER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 14465
Azure.IoT Build 0:6ae2f7bca550 14466 static HEADER_HANDLE header_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 14467 {
AzureIoTClient 28:add19eb7defa 14468 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14469 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14470 {
AzureIoTClient 28:add19eb7defa 14471 header_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 14472 }
AzureIoTClient 28:add19eb7defa 14473
AzureIoTClient 28:add19eb7defa 14474 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14475 }
Azure.IoT Build 0:6ae2f7bca550 14476
Azure.IoT Build 0:6ae2f7bca550 14477 HEADER_HANDLE header_create(void)
Azure.IoT Build 0:6ae2f7bca550 14478 {
AzureIoTClient 28:add19eb7defa 14479 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14480 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14481 {
AzureIoTClient 28:add19eb7defa 14482 header_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(112);
AzureIoTClient 28:add19eb7defa 14483 if (header_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 14484 {
AzureIoTClient 28:add19eb7defa 14485 free(header_instance);
AzureIoTClient 28:add19eb7defa 14486 header_instance = NULL;
AzureIoTClient 28:add19eb7defa 14487 }
AzureIoTClient 28:add19eb7defa 14488 }
AzureIoTClient 28:add19eb7defa 14489
AzureIoTClient 28:add19eb7defa 14490 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14491 }
Azure.IoT Build 0:6ae2f7bca550 14492
Azure.IoT Build 0:6ae2f7bca550 14493 HEADER_HANDLE header_clone(HEADER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 14494 {
AzureIoTClient 28:add19eb7defa 14495 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14496 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14497 {
AzureIoTClient 28:add19eb7defa 14498 header_instance->composite_value = amqpvalue_clone(((HEADER_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 14499 if (header_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 14500 {
AzureIoTClient 28:add19eb7defa 14501 free(header_instance);
AzureIoTClient 28:add19eb7defa 14502 header_instance = NULL;
AzureIoTClient 28:add19eb7defa 14503 }
AzureIoTClient 28:add19eb7defa 14504 }
AzureIoTClient 28:add19eb7defa 14505
AzureIoTClient 28:add19eb7defa 14506 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14507 }
Azure.IoT Build 0:6ae2f7bca550 14508
Azure.IoT Build 0:6ae2f7bca550 14509 void header_destroy(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 14510 {
AzureIoTClient 28:add19eb7defa 14511 if (header != NULL)
AzureIoTClient 28:add19eb7defa 14512 {
AzureIoTClient 28:add19eb7defa 14513 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14514 amqpvalue_destroy(header_instance->composite_value);
AzureIoTClient 28:add19eb7defa 14515 free(header_instance);
AzureIoTClient 28:add19eb7defa 14516 }
Azure.IoT Build 0:6ae2f7bca550 14517 }
Azure.IoT Build 0:6ae2f7bca550 14518
Azure.IoT Build 0:6ae2f7bca550 14519 AMQP_VALUE amqpvalue_create_header(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 14520 {
AzureIoTClient 28:add19eb7defa 14521 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 14522
AzureIoTClient 28:add19eb7defa 14523 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14524 {
AzureIoTClient 28:add19eb7defa 14525 result = NULL;
AzureIoTClient 28:add19eb7defa 14526 }
AzureIoTClient 28:add19eb7defa 14527 else
AzureIoTClient 28:add19eb7defa 14528 {
AzureIoTClient 28:add19eb7defa 14529 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14530 result = amqpvalue_clone(header_instance->composite_value);
AzureIoTClient 28:add19eb7defa 14531 }
AzureIoTClient 28:add19eb7defa 14532
AzureIoTClient 28:add19eb7defa 14533 return result;
Azure.IoT Build 0:6ae2f7bca550 14534 }
Azure.IoT Build 0:6ae2f7bca550 14535
Azure.IoT Build 0:6ae2f7bca550 14536 bool is_header_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14537 {
AzureIoTClient 28:add19eb7defa 14538 bool result;
AzureIoTClient 28:add19eb7defa 14539
AzureIoTClient 28:add19eb7defa 14540 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 14541 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 14542 (descriptor_ulong == 112))
AzureIoTClient 28:add19eb7defa 14543 {
AzureIoTClient 28:add19eb7defa 14544 result = true;
AzureIoTClient 28:add19eb7defa 14545 }
AzureIoTClient 28:add19eb7defa 14546 else
AzureIoTClient 28:add19eb7defa 14547 {
AzureIoTClient 28:add19eb7defa 14548 result = false;
AzureIoTClient 28:add19eb7defa 14549 }
AzureIoTClient 28:add19eb7defa 14550
AzureIoTClient 28:add19eb7defa 14551 return result;
Azure.IoT Build 0:6ae2f7bca550 14552 }
Azure.IoT Build 0:6ae2f7bca550 14553
Azure.IoT Build 0:6ae2f7bca550 14554
Azure.IoT Build 0:6ae2f7bca550 14555 int amqpvalue_get_header(AMQP_VALUE value, HEADER_HANDLE* header_handle)
Azure.IoT Build 0:6ae2f7bca550 14556 {
AzureIoTClient 28:add19eb7defa 14557 int result;
AzureIoTClient 28:add19eb7defa 14558 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header_create_internal();
AzureIoTClient 28:add19eb7defa 14559 *header_handle = header_instance;
AzureIoTClient 28:add19eb7defa 14560 if (*header_handle == NULL)
AzureIoTClient 28:add19eb7defa 14561 {
AzureIoTClient 28:add19eb7defa 14562 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14563 }
AzureIoTClient 28:add19eb7defa 14564 else
AzureIoTClient 28:add19eb7defa 14565 {
AzureIoTClient 28:add19eb7defa 14566 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 14567 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 14568 {
AzureIoTClient 28:add19eb7defa 14569 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14570 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14571 }
AzureIoTClient 28:add19eb7defa 14572 else
AzureIoTClient 28:add19eb7defa 14573 {
AzureIoTClient 23:1111ee8bcba4 14574 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 14575 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14576 {
AzureIoTClient 23:1111ee8bcba4 14577 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14578 }
AzureIoTClient 23:1111ee8bcba4 14579 else
AzureIoTClient 23:1111ee8bcba4 14580 {
AzureIoTClient 28:add19eb7defa 14581 do
AzureIoTClient 28:add19eb7defa 14582 {
AzureIoTClient 28:add19eb7defa 14583 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 14584 /* durable */
AzureIoTClient 28:add19eb7defa 14585 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 14586 {
AzureIoTClient 23:1111ee8bcba4 14587 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 14588 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14589 {
AzureIoTClient 28:add19eb7defa 14590 /* do nothing */
AzureIoTClient 28:add19eb7defa 14591 }
AzureIoTClient 28:add19eb7defa 14592 else
AzureIoTClient 28:add19eb7defa 14593 {
AzureIoTClient 28:add19eb7defa 14594 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14595 {
AzureIoTClient 28:add19eb7defa 14596 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14597 }
AzureIoTClient 28:add19eb7defa 14598 else
AzureIoTClient 28:add19eb7defa 14599 {
AzureIoTClient 28:add19eb7defa 14600 bool durable;
AzureIoTClient 28:add19eb7defa 14601 if (amqpvalue_get_boolean(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 14602 {
AzureIoTClient 28:add19eb7defa 14603 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14604 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14605 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14606 break;
AzureIoTClient 28:add19eb7defa 14607 }
AzureIoTClient 28:add19eb7defa 14608 }
AzureIoTClient 28:add19eb7defa 14609
AzureIoTClient 28:add19eb7defa 14610 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14611 }
AzureIoTClient 28:add19eb7defa 14612 }
AzureIoTClient 28:add19eb7defa 14613 /* priority */
AzureIoTClient 28:add19eb7defa 14614 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 14615 {
AzureIoTClient 23:1111ee8bcba4 14616 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 14617 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14618 {
AzureIoTClient 28:add19eb7defa 14619 /* do nothing */
AzureIoTClient 28:add19eb7defa 14620 }
AzureIoTClient 28:add19eb7defa 14621 else
AzureIoTClient 28:add19eb7defa 14622 {
AzureIoTClient 28:add19eb7defa 14623 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14624 {
AzureIoTClient 28:add19eb7defa 14625 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14626 }
AzureIoTClient 28:add19eb7defa 14627 else
AzureIoTClient 28:add19eb7defa 14628 {
AzureIoTClient 28:add19eb7defa 14629 uint8_t priority;
AzureIoTClient 28:add19eb7defa 14630 if (amqpvalue_get_ubyte(item_value, &priority) != 0)
AzureIoTClient 28:add19eb7defa 14631 {
AzureIoTClient 28:add19eb7defa 14632 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14633 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14634 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14635 break;
AzureIoTClient 28:add19eb7defa 14636 }
AzureIoTClient 28:add19eb7defa 14637 }
AzureIoTClient 28:add19eb7defa 14638
AzureIoTClient 28:add19eb7defa 14639 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14640 }
AzureIoTClient 28:add19eb7defa 14641 }
AzureIoTClient 28:add19eb7defa 14642 /* ttl */
AzureIoTClient 28:add19eb7defa 14643 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 14644 {
AzureIoTClient 23:1111ee8bcba4 14645 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 14646 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14647 {
AzureIoTClient 28:add19eb7defa 14648 /* do nothing */
AzureIoTClient 28:add19eb7defa 14649 }
AzureIoTClient 28:add19eb7defa 14650 else
AzureIoTClient 28:add19eb7defa 14651 {
AzureIoTClient 28:add19eb7defa 14652 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14653 {
AzureIoTClient 28:add19eb7defa 14654 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14655 }
AzureIoTClient 28:add19eb7defa 14656 else
AzureIoTClient 28:add19eb7defa 14657 {
AzureIoTClient 28:add19eb7defa 14658 milliseconds ttl;
AzureIoTClient 28:add19eb7defa 14659 if (amqpvalue_get_milliseconds(item_value, &ttl) != 0)
AzureIoTClient 28:add19eb7defa 14660 {
AzureIoTClient 28:add19eb7defa 14661 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14662 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14663 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14664 break;
AzureIoTClient 28:add19eb7defa 14665 }
AzureIoTClient 28:add19eb7defa 14666 }
AzureIoTClient 28:add19eb7defa 14667
AzureIoTClient 28:add19eb7defa 14668 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14669 }
AzureIoTClient 28:add19eb7defa 14670 }
AzureIoTClient 28:add19eb7defa 14671 /* first-acquirer */
AzureIoTClient 28:add19eb7defa 14672 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 14673 {
AzureIoTClient 23:1111ee8bcba4 14674 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 14675 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14676 {
AzureIoTClient 28:add19eb7defa 14677 /* do nothing */
AzureIoTClient 28:add19eb7defa 14678 }
AzureIoTClient 28:add19eb7defa 14679 else
AzureIoTClient 28:add19eb7defa 14680 {
AzureIoTClient 28:add19eb7defa 14681 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14682 {
AzureIoTClient 28:add19eb7defa 14683 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14684 }
AzureIoTClient 28:add19eb7defa 14685 else
AzureIoTClient 28:add19eb7defa 14686 {
AzureIoTClient 28:add19eb7defa 14687 bool first_acquirer;
AzureIoTClient 28:add19eb7defa 14688 if (amqpvalue_get_boolean(item_value, &first_acquirer) != 0)
AzureIoTClient 28:add19eb7defa 14689 {
AzureIoTClient 28:add19eb7defa 14690 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14691 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14692 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14693 break;
AzureIoTClient 28:add19eb7defa 14694 }
AzureIoTClient 28:add19eb7defa 14695 }
AzureIoTClient 28:add19eb7defa 14696
AzureIoTClient 28:add19eb7defa 14697 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14698 }
AzureIoTClient 28:add19eb7defa 14699 }
AzureIoTClient 28:add19eb7defa 14700 /* delivery-count */
AzureIoTClient 28:add19eb7defa 14701 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 14702 {
AzureIoTClient 23:1111ee8bcba4 14703 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 14704 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14705 {
AzureIoTClient 28:add19eb7defa 14706 /* do nothing */
AzureIoTClient 28:add19eb7defa 14707 }
AzureIoTClient 28:add19eb7defa 14708 else
AzureIoTClient 28:add19eb7defa 14709 {
AzureIoTClient 28:add19eb7defa 14710 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14711 {
AzureIoTClient 28:add19eb7defa 14712 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14713 }
AzureIoTClient 28:add19eb7defa 14714 else
AzureIoTClient 28:add19eb7defa 14715 {
AzureIoTClient 28:add19eb7defa 14716 uint32_t delivery_count;
AzureIoTClient 28:add19eb7defa 14717 if (amqpvalue_get_uint(item_value, &delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 14718 {
AzureIoTClient 28:add19eb7defa 14719 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14720 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14721 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14722 break;
AzureIoTClient 28:add19eb7defa 14723 }
AzureIoTClient 28:add19eb7defa 14724 }
AzureIoTClient 28:add19eb7defa 14725
AzureIoTClient 28:add19eb7defa 14726 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14727 }
AzureIoTClient 28:add19eb7defa 14728 }
AzureIoTClient 28:add19eb7defa 14729
AzureIoTClient 28:add19eb7defa 14730 header_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 14731
AzureIoTClient 28:add19eb7defa 14732 result = 0;
AzureIoTClient 28:add19eb7defa 14733 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 14734 }
AzureIoTClient 28:add19eb7defa 14735 }
AzureIoTClient 28:add19eb7defa 14736 }
AzureIoTClient 28:add19eb7defa 14737
AzureIoTClient 28:add19eb7defa 14738 return result;
Azure.IoT Build 0:6ae2f7bca550 14739 }
Azure.IoT Build 0:6ae2f7bca550 14740
Azure.IoT Build 0:6ae2f7bca550 14741 int header_get_durable(HEADER_HANDLE header, bool* durable_value)
Azure.IoT Build 0:6ae2f7bca550 14742 {
AzureIoTClient 28:add19eb7defa 14743 int result;
AzureIoTClient 28:add19eb7defa 14744
AzureIoTClient 28:add19eb7defa 14745 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14746 {
AzureIoTClient 28:add19eb7defa 14747 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14748 }
AzureIoTClient 28:add19eb7defa 14749 else
AzureIoTClient 28:add19eb7defa 14750 {
AzureIoTClient 28:add19eb7defa 14751 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14752 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14753 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14754 {
AzureIoTClient 23:1111ee8bcba4 14755 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14756 }
AzureIoTClient 23:1111ee8bcba4 14757 else
AzureIoTClient 23:1111ee8bcba4 14758 {
AzureIoTClient 23:1111ee8bcba4 14759 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 14760 {
AzureIoTClient 28:add19eb7defa 14761 *durable_value = false;
AzureIoTClient 28:add19eb7defa 14762 result = 0;
AzureIoTClient 28:add19eb7defa 14763 }
AzureIoTClient 28:add19eb7defa 14764 else
AzureIoTClient 28:add19eb7defa 14765 {
AzureIoTClient 28:add19eb7defa 14766 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 14767 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14768 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14769 {
AzureIoTClient 28:add19eb7defa 14770 *durable_value = false;
AzureIoTClient 28:add19eb7defa 14771 result = 0;
AzureIoTClient 28:add19eb7defa 14772 }
AzureIoTClient 28:add19eb7defa 14773 else
AzureIoTClient 28:add19eb7defa 14774 {
AzureIoTClient 28:add19eb7defa 14775 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14776 if ((get_single_value_result = amqpvalue_get_boolean(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 14777 {
AzureIoTClient 23:1111ee8bcba4 14778 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14779 {
AzureIoTClient 28:add19eb7defa 14780 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14781 }
AzureIoTClient 28:add19eb7defa 14782 else
AzureIoTClient 28:add19eb7defa 14783 {
AzureIoTClient 28:add19eb7defa 14784 *durable_value = false;
AzureIoTClient 23:1111ee8bcba4 14785 result = 0;
AzureIoTClient 23:1111ee8bcba4 14786 }
AzureIoTClient 28:add19eb7defa 14787 }
AzureIoTClient 28:add19eb7defa 14788 else
AzureIoTClient 28:add19eb7defa 14789 {
AzureIoTClient 28:add19eb7defa 14790 result = 0;
AzureIoTClient 28:add19eb7defa 14791 }
AzureIoTClient 28:add19eb7defa 14792 }
AzureIoTClient 28:add19eb7defa 14793 }
AzureIoTClient 28:add19eb7defa 14794 }
AzureIoTClient 28:add19eb7defa 14795 }
AzureIoTClient 28:add19eb7defa 14796
AzureIoTClient 28:add19eb7defa 14797 return result;
Azure.IoT Build 0:6ae2f7bca550 14798 }
Azure.IoT Build 0:6ae2f7bca550 14799
Azure.IoT Build 0:6ae2f7bca550 14800 int header_set_durable(HEADER_HANDLE header, bool durable_value)
Azure.IoT Build 0:6ae2f7bca550 14801 {
AzureIoTClient 28:add19eb7defa 14802 int result;
AzureIoTClient 28:add19eb7defa 14803
AzureIoTClient 28:add19eb7defa 14804 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14805 {
AzureIoTClient 28:add19eb7defa 14806 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14807 }
AzureIoTClient 28:add19eb7defa 14808 else
AzureIoTClient 28:add19eb7defa 14809 {
AzureIoTClient 28:add19eb7defa 14810 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14811 AMQP_VALUE durable_amqp_value = amqpvalue_create_boolean(durable_value);
AzureIoTClient 28:add19eb7defa 14812 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14813 {
AzureIoTClient 28:add19eb7defa 14814 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14815 }
AzureIoTClient 28:add19eb7defa 14816 else
AzureIoTClient 28:add19eb7defa 14817 {
AzureIoTClient 28:add19eb7defa 14818 if (amqpvalue_set_composite_item(header_instance->composite_value, 0, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14819 {
AzureIoTClient 28:add19eb7defa 14820 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14821 }
AzureIoTClient 28:add19eb7defa 14822 else
AzureIoTClient 28:add19eb7defa 14823 {
AzureIoTClient 28:add19eb7defa 14824 result = 0;
AzureIoTClient 28:add19eb7defa 14825 }
AzureIoTClient 28:add19eb7defa 14826
AzureIoTClient 28:add19eb7defa 14827 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 14828 }
AzureIoTClient 28:add19eb7defa 14829 }
AzureIoTClient 28:add19eb7defa 14830
AzureIoTClient 28:add19eb7defa 14831 return result;
Azure.IoT Build 0:6ae2f7bca550 14832 }
Azure.IoT Build 0:6ae2f7bca550 14833
Azure.IoT Build 0:6ae2f7bca550 14834 int header_get_priority(HEADER_HANDLE header, uint8_t* priority_value)
Azure.IoT Build 0:6ae2f7bca550 14835 {
AzureIoTClient 28:add19eb7defa 14836 int result;
AzureIoTClient 28:add19eb7defa 14837
AzureIoTClient 28:add19eb7defa 14838 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14839 {
AzureIoTClient 28:add19eb7defa 14840 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14841 }
AzureIoTClient 28:add19eb7defa 14842 else
AzureIoTClient 28:add19eb7defa 14843 {
AzureIoTClient 28:add19eb7defa 14844 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14845 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14846 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14847 {
AzureIoTClient 23:1111ee8bcba4 14848 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14849 }
AzureIoTClient 23:1111ee8bcba4 14850 else
AzureIoTClient 23:1111ee8bcba4 14851 {
AzureIoTClient 23:1111ee8bcba4 14852 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 14853 {
AzureIoTClient 28:add19eb7defa 14854 *priority_value = 4;
AzureIoTClient 28:add19eb7defa 14855 result = 0;
AzureIoTClient 28:add19eb7defa 14856 }
AzureIoTClient 28:add19eb7defa 14857 else
AzureIoTClient 28:add19eb7defa 14858 {
AzureIoTClient 28:add19eb7defa 14859 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 14860 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14861 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14862 {
AzureIoTClient 28:add19eb7defa 14863 *priority_value = 4;
AzureIoTClient 28:add19eb7defa 14864 result = 0;
AzureIoTClient 28:add19eb7defa 14865 }
AzureIoTClient 28:add19eb7defa 14866 else
AzureIoTClient 28:add19eb7defa 14867 {
AzureIoTClient 28:add19eb7defa 14868 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14869 if ((get_single_value_result = amqpvalue_get_ubyte(item_value, priority_value)) != 0)
AzureIoTClient 28:add19eb7defa 14870 {
AzureIoTClient 23:1111ee8bcba4 14871 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14872 {
AzureIoTClient 28:add19eb7defa 14873 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14874 }
AzureIoTClient 28:add19eb7defa 14875 else
AzureIoTClient 28:add19eb7defa 14876 {
AzureIoTClient 28:add19eb7defa 14877 *priority_value = 4;
AzureIoTClient 23:1111ee8bcba4 14878 result = 0;
AzureIoTClient 23:1111ee8bcba4 14879 }
AzureIoTClient 28:add19eb7defa 14880 }
AzureIoTClient 28:add19eb7defa 14881 else
AzureIoTClient 28:add19eb7defa 14882 {
AzureIoTClient 28:add19eb7defa 14883 result = 0;
AzureIoTClient 28:add19eb7defa 14884 }
AzureIoTClient 28:add19eb7defa 14885 }
AzureIoTClient 28:add19eb7defa 14886 }
AzureIoTClient 28:add19eb7defa 14887 }
AzureIoTClient 28:add19eb7defa 14888 }
AzureIoTClient 28:add19eb7defa 14889
AzureIoTClient 28:add19eb7defa 14890 return result;
Azure.IoT Build 0:6ae2f7bca550 14891 }
Azure.IoT Build 0:6ae2f7bca550 14892
Azure.IoT Build 0:6ae2f7bca550 14893 int header_set_priority(HEADER_HANDLE header, uint8_t priority_value)
Azure.IoT Build 0:6ae2f7bca550 14894 {
AzureIoTClient 28:add19eb7defa 14895 int result;
AzureIoTClient 28:add19eb7defa 14896
AzureIoTClient 28:add19eb7defa 14897 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14898 {
AzureIoTClient 28:add19eb7defa 14899 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14900 }
AzureIoTClient 28:add19eb7defa 14901 else
AzureIoTClient 28:add19eb7defa 14902 {
AzureIoTClient 28:add19eb7defa 14903 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14904 AMQP_VALUE priority_amqp_value = amqpvalue_create_ubyte(priority_value);
AzureIoTClient 28:add19eb7defa 14905 if (priority_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14906 {
AzureIoTClient 28:add19eb7defa 14907 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14908 }
AzureIoTClient 28:add19eb7defa 14909 else
AzureIoTClient 28:add19eb7defa 14910 {
AzureIoTClient 28:add19eb7defa 14911 if (amqpvalue_set_composite_item(header_instance->composite_value, 1, priority_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14912 {
AzureIoTClient 28:add19eb7defa 14913 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14914 }
AzureIoTClient 28:add19eb7defa 14915 else
AzureIoTClient 28:add19eb7defa 14916 {
AzureIoTClient 28:add19eb7defa 14917 result = 0;
AzureIoTClient 28:add19eb7defa 14918 }
AzureIoTClient 28:add19eb7defa 14919
AzureIoTClient 28:add19eb7defa 14920 amqpvalue_destroy(priority_amqp_value);
AzureIoTClient 28:add19eb7defa 14921 }
AzureIoTClient 28:add19eb7defa 14922 }
AzureIoTClient 28:add19eb7defa 14923
AzureIoTClient 28:add19eb7defa 14924 return result;
Azure.IoT Build 0:6ae2f7bca550 14925 }
Azure.IoT Build 0:6ae2f7bca550 14926
Azure.IoT Build 0:6ae2f7bca550 14927 int header_get_ttl(HEADER_HANDLE header, milliseconds* ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14928 {
AzureIoTClient 28:add19eb7defa 14929 int result;
AzureIoTClient 28:add19eb7defa 14930
AzureIoTClient 28:add19eb7defa 14931 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14932 {
AzureIoTClient 28:add19eb7defa 14933 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14934 }
AzureIoTClient 28:add19eb7defa 14935 else
AzureIoTClient 28:add19eb7defa 14936 {
AzureIoTClient 28:add19eb7defa 14937 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14938 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14939 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14940 {
AzureIoTClient 23:1111ee8bcba4 14941 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14942 }
AzureIoTClient 23:1111ee8bcba4 14943 else
AzureIoTClient 23:1111ee8bcba4 14944 {
AzureIoTClient 23:1111ee8bcba4 14945 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 14946 {
AzureIoTClient 28:add19eb7defa 14947 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14948 }
AzureIoTClient 28:add19eb7defa 14949 else
AzureIoTClient 28:add19eb7defa 14950 {
AzureIoTClient 28:add19eb7defa 14951 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 14952 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14953 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14954 {
AzureIoTClient 28:add19eb7defa 14955 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14956 }
AzureIoTClient 28:add19eb7defa 14957 else
AzureIoTClient 28:add19eb7defa 14958 {
AzureIoTClient 28:add19eb7defa 14959 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14960 if ((get_single_value_result = amqpvalue_get_milliseconds(item_value, ttl_value)) != 0)
AzureIoTClient 28:add19eb7defa 14961 {
AzureIoTClient 28:add19eb7defa 14962 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14963 }
AzureIoTClient 28:add19eb7defa 14964 else
AzureIoTClient 28:add19eb7defa 14965 {
AzureIoTClient 28:add19eb7defa 14966 result = 0;
AzureIoTClient 28:add19eb7defa 14967 }
AzureIoTClient 28:add19eb7defa 14968 }
AzureIoTClient 28:add19eb7defa 14969 }
AzureIoTClient 28:add19eb7defa 14970 }
AzureIoTClient 28:add19eb7defa 14971 }
AzureIoTClient 28:add19eb7defa 14972
AzureIoTClient 28:add19eb7defa 14973 return result;
Azure.IoT Build 0:6ae2f7bca550 14974 }
Azure.IoT Build 0:6ae2f7bca550 14975
Azure.IoT Build 0:6ae2f7bca550 14976 int header_set_ttl(HEADER_HANDLE header, milliseconds ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14977 {
AzureIoTClient 28:add19eb7defa 14978 int result;
AzureIoTClient 28:add19eb7defa 14979
AzureIoTClient 28:add19eb7defa 14980 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14981 {
AzureIoTClient 28:add19eb7defa 14982 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14983 }
AzureIoTClient 28:add19eb7defa 14984 else
AzureIoTClient 28:add19eb7defa 14985 {
AzureIoTClient 28:add19eb7defa 14986 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14987 AMQP_VALUE ttl_amqp_value = amqpvalue_create_milliseconds(ttl_value);
AzureIoTClient 28:add19eb7defa 14988 if (ttl_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14989 {
AzureIoTClient 28:add19eb7defa 14990 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14991 }
AzureIoTClient 28:add19eb7defa 14992 else
AzureIoTClient 28:add19eb7defa 14993 {
AzureIoTClient 28:add19eb7defa 14994 if (amqpvalue_set_composite_item(header_instance->composite_value, 2, ttl_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14995 {
AzureIoTClient 28:add19eb7defa 14996 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14997 }
AzureIoTClient 28:add19eb7defa 14998 else
AzureIoTClient 28:add19eb7defa 14999 {
AzureIoTClient 28:add19eb7defa 15000 result = 0;
AzureIoTClient 28:add19eb7defa 15001 }
AzureIoTClient 28:add19eb7defa 15002
AzureIoTClient 28:add19eb7defa 15003 amqpvalue_destroy(ttl_amqp_value);
AzureIoTClient 28:add19eb7defa 15004 }
AzureIoTClient 28:add19eb7defa 15005 }
AzureIoTClient 28:add19eb7defa 15006
AzureIoTClient 28:add19eb7defa 15007 return result;
Azure.IoT Build 0:6ae2f7bca550 15008 }
Azure.IoT Build 0:6ae2f7bca550 15009
Azure.IoT Build 0:6ae2f7bca550 15010 int header_get_first_acquirer(HEADER_HANDLE header, bool* first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 15011 {
AzureIoTClient 28:add19eb7defa 15012 int result;
AzureIoTClient 28:add19eb7defa 15013
AzureIoTClient 28:add19eb7defa 15014 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15015 {
AzureIoTClient 28:add19eb7defa 15016 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15017 }
AzureIoTClient 28:add19eb7defa 15018 else
AzureIoTClient 28:add19eb7defa 15019 {
AzureIoTClient 28:add19eb7defa 15020 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15021 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 15022 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15023 {
AzureIoTClient 23:1111ee8bcba4 15024 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15025 }
AzureIoTClient 23:1111ee8bcba4 15026 else
AzureIoTClient 23:1111ee8bcba4 15027 {
AzureIoTClient 23:1111ee8bcba4 15028 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 15029 {
AzureIoTClient 28:add19eb7defa 15030 *first_acquirer_value = false;
AzureIoTClient 28:add19eb7defa 15031 result = 0;
AzureIoTClient 28:add19eb7defa 15032 }
AzureIoTClient 28:add19eb7defa 15033 else
AzureIoTClient 28:add19eb7defa 15034 {
AzureIoTClient 28:add19eb7defa 15035 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 15036 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 15037 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 15038 {
AzureIoTClient 28:add19eb7defa 15039 *first_acquirer_value = false;
AzureIoTClient 28:add19eb7defa 15040 result = 0;
AzureIoTClient 28:add19eb7defa 15041 }
AzureIoTClient 28:add19eb7defa 15042 else
AzureIoTClient 28:add19eb7defa 15043 {
AzureIoTClient 28:add19eb7defa 15044 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 15045 if ((get_single_value_result = amqpvalue_get_boolean(item_value, first_acquirer_value)) != 0)
AzureIoTClient 28:add19eb7defa 15046 {
AzureIoTClient 23:1111ee8bcba4 15047 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 15048 {
AzureIoTClient 28:add19eb7defa 15049 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15050 }
AzureIoTClient 28:add19eb7defa 15051 else
AzureIoTClient 28:add19eb7defa 15052 {
AzureIoTClient 28:add19eb7defa 15053 *first_acquirer_value = false;
AzureIoTClient 23:1111ee8bcba4 15054 result = 0;
AzureIoTClient 23:1111ee8bcba4 15055 }
AzureIoTClient 28:add19eb7defa 15056 }
AzureIoTClient 28:add19eb7defa 15057 else
AzureIoTClient 28:add19eb7defa 15058 {
AzureIoTClient 28:add19eb7defa 15059 result = 0;
AzureIoTClient 28:add19eb7defa 15060 }
AzureIoTClient 28:add19eb7defa 15061 }
AzureIoTClient 28:add19eb7defa 15062 }
AzureIoTClient 28:add19eb7defa 15063 }
AzureIoTClient 28:add19eb7defa 15064 }
AzureIoTClient 28:add19eb7defa 15065
AzureIoTClient 28:add19eb7defa 15066 return result;
Azure.IoT Build 0:6ae2f7bca550 15067 }
Azure.IoT Build 0:6ae2f7bca550 15068
Azure.IoT Build 0:6ae2f7bca550 15069 int header_set_first_acquirer(HEADER_HANDLE header, bool first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 15070 {
AzureIoTClient 28:add19eb7defa 15071 int result;
AzureIoTClient 28:add19eb7defa 15072
AzureIoTClient 28:add19eb7defa 15073 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15074 {
AzureIoTClient 28:add19eb7defa 15075 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15076 }
AzureIoTClient 28:add19eb7defa 15077 else
AzureIoTClient 28:add19eb7defa 15078 {
AzureIoTClient 28:add19eb7defa 15079 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 15080 AMQP_VALUE first_acquirer_amqp_value = amqpvalue_create_boolean(first_acquirer_value);
AzureIoTClient 28:add19eb7defa 15081 if (first_acquirer_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15082 {
AzureIoTClient 28:add19eb7defa 15083 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15084 }
AzureIoTClient 28:add19eb7defa 15085 else
AzureIoTClient 28:add19eb7defa 15086 {
AzureIoTClient 28:add19eb7defa 15087 if (amqpvalue_set_composite_item(header_instance->composite_value, 3, first_acquirer_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 15088 {
AzureIoTClient 28:add19eb7defa 15089 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15090 }
AzureIoTClient 28:add19eb7defa 15091 else
AzureIoTClient 28:add19eb7defa 15092 {
AzureIoTClient 28:add19eb7defa 15093 result = 0;
AzureIoTClient 28:add19eb7defa 15094 }
AzureIoTClient 28:add19eb7defa 15095
AzureIoTClient 28:add19eb7defa 15096 amqpvalue_destroy(first_acquirer_amqp_value);
AzureIoTClient 28:add19eb7defa 15097 }
AzureIoTClient 28:add19eb7defa 15098 }
AzureIoTClient 28:add19eb7defa 15099
AzureIoTClient 28:add19eb7defa 15100 return result;
Azure.IoT Build 0:6ae2f7bca550 15101 }
Azure.IoT Build 0:6ae2f7bca550 15102
Azure.IoT Build 0:6ae2f7bca550 15103 int header_get_delivery_count(HEADER_HANDLE header, uint32_t* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 15104 {
AzureIoTClient 28:add19eb7defa 15105 int result;
AzureIoTClient 28:add19eb7defa 15106
AzureIoTClient 28:add19eb7defa 15107 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15108 {
AzureIoTClient 28:add19eb7defa 15109 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15110 }
AzureIoTClient 28:add19eb7defa 15111 else
AzureIoTClient 28:add19eb7defa 15112 {
AzureIoTClient 28:add19eb7defa 15113 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15114 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 15115 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15116 {
AzureIoTClient 23:1111ee8bcba4 15117 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15118 }
AzureIoTClient 23:1111ee8bcba4 15119 else
AzureIoTClient 23:1111ee8bcba4 15120 {
AzureIoTClient 23:1111ee8bcba4 15121 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 15122 {
AzureIoTClient 28:add19eb7defa 15123 *delivery_count_value = 0;
AzureIoTClient 28:add19eb7defa 15124 result = 0;
AzureIoTClient 28:add19eb7defa 15125 }
AzureIoTClient 28:add19eb7defa 15126 else
AzureIoTClient 28:add19eb7defa 15127 {
AzureIoTClient 28:add19eb7defa 15128 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 15129 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 15130 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 15131 {
AzureIoTClient 28:add19eb7defa 15132 *delivery_count_value = 0;
AzureIoTClient 28:add19eb7defa 15133 result = 0;
AzureIoTClient 28:add19eb7defa 15134 }
AzureIoTClient 28:add19eb7defa 15135 else
AzureIoTClient 28:add19eb7defa 15136 {
AzureIoTClient 28:add19eb7defa 15137 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 15138 if ((get_single_value_result = amqpvalue_get_uint(item_value, delivery_count_value)) != 0)
AzureIoTClient 28:add19eb7defa 15139 {
AzureIoTClient 23:1111ee8bcba4 15140 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 15141 {
AzureIoTClient 28:add19eb7defa 15142 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15143 }
AzureIoTClient 28:add19eb7defa 15144 else
AzureIoTClient 28:add19eb7defa 15145 {
AzureIoTClient 28:add19eb7defa 15146 *delivery_count_value = 0;
AzureIoTClient 23:1111ee8bcba4 15147 result = 0;
AzureIoTClient 23:1111ee8bcba4 15148 }
AzureIoTClient 28:add19eb7defa 15149 }
AzureIoTClient 28:add19eb7defa 15150 else
AzureIoTClient 28:add19eb7defa 15151 {
AzureIoTClient 28:add19eb7defa 15152 result = 0;
AzureIoTClient 28:add19eb7defa 15153 }
AzureIoTClient 28:add19eb7defa 15154 }
AzureIoTClient 28:add19eb7defa 15155 }
AzureIoTClient 28:add19eb7defa 15156 }
AzureIoTClient 28:add19eb7defa 15157 }
AzureIoTClient 28:add19eb7defa 15158
AzureIoTClient 28:add19eb7defa 15159 return result;
Azure.IoT Build 0:6ae2f7bca550 15160 }
Azure.IoT Build 0:6ae2f7bca550 15161
Azure.IoT Build 0:6ae2f7bca550 15162 int header_set_delivery_count(HEADER_HANDLE header, uint32_t delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 15163 {
AzureIoTClient 28:add19eb7defa 15164 int result;
AzureIoTClient 28:add19eb7defa 15165
AzureIoTClient 28:add19eb7defa 15166 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15167 {
AzureIoTClient 28:add19eb7defa 15168 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15169 }
AzureIoTClient 28:add19eb7defa 15170 else
AzureIoTClient 28:add19eb7defa 15171 {
AzureIoTClient 28:add19eb7defa 15172 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 15173 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_uint(delivery_count_value);
AzureIoTClient 28:add19eb7defa 15174 if (delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15175 {
AzureIoTClient 28:add19eb7defa 15176 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15177 }
AzureIoTClient 28:add19eb7defa 15178 else
AzureIoTClient 28:add19eb7defa 15179 {
AzureIoTClient 28:add19eb7defa 15180 if (amqpvalue_set_composite_item(header_instance->composite_value, 4, delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 15181 {
AzureIoTClient 28:add19eb7defa 15182 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15183 }
AzureIoTClient 28:add19eb7defa 15184 else
AzureIoTClient 28:add19eb7defa 15185 {
AzureIoTClient 28:add19eb7defa 15186 result = 0;
AzureIoTClient 28:add19eb7defa 15187 }
AzureIoTClient 28:add19eb7defa 15188
AzureIoTClient 28:add19eb7defa 15189 amqpvalue_destroy(delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 15190 }
AzureIoTClient 28:add19eb7defa 15191 }
AzureIoTClient 28:add19eb7defa 15192
AzureIoTClient 28:add19eb7defa 15193 return result;
Azure.IoT Build 0:6ae2f7bca550 15194 }
Azure.IoT Build 0:6ae2f7bca550 15195
Azure.IoT Build 0:6ae2f7bca550 15196
Azure.IoT Build 0:6ae2f7bca550 15197 /* delivery-annotations */
Azure.IoT Build 0:6ae2f7bca550 15198
Azure.IoT Build 0:6ae2f7bca550 15199 AMQP_VALUE amqpvalue_create_delivery_annotations(delivery_annotations value)
Azure.IoT Build 0:6ae2f7bca550 15200 {
AzureIoTClient 28:add19eb7defa 15201 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15202 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15203 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15204 {
AzureIoTClient 28:add19eb7defa 15205 result = NULL;
AzureIoTClient 28:add19eb7defa 15206 }
AzureIoTClient 28:add19eb7defa 15207 else
AzureIoTClient 28:add19eb7defa 15208 {
AzureIoTClient 28:add19eb7defa 15209 AMQP_VALUE descriptor = amqpvalue_create_ulong(113);
AzureIoTClient 28:add19eb7defa 15210 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15211 {
AzureIoTClient 28:add19eb7defa 15212 result = NULL;
AzureIoTClient 28:add19eb7defa 15213 }
AzureIoTClient 28:add19eb7defa 15214 else
AzureIoTClient 28:add19eb7defa 15215 {
AzureIoTClient 28:add19eb7defa 15216 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15217
AzureIoTClient 28:add19eb7defa 15218 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15219 }
AzureIoTClient 28:add19eb7defa 15220
AzureIoTClient 28:add19eb7defa 15221 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15222 }
AzureIoTClient 28:add19eb7defa 15223
AzureIoTClient 28:add19eb7defa 15224 return result;
Azure.IoT Build 0:6ae2f7bca550 15225 }
Azure.IoT Build 0:6ae2f7bca550 15226
Azure.IoT Build 0:6ae2f7bca550 15227 bool is_delivery_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15228 {
AzureIoTClient 28:add19eb7defa 15229 bool result;
AzureIoTClient 28:add19eb7defa 15230
AzureIoTClient 28:add19eb7defa 15231 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15232 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15233 (descriptor_ulong == 113))
AzureIoTClient 28:add19eb7defa 15234 {
AzureIoTClient 28:add19eb7defa 15235 result = true;
AzureIoTClient 28:add19eb7defa 15236 }
AzureIoTClient 28:add19eb7defa 15237 else
AzureIoTClient 28:add19eb7defa 15238 {
AzureIoTClient 28:add19eb7defa 15239 result = false;
AzureIoTClient 28:add19eb7defa 15240 }
AzureIoTClient 28:add19eb7defa 15241
AzureIoTClient 28:add19eb7defa 15242 return result;
Azure.IoT Build 0:6ae2f7bca550 15243 }
Azure.IoT Build 0:6ae2f7bca550 15244
Azure.IoT Build 0:6ae2f7bca550 15245 /* message-annotations */
Azure.IoT Build 0:6ae2f7bca550 15246
Azure.IoT Build 0:6ae2f7bca550 15247 AMQP_VALUE amqpvalue_create_message_annotations(message_annotations value)
Azure.IoT Build 0:6ae2f7bca550 15248 {
AzureIoTClient 28:add19eb7defa 15249 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15250 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15251 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15252 {
AzureIoTClient 28:add19eb7defa 15253 result = NULL;
AzureIoTClient 28:add19eb7defa 15254 }
AzureIoTClient 28:add19eb7defa 15255 else
AzureIoTClient 28:add19eb7defa 15256 {
AzureIoTClient 28:add19eb7defa 15257 AMQP_VALUE descriptor = amqpvalue_create_ulong(114);
AzureIoTClient 28:add19eb7defa 15258 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15259 {
AzureIoTClient 28:add19eb7defa 15260 result = NULL;
AzureIoTClient 28:add19eb7defa 15261 }
AzureIoTClient 28:add19eb7defa 15262 else
AzureIoTClient 28:add19eb7defa 15263 {
AzureIoTClient 28:add19eb7defa 15264 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15265
AzureIoTClient 28:add19eb7defa 15266 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15267 }
AzureIoTClient 28:add19eb7defa 15268
AzureIoTClient 28:add19eb7defa 15269 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15270 }
AzureIoTClient 28:add19eb7defa 15271
AzureIoTClient 28:add19eb7defa 15272 return result;
Azure.IoT Build 0:6ae2f7bca550 15273 }
Azure.IoT Build 0:6ae2f7bca550 15274
Azure.IoT Build 0:6ae2f7bca550 15275 bool is_message_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15276 {
AzureIoTClient 28:add19eb7defa 15277 bool result;
AzureIoTClient 28:add19eb7defa 15278
AzureIoTClient 28:add19eb7defa 15279 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15280 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15281 (descriptor_ulong == 114))
AzureIoTClient 28:add19eb7defa 15282 {
AzureIoTClient 28:add19eb7defa 15283 result = true;
AzureIoTClient 28:add19eb7defa 15284 }
AzureIoTClient 28:add19eb7defa 15285 else
AzureIoTClient 28:add19eb7defa 15286 {
AzureIoTClient 28:add19eb7defa 15287 result = false;
AzureIoTClient 28:add19eb7defa 15288 }
AzureIoTClient 28:add19eb7defa 15289
AzureIoTClient 28:add19eb7defa 15290 return result;
Azure.IoT Build 0:6ae2f7bca550 15291 }
Azure.IoT Build 0:6ae2f7bca550 15292
Azure.IoT Build 0:6ae2f7bca550 15293 /* application-properties */
Azure.IoT Build 0:6ae2f7bca550 15294
Azure.IoT Build 0:6ae2f7bca550 15295 AMQP_VALUE amqpvalue_create_application_properties(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15296 {
AzureIoTClient 28:add19eb7defa 15297 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15298 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15299 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15300 {
AzureIoTClient 28:add19eb7defa 15301 result = NULL;
AzureIoTClient 28:add19eb7defa 15302 }
AzureIoTClient 28:add19eb7defa 15303 else
AzureIoTClient 28:add19eb7defa 15304 {
AzureIoTClient 28:add19eb7defa 15305 AMQP_VALUE descriptor = amqpvalue_create_ulong(116);
AzureIoTClient 28:add19eb7defa 15306 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15307 {
AzureIoTClient 28:add19eb7defa 15308 result = NULL;
AzureIoTClient 28:add19eb7defa 15309 }
AzureIoTClient 28:add19eb7defa 15310 else
AzureIoTClient 28:add19eb7defa 15311 {
AzureIoTClient 28:add19eb7defa 15312 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15313
AzureIoTClient 28:add19eb7defa 15314 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15315 }
AzureIoTClient 28:add19eb7defa 15316
AzureIoTClient 28:add19eb7defa 15317 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15318 }
AzureIoTClient 28:add19eb7defa 15319
AzureIoTClient 28:add19eb7defa 15320 return result;
Azure.IoT Build 0:6ae2f7bca550 15321 }
Azure.IoT Build 0:6ae2f7bca550 15322
Azure.IoT Build 0:6ae2f7bca550 15323 bool is_application_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15324 {
AzureIoTClient 28:add19eb7defa 15325 bool result;
AzureIoTClient 28:add19eb7defa 15326
AzureIoTClient 28:add19eb7defa 15327 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15328 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15329 (descriptor_ulong == 116))
AzureIoTClient 28:add19eb7defa 15330 {
AzureIoTClient 28:add19eb7defa 15331 result = true;
AzureIoTClient 28:add19eb7defa 15332 }
AzureIoTClient 28:add19eb7defa 15333 else
AzureIoTClient 28:add19eb7defa 15334 {
AzureIoTClient 28:add19eb7defa 15335 result = false;
AzureIoTClient 28:add19eb7defa 15336 }
AzureIoTClient 28:add19eb7defa 15337
AzureIoTClient 28:add19eb7defa 15338 return result;
Azure.IoT Build 0:6ae2f7bca550 15339 }
Azure.IoT Build 0:6ae2f7bca550 15340
Azure.IoT Build 0:6ae2f7bca550 15341 /* data */
Azure.IoT Build 0:6ae2f7bca550 15342
Azure.IoT Build 0:6ae2f7bca550 15343 AMQP_VALUE amqpvalue_create_data(data value)
Azure.IoT Build 0:6ae2f7bca550 15344 {
AzureIoTClient 28:add19eb7defa 15345 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15346 AMQP_VALUE described_value = amqpvalue_create_binary(value);
AzureIoTClient 28:add19eb7defa 15347 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15348 {
AzureIoTClient 28:add19eb7defa 15349 result = NULL;
AzureIoTClient 28:add19eb7defa 15350 }
AzureIoTClient 28:add19eb7defa 15351 else
AzureIoTClient 28:add19eb7defa 15352 {
AzureIoTClient 28:add19eb7defa 15353 AMQP_VALUE descriptor = amqpvalue_create_ulong(117);
AzureIoTClient 28:add19eb7defa 15354 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15355 {
AzureIoTClient 28:add19eb7defa 15356 result = NULL;
AzureIoTClient 28:add19eb7defa 15357 }
AzureIoTClient 28:add19eb7defa 15358 else
AzureIoTClient 28:add19eb7defa 15359 {
AzureIoTClient 28:add19eb7defa 15360 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15361
AzureIoTClient 28:add19eb7defa 15362 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15363 }
AzureIoTClient 28:add19eb7defa 15364
AzureIoTClient 28:add19eb7defa 15365 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15366 }
AzureIoTClient 28:add19eb7defa 15367
AzureIoTClient 28:add19eb7defa 15368 return result;
Azure.IoT Build 0:6ae2f7bca550 15369 }
Azure.IoT Build 0:6ae2f7bca550 15370
Azure.IoT Build 0:6ae2f7bca550 15371 bool is_data_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15372 {
AzureIoTClient 28:add19eb7defa 15373 bool result;
AzureIoTClient 28:add19eb7defa 15374
AzureIoTClient 28:add19eb7defa 15375 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15376 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15377 (descriptor_ulong == 117))
AzureIoTClient 28:add19eb7defa 15378 {
AzureIoTClient 28:add19eb7defa 15379 result = true;
AzureIoTClient 28:add19eb7defa 15380 }
AzureIoTClient 28:add19eb7defa 15381 else
AzureIoTClient 28:add19eb7defa 15382 {
AzureIoTClient 28:add19eb7defa 15383 result = false;
AzureIoTClient 28:add19eb7defa 15384 }
AzureIoTClient 28:add19eb7defa 15385
AzureIoTClient 28:add19eb7defa 15386 return result;
Azure.IoT Build 0:6ae2f7bca550 15387 }
Azure.IoT Build 0:6ae2f7bca550 15388
Azure.IoT Build 0:6ae2f7bca550 15389 /* amqp-sequence */
Azure.IoT Build 0:6ae2f7bca550 15390
Azure.IoT Build 0:6ae2f7bca550 15391 AMQP_VALUE amqpvalue_create_amqp_sequence(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15392 {
AzureIoTClient 28:add19eb7defa 15393 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15394 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15395 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15396 {
AzureIoTClient 28:add19eb7defa 15397 result = NULL;
AzureIoTClient 28:add19eb7defa 15398 }
AzureIoTClient 28:add19eb7defa 15399 else
AzureIoTClient 28:add19eb7defa 15400 {
AzureIoTClient 28:add19eb7defa 15401 AMQP_VALUE descriptor = amqpvalue_create_ulong(118);
AzureIoTClient 28:add19eb7defa 15402 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15403 {
AzureIoTClient 28:add19eb7defa 15404 result = NULL;
AzureIoTClient 28:add19eb7defa 15405 }
AzureIoTClient 28:add19eb7defa 15406 else
AzureIoTClient 28:add19eb7defa 15407 {
AzureIoTClient 28:add19eb7defa 15408 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15409
AzureIoTClient 28:add19eb7defa 15410 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15411 }
AzureIoTClient 28:add19eb7defa 15412
AzureIoTClient 28:add19eb7defa 15413 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15414 }
AzureIoTClient 28:add19eb7defa 15415
AzureIoTClient 28:add19eb7defa 15416 return result;
Azure.IoT Build 0:6ae2f7bca550 15417 }
Azure.IoT Build 0:6ae2f7bca550 15418
Azure.IoT Build 0:6ae2f7bca550 15419 bool is_amqp_sequence_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15420 {
AzureIoTClient 28:add19eb7defa 15421 bool result;
AzureIoTClient 28:add19eb7defa 15422
AzureIoTClient 28:add19eb7defa 15423 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15424 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15425 (descriptor_ulong == 118))
AzureIoTClient 28:add19eb7defa 15426 {
AzureIoTClient 28:add19eb7defa 15427 result = true;
AzureIoTClient 28:add19eb7defa 15428 }
AzureIoTClient 28:add19eb7defa 15429 else
AzureIoTClient 28:add19eb7defa 15430 {
AzureIoTClient 28:add19eb7defa 15431 result = false;
AzureIoTClient 28:add19eb7defa 15432 }
AzureIoTClient 28:add19eb7defa 15433
AzureIoTClient 28:add19eb7defa 15434 return result;
Azure.IoT Build 0:6ae2f7bca550 15435 }
Azure.IoT Build 0:6ae2f7bca550 15436
Azure.IoT Build 0:6ae2f7bca550 15437 /* amqp-value */
Azure.IoT Build 0:6ae2f7bca550 15438
Azure.IoT Build 0:6ae2f7bca550 15439 AMQP_VALUE amqpvalue_create_amqp_value(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15440 {
AzureIoTClient 28:add19eb7defa 15441 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15442 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15443 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15444 {
AzureIoTClient 28:add19eb7defa 15445 result = NULL;
AzureIoTClient 28:add19eb7defa 15446 }
AzureIoTClient 28:add19eb7defa 15447 else
AzureIoTClient 28:add19eb7defa 15448 {
AzureIoTClient 28:add19eb7defa 15449 AMQP_VALUE descriptor = amqpvalue_create_ulong(119);
AzureIoTClient 28:add19eb7defa 15450 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15451 {
AzureIoTClient 28:add19eb7defa 15452 result = NULL;
AzureIoTClient 28:add19eb7defa 15453 }
AzureIoTClient 28:add19eb7defa 15454 else
AzureIoTClient 28:add19eb7defa 15455 {
AzureIoTClient 28:add19eb7defa 15456 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15457
AzureIoTClient 28:add19eb7defa 15458 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15459 }
AzureIoTClient 28:add19eb7defa 15460
AzureIoTClient 28:add19eb7defa 15461 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15462 }
AzureIoTClient 28:add19eb7defa 15463
AzureIoTClient 28:add19eb7defa 15464 return result;
Azure.IoT Build 0:6ae2f7bca550 15465 }
Azure.IoT Build 0:6ae2f7bca550 15466
Azure.IoT Build 0:6ae2f7bca550 15467 bool is_amqp_value_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15468 {
AzureIoTClient 28:add19eb7defa 15469 bool result;
AzureIoTClient 28:add19eb7defa 15470
AzureIoTClient 28:add19eb7defa 15471 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15472 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15473 (descriptor_ulong == 119))
AzureIoTClient 28:add19eb7defa 15474 {
AzureIoTClient 28:add19eb7defa 15475 result = true;
AzureIoTClient 28:add19eb7defa 15476 }
AzureIoTClient 28:add19eb7defa 15477 else
AzureIoTClient 28:add19eb7defa 15478 {
AzureIoTClient 28:add19eb7defa 15479 result = false;
AzureIoTClient 28:add19eb7defa 15480 }
AzureIoTClient 28:add19eb7defa 15481
AzureIoTClient 28:add19eb7defa 15482 return result;
Azure.IoT Build 0:6ae2f7bca550 15483 }
Azure.IoT Build 0:6ae2f7bca550 15484
Azure.IoT Build 0:6ae2f7bca550 15485 /* footer */
Azure.IoT Build 0:6ae2f7bca550 15486
Azure.IoT Build 0:6ae2f7bca550 15487 AMQP_VALUE amqpvalue_create_footer(footer value)
Azure.IoT Build 0:6ae2f7bca550 15488 {
AzureIoTClient 28:add19eb7defa 15489 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15490 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15491 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15492 {
AzureIoTClient 28:add19eb7defa 15493 result = NULL;
AzureIoTClient 28:add19eb7defa 15494 }
AzureIoTClient 28:add19eb7defa 15495 else
AzureIoTClient 28:add19eb7defa 15496 {
AzureIoTClient 28:add19eb7defa 15497 AMQP_VALUE descriptor = amqpvalue_create_ulong(120);
AzureIoTClient 28:add19eb7defa 15498 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15499 {
AzureIoTClient 28:add19eb7defa 15500 result = NULL;
AzureIoTClient 28:add19eb7defa 15501 }
AzureIoTClient 28:add19eb7defa 15502 else
AzureIoTClient 28:add19eb7defa 15503 {
AzureIoTClient 28:add19eb7defa 15504 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15505
AzureIoTClient 28:add19eb7defa 15506 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15507 }
AzureIoTClient 28:add19eb7defa 15508
AzureIoTClient 28:add19eb7defa 15509 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15510 }
AzureIoTClient 28:add19eb7defa 15511
AzureIoTClient 28:add19eb7defa 15512 return result;
Azure.IoT Build 0:6ae2f7bca550 15513 }
Azure.IoT Build 0:6ae2f7bca550 15514
Azure.IoT Build 0:6ae2f7bca550 15515 bool is_footer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15516 {
AzureIoTClient 28:add19eb7defa 15517 bool result;
AzureIoTClient 28:add19eb7defa 15518
AzureIoTClient 28:add19eb7defa 15519 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15520 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15521 (descriptor_ulong == 120))
AzureIoTClient 28:add19eb7defa 15522 {
AzureIoTClient 28:add19eb7defa 15523 result = true;
AzureIoTClient 28:add19eb7defa 15524 }
AzureIoTClient 28:add19eb7defa 15525 else
AzureIoTClient 28:add19eb7defa 15526 {
AzureIoTClient 28:add19eb7defa 15527 result = false;
AzureIoTClient 28:add19eb7defa 15528 }
AzureIoTClient 28:add19eb7defa 15529
AzureIoTClient 28:add19eb7defa 15530 return result;
Azure.IoT Build 0:6ae2f7bca550 15531 }
Azure.IoT Build 0:6ae2f7bca550 15532
Azure.IoT Build 0:6ae2f7bca550 15533 /* properties */
Azure.IoT Build 0:6ae2f7bca550 15534
Azure.IoT Build 0:6ae2f7bca550 15535 typedef struct PROPERTIES_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 15536 {
AzureIoTClient 28:add19eb7defa 15537 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 15538 } PROPERTIES_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 15539
Azure.IoT Build 0:6ae2f7bca550 15540 static PROPERTIES_HANDLE properties_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 15541 {
AzureIoTClient 28:add19eb7defa 15542 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15543 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15544 {
AzureIoTClient 28:add19eb7defa 15545 properties_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 15546 }
AzureIoTClient 28:add19eb7defa 15547
AzureIoTClient 28:add19eb7defa 15548 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15549 }
Azure.IoT Build 0:6ae2f7bca550 15550
Azure.IoT Build 0:6ae2f7bca550 15551 PROPERTIES_HANDLE properties_create(void)
Azure.IoT Build 0:6ae2f7bca550 15552 {
AzureIoTClient 28:add19eb7defa 15553 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15554 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15555 {
AzureIoTClient 28:add19eb7defa 15556 properties_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(115);
AzureIoTClient 28:add19eb7defa 15557 if (properties_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 15558 {
AzureIoTClient 28:add19eb7defa 15559 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15560 properties_instance = NULL;
AzureIoTClient 28:add19eb7defa 15561 }
AzureIoTClient 28:add19eb7defa 15562 }
AzureIoTClient 28:add19eb7defa 15563
AzureIoTClient 28:add19eb7defa 15564 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15565 }
Azure.IoT Build 0:6ae2f7bca550 15566
Azure.IoT Build 0:6ae2f7bca550 15567 PROPERTIES_HANDLE properties_clone(PROPERTIES_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 15568 {
AzureIoTClient 28:add19eb7defa 15569 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15570 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15571 {
AzureIoTClient 28:add19eb7defa 15572 properties_instance->composite_value = amqpvalue_clone(((PROPERTIES_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 15573 if (properties_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 15574 {
AzureIoTClient 28:add19eb7defa 15575 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15576 properties_instance = NULL;
AzureIoTClient 28:add19eb7defa 15577 }
AzureIoTClient 28:add19eb7defa 15578 }
AzureIoTClient 28:add19eb7defa 15579
AzureIoTClient 28:add19eb7defa 15580 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15581 }
Azure.IoT Build 0:6ae2f7bca550 15582
Azure.IoT Build 0:6ae2f7bca550 15583 void properties_destroy(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 15584 {
AzureIoTClient 28:add19eb7defa 15585 if (properties != NULL)
AzureIoTClient 28:add19eb7defa 15586 {
AzureIoTClient 28:add19eb7defa 15587 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15588 amqpvalue_destroy(properties_instance->composite_value);
AzureIoTClient 28:add19eb7defa 15589 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15590 }
Azure.IoT Build 0:6ae2f7bca550 15591 }
Azure.IoT Build 0:6ae2f7bca550 15592
Azure.IoT Build 0:6ae2f7bca550 15593 AMQP_VALUE amqpvalue_create_properties(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 15594 {
AzureIoTClient 28:add19eb7defa 15595 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15596
AzureIoTClient 28:add19eb7defa 15597 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15598 {
AzureIoTClient 28:add19eb7defa 15599 result = NULL;
AzureIoTClient 28:add19eb7defa 15600 }
AzureIoTClient 28:add19eb7defa 15601 else
AzureIoTClient 28:add19eb7defa 15602 {
AzureIoTClient 28:add19eb7defa 15603 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15604 result = amqpvalue_clone(properties_instance->composite_value);
AzureIoTClient 28:add19eb7defa 15605 }
AzureIoTClient 28:add19eb7defa 15606
AzureIoTClient 28:add19eb7defa 15607 return result;
Azure.IoT Build 0:6ae2f7bca550 15608 }
Azure.IoT Build 0:6ae2f7bca550 15609
Azure.IoT Build 0:6ae2f7bca550 15610 bool is_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15611 {
AzureIoTClient 28:add19eb7defa 15612 bool result;
AzureIoTClient 28:add19eb7defa 15613
AzureIoTClient 28:add19eb7defa 15614 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15615 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15616 (descriptor_ulong == 115))
AzureIoTClient 28:add19eb7defa 15617 {
AzureIoTClient 28:add19eb7defa 15618 result = true;
AzureIoTClient 28:add19eb7defa 15619 }
AzureIoTClient 28:add19eb7defa 15620 else
AzureIoTClient 28:add19eb7defa 15621 {
AzureIoTClient 28:add19eb7defa 15622 result = false;
AzureIoTClient 28:add19eb7defa 15623 }
AzureIoTClient 28:add19eb7defa 15624
AzureIoTClient 28:add19eb7defa 15625 return result;
Azure.IoT Build 0:6ae2f7bca550 15626 }
Azure.IoT Build 0:6ae2f7bca550 15627
Azure.IoT Build 0:6ae2f7bca550 15628
Azure.IoT Build 0:6ae2f7bca550 15629 int amqpvalue_get_properties(AMQP_VALUE value, PROPERTIES_HANDLE* properties_handle)
Azure.IoT Build 0:6ae2f7bca550 15630 {
AzureIoTClient 28:add19eb7defa 15631 int result;
AzureIoTClient 28:add19eb7defa 15632 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties_create_internal();
AzureIoTClient 28:add19eb7defa 15633 *properties_handle = properties_instance;
AzureIoTClient 28:add19eb7defa 15634 if (*properties_handle == NULL)
AzureIoTClient 28:add19eb7defa 15635 {
AzureIoTClient 28:add19eb7defa 15636 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15637 }
AzureIoTClient 28:add19eb7defa 15638 else
AzureIoTClient 28:add19eb7defa 15639 {
AzureIoTClient 28:add19eb7defa 15640 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 15641 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 15642 {
AzureIoTClient 28:add19eb7defa 15643 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15644 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15645 }
AzureIoTClient 28:add19eb7defa 15646 else
AzureIoTClient 28:add19eb7defa 15647 {
AzureIoTClient 23:1111ee8bcba4 15648 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 15649 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15650 {
AzureIoTClient 23:1111ee8bcba4 15651 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15652 }
AzureIoTClient 23:1111ee8bcba4 15653 else
AzureIoTClient 23:1111ee8bcba4 15654 {
AzureIoTClient 28:add19eb7defa 15655 do
AzureIoTClient 28:add19eb7defa 15656 {
AzureIoTClient 28:add19eb7defa 15657 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 15658 /* message-id */
AzureIoTClient 28:add19eb7defa 15659 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 15660 {
AzureIoTClient 23:1111ee8bcba4 15661 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 15662 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15663 {
AzureIoTClient 28:add19eb7defa 15664 /* do nothing */
AzureIoTClient 28:add19eb7defa 15665 }
AzureIoTClient 28:add19eb7defa 15666 else
AzureIoTClient 28:add19eb7defa 15667 {
AzureIoTClient 28:add19eb7defa 15668 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15669 }
AzureIoTClient 28:add19eb7defa 15670 }
AzureIoTClient 28:add19eb7defa 15671 /* user-id */
AzureIoTClient 28:add19eb7defa 15672 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 15673 {
AzureIoTClient 23:1111ee8bcba4 15674 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 15675 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15676 {
AzureIoTClient 28:add19eb7defa 15677 /* do nothing */
AzureIoTClient 28:add19eb7defa 15678 }
AzureIoTClient 28:add19eb7defa 15679 else
AzureIoTClient 28:add19eb7defa 15680 {
AzureIoTClient 28:add19eb7defa 15681 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15682 {
AzureIoTClient 28:add19eb7defa 15683 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15684 }
AzureIoTClient 28:add19eb7defa 15685 else
AzureIoTClient 28:add19eb7defa 15686 {
AzureIoTClient 28:add19eb7defa 15687 amqp_binary user_id;
AzureIoTClient 28:add19eb7defa 15688 if (amqpvalue_get_binary(item_value, &user_id) != 0)
AzureIoTClient 28:add19eb7defa 15689 {
AzureIoTClient 28:add19eb7defa 15690 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15691 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15692 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15693 break;
AzureIoTClient 28:add19eb7defa 15694 }
AzureIoTClient 28:add19eb7defa 15695 }
AzureIoTClient 28:add19eb7defa 15696
AzureIoTClient 28:add19eb7defa 15697 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15698 }
AzureIoTClient 28:add19eb7defa 15699 }
AzureIoTClient 28:add19eb7defa 15700 /* to */
AzureIoTClient 28:add19eb7defa 15701 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 15702 {
AzureIoTClient 23:1111ee8bcba4 15703 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 15704 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15705 {
AzureIoTClient 28:add19eb7defa 15706 /* do nothing */
AzureIoTClient 28:add19eb7defa 15707 }
AzureIoTClient 28:add19eb7defa 15708 else
AzureIoTClient 28:add19eb7defa 15709 {
AzureIoTClient 28:add19eb7defa 15710 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15711 }
AzureIoTClient 28:add19eb7defa 15712 }
AzureIoTClient 28:add19eb7defa 15713 /* subject */
AzureIoTClient 28:add19eb7defa 15714 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 15715 {
AzureIoTClient 23:1111ee8bcba4 15716 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 15717 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15718 {
AzureIoTClient 28:add19eb7defa 15719 /* do nothing */
AzureIoTClient 28:add19eb7defa 15720 }
AzureIoTClient 28:add19eb7defa 15721 else
AzureIoTClient 28:add19eb7defa 15722 {
AzureIoTClient 28:add19eb7defa 15723 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15724 {
AzureIoTClient 28:add19eb7defa 15725 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15726 }
AzureIoTClient 28:add19eb7defa 15727 else
AzureIoTClient 28:add19eb7defa 15728 {
AzureIoTClient 28:add19eb7defa 15729 const char* subject;
AzureIoTClient 28:add19eb7defa 15730 if (amqpvalue_get_string(item_value, &subject) != 0)
AzureIoTClient 28:add19eb7defa 15731 {
AzureIoTClient 28:add19eb7defa 15732 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15733 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15734 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15735 break;
AzureIoTClient 28:add19eb7defa 15736 }
AzureIoTClient 28:add19eb7defa 15737 }
AzureIoTClient 28:add19eb7defa 15738
AzureIoTClient 28:add19eb7defa 15739 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15740 }
AzureIoTClient 28:add19eb7defa 15741 }
AzureIoTClient 28:add19eb7defa 15742 /* reply-to */
AzureIoTClient 28:add19eb7defa 15743 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 15744 {
AzureIoTClient 23:1111ee8bcba4 15745 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 15746 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15747 {
AzureIoTClient 28:add19eb7defa 15748 /* do nothing */
AzureIoTClient 28:add19eb7defa 15749 }
AzureIoTClient 28:add19eb7defa 15750 else
AzureIoTClient 28:add19eb7defa 15751 {
AzureIoTClient 28:add19eb7defa 15752 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15753 }
AzureIoTClient 28:add19eb7defa 15754 }
AzureIoTClient 28:add19eb7defa 15755 /* correlation-id */
AzureIoTClient 28:add19eb7defa 15756 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 15757 {
AzureIoTClient 23:1111ee8bcba4 15758 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 15759 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15760 {
AzureIoTClient 28:add19eb7defa 15761 /* do nothing */
AzureIoTClient 28:add19eb7defa 15762 }
AzureIoTClient 28:add19eb7defa 15763 else
AzureIoTClient 28:add19eb7defa 15764 {
AzureIoTClient 28:add19eb7defa 15765 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15766 }
AzureIoTClient 28:add19eb7defa 15767 }
AzureIoTClient 28:add19eb7defa 15768 /* content-type */
AzureIoTClient 28:add19eb7defa 15769 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 15770 {
AzureIoTClient 23:1111ee8bcba4 15771 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 15772 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15773 {
AzureIoTClient 28:add19eb7defa 15774 /* do nothing */
AzureIoTClient 28:add19eb7defa 15775 }
AzureIoTClient 28:add19eb7defa 15776 else
AzureIoTClient 28:add19eb7defa 15777 {
AzureIoTClient 28:add19eb7defa 15778 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15779 {
AzureIoTClient 28:add19eb7defa 15780 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15781 }
AzureIoTClient 28:add19eb7defa 15782 else
AzureIoTClient 28:add19eb7defa 15783 {
AzureIoTClient 28:add19eb7defa 15784 const char* content_type;
AzureIoTClient 28:add19eb7defa 15785 if (amqpvalue_get_symbol(item_value, &content_type) != 0)
AzureIoTClient 28:add19eb7defa 15786 {
AzureIoTClient 28:add19eb7defa 15787 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15788 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15789 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15790 break;
AzureIoTClient 28:add19eb7defa 15791 }
AzureIoTClient 28:add19eb7defa 15792 }
AzureIoTClient 28:add19eb7defa 15793
AzureIoTClient 28:add19eb7defa 15794 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15795 }
AzureIoTClient 28:add19eb7defa 15796 }
AzureIoTClient 28:add19eb7defa 15797 /* content-encoding */
AzureIoTClient 28:add19eb7defa 15798 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 15799 {
AzureIoTClient 23:1111ee8bcba4 15800 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 15801 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15802 {
AzureIoTClient 28:add19eb7defa 15803 /* do nothing */
AzureIoTClient 28:add19eb7defa 15804 }
AzureIoTClient 28:add19eb7defa 15805 else
AzureIoTClient 28:add19eb7defa 15806 {
AzureIoTClient 28:add19eb7defa 15807 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15808 {
AzureIoTClient 28:add19eb7defa 15809 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15810 }
AzureIoTClient 28:add19eb7defa 15811 else
AzureIoTClient 28:add19eb7defa 15812 {
AzureIoTClient 28:add19eb7defa 15813 const char* content_encoding;
AzureIoTClient 28:add19eb7defa 15814 if (amqpvalue_get_symbol(item_value, &content_encoding) != 0)
AzureIoTClient 28:add19eb7defa 15815 {
AzureIoTClient 28:add19eb7defa 15816 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15817 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15818 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15819 break;
AzureIoTClient 28:add19eb7defa 15820 }
AzureIoTClient 28:add19eb7defa 15821 }
AzureIoTClient 28:add19eb7defa 15822
AzureIoTClient 28:add19eb7defa 15823 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15824 }
AzureIoTClient 28:add19eb7defa 15825 }
AzureIoTClient 28:add19eb7defa 15826 /* absolute-expiry-time */
AzureIoTClient 28:add19eb7defa 15827 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 15828 {
AzureIoTClient 23:1111ee8bcba4 15829 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 15830 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15831 {
AzureIoTClient 28:add19eb7defa 15832 /* do nothing */
AzureIoTClient 28:add19eb7defa 15833 }
AzureIoTClient 28:add19eb7defa 15834 else
AzureIoTClient 28:add19eb7defa 15835 {
AzureIoTClient 28:add19eb7defa 15836 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15837 {
AzureIoTClient 28:add19eb7defa 15838 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15839 }
AzureIoTClient 28:add19eb7defa 15840 else
AzureIoTClient 28:add19eb7defa 15841 {
AzureIoTClient 28:add19eb7defa 15842 timestamp absolute_expiry_time;
AzureIoTClient 28:add19eb7defa 15843 if (amqpvalue_get_timestamp(item_value, &absolute_expiry_time) != 0)
AzureIoTClient 28:add19eb7defa 15844 {
AzureIoTClient 28:add19eb7defa 15845 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15846 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15847 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15848 break;
AzureIoTClient 28:add19eb7defa 15849 }
AzureIoTClient 28:add19eb7defa 15850 }
AzureIoTClient 28:add19eb7defa 15851
AzureIoTClient 28:add19eb7defa 15852 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15853 }
AzureIoTClient 28:add19eb7defa 15854 }
AzureIoTClient 28:add19eb7defa 15855 /* creation-time */
AzureIoTClient 28:add19eb7defa 15856 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 15857 {
AzureIoTClient 23:1111ee8bcba4 15858 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 15859 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15860 {
AzureIoTClient 28:add19eb7defa 15861 /* do nothing */
AzureIoTClient 28:add19eb7defa 15862 }
AzureIoTClient 28:add19eb7defa 15863 else
AzureIoTClient 28:add19eb7defa 15864 {
AzureIoTClient 28:add19eb7defa 15865 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15866 {
AzureIoTClient 28:add19eb7defa 15867 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15868 }
AzureIoTClient 28:add19eb7defa 15869 else
AzureIoTClient 28:add19eb7defa 15870 {
AzureIoTClient 28:add19eb7defa 15871 timestamp creation_time;
AzureIoTClient 28:add19eb7defa 15872 if (amqpvalue_get_timestamp(item_value, &creation_time) != 0)
AzureIoTClient 28:add19eb7defa 15873 {
AzureIoTClient 28:add19eb7defa 15874 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15875 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15876 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15877 break;
AzureIoTClient 28:add19eb7defa 15878 }
AzureIoTClient 28:add19eb7defa 15879 }
AzureIoTClient 28:add19eb7defa 15880
AzureIoTClient 28:add19eb7defa 15881 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15882 }
AzureIoTClient 28:add19eb7defa 15883 }
AzureIoTClient 28:add19eb7defa 15884 /* group-id */
AzureIoTClient 28:add19eb7defa 15885 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 15886 {
AzureIoTClient 23:1111ee8bcba4 15887 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 15888 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15889 {
AzureIoTClient 28:add19eb7defa 15890 /* do nothing */
AzureIoTClient 28:add19eb7defa 15891 }
AzureIoTClient 28:add19eb7defa 15892 else
AzureIoTClient 28:add19eb7defa 15893 {
AzureIoTClient 28:add19eb7defa 15894 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15895 {
AzureIoTClient 28:add19eb7defa 15896 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15897 }
AzureIoTClient 28:add19eb7defa 15898 else
AzureIoTClient 28:add19eb7defa 15899 {
AzureIoTClient 28:add19eb7defa 15900 const char* group_id;
AzureIoTClient 28:add19eb7defa 15901 if (amqpvalue_get_string(item_value, &group_id) != 0)
AzureIoTClient 28:add19eb7defa 15902 {
AzureIoTClient 28:add19eb7defa 15903 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15904 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15905 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15906 break;
AzureIoTClient 28:add19eb7defa 15907 }
AzureIoTClient 28:add19eb7defa 15908 }
AzureIoTClient 28:add19eb7defa 15909
AzureIoTClient 28:add19eb7defa 15910 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15911 }
AzureIoTClient 28:add19eb7defa 15912 }
AzureIoTClient 28:add19eb7defa 15913 /* group-sequence */
AzureIoTClient 28:add19eb7defa 15914 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 15915 {
AzureIoTClient 23:1111ee8bcba4 15916 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 28:add19eb7defa 15917 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15918 {
AzureIoTClient 28:add19eb7defa 15919 /* do nothing */
AzureIoTClient 28:add19eb7defa 15920 }
AzureIoTClient 28:add19eb7defa 15921 else
AzureIoTClient 28:add19eb7defa 15922 {
AzureIoTClient 28:add19eb7defa 15923 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15924 {
AzureIoTClient 28:add19eb7defa 15925 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15926 }
AzureIoTClient 28:add19eb7defa 15927 else
AzureIoTClient 28:add19eb7defa 15928 {
AzureIoTClient 28:add19eb7defa 15929 sequence_no group_sequence;
AzureIoTClient 28:add19eb7defa 15930 if (amqpvalue_get_sequence_no(item_value, &group_sequence) != 0)
AzureIoTClient 28:add19eb7defa 15931 {
AzureIoTClient 28:add19eb7defa 15932 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15933 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15934 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15935 break;
AzureIoTClient 28:add19eb7defa 15936 }
AzureIoTClient 28:add19eb7defa 15937 }
AzureIoTClient 28:add19eb7defa 15938
AzureIoTClient 28:add19eb7defa 15939 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15940 }
AzureIoTClient 28:add19eb7defa 15941 }
AzureIoTClient 28:add19eb7defa 15942 /* reply-to-group-id */
AzureIoTClient 28:add19eb7defa 15943 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 15944 {
AzureIoTClient 23:1111ee8bcba4 15945 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 28:add19eb7defa 15946 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15947 {
AzureIoTClient 28:add19eb7defa 15948 /* do nothing */
AzureIoTClient 28:add19eb7defa 15949 }
AzureIoTClient 28:add19eb7defa 15950 else
AzureIoTClient 28:add19eb7defa 15951 {
AzureIoTClient 28:add19eb7defa 15952 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15953 {
AzureIoTClient 28:add19eb7defa 15954 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15955 }
AzureIoTClient 28:add19eb7defa 15956 else
AzureIoTClient 28:add19eb7defa 15957 {
AzureIoTClient 28:add19eb7defa 15958 const char* reply_to_group_id;
AzureIoTClient 28:add19eb7defa 15959 if (amqpvalue_get_string(item_value, &reply_to_group_id) != 0)
AzureIoTClient 28:add19eb7defa 15960 {
AzureIoTClient 28:add19eb7defa 15961 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15962 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15963 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15964 break;
AzureIoTClient 28:add19eb7defa 15965 }
AzureIoTClient 28:add19eb7defa 15966 }
AzureIoTClient 28:add19eb7defa 15967
AzureIoTClient 28:add19eb7defa 15968 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15969 }
AzureIoTClient 28:add19eb7defa 15970 }
AzureIoTClient 28:add19eb7defa 15971
AzureIoTClient 28:add19eb7defa 15972 properties_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15973
AzureIoTClient 28:add19eb7defa 15974 result = 0;
AzureIoTClient 28:add19eb7defa 15975 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 15976 }
AzureIoTClient 28:add19eb7defa 15977 }
AzureIoTClient 28:add19eb7defa 15978 }
AzureIoTClient 28:add19eb7defa 15979
AzureIoTClient 28:add19eb7defa 15980 return result;
Azure.IoT Build 0:6ae2f7bca550 15981 }
Azure.IoT Build 0:6ae2f7bca550 15982
Azure.IoT Build 0:6ae2f7bca550 15983 int properties_get_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE* message_id_value)
Azure.IoT Build 0:6ae2f7bca550 15984 {
AzureIoTClient 28:add19eb7defa 15985 int result;
AzureIoTClient 28:add19eb7defa 15986
AzureIoTClient 28:add19eb7defa 15987 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15988 {
AzureIoTClient 28:add19eb7defa 15989 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15990 }
AzureIoTClient 28:add19eb7defa 15991 else
AzureIoTClient 28:add19eb7defa 15992 {
AzureIoTClient 28:add19eb7defa 15993 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15994 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15995 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15996 {
AzureIoTClient 23:1111ee8bcba4 15997 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15998 }
AzureIoTClient 23:1111ee8bcba4 15999 else
AzureIoTClient 23:1111ee8bcba4 16000 {
AzureIoTClient 23:1111ee8bcba4 16001 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 16002 {
AzureIoTClient 28:add19eb7defa 16003 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16004 }
AzureIoTClient 28:add19eb7defa 16005 else
AzureIoTClient 28:add19eb7defa 16006 {
AzureIoTClient 28:add19eb7defa 16007 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 16008 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16009 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16010 {
AzureIoTClient 28:add19eb7defa 16011 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16012 }
AzureIoTClient 28:add19eb7defa 16013 else
AzureIoTClient 28:add19eb7defa 16014 {
AzureIoTClient 28:add19eb7defa 16015 *message_id_value = item_value;
AzureIoTClient 28:add19eb7defa 16016 result = 0;
AzureIoTClient 28:add19eb7defa 16017 }
AzureIoTClient 28:add19eb7defa 16018 }
AzureIoTClient 28:add19eb7defa 16019 }
AzureIoTClient 28:add19eb7defa 16020 }
AzureIoTClient 28:add19eb7defa 16021
AzureIoTClient 28:add19eb7defa 16022 return result;
Azure.IoT Build 0:6ae2f7bca550 16023 }
Azure.IoT Build 0:6ae2f7bca550 16024
Azure.IoT Build 0:6ae2f7bca550 16025 int properties_set_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE message_id_value)
Azure.IoT Build 0:6ae2f7bca550 16026 {
AzureIoTClient 28:add19eb7defa 16027 int result;
AzureIoTClient 28:add19eb7defa 16028
AzureIoTClient 28:add19eb7defa 16029 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16030 {
AzureIoTClient 28:add19eb7defa 16031 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16032 }
AzureIoTClient 28:add19eb7defa 16033 else
AzureIoTClient 28:add19eb7defa 16034 {
AzureIoTClient 28:add19eb7defa 16035 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16036 AMQP_VALUE message_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16037 if (message_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16038 {
AzureIoTClient 23:1111ee8bcba4 16039 message_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16040 }
AzureIoTClient 23:1111ee8bcba4 16041 else
AzureIoTClient 23:1111ee8bcba4 16042 {
AzureIoTClient 23:1111ee8bcba4 16043 message_id_amqp_value = amqpvalue_clone(message_id_value);
AzureIoTClient 23:1111ee8bcba4 16044 }
AzureIoTClient 28:add19eb7defa 16045 if (message_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16046 {
AzureIoTClient 28:add19eb7defa 16047 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16048 }
AzureIoTClient 28:add19eb7defa 16049 else
AzureIoTClient 28:add19eb7defa 16050 {
AzureIoTClient 28:add19eb7defa 16051 if (amqpvalue_set_composite_item(properties_instance->composite_value, 0, message_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16052 {
AzureIoTClient 28:add19eb7defa 16053 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16054 }
AzureIoTClient 28:add19eb7defa 16055 else
AzureIoTClient 28:add19eb7defa 16056 {
AzureIoTClient 28:add19eb7defa 16057 result = 0;
AzureIoTClient 28:add19eb7defa 16058 }
AzureIoTClient 28:add19eb7defa 16059
AzureIoTClient 28:add19eb7defa 16060 amqpvalue_destroy(message_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16061 }
AzureIoTClient 28:add19eb7defa 16062 }
AzureIoTClient 28:add19eb7defa 16063
AzureIoTClient 28:add19eb7defa 16064 return result;
Azure.IoT Build 0:6ae2f7bca550 16065 }
Azure.IoT Build 0:6ae2f7bca550 16066
Azure.IoT Build 0:6ae2f7bca550 16067 int properties_get_user_id(PROPERTIES_HANDLE properties, amqp_binary* user_id_value)
Azure.IoT Build 0:6ae2f7bca550 16068 {
AzureIoTClient 28:add19eb7defa 16069 int result;
AzureIoTClient 28:add19eb7defa 16070
AzureIoTClient 28:add19eb7defa 16071 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16072 {
AzureIoTClient 28:add19eb7defa 16073 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16074 }
AzureIoTClient 28:add19eb7defa 16075 else
AzureIoTClient 28:add19eb7defa 16076 {
AzureIoTClient 28:add19eb7defa 16077 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16078 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16079 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16080 {
AzureIoTClient 23:1111ee8bcba4 16081 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16082 }
AzureIoTClient 23:1111ee8bcba4 16083 else
AzureIoTClient 23:1111ee8bcba4 16084 {
AzureIoTClient 23:1111ee8bcba4 16085 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 16086 {
AzureIoTClient 28:add19eb7defa 16087 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16088 }
AzureIoTClient 28:add19eb7defa 16089 else
AzureIoTClient 28:add19eb7defa 16090 {
AzureIoTClient 28:add19eb7defa 16091 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 16092 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16093 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16094 {
AzureIoTClient 28:add19eb7defa 16095 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16096 }
AzureIoTClient 28:add19eb7defa 16097 else
AzureIoTClient 28:add19eb7defa 16098 {
AzureIoTClient 28:add19eb7defa 16099 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16100 if ((get_single_value_result = amqpvalue_get_binary(item_value, user_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 16101 {
AzureIoTClient 28:add19eb7defa 16102 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16103 }
AzureIoTClient 28:add19eb7defa 16104 else
AzureIoTClient 28:add19eb7defa 16105 {
AzureIoTClient 28:add19eb7defa 16106 result = 0;
AzureIoTClient 28:add19eb7defa 16107 }
AzureIoTClient 28:add19eb7defa 16108 }
AzureIoTClient 28:add19eb7defa 16109 }
AzureIoTClient 28:add19eb7defa 16110 }
AzureIoTClient 28:add19eb7defa 16111 }
AzureIoTClient 28:add19eb7defa 16112
AzureIoTClient 28:add19eb7defa 16113 return result;
Azure.IoT Build 0:6ae2f7bca550 16114 }
Azure.IoT Build 0:6ae2f7bca550 16115
Azure.IoT Build 0:6ae2f7bca550 16116 int properties_set_user_id(PROPERTIES_HANDLE properties, amqp_binary user_id_value)
Azure.IoT Build 0:6ae2f7bca550 16117 {
AzureIoTClient 28:add19eb7defa 16118 int result;
AzureIoTClient 28:add19eb7defa 16119
AzureIoTClient 28:add19eb7defa 16120 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16121 {
AzureIoTClient 28:add19eb7defa 16122 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16123 }
AzureIoTClient 28:add19eb7defa 16124 else
AzureIoTClient 28:add19eb7defa 16125 {
AzureIoTClient 28:add19eb7defa 16126 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16127 AMQP_VALUE user_id_amqp_value = amqpvalue_create_binary(user_id_value);
AzureIoTClient 28:add19eb7defa 16128 if (user_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16129 {
AzureIoTClient 28:add19eb7defa 16130 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16131 }
AzureIoTClient 28:add19eb7defa 16132 else
AzureIoTClient 28:add19eb7defa 16133 {
AzureIoTClient 28:add19eb7defa 16134 if (amqpvalue_set_composite_item(properties_instance->composite_value, 1, user_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16135 {
AzureIoTClient 28:add19eb7defa 16136 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16137 }
AzureIoTClient 28:add19eb7defa 16138 else
AzureIoTClient 28:add19eb7defa 16139 {
AzureIoTClient 28:add19eb7defa 16140 result = 0;
AzureIoTClient 28:add19eb7defa 16141 }
AzureIoTClient 28:add19eb7defa 16142
AzureIoTClient 28:add19eb7defa 16143 amqpvalue_destroy(user_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16144 }
AzureIoTClient 28:add19eb7defa 16145 }
AzureIoTClient 28:add19eb7defa 16146
AzureIoTClient 28:add19eb7defa 16147 return result;
Azure.IoT Build 0:6ae2f7bca550 16148 }
Azure.IoT Build 0:6ae2f7bca550 16149
Azure.IoT Build 0:6ae2f7bca550 16150 int properties_get_to(PROPERTIES_HANDLE properties, AMQP_VALUE* to_value)
Azure.IoT Build 0:6ae2f7bca550 16151 {
AzureIoTClient 28:add19eb7defa 16152 int result;
AzureIoTClient 28:add19eb7defa 16153
AzureIoTClient 28:add19eb7defa 16154 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16155 {
AzureIoTClient 28:add19eb7defa 16156 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16157 }
AzureIoTClient 28:add19eb7defa 16158 else
AzureIoTClient 28:add19eb7defa 16159 {
AzureIoTClient 28:add19eb7defa 16160 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16161 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16162 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16163 {
AzureIoTClient 23:1111ee8bcba4 16164 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16165 }
AzureIoTClient 23:1111ee8bcba4 16166 else
AzureIoTClient 23:1111ee8bcba4 16167 {
AzureIoTClient 23:1111ee8bcba4 16168 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 16169 {
AzureIoTClient 28:add19eb7defa 16170 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16171 }
AzureIoTClient 28:add19eb7defa 16172 else
AzureIoTClient 28:add19eb7defa 16173 {
AzureIoTClient 28:add19eb7defa 16174 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 16175 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16176 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16177 {
AzureIoTClient 28:add19eb7defa 16178 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16179 }
AzureIoTClient 28:add19eb7defa 16180 else
AzureIoTClient 28:add19eb7defa 16181 {
AzureIoTClient 28:add19eb7defa 16182 *to_value = item_value;
AzureIoTClient 28:add19eb7defa 16183 result = 0;
AzureIoTClient 28:add19eb7defa 16184 }
AzureIoTClient 28:add19eb7defa 16185 }
AzureIoTClient 28:add19eb7defa 16186 }
AzureIoTClient 28:add19eb7defa 16187 }
AzureIoTClient 28:add19eb7defa 16188
AzureIoTClient 28:add19eb7defa 16189 return result;
Azure.IoT Build 0:6ae2f7bca550 16190 }
Azure.IoT Build 0:6ae2f7bca550 16191
Azure.IoT Build 0:6ae2f7bca550 16192 int properties_set_to(PROPERTIES_HANDLE properties, AMQP_VALUE to_value)
Azure.IoT Build 0:6ae2f7bca550 16193 {
AzureIoTClient 28:add19eb7defa 16194 int result;
AzureIoTClient 28:add19eb7defa 16195
AzureIoTClient 28:add19eb7defa 16196 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16197 {
AzureIoTClient 28:add19eb7defa 16198 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16199 }
AzureIoTClient 28:add19eb7defa 16200 else
AzureIoTClient 28:add19eb7defa 16201 {
AzureIoTClient 28:add19eb7defa 16202 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16203 AMQP_VALUE to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16204 if (to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16205 {
AzureIoTClient 23:1111ee8bcba4 16206 to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16207 }
AzureIoTClient 23:1111ee8bcba4 16208 else
AzureIoTClient 23:1111ee8bcba4 16209 {
AzureIoTClient 23:1111ee8bcba4 16210 to_amqp_value = amqpvalue_clone(to_value);
AzureIoTClient 23:1111ee8bcba4 16211 }
AzureIoTClient 28:add19eb7defa 16212 if (to_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16213 {
AzureIoTClient 28:add19eb7defa 16214 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16215 }
AzureIoTClient 28:add19eb7defa 16216 else
AzureIoTClient 28:add19eb7defa 16217 {
AzureIoTClient 28:add19eb7defa 16218 if (amqpvalue_set_composite_item(properties_instance->composite_value, 2, to_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16219 {
AzureIoTClient 28:add19eb7defa 16220 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16221 }
AzureIoTClient 28:add19eb7defa 16222 else
AzureIoTClient 28:add19eb7defa 16223 {
AzureIoTClient 28:add19eb7defa 16224 result = 0;
AzureIoTClient 28:add19eb7defa 16225 }
AzureIoTClient 28:add19eb7defa 16226
AzureIoTClient 28:add19eb7defa 16227 amqpvalue_destroy(to_amqp_value);
AzureIoTClient 28:add19eb7defa 16228 }
AzureIoTClient 28:add19eb7defa 16229 }
AzureIoTClient 28:add19eb7defa 16230
AzureIoTClient 28:add19eb7defa 16231 return result;
Azure.IoT Build 0:6ae2f7bca550 16232 }
Azure.IoT Build 0:6ae2f7bca550 16233
Azure.IoT Build 0:6ae2f7bca550 16234 int properties_get_subject(PROPERTIES_HANDLE properties, const char** subject_value)
Azure.IoT Build 0:6ae2f7bca550 16235 {
AzureIoTClient 28:add19eb7defa 16236 int result;
AzureIoTClient 28:add19eb7defa 16237
AzureIoTClient 28:add19eb7defa 16238 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16239 {
AzureIoTClient 28:add19eb7defa 16240 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16241 }
AzureIoTClient 28:add19eb7defa 16242 else
AzureIoTClient 28:add19eb7defa 16243 {
AzureIoTClient 28:add19eb7defa 16244 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16245 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16246 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16247 {
AzureIoTClient 23:1111ee8bcba4 16248 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16249 }
AzureIoTClient 23:1111ee8bcba4 16250 else
AzureIoTClient 23:1111ee8bcba4 16251 {
AzureIoTClient 23:1111ee8bcba4 16252 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 16253 {
AzureIoTClient 28:add19eb7defa 16254 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16255 }
AzureIoTClient 28:add19eb7defa 16256 else
AzureIoTClient 28:add19eb7defa 16257 {
AzureIoTClient 28:add19eb7defa 16258 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 16259 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16260 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16261 {
AzureIoTClient 28:add19eb7defa 16262 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16263 }
AzureIoTClient 28:add19eb7defa 16264 else
AzureIoTClient 28:add19eb7defa 16265 {
AzureIoTClient 28:add19eb7defa 16266 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16267 if ((get_single_value_result = amqpvalue_get_string(item_value, subject_value)) != 0)
AzureIoTClient 28:add19eb7defa 16268 {
AzureIoTClient 28:add19eb7defa 16269 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16270 }
AzureIoTClient 28:add19eb7defa 16271 else
AzureIoTClient 28:add19eb7defa 16272 {
AzureIoTClient 28:add19eb7defa 16273 result = 0;
AzureIoTClient 28:add19eb7defa 16274 }
AzureIoTClient 28:add19eb7defa 16275 }
AzureIoTClient 28:add19eb7defa 16276 }
AzureIoTClient 28:add19eb7defa 16277 }
AzureIoTClient 28:add19eb7defa 16278 }
AzureIoTClient 28:add19eb7defa 16279
AzureIoTClient 28:add19eb7defa 16280 return result;
Azure.IoT Build 0:6ae2f7bca550 16281 }
Azure.IoT Build 0:6ae2f7bca550 16282
Azure.IoT Build 0:6ae2f7bca550 16283 int properties_set_subject(PROPERTIES_HANDLE properties, const char* subject_value)
Azure.IoT Build 0:6ae2f7bca550 16284 {
AzureIoTClient 28:add19eb7defa 16285 int result;
AzureIoTClient 28:add19eb7defa 16286
AzureIoTClient 28:add19eb7defa 16287 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16288 {
AzureIoTClient 28:add19eb7defa 16289 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16290 }
AzureIoTClient 28:add19eb7defa 16291 else
AzureIoTClient 28:add19eb7defa 16292 {
AzureIoTClient 28:add19eb7defa 16293 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16294 AMQP_VALUE subject_amqp_value = amqpvalue_create_string(subject_value);
AzureIoTClient 28:add19eb7defa 16295 if (subject_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16296 {
AzureIoTClient 28:add19eb7defa 16297 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16298 }
AzureIoTClient 28:add19eb7defa 16299 else
AzureIoTClient 28:add19eb7defa 16300 {
AzureIoTClient 28:add19eb7defa 16301 if (amqpvalue_set_composite_item(properties_instance->composite_value, 3, subject_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16302 {
AzureIoTClient 28:add19eb7defa 16303 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16304 }
AzureIoTClient 28:add19eb7defa 16305 else
AzureIoTClient 28:add19eb7defa 16306 {
AzureIoTClient 28:add19eb7defa 16307 result = 0;
AzureIoTClient 28:add19eb7defa 16308 }
AzureIoTClient 28:add19eb7defa 16309
AzureIoTClient 28:add19eb7defa 16310 amqpvalue_destroy(subject_amqp_value);
AzureIoTClient 28:add19eb7defa 16311 }
AzureIoTClient 28:add19eb7defa 16312 }
AzureIoTClient 28:add19eb7defa 16313
AzureIoTClient 28:add19eb7defa 16314 return result;
Azure.IoT Build 0:6ae2f7bca550 16315 }
Azure.IoT Build 0:6ae2f7bca550 16316
Azure.IoT Build 0:6ae2f7bca550 16317 int properties_get_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE* reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 16318 {
AzureIoTClient 28:add19eb7defa 16319 int result;
AzureIoTClient 28:add19eb7defa 16320
AzureIoTClient 28:add19eb7defa 16321 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16322 {
AzureIoTClient 28:add19eb7defa 16323 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16324 }
AzureIoTClient 28:add19eb7defa 16325 else
AzureIoTClient 28:add19eb7defa 16326 {
AzureIoTClient 28:add19eb7defa 16327 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16328 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16329 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16330 {
AzureIoTClient 23:1111ee8bcba4 16331 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16332 }
AzureIoTClient 23:1111ee8bcba4 16333 else
AzureIoTClient 23:1111ee8bcba4 16334 {
AzureIoTClient 23:1111ee8bcba4 16335 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 16336 {
AzureIoTClient 28:add19eb7defa 16337 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16338 }
AzureIoTClient 28:add19eb7defa 16339 else
AzureIoTClient 28:add19eb7defa 16340 {
AzureIoTClient 28:add19eb7defa 16341 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 16342 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16343 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16344 {
AzureIoTClient 28:add19eb7defa 16345 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16346 }
AzureIoTClient 28:add19eb7defa 16347 else
AzureIoTClient 28:add19eb7defa 16348 {
AzureIoTClient 28:add19eb7defa 16349 *reply_to_value = item_value;
AzureIoTClient 28:add19eb7defa 16350 result = 0;
AzureIoTClient 28:add19eb7defa 16351 }
AzureIoTClient 28:add19eb7defa 16352 }
AzureIoTClient 28:add19eb7defa 16353 }
AzureIoTClient 28:add19eb7defa 16354 }
AzureIoTClient 28:add19eb7defa 16355
AzureIoTClient 28:add19eb7defa 16356 return result;
Azure.IoT Build 0:6ae2f7bca550 16357 }
Azure.IoT Build 0:6ae2f7bca550 16358
Azure.IoT Build 0:6ae2f7bca550 16359 int properties_set_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 16360 {
AzureIoTClient 28:add19eb7defa 16361 int result;
AzureIoTClient 28:add19eb7defa 16362
AzureIoTClient 28:add19eb7defa 16363 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16364 {
AzureIoTClient 28:add19eb7defa 16365 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16366 }
AzureIoTClient 28:add19eb7defa 16367 else
AzureIoTClient 28:add19eb7defa 16368 {
AzureIoTClient 28:add19eb7defa 16369 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16370 AMQP_VALUE reply_to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16371 if (reply_to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16372 {
AzureIoTClient 23:1111ee8bcba4 16373 reply_to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16374 }
AzureIoTClient 23:1111ee8bcba4 16375 else
AzureIoTClient 23:1111ee8bcba4 16376 {
AzureIoTClient 23:1111ee8bcba4 16377 reply_to_amqp_value = amqpvalue_clone(reply_to_value);
AzureIoTClient 23:1111ee8bcba4 16378 }
AzureIoTClient 28:add19eb7defa 16379 if (reply_to_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16380 {
AzureIoTClient 28:add19eb7defa 16381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16382 }
AzureIoTClient 28:add19eb7defa 16383 else
AzureIoTClient 28:add19eb7defa 16384 {
AzureIoTClient 28:add19eb7defa 16385 if (amqpvalue_set_composite_item(properties_instance->composite_value, 4, reply_to_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16386 {
AzureIoTClient 28:add19eb7defa 16387 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16388 }
AzureIoTClient 28:add19eb7defa 16389 else
AzureIoTClient 28:add19eb7defa 16390 {
AzureIoTClient 28:add19eb7defa 16391 result = 0;
AzureIoTClient 28:add19eb7defa 16392 }
AzureIoTClient 28:add19eb7defa 16393
AzureIoTClient 28:add19eb7defa 16394 amqpvalue_destroy(reply_to_amqp_value);
AzureIoTClient 28:add19eb7defa 16395 }
AzureIoTClient 28:add19eb7defa 16396 }
AzureIoTClient 28:add19eb7defa 16397
AzureIoTClient 28:add19eb7defa 16398 return result;
Azure.IoT Build 0:6ae2f7bca550 16399 }
Azure.IoT Build 0:6ae2f7bca550 16400
Azure.IoT Build 0:6ae2f7bca550 16401 int properties_get_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE* correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 16402 {
AzureIoTClient 28:add19eb7defa 16403 int result;
AzureIoTClient 28:add19eb7defa 16404
AzureIoTClient 28:add19eb7defa 16405 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16406 {
AzureIoTClient 28:add19eb7defa 16407 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16408 }
AzureIoTClient 28:add19eb7defa 16409 else
AzureIoTClient 28:add19eb7defa 16410 {
AzureIoTClient 28:add19eb7defa 16411 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16412 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16413 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16414 {
AzureIoTClient 23:1111ee8bcba4 16415 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16416 }
AzureIoTClient 23:1111ee8bcba4 16417 else
AzureIoTClient 23:1111ee8bcba4 16418 {
AzureIoTClient 23:1111ee8bcba4 16419 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 16420 {
AzureIoTClient 28:add19eb7defa 16421 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16422 }
AzureIoTClient 28:add19eb7defa 16423 else
AzureIoTClient 28:add19eb7defa 16424 {
AzureIoTClient 28:add19eb7defa 16425 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 16426 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16427 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16428 {
AzureIoTClient 28:add19eb7defa 16429 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16430 }
AzureIoTClient 28:add19eb7defa 16431 else
AzureIoTClient 28:add19eb7defa 16432 {
AzureIoTClient 28:add19eb7defa 16433 *correlation_id_value = item_value;
AzureIoTClient 28:add19eb7defa 16434 result = 0;
AzureIoTClient 28:add19eb7defa 16435 }
AzureIoTClient 28:add19eb7defa 16436 }
AzureIoTClient 28:add19eb7defa 16437 }
AzureIoTClient 28:add19eb7defa 16438 }
AzureIoTClient 28:add19eb7defa 16439
AzureIoTClient 28:add19eb7defa 16440 return result;
Azure.IoT Build 0:6ae2f7bca550 16441 }
Azure.IoT Build 0:6ae2f7bca550 16442
Azure.IoT Build 0:6ae2f7bca550 16443 int properties_set_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 16444 {
AzureIoTClient 28:add19eb7defa 16445 int result;
AzureIoTClient 28:add19eb7defa 16446
AzureIoTClient 28:add19eb7defa 16447 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16448 {
AzureIoTClient 28:add19eb7defa 16449 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16450 }
AzureIoTClient 28:add19eb7defa 16451 else
AzureIoTClient 28:add19eb7defa 16452 {
AzureIoTClient 28:add19eb7defa 16453 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16454 AMQP_VALUE correlation_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16455 if (correlation_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16456 {
AzureIoTClient 23:1111ee8bcba4 16457 correlation_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16458 }
AzureIoTClient 23:1111ee8bcba4 16459 else
AzureIoTClient 23:1111ee8bcba4 16460 {
AzureIoTClient 23:1111ee8bcba4 16461 correlation_id_amqp_value = amqpvalue_clone(correlation_id_value);
AzureIoTClient 23:1111ee8bcba4 16462 }
AzureIoTClient 28:add19eb7defa 16463 if (correlation_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16464 {
AzureIoTClient 28:add19eb7defa 16465 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16466 }
AzureIoTClient 28:add19eb7defa 16467 else
AzureIoTClient 28:add19eb7defa 16468 {
AzureIoTClient 28:add19eb7defa 16469 if (amqpvalue_set_composite_item(properties_instance->composite_value, 5, correlation_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16470 {
AzureIoTClient 28:add19eb7defa 16471 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16472 }
AzureIoTClient 28:add19eb7defa 16473 else
AzureIoTClient 28:add19eb7defa 16474 {
AzureIoTClient 28:add19eb7defa 16475 result = 0;
AzureIoTClient 28:add19eb7defa 16476 }
AzureIoTClient 28:add19eb7defa 16477
AzureIoTClient 28:add19eb7defa 16478 amqpvalue_destroy(correlation_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16479 }
AzureIoTClient 28:add19eb7defa 16480 }
AzureIoTClient 28:add19eb7defa 16481
AzureIoTClient 28:add19eb7defa 16482 return result;
Azure.IoT Build 0:6ae2f7bca550 16483 }
Azure.IoT Build 0:6ae2f7bca550 16484
Azure.IoT Build 0:6ae2f7bca550 16485 int properties_get_content_type(PROPERTIES_HANDLE properties, const char** content_type_value)
Azure.IoT Build 0:6ae2f7bca550 16486 {
AzureIoTClient 28:add19eb7defa 16487 int result;
AzureIoTClient 28:add19eb7defa 16488
AzureIoTClient 28:add19eb7defa 16489 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16490 {
AzureIoTClient 28:add19eb7defa 16491 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16492 }
AzureIoTClient 28:add19eb7defa 16493 else
AzureIoTClient 28:add19eb7defa 16494 {
AzureIoTClient 28:add19eb7defa 16495 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16496 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16497 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16498 {
AzureIoTClient 23:1111ee8bcba4 16499 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16500 }
AzureIoTClient 23:1111ee8bcba4 16501 else
AzureIoTClient 23:1111ee8bcba4 16502 {
AzureIoTClient 23:1111ee8bcba4 16503 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 16504 {
AzureIoTClient 28:add19eb7defa 16505 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16506 }
AzureIoTClient 28:add19eb7defa 16507 else
AzureIoTClient 28:add19eb7defa 16508 {
AzureIoTClient 28:add19eb7defa 16509 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 16510 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16511 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16512 {
AzureIoTClient 28:add19eb7defa 16513 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16514 }
AzureIoTClient 28:add19eb7defa 16515 else
AzureIoTClient 28:add19eb7defa 16516 {
AzureIoTClient 28:add19eb7defa 16517 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16518 if ((get_single_value_result = amqpvalue_get_symbol(item_value, content_type_value)) != 0)
AzureIoTClient 28:add19eb7defa 16519 {
AzureIoTClient 28:add19eb7defa 16520 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16521 }
AzureIoTClient 28:add19eb7defa 16522 else
AzureIoTClient 28:add19eb7defa 16523 {
AzureIoTClient 28:add19eb7defa 16524 result = 0;
AzureIoTClient 28:add19eb7defa 16525 }
AzureIoTClient 28:add19eb7defa 16526 }
AzureIoTClient 28:add19eb7defa 16527 }
AzureIoTClient 28:add19eb7defa 16528 }
AzureIoTClient 28:add19eb7defa 16529 }
AzureIoTClient 28:add19eb7defa 16530
AzureIoTClient 28:add19eb7defa 16531 return result;
Azure.IoT Build 0:6ae2f7bca550 16532 }
Azure.IoT Build 0:6ae2f7bca550 16533
Azure.IoT Build 0:6ae2f7bca550 16534 int properties_set_content_type(PROPERTIES_HANDLE properties, const char* content_type_value)
Azure.IoT Build 0:6ae2f7bca550 16535 {
AzureIoTClient 28:add19eb7defa 16536 int result;
AzureIoTClient 28:add19eb7defa 16537
AzureIoTClient 28:add19eb7defa 16538 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16539 {
AzureIoTClient 28:add19eb7defa 16540 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16541 }
AzureIoTClient 28:add19eb7defa 16542 else
AzureIoTClient 28:add19eb7defa 16543 {
AzureIoTClient 28:add19eb7defa 16544 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16545 AMQP_VALUE content_type_amqp_value = amqpvalue_create_symbol(content_type_value);
AzureIoTClient 28:add19eb7defa 16546 if (content_type_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16547 {
AzureIoTClient 28:add19eb7defa 16548 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16549 }
AzureIoTClient 28:add19eb7defa 16550 else
AzureIoTClient 28:add19eb7defa 16551 {
AzureIoTClient 28:add19eb7defa 16552 if (amqpvalue_set_composite_item(properties_instance->composite_value, 6, content_type_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16553 {
AzureIoTClient 28:add19eb7defa 16554 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16555 }
AzureIoTClient 28:add19eb7defa 16556 else
AzureIoTClient 28:add19eb7defa 16557 {
AzureIoTClient 28:add19eb7defa 16558 result = 0;
AzureIoTClient 28:add19eb7defa 16559 }
AzureIoTClient 28:add19eb7defa 16560
AzureIoTClient 28:add19eb7defa 16561 amqpvalue_destroy(content_type_amqp_value);
AzureIoTClient 28:add19eb7defa 16562 }
AzureIoTClient 28:add19eb7defa 16563 }
AzureIoTClient 28:add19eb7defa 16564
AzureIoTClient 28:add19eb7defa 16565 return result;
Azure.IoT Build 0:6ae2f7bca550 16566 }
Azure.IoT Build 0:6ae2f7bca550 16567
Azure.IoT Build 0:6ae2f7bca550 16568 int properties_get_content_encoding(PROPERTIES_HANDLE properties, const char** content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 16569 {
AzureIoTClient 28:add19eb7defa 16570 int result;
AzureIoTClient 28:add19eb7defa 16571
AzureIoTClient 28:add19eb7defa 16572 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16573 {
AzureIoTClient 28:add19eb7defa 16574 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16575 }
AzureIoTClient 28:add19eb7defa 16576 else
AzureIoTClient 28:add19eb7defa 16577 {
AzureIoTClient 28:add19eb7defa 16578 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16579 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16580 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16581 {
AzureIoTClient 23:1111ee8bcba4 16582 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16583 }
AzureIoTClient 23:1111ee8bcba4 16584 else
AzureIoTClient 23:1111ee8bcba4 16585 {
AzureIoTClient 23:1111ee8bcba4 16586 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 16587 {
AzureIoTClient 28:add19eb7defa 16588 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16589 }
AzureIoTClient 28:add19eb7defa 16590 else
AzureIoTClient 28:add19eb7defa 16591 {
AzureIoTClient 28:add19eb7defa 16592 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 16593 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16594 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16595 {
AzureIoTClient 28:add19eb7defa 16596 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16597 }
AzureIoTClient 28:add19eb7defa 16598 else
AzureIoTClient 28:add19eb7defa 16599 {
AzureIoTClient 28:add19eb7defa 16600 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16601 if ((get_single_value_result = amqpvalue_get_symbol(item_value, content_encoding_value)) != 0)
AzureIoTClient 28:add19eb7defa 16602 {
AzureIoTClient 28:add19eb7defa 16603 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16604 }
AzureIoTClient 28:add19eb7defa 16605 else
AzureIoTClient 28:add19eb7defa 16606 {
AzureIoTClient 28:add19eb7defa 16607 result = 0;
AzureIoTClient 28:add19eb7defa 16608 }
AzureIoTClient 28:add19eb7defa 16609 }
AzureIoTClient 28:add19eb7defa 16610 }
AzureIoTClient 28:add19eb7defa 16611 }
AzureIoTClient 28:add19eb7defa 16612 }
AzureIoTClient 28:add19eb7defa 16613
AzureIoTClient 28:add19eb7defa 16614 return result;
Azure.IoT Build 0:6ae2f7bca550 16615 }
Azure.IoT Build 0:6ae2f7bca550 16616
Azure.IoT Build 0:6ae2f7bca550 16617 int properties_set_content_encoding(PROPERTIES_HANDLE properties, const char* content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 16618 {
AzureIoTClient 28:add19eb7defa 16619 int result;
AzureIoTClient 28:add19eb7defa 16620
AzureIoTClient 28:add19eb7defa 16621 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16622 {
AzureIoTClient 28:add19eb7defa 16623 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16624 }
AzureIoTClient 28:add19eb7defa 16625 else
AzureIoTClient 28:add19eb7defa 16626 {
AzureIoTClient 28:add19eb7defa 16627 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16628 AMQP_VALUE content_encoding_amqp_value = amqpvalue_create_symbol(content_encoding_value);
AzureIoTClient 28:add19eb7defa 16629 if (content_encoding_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16630 {
AzureIoTClient 28:add19eb7defa 16631 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16632 }
AzureIoTClient 28:add19eb7defa 16633 else
AzureIoTClient 28:add19eb7defa 16634 {
AzureIoTClient 28:add19eb7defa 16635 if (amqpvalue_set_composite_item(properties_instance->composite_value, 7, content_encoding_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16636 {
AzureIoTClient 28:add19eb7defa 16637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16638 }
AzureIoTClient 28:add19eb7defa 16639 else
AzureIoTClient 28:add19eb7defa 16640 {
AzureIoTClient 28:add19eb7defa 16641 result = 0;
AzureIoTClient 28:add19eb7defa 16642 }
AzureIoTClient 28:add19eb7defa 16643
AzureIoTClient 28:add19eb7defa 16644 amqpvalue_destroy(content_encoding_amqp_value);
AzureIoTClient 28:add19eb7defa 16645 }
AzureIoTClient 28:add19eb7defa 16646 }
AzureIoTClient 28:add19eb7defa 16647
AzureIoTClient 28:add19eb7defa 16648 return result;
Azure.IoT Build 0:6ae2f7bca550 16649 }
Azure.IoT Build 0:6ae2f7bca550 16650
Azure.IoT Build 0:6ae2f7bca550 16651 int properties_get_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp* absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 16652 {
AzureIoTClient 28:add19eb7defa 16653 int result;
AzureIoTClient 28:add19eb7defa 16654
AzureIoTClient 28:add19eb7defa 16655 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16656 {
AzureIoTClient 28:add19eb7defa 16657 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16658 }
AzureIoTClient 28:add19eb7defa 16659 else
AzureIoTClient 28:add19eb7defa 16660 {
AzureIoTClient 28:add19eb7defa 16661 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16662 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16663 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16664 {
AzureIoTClient 23:1111ee8bcba4 16665 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16666 }
AzureIoTClient 23:1111ee8bcba4 16667 else
AzureIoTClient 23:1111ee8bcba4 16668 {
AzureIoTClient 23:1111ee8bcba4 16669 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 16670 {
AzureIoTClient 28:add19eb7defa 16671 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16672 }
AzureIoTClient 28:add19eb7defa 16673 else
AzureIoTClient 28:add19eb7defa 16674 {
AzureIoTClient 28:add19eb7defa 16675 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 16676 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16677 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16678 {
AzureIoTClient 28:add19eb7defa 16679 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16680 }
AzureIoTClient 28:add19eb7defa 16681 else
AzureIoTClient 28:add19eb7defa 16682 {
AzureIoTClient 28:add19eb7defa 16683 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16684 if ((get_single_value_result = amqpvalue_get_timestamp(item_value, absolute_expiry_time_value)) != 0)
AzureIoTClient 28:add19eb7defa 16685 {
AzureIoTClient 28:add19eb7defa 16686 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16687 }
AzureIoTClient 28:add19eb7defa 16688 else
AzureIoTClient 28:add19eb7defa 16689 {
AzureIoTClient 28:add19eb7defa 16690 result = 0;
AzureIoTClient 28:add19eb7defa 16691 }
AzureIoTClient 28:add19eb7defa 16692 }
AzureIoTClient 28:add19eb7defa 16693 }
AzureIoTClient 28:add19eb7defa 16694 }
AzureIoTClient 28:add19eb7defa 16695 }
AzureIoTClient 28:add19eb7defa 16696
AzureIoTClient 28:add19eb7defa 16697 return result;
Azure.IoT Build 0:6ae2f7bca550 16698 }
Azure.IoT Build 0:6ae2f7bca550 16699
Azure.IoT Build 0:6ae2f7bca550 16700 int properties_set_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 16701 {
AzureIoTClient 28:add19eb7defa 16702 int result;
AzureIoTClient 28:add19eb7defa 16703
AzureIoTClient 28:add19eb7defa 16704 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16705 {
AzureIoTClient 28:add19eb7defa 16706 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16707 }
AzureIoTClient 28:add19eb7defa 16708 else
AzureIoTClient 28:add19eb7defa 16709 {
AzureIoTClient 28:add19eb7defa 16710 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16711 AMQP_VALUE absolute_expiry_time_amqp_value = amqpvalue_create_timestamp(absolute_expiry_time_value);
AzureIoTClient 28:add19eb7defa 16712 if (absolute_expiry_time_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16713 {
AzureIoTClient 28:add19eb7defa 16714 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16715 }
AzureIoTClient 28:add19eb7defa 16716 else
AzureIoTClient 28:add19eb7defa 16717 {
AzureIoTClient 28:add19eb7defa 16718 if (amqpvalue_set_composite_item(properties_instance->composite_value, 8, absolute_expiry_time_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16719 {
AzureIoTClient 28:add19eb7defa 16720 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16721 }
AzureIoTClient 28:add19eb7defa 16722 else
AzureIoTClient 28:add19eb7defa 16723 {
AzureIoTClient 28:add19eb7defa 16724 result = 0;
AzureIoTClient 28:add19eb7defa 16725 }
AzureIoTClient 28:add19eb7defa 16726
AzureIoTClient 28:add19eb7defa 16727 amqpvalue_destroy(absolute_expiry_time_amqp_value);
AzureIoTClient 28:add19eb7defa 16728 }
AzureIoTClient 28:add19eb7defa 16729 }
AzureIoTClient 28:add19eb7defa 16730
AzureIoTClient 28:add19eb7defa 16731 return result;
Azure.IoT Build 0:6ae2f7bca550 16732 }
Azure.IoT Build 0:6ae2f7bca550 16733
Azure.IoT Build 0:6ae2f7bca550 16734 int properties_get_creation_time(PROPERTIES_HANDLE properties, timestamp* creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16735 {
AzureIoTClient 28:add19eb7defa 16736 int result;
AzureIoTClient 28:add19eb7defa 16737
AzureIoTClient 28:add19eb7defa 16738 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16739 {
AzureIoTClient 28:add19eb7defa 16740 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16741 }
AzureIoTClient 28:add19eb7defa 16742 else
AzureIoTClient 28:add19eb7defa 16743 {
AzureIoTClient 28:add19eb7defa 16744 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16745 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16746 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16747 {
AzureIoTClient 23:1111ee8bcba4 16748 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16749 }
AzureIoTClient 23:1111ee8bcba4 16750 else
AzureIoTClient 23:1111ee8bcba4 16751 {
AzureIoTClient 23:1111ee8bcba4 16752 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 16753 {
AzureIoTClient 28:add19eb7defa 16754 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16755 }
AzureIoTClient 28:add19eb7defa 16756 else
AzureIoTClient 28:add19eb7defa 16757 {
AzureIoTClient 28:add19eb7defa 16758 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 16759 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16760 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16761 {
AzureIoTClient 28:add19eb7defa 16762 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16763 }
AzureIoTClient 28:add19eb7defa 16764 else
AzureIoTClient 28:add19eb7defa 16765 {
AzureIoTClient 28:add19eb7defa 16766 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16767 if ((get_single_value_result = amqpvalue_get_timestamp(item_value, creation_time_value)) != 0)
AzureIoTClient 28:add19eb7defa 16768 {
AzureIoTClient 28:add19eb7defa 16769 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16770 }
AzureIoTClient 28:add19eb7defa 16771 else
AzureIoTClient 28:add19eb7defa 16772 {
AzureIoTClient 28:add19eb7defa 16773 result = 0;
AzureIoTClient 28:add19eb7defa 16774 }
AzureIoTClient 28:add19eb7defa 16775 }
AzureIoTClient 28:add19eb7defa 16776 }
AzureIoTClient 28:add19eb7defa 16777 }
AzureIoTClient 28:add19eb7defa 16778 }
AzureIoTClient 28:add19eb7defa 16779
AzureIoTClient 28:add19eb7defa 16780 return result;
Azure.IoT Build 0:6ae2f7bca550 16781 }
Azure.IoT Build 0:6ae2f7bca550 16782
Azure.IoT Build 0:6ae2f7bca550 16783 int properties_set_creation_time(PROPERTIES_HANDLE properties, timestamp creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16784 {
AzureIoTClient 28:add19eb7defa 16785 int result;
AzureIoTClient 28:add19eb7defa 16786
AzureIoTClient 28:add19eb7defa 16787 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16788 {
AzureIoTClient 28:add19eb7defa 16789 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16790 }
AzureIoTClient 28:add19eb7defa 16791 else
AzureIoTClient 28:add19eb7defa 16792 {
AzureIoTClient 28:add19eb7defa 16793 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16794 AMQP_VALUE creation_time_amqp_value = amqpvalue_create_timestamp(creation_time_value);
AzureIoTClient 28:add19eb7defa 16795 if (creation_time_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16796 {
AzureIoTClient 28:add19eb7defa 16797 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16798 }
AzureIoTClient 28:add19eb7defa 16799 else
AzureIoTClient 28:add19eb7defa 16800 {
AzureIoTClient 28:add19eb7defa 16801 if (amqpvalue_set_composite_item(properties_instance->composite_value, 9, creation_time_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16802 {
AzureIoTClient 28:add19eb7defa 16803 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16804 }
AzureIoTClient 28:add19eb7defa 16805 else
AzureIoTClient 28:add19eb7defa 16806 {
AzureIoTClient 28:add19eb7defa 16807 result = 0;
AzureIoTClient 28:add19eb7defa 16808 }
AzureIoTClient 28:add19eb7defa 16809
AzureIoTClient 28:add19eb7defa 16810 amqpvalue_destroy(creation_time_amqp_value);
AzureIoTClient 28:add19eb7defa 16811 }
AzureIoTClient 28:add19eb7defa 16812 }
AzureIoTClient 28:add19eb7defa 16813
AzureIoTClient 28:add19eb7defa 16814 return result;
Azure.IoT Build 0:6ae2f7bca550 16815 }
Azure.IoT Build 0:6ae2f7bca550 16816
Azure.IoT Build 0:6ae2f7bca550 16817 int properties_get_group_id(PROPERTIES_HANDLE properties, const char** group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16818 {
AzureIoTClient 28:add19eb7defa 16819 int result;
AzureIoTClient 28:add19eb7defa 16820
AzureIoTClient 28:add19eb7defa 16821 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16822 {
AzureIoTClient 28:add19eb7defa 16823 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16824 }
AzureIoTClient 28:add19eb7defa 16825 else
AzureIoTClient 28:add19eb7defa 16826 {
AzureIoTClient 28:add19eb7defa 16827 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16828 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16829 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16830 {
AzureIoTClient 23:1111ee8bcba4 16831 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16832 }
AzureIoTClient 23:1111ee8bcba4 16833 else
AzureIoTClient 23:1111ee8bcba4 16834 {
AzureIoTClient 23:1111ee8bcba4 16835 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 16836 {
AzureIoTClient 28:add19eb7defa 16837 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16838 }
AzureIoTClient 28:add19eb7defa 16839 else
AzureIoTClient 28:add19eb7defa 16840 {
AzureIoTClient 28:add19eb7defa 16841 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 16842 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16843 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16844 {
AzureIoTClient 28:add19eb7defa 16845 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16846 }
AzureIoTClient 28:add19eb7defa 16847 else
AzureIoTClient 28:add19eb7defa 16848 {
AzureIoTClient 28:add19eb7defa 16849 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16850 if ((get_single_value_result = amqpvalue_get_string(item_value, group_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 16851 {
AzureIoTClient 28:add19eb7defa 16852 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16853 }
AzureIoTClient 28:add19eb7defa 16854 else
AzureIoTClient 28:add19eb7defa 16855 {
AzureIoTClient 28:add19eb7defa 16856 result = 0;
AzureIoTClient 28:add19eb7defa 16857 }
AzureIoTClient 28:add19eb7defa 16858 }
AzureIoTClient 28:add19eb7defa 16859 }
AzureIoTClient 28:add19eb7defa 16860 }
AzureIoTClient 28:add19eb7defa 16861 }
AzureIoTClient 28:add19eb7defa 16862
AzureIoTClient 28:add19eb7defa 16863 return result;
Azure.IoT Build 0:6ae2f7bca550 16864 }
Azure.IoT Build 0:6ae2f7bca550 16865
Azure.IoT Build 0:6ae2f7bca550 16866 int properties_set_group_id(PROPERTIES_HANDLE properties, const char* group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16867 {
AzureIoTClient 28:add19eb7defa 16868 int result;
AzureIoTClient 28:add19eb7defa 16869
AzureIoTClient 28:add19eb7defa 16870 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16871 {
AzureIoTClient 28:add19eb7defa 16872 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16873 }
AzureIoTClient 28:add19eb7defa 16874 else
AzureIoTClient 28:add19eb7defa 16875 {
AzureIoTClient 28:add19eb7defa 16876 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16877 AMQP_VALUE group_id_amqp_value = amqpvalue_create_string(group_id_value);
AzureIoTClient 28:add19eb7defa 16878 if (group_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16879 {
AzureIoTClient 28:add19eb7defa 16880 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16881 }
AzureIoTClient 28:add19eb7defa 16882 else
AzureIoTClient 28:add19eb7defa 16883 {
AzureIoTClient 28:add19eb7defa 16884 if (amqpvalue_set_composite_item(properties_instance->composite_value, 10, group_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16885 {
AzureIoTClient 28:add19eb7defa 16886 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16887 }
AzureIoTClient 28:add19eb7defa 16888 else
AzureIoTClient 28:add19eb7defa 16889 {
AzureIoTClient 28:add19eb7defa 16890 result = 0;
AzureIoTClient 28:add19eb7defa 16891 }
AzureIoTClient 28:add19eb7defa 16892
AzureIoTClient 28:add19eb7defa 16893 amqpvalue_destroy(group_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16894 }
AzureIoTClient 28:add19eb7defa 16895 }
AzureIoTClient 28:add19eb7defa 16896
AzureIoTClient 28:add19eb7defa 16897 return result;
Azure.IoT Build 0:6ae2f7bca550 16898 }
Azure.IoT Build 0:6ae2f7bca550 16899
Azure.IoT Build 0:6ae2f7bca550 16900 int properties_get_group_sequence(PROPERTIES_HANDLE properties, sequence_no* group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16901 {
AzureIoTClient 28:add19eb7defa 16902 int result;
AzureIoTClient 28:add19eb7defa 16903
AzureIoTClient 28:add19eb7defa 16904 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16905 {
AzureIoTClient 28:add19eb7defa 16906 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16907 }
AzureIoTClient 28:add19eb7defa 16908 else
AzureIoTClient 28:add19eb7defa 16909 {
AzureIoTClient 28:add19eb7defa 16910 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16911 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16912 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16913 {
AzureIoTClient 23:1111ee8bcba4 16914 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16915 }
AzureIoTClient 23:1111ee8bcba4 16916 else
AzureIoTClient 23:1111ee8bcba4 16917 {
AzureIoTClient 23:1111ee8bcba4 16918 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 16919 {
AzureIoTClient 28:add19eb7defa 16920 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16921 }
AzureIoTClient 28:add19eb7defa 16922 else
AzureIoTClient 28:add19eb7defa 16923 {
AzureIoTClient 28:add19eb7defa 16924 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 11);
AzureIoTClient 28:add19eb7defa 16925 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16926 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16927 {
AzureIoTClient 28:add19eb7defa 16928 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16929 }
AzureIoTClient 28:add19eb7defa 16930 else
AzureIoTClient 28:add19eb7defa 16931 {
AzureIoTClient 28:add19eb7defa 16932 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16933 if ((get_single_value_result = amqpvalue_get_sequence_no(item_value, group_sequence_value)) != 0)
AzureIoTClient 28:add19eb7defa 16934 {
AzureIoTClient 28:add19eb7defa 16935 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16936 }
AzureIoTClient 28:add19eb7defa 16937 else
AzureIoTClient 28:add19eb7defa 16938 {
AzureIoTClient 28:add19eb7defa 16939 result = 0;
AzureIoTClient 28:add19eb7defa 16940 }
AzureIoTClient 28:add19eb7defa 16941 }
AzureIoTClient 28:add19eb7defa 16942 }
AzureIoTClient 28:add19eb7defa 16943 }
AzureIoTClient 28:add19eb7defa 16944 }
AzureIoTClient 28:add19eb7defa 16945
AzureIoTClient 28:add19eb7defa 16946 return result;
Azure.IoT Build 0:6ae2f7bca550 16947 }
Azure.IoT Build 0:6ae2f7bca550 16948
Azure.IoT Build 0:6ae2f7bca550 16949 int properties_set_group_sequence(PROPERTIES_HANDLE properties, sequence_no group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16950 {
AzureIoTClient 28:add19eb7defa 16951 int result;
AzureIoTClient 28:add19eb7defa 16952
AzureIoTClient 28:add19eb7defa 16953 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16954 {
AzureIoTClient 28:add19eb7defa 16955 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16956 }
AzureIoTClient 28:add19eb7defa 16957 else
AzureIoTClient 28:add19eb7defa 16958 {
AzureIoTClient 28:add19eb7defa 16959 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16960 AMQP_VALUE group_sequence_amqp_value = amqpvalue_create_sequence_no(group_sequence_value);
AzureIoTClient 28:add19eb7defa 16961 if (group_sequence_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16962 {
AzureIoTClient 28:add19eb7defa 16963 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16964 }
AzureIoTClient 28:add19eb7defa 16965 else
AzureIoTClient 28:add19eb7defa 16966 {
AzureIoTClient 28:add19eb7defa 16967 if (amqpvalue_set_composite_item(properties_instance->composite_value, 11, group_sequence_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16968 {
AzureIoTClient 28:add19eb7defa 16969 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16970 }
AzureIoTClient 28:add19eb7defa 16971 else
AzureIoTClient 28:add19eb7defa 16972 {
AzureIoTClient 28:add19eb7defa 16973 result = 0;
AzureIoTClient 28:add19eb7defa 16974 }
AzureIoTClient 28:add19eb7defa 16975
AzureIoTClient 28:add19eb7defa 16976 amqpvalue_destroy(group_sequence_amqp_value);
AzureIoTClient 28:add19eb7defa 16977 }
AzureIoTClient 28:add19eb7defa 16978 }
AzureIoTClient 28:add19eb7defa 16979
AzureIoTClient 28:add19eb7defa 16980 return result;
Azure.IoT Build 0:6ae2f7bca550 16981 }
Azure.IoT Build 0:6ae2f7bca550 16982
Azure.IoT Build 0:6ae2f7bca550 16983 int properties_get_reply_to_group_id(PROPERTIES_HANDLE properties, const char** reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16984 {
AzureIoTClient 28:add19eb7defa 16985 int result;
AzureIoTClient 28:add19eb7defa 16986
AzureIoTClient 28:add19eb7defa 16987 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16988 {
AzureIoTClient 28:add19eb7defa 16989 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16990 }
AzureIoTClient 28:add19eb7defa 16991 else
AzureIoTClient 28:add19eb7defa 16992 {
AzureIoTClient 28:add19eb7defa 16993 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16994 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16995 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16996 {
AzureIoTClient 23:1111ee8bcba4 16997 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16998 }
AzureIoTClient 23:1111ee8bcba4 16999 else
AzureIoTClient 23:1111ee8bcba4 17000 {
AzureIoTClient 23:1111ee8bcba4 17001 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 17002 {
AzureIoTClient 28:add19eb7defa 17003 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17004 }
AzureIoTClient 28:add19eb7defa 17005 else
AzureIoTClient 28:add19eb7defa 17006 {
AzureIoTClient 28:add19eb7defa 17007 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 12);
AzureIoTClient 28:add19eb7defa 17008 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17009 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17010 {
AzureIoTClient 28:add19eb7defa 17011 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17012 }
AzureIoTClient 28:add19eb7defa 17013 else
AzureIoTClient 28:add19eb7defa 17014 {
AzureIoTClient 28:add19eb7defa 17015 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17016 if ((get_single_value_result = amqpvalue_get_string(item_value, reply_to_group_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 17017 {
AzureIoTClient 28:add19eb7defa 17018 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17019 }
AzureIoTClient 28:add19eb7defa 17020 else
AzureIoTClient 28:add19eb7defa 17021 {
AzureIoTClient 28:add19eb7defa 17022 result = 0;
AzureIoTClient 28:add19eb7defa 17023 }
AzureIoTClient 28:add19eb7defa 17024 }
AzureIoTClient 28:add19eb7defa 17025 }
AzureIoTClient 28:add19eb7defa 17026 }
AzureIoTClient 28:add19eb7defa 17027 }
AzureIoTClient 28:add19eb7defa 17028
AzureIoTClient 28:add19eb7defa 17029 return result;
Azure.IoT Build 0:6ae2f7bca550 17030 }
Azure.IoT Build 0:6ae2f7bca550 17031
Azure.IoT Build 0:6ae2f7bca550 17032 int properties_set_reply_to_group_id(PROPERTIES_HANDLE properties, const char* reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 17033 {
AzureIoTClient 28:add19eb7defa 17034 int result;
AzureIoTClient 28:add19eb7defa 17035
AzureIoTClient 28:add19eb7defa 17036 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 17037 {
AzureIoTClient 28:add19eb7defa 17038 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17039 }
AzureIoTClient 28:add19eb7defa 17040 else
AzureIoTClient 28:add19eb7defa 17041 {
AzureIoTClient 28:add19eb7defa 17042 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 17043 AMQP_VALUE reply_to_group_id_amqp_value = amqpvalue_create_string(reply_to_group_id_value);
AzureIoTClient 28:add19eb7defa 17044 if (reply_to_group_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17045 {
AzureIoTClient 28:add19eb7defa 17046 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17047 }
AzureIoTClient 28:add19eb7defa 17048 else
AzureIoTClient 28:add19eb7defa 17049 {
AzureIoTClient 28:add19eb7defa 17050 if (amqpvalue_set_composite_item(properties_instance->composite_value, 12, reply_to_group_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17051 {
AzureIoTClient 28:add19eb7defa 17052 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17053 }
AzureIoTClient 28:add19eb7defa 17054 else
AzureIoTClient 28:add19eb7defa 17055 {
AzureIoTClient 28:add19eb7defa 17056 result = 0;
AzureIoTClient 28:add19eb7defa 17057 }
AzureIoTClient 28:add19eb7defa 17058
AzureIoTClient 28:add19eb7defa 17059 amqpvalue_destroy(reply_to_group_id_amqp_value);
AzureIoTClient 28:add19eb7defa 17060 }
AzureIoTClient 28:add19eb7defa 17061 }
AzureIoTClient 28:add19eb7defa 17062
AzureIoTClient 28:add19eb7defa 17063 return result;
Azure.IoT Build 0:6ae2f7bca550 17064 }
Azure.IoT Build 0:6ae2f7bca550 17065
Azure.IoT Build 0:6ae2f7bca550 17066
Azure.IoT Build 0:6ae2f7bca550 17067 /* received */
Azure.IoT Build 0:6ae2f7bca550 17068
Azure.IoT Build 0:6ae2f7bca550 17069 typedef struct RECEIVED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17070 {
AzureIoTClient 28:add19eb7defa 17071 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17072 } RECEIVED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17073
Azure.IoT Build 0:6ae2f7bca550 17074 static RECEIVED_HANDLE received_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17075 {
AzureIoTClient 28:add19eb7defa 17076 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17077 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17078 {
AzureIoTClient 28:add19eb7defa 17079 received_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17080 }
AzureIoTClient 28:add19eb7defa 17081
AzureIoTClient 28:add19eb7defa 17082 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17083 }
Azure.IoT Build 0:6ae2f7bca550 17084
Azure.IoT Build 0:6ae2f7bca550 17085 RECEIVED_HANDLE received_create(uint32_t section_number_value, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17086 {
AzureIoTClient 28:add19eb7defa 17087 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17088 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17089 {
AzureIoTClient 28:add19eb7defa 17090 received_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(35);
AzureIoTClient 28:add19eb7defa 17091 if (received_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17092 {
AzureIoTClient 28:add19eb7defa 17093 free(received_instance);
AzureIoTClient 28:add19eb7defa 17094 received_instance = NULL;
AzureIoTClient 28:add19eb7defa 17095 }
AzureIoTClient 28:add19eb7defa 17096 else
AzureIoTClient 28:add19eb7defa 17097 {
AzureIoTClient 28:add19eb7defa 17098 AMQP_VALUE section_number_amqp_value;
AzureIoTClient 28:add19eb7defa 17099 AMQP_VALUE section_offset_amqp_value;
AzureIoTClient 28:add19eb7defa 17100 int result = 0;
AzureIoTClient 28:add19eb7defa 17101
AzureIoTClient 28:add19eb7defa 17102 section_number_amqp_value = amqpvalue_create_uint(section_number_value);
AzureIoTClient 28:add19eb7defa 17103 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 17104 {
AzureIoTClient 28:add19eb7defa 17105 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17106 }
AzureIoTClient 28:add19eb7defa 17107 section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
AzureIoTClient 28:add19eb7defa 17108 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 17109 {
AzureIoTClient 28:add19eb7defa 17110 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17111 }
AzureIoTClient 28:add19eb7defa 17112
AzureIoTClient 28:add19eb7defa 17113 amqpvalue_destroy(section_number_amqp_value);
AzureIoTClient 28:add19eb7defa 17114 amqpvalue_destroy(section_offset_amqp_value);
AzureIoTClient 28:add19eb7defa 17115 }
AzureIoTClient 28:add19eb7defa 17116 }
AzureIoTClient 28:add19eb7defa 17117
AzureIoTClient 28:add19eb7defa 17118 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17119 }
Azure.IoT Build 0:6ae2f7bca550 17120
Azure.IoT Build 0:6ae2f7bca550 17121 RECEIVED_HANDLE received_clone(RECEIVED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17122 {
AzureIoTClient 28:add19eb7defa 17123 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17124 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17125 {
AzureIoTClient 28:add19eb7defa 17126 received_instance->composite_value = amqpvalue_clone(((RECEIVED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17127 if (received_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17128 {
AzureIoTClient 28:add19eb7defa 17129 free(received_instance);
AzureIoTClient 28:add19eb7defa 17130 received_instance = NULL;
AzureIoTClient 28:add19eb7defa 17131 }
AzureIoTClient 28:add19eb7defa 17132 }
AzureIoTClient 28:add19eb7defa 17133
AzureIoTClient 28:add19eb7defa 17134 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17135 }
Azure.IoT Build 0:6ae2f7bca550 17136
Azure.IoT Build 0:6ae2f7bca550 17137 void received_destroy(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 17138 {
AzureIoTClient 28:add19eb7defa 17139 if (received != NULL)
AzureIoTClient 28:add19eb7defa 17140 {
AzureIoTClient 28:add19eb7defa 17141 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17142 amqpvalue_destroy(received_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17143 free(received_instance);
AzureIoTClient 28:add19eb7defa 17144 }
Azure.IoT Build 0:6ae2f7bca550 17145 }
Azure.IoT Build 0:6ae2f7bca550 17146
Azure.IoT Build 0:6ae2f7bca550 17147 AMQP_VALUE amqpvalue_create_received(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 17148 {
AzureIoTClient 28:add19eb7defa 17149 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17150
AzureIoTClient 28:add19eb7defa 17151 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17152 {
AzureIoTClient 28:add19eb7defa 17153 result = NULL;
AzureIoTClient 28:add19eb7defa 17154 }
AzureIoTClient 28:add19eb7defa 17155 else
AzureIoTClient 28:add19eb7defa 17156 {
AzureIoTClient 28:add19eb7defa 17157 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17158 result = amqpvalue_clone(received_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17159 }
AzureIoTClient 28:add19eb7defa 17160
AzureIoTClient 28:add19eb7defa 17161 return result;
Azure.IoT Build 0:6ae2f7bca550 17162 }
Azure.IoT Build 0:6ae2f7bca550 17163
Azure.IoT Build 0:6ae2f7bca550 17164 bool is_received_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17165 {
AzureIoTClient 28:add19eb7defa 17166 bool result;
AzureIoTClient 28:add19eb7defa 17167
AzureIoTClient 28:add19eb7defa 17168 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17169 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17170 (descriptor_ulong == 35))
AzureIoTClient 28:add19eb7defa 17171 {
AzureIoTClient 28:add19eb7defa 17172 result = true;
AzureIoTClient 28:add19eb7defa 17173 }
AzureIoTClient 28:add19eb7defa 17174 else
AzureIoTClient 28:add19eb7defa 17175 {
AzureIoTClient 28:add19eb7defa 17176 result = false;
AzureIoTClient 28:add19eb7defa 17177 }
AzureIoTClient 28:add19eb7defa 17178
AzureIoTClient 28:add19eb7defa 17179 return result;
Azure.IoT Build 0:6ae2f7bca550 17180 }
Azure.IoT Build 0:6ae2f7bca550 17181
Azure.IoT Build 0:6ae2f7bca550 17182
Azure.IoT Build 0:6ae2f7bca550 17183 int amqpvalue_get_received(AMQP_VALUE value, RECEIVED_HANDLE* received_handle)
Azure.IoT Build 0:6ae2f7bca550 17184 {
AzureIoTClient 28:add19eb7defa 17185 int result;
AzureIoTClient 28:add19eb7defa 17186 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received_create_internal();
AzureIoTClient 28:add19eb7defa 17187 *received_handle = received_instance;
AzureIoTClient 28:add19eb7defa 17188 if (*received_handle == NULL)
AzureIoTClient 28:add19eb7defa 17189 {
AzureIoTClient 28:add19eb7defa 17190 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17191 }
AzureIoTClient 28:add19eb7defa 17192 else
AzureIoTClient 28:add19eb7defa 17193 {
AzureIoTClient 28:add19eb7defa 17194 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17195 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17196 {
AzureIoTClient 28:add19eb7defa 17197 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17198 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17199 }
AzureIoTClient 28:add19eb7defa 17200 else
AzureIoTClient 28:add19eb7defa 17201 {
AzureIoTClient 23:1111ee8bcba4 17202 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17203 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17204 {
AzureIoTClient 23:1111ee8bcba4 17205 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17206 }
AzureIoTClient 23:1111ee8bcba4 17207 else
AzureIoTClient 23:1111ee8bcba4 17208 {
AzureIoTClient 28:add19eb7defa 17209 do
AzureIoTClient 28:add19eb7defa 17210 {
AzureIoTClient 28:add19eb7defa 17211 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17212 /* section-number */
AzureIoTClient 28:add19eb7defa 17213 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17214 {
AzureIoTClient 23:1111ee8bcba4 17215 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17216 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17217 {
AzureIoTClient 28:add19eb7defa 17218 {
AzureIoTClient 28:add19eb7defa 17219 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17220 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17221 break;
AzureIoTClient 28:add19eb7defa 17222 }
AzureIoTClient 28:add19eb7defa 17223 }
AzureIoTClient 28:add19eb7defa 17224 else
AzureIoTClient 28:add19eb7defa 17225 {
AzureIoTClient 28:add19eb7defa 17226 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17227 {
AzureIoTClient 28:add19eb7defa 17228 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17229 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17230 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17231 break;
AzureIoTClient 28:add19eb7defa 17232 }
AzureIoTClient 28:add19eb7defa 17233 else
AzureIoTClient 28:add19eb7defa 17234 {
AzureIoTClient 28:add19eb7defa 17235 uint32_t section_number;
AzureIoTClient 28:add19eb7defa 17236 if (amqpvalue_get_uint(item_value, &section_number) != 0)
AzureIoTClient 28:add19eb7defa 17237 {
AzureIoTClient 28:add19eb7defa 17238 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17239 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17240 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17241 break;
AzureIoTClient 28:add19eb7defa 17242 }
AzureIoTClient 28:add19eb7defa 17243 }
AzureIoTClient 28:add19eb7defa 17244
AzureIoTClient 28:add19eb7defa 17245 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17246 }
AzureIoTClient 28:add19eb7defa 17247 }
AzureIoTClient 28:add19eb7defa 17248 else
AzureIoTClient 28:add19eb7defa 17249 {
AzureIoTClient 28:add19eb7defa 17250 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17251 }
AzureIoTClient 28:add19eb7defa 17252 /* section-offset */
AzureIoTClient 28:add19eb7defa 17253 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 17254 {
AzureIoTClient 23:1111ee8bcba4 17255 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 17256 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17257 {
AzureIoTClient 28:add19eb7defa 17258 {
AzureIoTClient 28:add19eb7defa 17259 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17260 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17261 break;
AzureIoTClient 28:add19eb7defa 17262 }
AzureIoTClient 28:add19eb7defa 17263 }
AzureIoTClient 28:add19eb7defa 17264 else
AzureIoTClient 28:add19eb7defa 17265 {
AzureIoTClient 28:add19eb7defa 17266 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17267 {
AzureIoTClient 28:add19eb7defa 17268 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17269 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17270 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17271 break;
AzureIoTClient 28:add19eb7defa 17272 }
AzureIoTClient 28:add19eb7defa 17273 else
AzureIoTClient 28:add19eb7defa 17274 {
AzureIoTClient 28:add19eb7defa 17275 uint64_t section_offset;
AzureIoTClient 28:add19eb7defa 17276 if (amqpvalue_get_ulong(item_value, &section_offset) != 0)
AzureIoTClient 28:add19eb7defa 17277 {
AzureIoTClient 28:add19eb7defa 17278 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17279 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17280 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17281 break;
AzureIoTClient 28:add19eb7defa 17282 }
AzureIoTClient 28:add19eb7defa 17283 }
AzureIoTClient 28:add19eb7defa 17284
AzureIoTClient 28:add19eb7defa 17285 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17286 }
AzureIoTClient 28:add19eb7defa 17287 }
AzureIoTClient 28:add19eb7defa 17288 else
AzureIoTClient 28:add19eb7defa 17289 {
AzureIoTClient 28:add19eb7defa 17290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17291 }
AzureIoTClient 28:add19eb7defa 17292
AzureIoTClient 28:add19eb7defa 17293 received_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17294
AzureIoTClient 28:add19eb7defa 17295 result = 0;
AzureIoTClient 28:add19eb7defa 17296 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17297 }
AzureIoTClient 28:add19eb7defa 17298 }
AzureIoTClient 28:add19eb7defa 17299 }
AzureIoTClient 28:add19eb7defa 17300
AzureIoTClient 28:add19eb7defa 17301 return result;
Azure.IoT Build 0:6ae2f7bca550 17302 }
Azure.IoT Build 0:6ae2f7bca550 17303
Azure.IoT Build 0:6ae2f7bca550 17304 int received_get_section_number(RECEIVED_HANDLE received, uint32_t* section_number_value)
Azure.IoT Build 0:6ae2f7bca550 17305 {
AzureIoTClient 28:add19eb7defa 17306 int result;
AzureIoTClient 28:add19eb7defa 17307
AzureIoTClient 28:add19eb7defa 17308 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17309 {
AzureIoTClient 28:add19eb7defa 17310 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17311 }
AzureIoTClient 28:add19eb7defa 17312 else
AzureIoTClient 28:add19eb7defa 17313 {
AzureIoTClient 28:add19eb7defa 17314 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17315 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 17316 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17317 {
AzureIoTClient 23:1111ee8bcba4 17318 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17319 }
AzureIoTClient 23:1111ee8bcba4 17320 else
AzureIoTClient 23:1111ee8bcba4 17321 {
AzureIoTClient 23:1111ee8bcba4 17322 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17323 {
AzureIoTClient 28:add19eb7defa 17324 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17325 }
AzureIoTClient 28:add19eb7defa 17326 else
AzureIoTClient 28:add19eb7defa 17327 {
AzureIoTClient 28:add19eb7defa 17328 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 17329 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17330 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17331 {
AzureIoTClient 28:add19eb7defa 17332 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17333 }
AzureIoTClient 28:add19eb7defa 17334 else
AzureIoTClient 28:add19eb7defa 17335 {
AzureIoTClient 28:add19eb7defa 17336 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17337 if ((get_single_value_result = amqpvalue_get_uint(item_value, section_number_value)) != 0)
AzureIoTClient 28:add19eb7defa 17338 {
AzureIoTClient 28:add19eb7defa 17339 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17340 }
AzureIoTClient 28:add19eb7defa 17341 else
AzureIoTClient 28:add19eb7defa 17342 {
AzureIoTClient 28:add19eb7defa 17343 result = 0;
AzureIoTClient 28:add19eb7defa 17344 }
AzureIoTClient 28:add19eb7defa 17345 }
AzureIoTClient 28:add19eb7defa 17346 }
AzureIoTClient 28:add19eb7defa 17347 }
AzureIoTClient 28:add19eb7defa 17348 }
AzureIoTClient 28:add19eb7defa 17349
AzureIoTClient 28:add19eb7defa 17350 return result;
Azure.IoT Build 0:6ae2f7bca550 17351 }
Azure.IoT Build 0:6ae2f7bca550 17352
Azure.IoT Build 0:6ae2f7bca550 17353 int received_set_section_number(RECEIVED_HANDLE received, uint32_t section_number_value)
Azure.IoT Build 0:6ae2f7bca550 17354 {
AzureIoTClient 28:add19eb7defa 17355 int result;
AzureIoTClient 28:add19eb7defa 17356
AzureIoTClient 28:add19eb7defa 17357 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17358 {
AzureIoTClient 28:add19eb7defa 17359 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17360 }
AzureIoTClient 28:add19eb7defa 17361 else
AzureIoTClient 28:add19eb7defa 17362 {
AzureIoTClient 28:add19eb7defa 17363 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17364 AMQP_VALUE section_number_amqp_value = amqpvalue_create_uint(section_number_value);
AzureIoTClient 28:add19eb7defa 17365 if (section_number_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17366 {
AzureIoTClient 28:add19eb7defa 17367 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17368 }
AzureIoTClient 28:add19eb7defa 17369 else
AzureIoTClient 28:add19eb7defa 17370 {
AzureIoTClient 28:add19eb7defa 17371 if (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17372 {
AzureIoTClient 28:add19eb7defa 17373 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17374 }
AzureIoTClient 28:add19eb7defa 17375 else
AzureIoTClient 28:add19eb7defa 17376 {
AzureIoTClient 28:add19eb7defa 17377 result = 0;
AzureIoTClient 28:add19eb7defa 17378 }
AzureIoTClient 28:add19eb7defa 17379
AzureIoTClient 28:add19eb7defa 17380 amqpvalue_destroy(section_number_amqp_value);
AzureIoTClient 28:add19eb7defa 17381 }
AzureIoTClient 28:add19eb7defa 17382 }
AzureIoTClient 28:add19eb7defa 17383
AzureIoTClient 28:add19eb7defa 17384 return result;
Azure.IoT Build 0:6ae2f7bca550 17385 }
Azure.IoT Build 0:6ae2f7bca550 17386
Azure.IoT Build 0:6ae2f7bca550 17387 int received_get_section_offset(RECEIVED_HANDLE received, uint64_t* section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17388 {
AzureIoTClient 28:add19eb7defa 17389 int result;
AzureIoTClient 28:add19eb7defa 17390
AzureIoTClient 28:add19eb7defa 17391 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17392 {
AzureIoTClient 28:add19eb7defa 17393 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17394 }
AzureIoTClient 28:add19eb7defa 17395 else
AzureIoTClient 28:add19eb7defa 17396 {
AzureIoTClient 28:add19eb7defa 17397 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17398 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 17399 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17400 {
AzureIoTClient 23:1111ee8bcba4 17401 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17402 }
AzureIoTClient 23:1111ee8bcba4 17403 else
AzureIoTClient 23:1111ee8bcba4 17404 {
AzureIoTClient 23:1111ee8bcba4 17405 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 17406 {
AzureIoTClient 28:add19eb7defa 17407 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17408 }
AzureIoTClient 28:add19eb7defa 17409 else
AzureIoTClient 28:add19eb7defa 17410 {
AzureIoTClient 28:add19eb7defa 17411 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 17412 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17413 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17414 {
AzureIoTClient 28:add19eb7defa 17415 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17416 }
AzureIoTClient 28:add19eb7defa 17417 else
AzureIoTClient 28:add19eb7defa 17418 {
AzureIoTClient 28:add19eb7defa 17419 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17420 if ((get_single_value_result = amqpvalue_get_ulong(item_value, section_offset_value)) != 0)
AzureIoTClient 28:add19eb7defa 17421 {
AzureIoTClient 28:add19eb7defa 17422 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17423 }
AzureIoTClient 28:add19eb7defa 17424 else
AzureIoTClient 28:add19eb7defa 17425 {
AzureIoTClient 28:add19eb7defa 17426 result = 0;
AzureIoTClient 28:add19eb7defa 17427 }
AzureIoTClient 28:add19eb7defa 17428 }
AzureIoTClient 28:add19eb7defa 17429 }
AzureIoTClient 28:add19eb7defa 17430 }
AzureIoTClient 28:add19eb7defa 17431 }
AzureIoTClient 28:add19eb7defa 17432
AzureIoTClient 28:add19eb7defa 17433 return result;
Azure.IoT Build 0:6ae2f7bca550 17434 }
Azure.IoT Build 0:6ae2f7bca550 17435
Azure.IoT Build 0:6ae2f7bca550 17436 int received_set_section_offset(RECEIVED_HANDLE received, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17437 {
AzureIoTClient 28:add19eb7defa 17438 int result;
AzureIoTClient 28:add19eb7defa 17439
AzureIoTClient 28:add19eb7defa 17440 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17441 {
AzureIoTClient 28:add19eb7defa 17442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17443 }
AzureIoTClient 28:add19eb7defa 17444 else
AzureIoTClient 28:add19eb7defa 17445 {
AzureIoTClient 28:add19eb7defa 17446 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17447 AMQP_VALUE section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
AzureIoTClient 28:add19eb7defa 17448 if (section_offset_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17449 {
AzureIoTClient 28:add19eb7defa 17450 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17451 }
AzureIoTClient 28:add19eb7defa 17452 else
AzureIoTClient 28:add19eb7defa 17453 {
AzureIoTClient 28:add19eb7defa 17454 if (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17455 {
AzureIoTClient 28:add19eb7defa 17456 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17457 }
AzureIoTClient 28:add19eb7defa 17458 else
AzureIoTClient 28:add19eb7defa 17459 {
AzureIoTClient 28:add19eb7defa 17460 result = 0;
AzureIoTClient 28:add19eb7defa 17461 }
AzureIoTClient 28:add19eb7defa 17462
AzureIoTClient 28:add19eb7defa 17463 amqpvalue_destroy(section_offset_amqp_value);
AzureIoTClient 28:add19eb7defa 17464 }
AzureIoTClient 28:add19eb7defa 17465 }
AzureIoTClient 28:add19eb7defa 17466
AzureIoTClient 28:add19eb7defa 17467 return result;
Azure.IoT Build 0:6ae2f7bca550 17468 }
Azure.IoT Build 0:6ae2f7bca550 17469
Azure.IoT Build 0:6ae2f7bca550 17470
Azure.IoT Build 0:6ae2f7bca550 17471 /* accepted */
Azure.IoT Build 0:6ae2f7bca550 17472
Azure.IoT Build 0:6ae2f7bca550 17473 typedef struct ACCEPTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17474 {
AzureIoTClient 28:add19eb7defa 17475 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17476 } ACCEPTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17477
Azure.IoT Build 0:6ae2f7bca550 17478 static ACCEPTED_HANDLE accepted_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17479 {
AzureIoTClient 28:add19eb7defa 17480 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17481 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17482 {
AzureIoTClient 28:add19eb7defa 17483 accepted_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17484 }
AzureIoTClient 28:add19eb7defa 17485
AzureIoTClient 28:add19eb7defa 17486 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17487 }
Azure.IoT Build 0:6ae2f7bca550 17488
Azure.IoT Build 0:6ae2f7bca550 17489 ACCEPTED_HANDLE accepted_create(void)
Azure.IoT Build 0:6ae2f7bca550 17490 {
AzureIoTClient 28:add19eb7defa 17491 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17492 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17493 {
AzureIoTClient 28:add19eb7defa 17494 accepted_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(36);
AzureIoTClient 28:add19eb7defa 17495 if (accepted_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17496 {
AzureIoTClient 28:add19eb7defa 17497 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17498 accepted_instance = NULL;
AzureIoTClient 28:add19eb7defa 17499 }
AzureIoTClient 28:add19eb7defa 17500 }
AzureIoTClient 28:add19eb7defa 17501
AzureIoTClient 28:add19eb7defa 17502 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17503 }
Azure.IoT Build 0:6ae2f7bca550 17504
Azure.IoT Build 0:6ae2f7bca550 17505 ACCEPTED_HANDLE accepted_clone(ACCEPTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17506 {
AzureIoTClient 28:add19eb7defa 17507 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17508 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17509 {
AzureIoTClient 28:add19eb7defa 17510 accepted_instance->composite_value = amqpvalue_clone(((ACCEPTED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17511 if (accepted_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17512 {
AzureIoTClient 28:add19eb7defa 17513 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17514 accepted_instance = NULL;
AzureIoTClient 28:add19eb7defa 17515 }
AzureIoTClient 28:add19eb7defa 17516 }
AzureIoTClient 28:add19eb7defa 17517
AzureIoTClient 28:add19eb7defa 17518 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17519 }
Azure.IoT Build 0:6ae2f7bca550 17520
Azure.IoT Build 0:6ae2f7bca550 17521 void accepted_destroy(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 17522 {
AzureIoTClient 28:add19eb7defa 17523 if (accepted != NULL)
AzureIoTClient 28:add19eb7defa 17524 {
AzureIoTClient 28:add19eb7defa 17525 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
AzureIoTClient 28:add19eb7defa 17526 amqpvalue_destroy(accepted_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17527 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17528 }
Azure.IoT Build 0:6ae2f7bca550 17529 }
Azure.IoT Build 0:6ae2f7bca550 17530
Azure.IoT Build 0:6ae2f7bca550 17531 AMQP_VALUE amqpvalue_create_accepted(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 17532 {
AzureIoTClient 28:add19eb7defa 17533 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17534
AzureIoTClient 28:add19eb7defa 17535 if (accepted == NULL)
AzureIoTClient 28:add19eb7defa 17536 {
AzureIoTClient 28:add19eb7defa 17537 result = NULL;
AzureIoTClient 28:add19eb7defa 17538 }
AzureIoTClient 28:add19eb7defa 17539 else
AzureIoTClient 28:add19eb7defa 17540 {
AzureIoTClient 28:add19eb7defa 17541 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
AzureIoTClient 28:add19eb7defa 17542 result = amqpvalue_clone(accepted_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17543 }
AzureIoTClient 28:add19eb7defa 17544
AzureIoTClient 28:add19eb7defa 17545 return result;
Azure.IoT Build 0:6ae2f7bca550 17546 }
Azure.IoT Build 0:6ae2f7bca550 17547
Azure.IoT Build 0:6ae2f7bca550 17548 bool is_accepted_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17549 {
AzureIoTClient 28:add19eb7defa 17550 bool result;
AzureIoTClient 28:add19eb7defa 17551
AzureIoTClient 28:add19eb7defa 17552 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17553 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17554 (descriptor_ulong == 36))
AzureIoTClient 28:add19eb7defa 17555 {
AzureIoTClient 28:add19eb7defa 17556 result = true;
AzureIoTClient 28:add19eb7defa 17557 }
AzureIoTClient 28:add19eb7defa 17558 else
AzureIoTClient 28:add19eb7defa 17559 {
AzureIoTClient 28:add19eb7defa 17560 result = false;
AzureIoTClient 28:add19eb7defa 17561 }
AzureIoTClient 28:add19eb7defa 17562
AzureIoTClient 28:add19eb7defa 17563 return result;
Azure.IoT Build 0:6ae2f7bca550 17564 }
Azure.IoT Build 0:6ae2f7bca550 17565
Azure.IoT Build 0:6ae2f7bca550 17566
Azure.IoT Build 0:6ae2f7bca550 17567 int amqpvalue_get_accepted(AMQP_VALUE value, ACCEPTED_HANDLE* accepted_handle)
Azure.IoT Build 0:6ae2f7bca550 17568 {
AzureIoTClient 28:add19eb7defa 17569 int result;
AzureIoTClient 28:add19eb7defa 17570 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted_create_internal();
AzureIoTClient 28:add19eb7defa 17571 *accepted_handle = accepted_instance;
AzureIoTClient 28:add19eb7defa 17572 if (*accepted_handle == NULL)
AzureIoTClient 28:add19eb7defa 17573 {
AzureIoTClient 28:add19eb7defa 17574 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17575 }
AzureIoTClient 28:add19eb7defa 17576 else
AzureIoTClient 28:add19eb7defa 17577 {
AzureIoTClient 28:add19eb7defa 17578 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17579 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17580 {
AzureIoTClient 28:add19eb7defa 17581 accepted_destroy(*accepted_handle);
AzureIoTClient 28:add19eb7defa 17582 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17583 }
AzureIoTClient 28:add19eb7defa 17584 else
AzureIoTClient 28:add19eb7defa 17585 {
AzureIoTClient 23:1111ee8bcba4 17586 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17587 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17588 {
AzureIoTClient 23:1111ee8bcba4 17589 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17590 }
AzureIoTClient 23:1111ee8bcba4 17591 else
AzureIoTClient 23:1111ee8bcba4 17592 {
AzureIoTClient 28:add19eb7defa 17593 do
AzureIoTClient 28:add19eb7defa 17594 {
AzureIoTClient 28:add19eb7defa 17595
AzureIoTClient 28:add19eb7defa 17596 accepted_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17597
AzureIoTClient 28:add19eb7defa 17598 result = 0;
AzureIoTClient 28:add19eb7defa 17599 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17600 }
AzureIoTClient 28:add19eb7defa 17601 }
AzureIoTClient 28:add19eb7defa 17602 }
AzureIoTClient 28:add19eb7defa 17603
AzureIoTClient 28:add19eb7defa 17604 return result;
Azure.IoT Build 0:6ae2f7bca550 17605 }
Azure.IoT Build 0:6ae2f7bca550 17606
Azure.IoT Build 0:6ae2f7bca550 17607
Azure.IoT Build 0:6ae2f7bca550 17608 /* rejected */
Azure.IoT Build 0:6ae2f7bca550 17609
Azure.IoT Build 0:6ae2f7bca550 17610 typedef struct REJECTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17611 {
AzureIoTClient 28:add19eb7defa 17612 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17613 } REJECTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17614
Azure.IoT Build 0:6ae2f7bca550 17615 static REJECTED_HANDLE rejected_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17616 {
AzureIoTClient 28:add19eb7defa 17617 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17618 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17619 {
AzureIoTClient 28:add19eb7defa 17620 rejected_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17621 }
AzureIoTClient 28:add19eb7defa 17622
AzureIoTClient 28:add19eb7defa 17623 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17624 }
Azure.IoT Build 0:6ae2f7bca550 17625
Azure.IoT Build 0:6ae2f7bca550 17626 REJECTED_HANDLE rejected_create(void)
Azure.IoT Build 0:6ae2f7bca550 17627 {
AzureIoTClient 28:add19eb7defa 17628 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17629 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17630 {
AzureIoTClient 28:add19eb7defa 17631 rejected_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(37);
AzureIoTClient 28:add19eb7defa 17632 if (rejected_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17633 {
AzureIoTClient 28:add19eb7defa 17634 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17635 rejected_instance = NULL;
AzureIoTClient 28:add19eb7defa 17636 }
AzureIoTClient 28:add19eb7defa 17637 }
AzureIoTClient 28:add19eb7defa 17638
AzureIoTClient 28:add19eb7defa 17639 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17640 }
Azure.IoT Build 0:6ae2f7bca550 17641
Azure.IoT Build 0:6ae2f7bca550 17642 REJECTED_HANDLE rejected_clone(REJECTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17643 {
AzureIoTClient 28:add19eb7defa 17644 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17645 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17646 {
AzureIoTClient 28:add19eb7defa 17647 rejected_instance->composite_value = amqpvalue_clone(((REJECTED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17648 if (rejected_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17649 {
AzureIoTClient 28:add19eb7defa 17650 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17651 rejected_instance = NULL;
AzureIoTClient 28:add19eb7defa 17652 }
AzureIoTClient 28:add19eb7defa 17653 }
AzureIoTClient 28:add19eb7defa 17654
AzureIoTClient 28:add19eb7defa 17655 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17656 }
Azure.IoT Build 0:6ae2f7bca550 17657
Azure.IoT Build 0:6ae2f7bca550 17658 void rejected_destroy(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 17659 {
AzureIoTClient 28:add19eb7defa 17660 if (rejected != NULL)
AzureIoTClient 28:add19eb7defa 17661 {
AzureIoTClient 28:add19eb7defa 17662 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17663 amqpvalue_destroy(rejected_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17664 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17665 }
Azure.IoT Build 0:6ae2f7bca550 17666 }
Azure.IoT Build 0:6ae2f7bca550 17667
Azure.IoT Build 0:6ae2f7bca550 17668 AMQP_VALUE amqpvalue_create_rejected(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 17669 {
AzureIoTClient 28:add19eb7defa 17670 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17671
AzureIoTClient 28:add19eb7defa 17672 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17673 {
AzureIoTClient 28:add19eb7defa 17674 result = NULL;
AzureIoTClient 28:add19eb7defa 17675 }
AzureIoTClient 28:add19eb7defa 17676 else
AzureIoTClient 28:add19eb7defa 17677 {
AzureIoTClient 28:add19eb7defa 17678 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17679 result = amqpvalue_clone(rejected_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17680 }
AzureIoTClient 28:add19eb7defa 17681
AzureIoTClient 28:add19eb7defa 17682 return result;
Azure.IoT Build 0:6ae2f7bca550 17683 }
Azure.IoT Build 0:6ae2f7bca550 17684
Azure.IoT Build 0:6ae2f7bca550 17685 bool is_rejected_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17686 {
AzureIoTClient 28:add19eb7defa 17687 bool result;
AzureIoTClient 28:add19eb7defa 17688
AzureIoTClient 28:add19eb7defa 17689 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17690 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17691 (descriptor_ulong == 37))
AzureIoTClient 28:add19eb7defa 17692 {
AzureIoTClient 28:add19eb7defa 17693 result = true;
AzureIoTClient 28:add19eb7defa 17694 }
AzureIoTClient 28:add19eb7defa 17695 else
AzureIoTClient 28:add19eb7defa 17696 {
AzureIoTClient 28:add19eb7defa 17697 result = false;
AzureIoTClient 28:add19eb7defa 17698 }
AzureIoTClient 28:add19eb7defa 17699
AzureIoTClient 28:add19eb7defa 17700 return result;
Azure.IoT Build 0:6ae2f7bca550 17701 }
Azure.IoT Build 0:6ae2f7bca550 17702
Azure.IoT Build 0:6ae2f7bca550 17703
Azure.IoT Build 0:6ae2f7bca550 17704 int amqpvalue_get_rejected(AMQP_VALUE value, REJECTED_HANDLE* rejected_handle)
Azure.IoT Build 0:6ae2f7bca550 17705 {
AzureIoTClient 28:add19eb7defa 17706 int result;
AzureIoTClient 28:add19eb7defa 17707 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected_create_internal();
AzureIoTClient 28:add19eb7defa 17708 *rejected_handle = rejected_instance;
AzureIoTClient 28:add19eb7defa 17709 if (*rejected_handle == NULL)
AzureIoTClient 28:add19eb7defa 17710 {
AzureIoTClient 28:add19eb7defa 17711 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17712 }
AzureIoTClient 28:add19eb7defa 17713 else
AzureIoTClient 28:add19eb7defa 17714 {
AzureIoTClient 28:add19eb7defa 17715 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17716 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17717 {
AzureIoTClient 28:add19eb7defa 17718 rejected_destroy(*rejected_handle);
AzureIoTClient 28:add19eb7defa 17719 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17720 }
AzureIoTClient 28:add19eb7defa 17721 else
AzureIoTClient 28:add19eb7defa 17722 {
AzureIoTClient 23:1111ee8bcba4 17723 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17724 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17725 {
AzureIoTClient 23:1111ee8bcba4 17726 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17727 }
AzureIoTClient 23:1111ee8bcba4 17728 else
AzureIoTClient 23:1111ee8bcba4 17729 {
AzureIoTClient 28:add19eb7defa 17730 do
AzureIoTClient 28:add19eb7defa 17731 {
AzureIoTClient 28:add19eb7defa 17732 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17733 /* error */
AzureIoTClient 28:add19eb7defa 17734 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17735 {
AzureIoTClient 23:1111ee8bcba4 17736 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17737 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17738 {
AzureIoTClient 28:add19eb7defa 17739 /* do nothing */
AzureIoTClient 28:add19eb7defa 17740 }
AzureIoTClient 28:add19eb7defa 17741 else
AzureIoTClient 28:add19eb7defa 17742 {
AzureIoTClient 28:add19eb7defa 17743 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17744 {
AzureIoTClient 28:add19eb7defa 17745 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 17746 }
AzureIoTClient 28:add19eb7defa 17747 else
AzureIoTClient 28:add19eb7defa 17748 {
AzureIoTClient 28:add19eb7defa 17749 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 17750 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 17751 {
AzureIoTClient 28:add19eb7defa 17752 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17753 rejected_destroy(*rejected_handle);
AzureIoTClient 28:add19eb7defa 17754 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17755 break;
AzureIoTClient 28:add19eb7defa 17756 }
AzureIoTClient 25:1101516ee67d 17757 else
AzureIoTClient 25:1101516ee67d 17758 {
AzureIoTClient 28:add19eb7defa 17759 error_destroy(error);
AzureIoTClient 28:add19eb7defa 17760 }
AzureIoTClient 28:add19eb7defa 17761 }
AzureIoTClient 28:add19eb7defa 17762
AzureIoTClient 28:add19eb7defa 17763 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17764 }
AzureIoTClient 28:add19eb7defa 17765 }
AzureIoTClient 28:add19eb7defa 17766
AzureIoTClient 28:add19eb7defa 17767 rejected_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17768
AzureIoTClient 28:add19eb7defa 17769 result = 0;
AzureIoTClient 28:add19eb7defa 17770 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17771 }
AzureIoTClient 28:add19eb7defa 17772 }
AzureIoTClient 28:add19eb7defa 17773 }
AzureIoTClient 28:add19eb7defa 17774
AzureIoTClient 28:add19eb7defa 17775 return result;
Azure.IoT Build 0:6ae2f7bca550 17776 }
Azure.IoT Build 0:6ae2f7bca550 17777
Azure.IoT Build 0:6ae2f7bca550 17778 int rejected_get_error(REJECTED_HANDLE rejected, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 17779 {
AzureIoTClient 28:add19eb7defa 17780 int result;
AzureIoTClient 28:add19eb7defa 17781
AzureIoTClient 28:add19eb7defa 17782 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17783 {
AzureIoTClient 28:add19eb7defa 17784 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17785 }
AzureIoTClient 28:add19eb7defa 17786 else
AzureIoTClient 28:add19eb7defa 17787 {
AzureIoTClient 28:add19eb7defa 17788 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17789 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 23:1111ee8bcba4 17790 if (amqpvalue_get_composite_item_count(rejected_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17791 {
AzureIoTClient 23:1111ee8bcba4 17792 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17793 }
AzureIoTClient 23:1111ee8bcba4 17794 else
AzureIoTClient 23:1111ee8bcba4 17795 {
AzureIoTClient 23:1111ee8bcba4 17796 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17797 {
AzureIoTClient 28:add19eb7defa 17798 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17799 }
AzureIoTClient 28:add19eb7defa 17800 else
AzureIoTClient 28:add19eb7defa 17801 {
AzureIoTClient 28:add19eb7defa 17802 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(rejected_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 17803 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17804 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17805 {
AzureIoTClient 28:add19eb7defa 17806 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17807 }
AzureIoTClient 28:add19eb7defa 17808 else
AzureIoTClient 28:add19eb7defa 17809 {
AzureIoTClient 28:add19eb7defa 17810 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17811 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 17812 {
AzureIoTClient 28:add19eb7defa 17813 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17814 }
AzureIoTClient 28:add19eb7defa 17815 else
AzureIoTClient 28:add19eb7defa 17816 {
AzureIoTClient 28:add19eb7defa 17817 result = 0;
AzureIoTClient 28:add19eb7defa 17818 }
AzureIoTClient 28:add19eb7defa 17819 }
AzureIoTClient 28:add19eb7defa 17820 }
AzureIoTClient 28:add19eb7defa 17821 }
AzureIoTClient 28:add19eb7defa 17822 }
AzureIoTClient 28:add19eb7defa 17823
AzureIoTClient 28:add19eb7defa 17824 return result;
Azure.IoT Build 0:6ae2f7bca550 17825 }
Azure.IoT Build 0:6ae2f7bca550 17826
Azure.IoT Build 0:6ae2f7bca550 17827 int rejected_set_error(REJECTED_HANDLE rejected, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 17828 {
AzureIoTClient 28:add19eb7defa 17829 int result;
AzureIoTClient 28:add19eb7defa 17830
AzureIoTClient 28:add19eb7defa 17831 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17832 {
AzureIoTClient 28:add19eb7defa 17833 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17834 }
AzureIoTClient 28:add19eb7defa 17835 else
AzureIoTClient 28:add19eb7defa 17836 {
AzureIoTClient 28:add19eb7defa 17837 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17838 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 17839 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17840 {
AzureIoTClient 28:add19eb7defa 17841 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17842 }
AzureIoTClient 28:add19eb7defa 17843 else
AzureIoTClient 28:add19eb7defa 17844 {
AzureIoTClient 28:add19eb7defa 17845 if (amqpvalue_set_composite_item(rejected_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17846 {
AzureIoTClient 28:add19eb7defa 17847 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17848 }
AzureIoTClient 28:add19eb7defa 17849 else
AzureIoTClient 28:add19eb7defa 17850 {
AzureIoTClient 28:add19eb7defa 17851 result = 0;
AzureIoTClient 28:add19eb7defa 17852 }
AzureIoTClient 28:add19eb7defa 17853
AzureIoTClient 28:add19eb7defa 17854 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 17855 }
AzureIoTClient 28:add19eb7defa 17856 }
AzureIoTClient 28:add19eb7defa 17857
AzureIoTClient 28:add19eb7defa 17858 return result;
Azure.IoT Build 0:6ae2f7bca550 17859 }
Azure.IoT Build 0:6ae2f7bca550 17860
Azure.IoT Build 0:6ae2f7bca550 17861
Azure.IoT Build 0:6ae2f7bca550 17862 /* released */
Azure.IoT Build 0:6ae2f7bca550 17863
Azure.IoT Build 0:6ae2f7bca550 17864 typedef struct RELEASED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17865 {
AzureIoTClient 28:add19eb7defa 17866 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17867 } RELEASED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17868
Azure.IoT Build 0:6ae2f7bca550 17869 static RELEASED_HANDLE released_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17870 {
AzureIoTClient 28:add19eb7defa 17871 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17872 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17873 {
AzureIoTClient 28:add19eb7defa 17874 released_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17875 }
AzureIoTClient 28:add19eb7defa 17876
AzureIoTClient 28:add19eb7defa 17877 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17878 }
Azure.IoT Build 0:6ae2f7bca550 17879
Azure.IoT Build 0:6ae2f7bca550 17880 RELEASED_HANDLE released_create(void)
Azure.IoT Build 0:6ae2f7bca550 17881 {
AzureIoTClient 28:add19eb7defa 17882 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17883 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17884 {
AzureIoTClient 28:add19eb7defa 17885 released_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(38);
AzureIoTClient 28:add19eb7defa 17886 if (released_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17887 {
AzureIoTClient 28:add19eb7defa 17888 free(released_instance);
AzureIoTClient 28:add19eb7defa 17889 released_instance = NULL;
AzureIoTClient 28:add19eb7defa 17890 }
AzureIoTClient 28:add19eb7defa 17891 }
AzureIoTClient 28:add19eb7defa 17892
AzureIoTClient 28:add19eb7defa 17893 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17894 }
Azure.IoT Build 0:6ae2f7bca550 17895
Azure.IoT Build 0:6ae2f7bca550 17896 RELEASED_HANDLE released_clone(RELEASED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17897 {
AzureIoTClient 28:add19eb7defa 17898 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17899 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17900 {
AzureIoTClient 28:add19eb7defa 17901 released_instance->composite_value = amqpvalue_clone(((RELEASED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17902 if (released_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17903 {
AzureIoTClient 28:add19eb7defa 17904 free(released_instance);
AzureIoTClient 28:add19eb7defa 17905 released_instance = NULL;
AzureIoTClient 28:add19eb7defa 17906 }
AzureIoTClient 28:add19eb7defa 17907 }
AzureIoTClient 28:add19eb7defa 17908
AzureIoTClient 28:add19eb7defa 17909 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17910 }
Azure.IoT Build 0:6ae2f7bca550 17911
Azure.IoT Build 0:6ae2f7bca550 17912 void released_destroy(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17913 {
AzureIoTClient 28:add19eb7defa 17914 if (released != NULL)
AzureIoTClient 28:add19eb7defa 17915 {
AzureIoTClient 28:add19eb7defa 17916 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
AzureIoTClient 28:add19eb7defa 17917 amqpvalue_destroy(released_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17918 free(released_instance);
AzureIoTClient 28:add19eb7defa 17919 }
Azure.IoT Build 0:6ae2f7bca550 17920 }
Azure.IoT Build 0:6ae2f7bca550 17921
Azure.IoT Build 0:6ae2f7bca550 17922 AMQP_VALUE amqpvalue_create_released(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17923 {
AzureIoTClient 28:add19eb7defa 17924 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17925
AzureIoTClient 28:add19eb7defa 17926 if (released == NULL)
AzureIoTClient 28:add19eb7defa 17927 {
AzureIoTClient 28:add19eb7defa 17928 result = NULL;
AzureIoTClient 28:add19eb7defa 17929 }
AzureIoTClient 28:add19eb7defa 17930 else
AzureIoTClient 28:add19eb7defa 17931 {
AzureIoTClient 28:add19eb7defa 17932 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
AzureIoTClient 28:add19eb7defa 17933 result = amqpvalue_clone(released_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17934 }
AzureIoTClient 28:add19eb7defa 17935
AzureIoTClient 28:add19eb7defa 17936 return result;
Azure.IoT Build 0:6ae2f7bca550 17937 }
Azure.IoT Build 0:6ae2f7bca550 17938
Azure.IoT Build 0:6ae2f7bca550 17939 bool is_released_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17940 {
AzureIoTClient 28:add19eb7defa 17941 bool result;
AzureIoTClient 28:add19eb7defa 17942
AzureIoTClient 28:add19eb7defa 17943 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17944 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17945 (descriptor_ulong == 38))
AzureIoTClient 28:add19eb7defa 17946 {
AzureIoTClient 28:add19eb7defa 17947 result = true;
AzureIoTClient 28:add19eb7defa 17948 }
AzureIoTClient 28:add19eb7defa 17949 else
AzureIoTClient 28:add19eb7defa 17950 {
AzureIoTClient 28:add19eb7defa 17951 result = false;
AzureIoTClient 28:add19eb7defa 17952 }
AzureIoTClient 28:add19eb7defa 17953
AzureIoTClient 28:add19eb7defa 17954 return result;
Azure.IoT Build 0:6ae2f7bca550 17955 }
Azure.IoT Build 0:6ae2f7bca550 17956
Azure.IoT Build 0:6ae2f7bca550 17957
Azure.IoT Build 0:6ae2f7bca550 17958 int amqpvalue_get_released(AMQP_VALUE value, RELEASED_HANDLE* released_handle)
Azure.IoT Build 0:6ae2f7bca550 17959 {
AzureIoTClient 28:add19eb7defa 17960 int result;
AzureIoTClient 28:add19eb7defa 17961 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released_create_internal();
AzureIoTClient 28:add19eb7defa 17962 *released_handle = released_instance;
AzureIoTClient 28:add19eb7defa 17963 if (*released_handle == NULL)
AzureIoTClient 28:add19eb7defa 17964 {
AzureIoTClient 28:add19eb7defa 17965 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17966 }
AzureIoTClient 28:add19eb7defa 17967 else
AzureIoTClient 28:add19eb7defa 17968 {
AzureIoTClient 28:add19eb7defa 17969 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17970 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17971 {
AzureIoTClient 28:add19eb7defa 17972 released_destroy(*released_handle);
AzureIoTClient 28:add19eb7defa 17973 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17974 }
AzureIoTClient 28:add19eb7defa 17975 else
AzureIoTClient 28:add19eb7defa 17976 {
AzureIoTClient 23:1111ee8bcba4 17977 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17978 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17979 {
AzureIoTClient 23:1111ee8bcba4 17980 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17981 }
AzureIoTClient 23:1111ee8bcba4 17982 else
AzureIoTClient 23:1111ee8bcba4 17983 {
AzureIoTClient 28:add19eb7defa 17984 do
AzureIoTClient 28:add19eb7defa 17985 {
AzureIoTClient 28:add19eb7defa 17986
AzureIoTClient 28:add19eb7defa 17987 released_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17988
AzureIoTClient 28:add19eb7defa 17989 result = 0;
AzureIoTClient 28:add19eb7defa 17990 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17991 }
AzureIoTClient 28:add19eb7defa 17992 }
AzureIoTClient 28:add19eb7defa 17993 }
AzureIoTClient 28:add19eb7defa 17994
AzureIoTClient 28:add19eb7defa 17995 return result;
Azure.IoT Build 0:6ae2f7bca550 17996 }
Azure.IoT Build 0:6ae2f7bca550 17997
Azure.IoT Build 0:6ae2f7bca550 17998
Azure.IoT Build 0:6ae2f7bca550 17999 /* modified */
Azure.IoT Build 0:6ae2f7bca550 18000
Azure.IoT Build 0:6ae2f7bca550 18001 typedef struct MODIFIED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 18002 {
AzureIoTClient 28:add19eb7defa 18003 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 18004 } MODIFIED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 18005
Azure.IoT Build 0:6ae2f7bca550 18006 static MODIFIED_HANDLE modified_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 18007 {
AzureIoTClient 28:add19eb7defa 18008 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18009 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18010 {
AzureIoTClient 28:add19eb7defa 18011 modified_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 18012 }
AzureIoTClient 28:add19eb7defa 18013
AzureIoTClient 28:add19eb7defa 18014 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18015 }
Azure.IoT Build 0:6ae2f7bca550 18016
Azure.IoT Build 0:6ae2f7bca550 18017 MODIFIED_HANDLE modified_create(void)
Azure.IoT Build 0:6ae2f7bca550 18018 {
AzureIoTClient 28:add19eb7defa 18019 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18020 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18021 {
AzureIoTClient 28:add19eb7defa 18022 modified_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(39);
AzureIoTClient 28:add19eb7defa 18023 if (modified_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 18024 {
AzureIoTClient 28:add19eb7defa 18025 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18026 modified_instance = NULL;
AzureIoTClient 28:add19eb7defa 18027 }
AzureIoTClient 28:add19eb7defa 18028 }
AzureIoTClient 28:add19eb7defa 18029
AzureIoTClient 28:add19eb7defa 18030 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18031 }
Azure.IoT Build 0:6ae2f7bca550 18032
Azure.IoT Build 0:6ae2f7bca550 18033 MODIFIED_HANDLE modified_clone(MODIFIED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 18034 {
AzureIoTClient 28:add19eb7defa 18035 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18036 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18037 {
AzureIoTClient 28:add19eb7defa 18038 modified_instance->composite_value = amqpvalue_clone(((MODIFIED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 18039 if (modified_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 18040 {
AzureIoTClient 28:add19eb7defa 18041 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18042 modified_instance = NULL;
AzureIoTClient 28:add19eb7defa 18043 }
AzureIoTClient 28:add19eb7defa 18044 }
AzureIoTClient 28:add19eb7defa 18045
AzureIoTClient 28:add19eb7defa 18046 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18047 }
Azure.IoT Build 0:6ae2f7bca550 18048
Azure.IoT Build 0:6ae2f7bca550 18049 void modified_destroy(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 18050 {
AzureIoTClient 28:add19eb7defa 18051 if (modified != NULL)
AzureIoTClient 28:add19eb7defa 18052 {
AzureIoTClient 28:add19eb7defa 18053 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18054 amqpvalue_destroy(modified_instance->composite_value);
AzureIoTClient 28:add19eb7defa 18055 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18056 }
Azure.IoT Build 0:6ae2f7bca550 18057 }
Azure.IoT Build 0:6ae2f7bca550 18058
Azure.IoT Build 0:6ae2f7bca550 18059 AMQP_VALUE amqpvalue_create_modified(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 18060 {
AzureIoTClient 28:add19eb7defa 18061 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 18062
AzureIoTClient 28:add19eb7defa 18063 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18064 {
AzureIoTClient 28:add19eb7defa 18065 result = NULL;
AzureIoTClient 28:add19eb7defa 18066 }
AzureIoTClient 28:add19eb7defa 18067 else
AzureIoTClient 28:add19eb7defa 18068 {
AzureIoTClient 28:add19eb7defa 18069 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18070 result = amqpvalue_clone(modified_instance->composite_value);
AzureIoTClient 28:add19eb7defa 18071 }
AzureIoTClient 28:add19eb7defa 18072
AzureIoTClient 28:add19eb7defa 18073 return result;
Azure.IoT Build 0:6ae2f7bca550 18074 }
Azure.IoT Build 0:6ae2f7bca550 18075
Azure.IoT Build 0:6ae2f7bca550 18076 bool is_modified_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 18077 {
AzureIoTClient 28:add19eb7defa 18078 bool result;
AzureIoTClient 28:add19eb7defa 18079
AzureIoTClient 28:add19eb7defa 18080 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 18081 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 18082 (descriptor_ulong == 39))
AzureIoTClient 28:add19eb7defa 18083 {
AzureIoTClient 28:add19eb7defa 18084 result = true;
AzureIoTClient 28:add19eb7defa 18085 }
AzureIoTClient 28:add19eb7defa 18086 else
AzureIoTClient 28:add19eb7defa 18087 {
AzureIoTClient 28:add19eb7defa 18088 result = false;
AzureIoTClient 28:add19eb7defa 18089 }
AzureIoTClient 28:add19eb7defa 18090
AzureIoTClient 28:add19eb7defa 18091 return result;
Azure.IoT Build 0:6ae2f7bca550 18092 }
Azure.IoT Build 0:6ae2f7bca550 18093
Azure.IoT Build 0:6ae2f7bca550 18094
Azure.IoT Build 0:6ae2f7bca550 18095 int amqpvalue_get_modified(AMQP_VALUE value, MODIFIED_HANDLE* modified_handle)
Azure.IoT Build 0:6ae2f7bca550 18096 {
AzureIoTClient 28:add19eb7defa 18097 int result;
AzureIoTClient 28:add19eb7defa 18098 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified_create_internal();
AzureIoTClient 28:add19eb7defa 18099 *modified_handle = modified_instance;
AzureIoTClient 28:add19eb7defa 18100 if (*modified_handle == NULL)
AzureIoTClient 28:add19eb7defa 18101 {
AzureIoTClient 28:add19eb7defa 18102 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18103 }
AzureIoTClient 28:add19eb7defa 18104 else
AzureIoTClient 28:add19eb7defa 18105 {
AzureIoTClient 28:add19eb7defa 18106 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 18107 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 18108 {
AzureIoTClient 28:add19eb7defa 18109 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18110 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18111 }
AzureIoTClient 28:add19eb7defa 18112 else
AzureIoTClient 28:add19eb7defa 18113 {
AzureIoTClient 23:1111ee8bcba4 18114 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 18115 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18116 {
AzureIoTClient 23:1111ee8bcba4 18117 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18118 }
AzureIoTClient 23:1111ee8bcba4 18119 else
AzureIoTClient 23:1111ee8bcba4 18120 {
AzureIoTClient 28:add19eb7defa 18121 do
AzureIoTClient 28:add19eb7defa 18122 {
AzureIoTClient 28:add19eb7defa 18123 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 18124 /* delivery-failed */
AzureIoTClient 28:add19eb7defa 18125 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 18126 {
AzureIoTClient 23:1111ee8bcba4 18127 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 18128 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18129 {
AzureIoTClient 28:add19eb7defa 18130 /* do nothing */
AzureIoTClient 28:add19eb7defa 18131 }
AzureIoTClient 28:add19eb7defa 18132 else
AzureIoTClient 28:add19eb7defa 18133 {
AzureIoTClient 28:add19eb7defa 18134 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18135 {
AzureIoTClient 28:add19eb7defa 18136 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18137 }
AzureIoTClient 28:add19eb7defa 18138 else
AzureIoTClient 28:add19eb7defa 18139 {
AzureIoTClient 28:add19eb7defa 18140 bool delivery_failed;
AzureIoTClient 28:add19eb7defa 18141 if (amqpvalue_get_boolean(item_value, &delivery_failed) != 0)
AzureIoTClient 28:add19eb7defa 18142 {
AzureIoTClient 28:add19eb7defa 18143 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18144 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18145 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18146 break;
AzureIoTClient 28:add19eb7defa 18147 }
AzureIoTClient 28:add19eb7defa 18148 }
AzureIoTClient 28:add19eb7defa 18149
AzureIoTClient 28:add19eb7defa 18150 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18151 }
AzureIoTClient 28:add19eb7defa 18152 }
AzureIoTClient 28:add19eb7defa 18153 /* undeliverable-here */
AzureIoTClient 28:add19eb7defa 18154 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 18155 {
AzureIoTClient 23:1111ee8bcba4 18156 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 18157 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18158 {
AzureIoTClient 28:add19eb7defa 18159 /* do nothing */
AzureIoTClient 28:add19eb7defa 18160 }
AzureIoTClient 28:add19eb7defa 18161 else
AzureIoTClient 28:add19eb7defa 18162 {
AzureIoTClient 28:add19eb7defa 18163 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18164 {
AzureIoTClient 28:add19eb7defa 18165 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18166 }
AzureIoTClient 28:add19eb7defa 18167 else
AzureIoTClient 28:add19eb7defa 18168 {
AzureIoTClient 28:add19eb7defa 18169 bool undeliverable_here;
AzureIoTClient 28:add19eb7defa 18170 if (amqpvalue_get_boolean(item_value, &undeliverable_here) != 0)
AzureIoTClient 28:add19eb7defa 18171 {
AzureIoTClient 28:add19eb7defa 18172 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18173 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18174 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18175 break;
AzureIoTClient 28:add19eb7defa 18176 }
AzureIoTClient 28:add19eb7defa 18177 }
AzureIoTClient 28:add19eb7defa 18178
AzureIoTClient 28:add19eb7defa 18179 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18180 }
AzureIoTClient 28:add19eb7defa 18181 }
AzureIoTClient 28:add19eb7defa 18182 /* message-annotations */
AzureIoTClient 28:add19eb7defa 18183 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 18184 {
AzureIoTClient 23:1111ee8bcba4 18185 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 18186 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18187 {
AzureIoTClient 28:add19eb7defa 18188 /* do nothing */
AzureIoTClient 28:add19eb7defa 18189 }
AzureIoTClient 28:add19eb7defa 18190 else
AzureIoTClient 28:add19eb7defa 18191 {
AzureIoTClient 28:add19eb7defa 18192 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18193 {
AzureIoTClient 28:add19eb7defa 18194 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18195 }
AzureIoTClient 28:add19eb7defa 18196 else
AzureIoTClient 28:add19eb7defa 18197 {
AzureIoTClient 28:add19eb7defa 18198 fields message_annotations;
AzureIoTClient 28:add19eb7defa 18199 if (amqpvalue_get_fields(item_value, &message_annotations) != 0)
AzureIoTClient 28:add19eb7defa 18200 {
AzureIoTClient 28:add19eb7defa 18201 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18202 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18203 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18204 break;
AzureIoTClient 28:add19eb7defa 18205 }
AzureIoTClient 28:add19eb7defa 18206 }
AzureIoTClient 28:add19eb7defa 18207
AzureIoTClient 28:add19eb7defa 18208 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18209 }
AzureIoTClient 28:add19eb7defa 18210 }
AzureIoTClient 28:add19eb7defa 18211
AzureIoTClient 28:add19eb7defa 18212 modified_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 18213
AzureIoTClient 28:add19eb7defa 18214 result = 0;
AzureIoTClient 28:add19eb7defa 18215 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 18216 }
AzureIoTClient 28:add19eb7defa 18217 }
AzureIoTClient 28:add19eb7defa 18218 }
AzureIoTClient 28:add19eb7defa 18219
AzureIoTClient 28:add19eb7defa 18220 return result;
Azure.IoT Build 0:6ae2f7bca550 18221 }
Azure.IoT Build 0:6ae2f7bca550 18222
Azure.IoT Build 0:6ae2f7bca550 18223 int modified_get_delivery_failed(MODIFIED_HANDLE modified, bool* delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 18224 {
AzureIoTClient 28:add19eb7defa 18225 int result;
AzureIoTClient 28:add19eb7defa 18226
AzureIoTClient 28:add19eb7defa 18227 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18228 {
AzureIoTClient 28:add19eb7defa 18229 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18230 }
AzureIoTClient 28:add19eb7defa 18231 else
AzureIoTClient 28:add19eb7defa 18232 {
AzureIoTClient 28:add19eb7defa 18233 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18234 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18235 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18236 {
AzureIoTClient 23:1111ee8bcba4 18237 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18238 }
AzureIoTClient 23:1111ee8bcba4 18239 else
AzureIoTClient 23:1111ee8bcba4 18240 {
AzureIoTClient 23:1111ee8bcba4 18241 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 18242 {
AzureIoTClient 28:add19eb7defa 18243 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18244 }
AzureIoTClient 28:add19eb7defa 18245 else
AzureIoTClient 28:add19eb7defa 18246 {
AzureIoTClient 28:add19eb7defa 18247 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 18248 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18249 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18250 {
AzureIoTClient 28:add19eb7defa 18251 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18252 }
AzureIoTClient 28:add19eb7defa 18253 else
AzureIoTClient 28:add19eb7defa 18254 {
AzureIoTClient 28:add19eb7defa 18255 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18256 if ((get_single_value_result = amqpvalue_get_boolean(item_value, delivery_failed_value)) != 0)
AzureIoTClient 28:add19eb7defa 18257 {
AzureIoTClient 28:add19eb7defa 18258 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18259 }
AzureIoTClient 28:add19eb7defa 18260 else
AzureIoTClient 28:add19eb7defa 18261 {
AzureIoTClient 28:add19eb7defa 18262 result = 0;
AzureIoTClient 28:add19eb7defa 18263 }
AzureIoTClient 28:add19eb7defa 18264 }
AzureIoTClient 28:add19eb7defa 18265 }
AzureIoTClient 28:add19eb7defa 18266 }
AzureIoTClient 28:add19eb7defa 18267 }
AzureIoTClient 28:add19eb7defa 18268
AzureIoTClient 28:add19eb7defa 18269 return result;
Azure.IoT Build 0:6ae2f7bca550 18270 }
Azure.IoT Build 0:6ae2f7bca550 18271
Azure.IoT Build 0:6ae2f7bca550 18272 int modified_set_delivery_failed(MODIFIED_HANDLE modified, bool delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 18273 {
AzureIoTClient 28:add19eb7defa 18274 int result;
AzureIoTClient 28:add19eb7defa 18275
AzureIoTClient 28:add19eb7defa 18276 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18277 {
AzureIoTClient 28:add19eb7defa 18278 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18279 }
AzureIoTClient 28:add19eb7defa 18280 else
AzureIoTClient 28:add19eb7defa 18281 {
AzureIoTClient 28:add19eb7defa 18282 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18283 AMQP_VALUE delivery_failed_amqp_value = amqpvalue_create_boolean(delivery_failed_value);
AzureIoTClient 28:add19eb7defa 18284 if (delivery_failed_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18285 {
AzureIoTClient 28:add19eb7defa 18286 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18287 }
AzureIoTClient 28:add19eb7defa 18288 else
AzureIoTClient 28:add19eb7defa 18289 {
AzureIoTClient 28:add19eb7defa 18290 if (amqpvalue_set_composite_item(modified_instance->composite_value, 0, delivery_failed_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18291 {
AzureIoTClient 28:add19eb7defa 18292 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18293 }
AzureIoTClient 28:add19eb7defa 18294 else
AzureIoTClient 28:add19eb7defa 18295 {
AzureIoTClient 28:add19eb7defa 18296 result = 0;
AzureIoTClient 28:add19eb7defa 18297 }
AzureIoTClient 28:add19eb7defa 18298
AzureIoTClient 28:add19eb7defa 18299 amqpvalue_destroy(delivery_failed_amqp_value);
AzureIoTClient 28:add19eb7defa 18300 }
AzureIoTClient 28:add19eb7defa 18301 }
AzureIoTClient 28:add19eb7defa 18302
AzureIoTClient 28:add19eb7defa 18303 return result;
Azure.IoT Build 0:6ae2f7bca550 18304 }
Azure.IoT Build 0:6ae2f7bca550 18305
Azure.IoT Build 0:6ae2f7bca550 18306 int modified_get_undeliverable_here(MODIFIED_HANDLE modified, bool* undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 18307 {
AzureIoTClient 28:add19eb7defa 18308 int result;
AzureIoTClient 28:add19eb7defa 18309
AzureIoTClient 28:add19eb7defa 18310 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18311 {
AzureIoTClient 28:add19eb7defa 18312 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18313 }
AzureIoTClient 28:add19eb7defa 18314 else
AzureIoTClient 28:add19eb7defa 18315 {
AzureIoTClient 28:add19eb7defa 18316 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18317 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18318 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18319 {
AzureIoTClient 23:1111ee8bcba4 18320 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18321 }
AzureIoTClient 23:1111ee8bcba4 18322 else
AzureIoTClient 23:1111ee8bcba4 18323 {
AzureIoTClient 23:1111ee8bcba4 18324 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 18325 {
AzureIoTClient 28:add19eb7defa 18326 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18327 }
AzureIoTClient 28:add19eb7defa 18328 else
AzureIoTClient 28:add19eb7defa 18329 {
AzureIoTClient 28:add19eb7defa 18330 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 18331 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18332 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18333 {
AzureIoTClient 28:add19eb7defa 18334 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18335 }
AzureIoTClient 28:add19eb7defa 18336 else
AzureIoTClient 28:add19eb7defa 18337 {
AzureIoTClient 28:add19eb7defa 18338 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18339 if ((get_single_value_result = amqpvalue_get_boolean(item_value, undeliverable_here_value)) != 0)
AzureIoTClient 28:add19eb7defa 18340 {
AzureIoTClient 28:add19eb7defa 18341 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18342 }
AzureIoTClient 28:add19eb7defa 18343 else
AzureIoTClient 28:add19eb7defa 18344 {
AzureIoTClient 28:add19eb7defa 18345 result = 0;
AzureIoTClient 28:add19eb7defa 18346 }
AzureIoTClient 28:add19eb7defa 18347 }
AzureIoTClient 28:add19eb7defa 18348 }
AzureIoTClient 28:add19eb7defa 18349 }
AzureIoTClient 28:add19eb7defa 18350 }
AzureIoTClient 28:add19eb7defa 18351
AzureIoTClient 28:add19eb7defa 18352 return result;
Azure.IoT Build 0:6ae2f7bca550 18353 }
Azure.IoT Build 0:6ae2f7bca550 18354
Azure.IoT Build 0:6ae2f7bca550 18355 int modified_set_undeliverable_here(MODIFIED_HANDLE modified, bool undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 18356 {
AzureIoTClient 28:add19eb7defa 18357 int result;
AzureIoTClient 28:add19eb7defa 18358
AzureIoTClient 28:add19eb7defa 18359 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18360 {
AzureIoTClient 28:add19eb7defa 18361 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18362 }
AzureIoTClient 28:add19eb7defa 18363 else
AzureIoTClient 28:add19eb7defa 18364 {
AzureIoTClient 28:add19eb7defa 18365 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18366 AMQP_VALUE undeliverable_here_amqp_value = amqpvalue_create_boolean(undeliverable_here_value);
AzureIoTClient 28:add19eb7defa 18367 if (undeliverable_here_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18368 {
AzureIoTClient 28:add19eb7defa 18369 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18370 }
AzureIoTClient 28:add19eb7defa 18371 else
AzureIoTClient 28:add19eb7defa 18372 {
AzureIoTClient 28:add19eb7defa 18373 if (amqpvalue_set_composite_item(modified_instance->composite_value, 1, undeliverable_here_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18374 {
AzureIoTClient 28:add19eb7defa 18375 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18376 }
AzureIoTClient 28:add19eb7defa 18377 else
AzureIoTClient 28:add19eb7defa 18378 {
AzureIoTClient 28:add19eb7defa 18379 result = 0;
AzureIoTClient 28:add19eb7defa 18380 }
AzureIoTClient 28:add19eb7defa 18381
AzureIoTClient 28:add19eb7defa 18382 amqpvalue_destroy(undeliverable_here_amqp_value);
AzureIoTClient 28:add19eb7defa 18383 }
AzureIoTClient 28:add19eb7defa 18384 }
AzureIoTClient 28:add19eb7defa 18385
AzureIoTClient 28:add19eb7defa 18386 return result;
Azure.IoT Build 0:6ae2f7bca550 18387 }
Azure.IoT Build 0:6ae2f7bca550 18388
Azure.IoT Build 0:6ae2f7bca550 18389 int modified_get_message_annotations(MODIFIED_HANDLE modified, fields* message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 18390 {
AzureIoTClient 28:add19eb7defa 18391 int result;
AzureIoTClient 28:add19eb7defa 18392
AzureIoTClient 28:add19eb7defa 18393 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18394 {
AzureIoTClient 28:add19eb7defa 18395 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18396 }
AzureIoTClient 28:add19eb7defa 18397 else
AzureIoTClient 28:add19eb7defa 18398 {
AzureIoTClient 28:add19eb7defa 18399 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18400 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18401 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18402 {
AzureIoTClient 23:1111ee8bcba4 18403 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18404 }
AzureIoTClient 23:1111ee8bcba4 18405 else
AzureIoTClient 23:1111ee8bcba4 18406 {
AzureIoTClient 23:1111ee8bcba4 18407 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 18408 {
AzureIoTClient 28:add19eb7defa 18409 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18410 }
AzureIoTClient 28:add19eb7defa 18411 else
AzureIoTClient 28:add19eb7defa 18412 {
AzureIoTClient 28:add19eb7defa 18413 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 18414 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18415 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18416 {
AzureIoTClient 28:add19eb7defa 18417 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18418 }
AzureIoTClient 28:add19eb7defa 18419 else
AzureIoTClient 28:add19eb7defa 18420 {
AzureIoTClient 28:add19eb7defa 18421 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18422 if ((get_single_value_result = amqpvalue_get_fields(item_value, message_annotations_value)) != 0)
AzureIoTClient 28:add19eb7defa 18423 {
AzureIoTClient 28:add19eb7defa 18424 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18425 }
AzureIoTClient 28:add19eb7defa 18426 else
AzureIoTClient 28:add19eb7defa 18427 {
AzureIoTClient 28:add19eb7defa 18428 result = 0;
AzureIoTClient 28:add19eb7defa 18429 }
AzureIoTClient 28:add19eb7defa 18430 }
AzureIoTClient 28:add19eb7defa 18431 }
AzureIoTClient 28:add19eb7defa 18432 }
AzureIoTClient 28:add19eb7defa 18433 }
AzureIoTClient 28:add19eb7defa 18434
AzureIoTClient 28:add19eb7defa 18435 return result;
Azure.IoT Build 0:6ae2f7bca550 18436 }
Azure.IoT Build 0:6ae2f7bca550 18437
Azure.IoT Build 0:6ae2f7bca550 18438 int modified_set_message_annotations(MODIFIED_HANDLE modified, fields message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 18439 {
AzureIoTClient 28:add19eb7defa 18440 int result;
AzureIoTClient 28:add19eb7defa 18441
AzureIoTClient 28:add19eb7defa 18442 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18443 {
AzureIoTClient 28:add19eb7defa 18444 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18445 }
AzureIoTClient 28:add19eb7defa 18446 else
AzureIoTClient 28:add19eb7defa 18447 {
AzureIoTClient 28:add19eb7defa 18448 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18449 AMQP_VALUE message_annotations_amqp_value = amqpvalue_create_fields(message_annotations_value);
AzureIoTClient 28:add19eb7defa 18450 if (message_annotations_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18451 {
AzureIoTClient 28:add19eb7defa 18452 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18453 }
AzureIoTClient 28:add19eb7defa 18454 else
AzureIoTClient 28:add19eb7defa 18455 {
AzureIoTClient 28:add19eb7defa 18456 if (amqpvalue_set_composite_item(modified_instance->composite_value, 2, message_annotations_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18457 {
AzureIoTClient 28:add19eb7defa 18458 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18459 }
AzureIoTClient 28:add19eb7defa 18460 else
AzureIoTClient 28:add19eb7defa 18461 {
AzureIoTClient 28:add19eb7defa 18462 result = 0;
AzureIoTClient 28:add19eb7defa 18463 }
AzureIoTClient 28:add19eb7defa 18464
AzureIoTClient 28:add19eb7defa 18465 amqpvalue_destroy(message_annotations_amqp_value);
AzureIoTClient 28:add19eb7defa 18466 }
AzureIoTClient 28:add19eb7defa 18467 }
AzureIoTClient 28:add19eb7defa 18468
AzureIoTClient 28:add19eb7defa 18469 return result;
AzureIoTClient 28:add19eb7defa 18470 }
AzureIoTClient 28:add19eb7defa 18471
AzureIoTClient 28:add19eb7defa 18472