A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Committer:
AzureIoTClient
Date:
Fri Jul 14 16:38:03 2017 -0700
Revision:
29:4a11413cf217
Parent:
28:add19eb7defa
Child:
35:d0bed2404ee9
1.1.19

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
AzureIoTClient 29:4a11413cf217 10374 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10375 }
AzureIoTClient 28:add19eb7defa 10376 }
AzureIoTClient 28:add19eb7defa 10377 else
AzureIoTClient 28:add19eb7defa 10378 {
AzureIoTClient 28:add19eb7defa 10379 result = 0;
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
AzureIoTClient 28:add19eb7defa 10387 return result;
Azure.IoT Build 0:6ae2f7bca550 10388 }
Azure.IoT Build 0:6ae2f7bca550 10389
Azure.IoT Build 0:6ae2f7bca550 10390 int sasl_mechanisms_set_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10391 {
AzureIoTClient 28:add19eb7defa 10392 int result;
AzureIoTClient 28:add19eb7defa 10393
AzureIoTClient 28:add19eb7defa 10394 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10395 {
AzureIoTClient 28:add19eb7defa 10396 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10397 }
AzureIoTClient 28:add19eb7defa 10398 else
AzureIoTClient 28:add19eb7defa 10399 {
AzureIoTClient 28:add19eb7defa 10400 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10401 AMQP_VALUE sasl_server_mechanisms_amqp_value;
AzureIoTClient 23:1111ee8bcba4 10402 if (sasl_server_mechanisms_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10403 {
AzureIoTClient 23:1111ee8bcba4 10404 sasl_server_mechanisms_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 10405 }
AzureIoTClient 23:1111ee8bcba4 10406 else
AzureIoTClient 23:1111ee8bcba4 10407 {
AzureIoTClient 23:1111ee8bcba4 10408 sasl_server_mechanisms_amqp_value = amqpvalue_clone(sasl_server_mechanisms_value);
AzureIoTClient 23:1111ee8bcba4 10409 }
AzureIoTClient 28:add19eb7defa 10410 if (sasl_server_mechanisms_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10411 {
AzureIoTClient 28:add19eb7defa 10412 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10413 }
AzureIoTClient 28:add19eb7defa 10414 else
AzureIoTClient 28:add19eb7defa 10415 {
AzureIoTClient 28:add19eb7defa 10416 if (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10417 {
AzureIoTClient 28:add19eb7defa 10418 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10419 }
AzureIoTClient 28:add19eb7defa 10420 else
AzureIoTClient 28:add19eb7defa 10421 {
AzureIoTClient 28:add19eb7defa 10422 result = 0;
AzureIoTClient 28:add19eb7defa 10423 }
AzureIoTClient 28:add19eb7defa 10424
AzureIoTClient 28:add19eb7defa 10425 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
AzureIoTClient 28:add19eb7defa 10426 }
AzureIoTClient 28:add19eb7defa 10427 }
AzureIoTClient 28:add19eb7defa 10428
AzureIoTClient 28:add19eb7defa 10429 return result;
Azure.IoT Build 0:6ae2f7bca550 10430 }
Azure.IoT Build 0:6ae2f7bca550 10431
Azure.IoT Build 0:6ae2f7bca550 10432
Azure.IoT Build 0:6ae2f7bca550 10433 /* sasl-init */
Azure.IoT Build 0:6ae2f7bca550 10434
Azure.IoT Build 0:6ae2f7bca550 10435 typedef struct SASL_INIT_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10436 {
AzureIoTClient 28:add19eb7defa 10437 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10438 } SASL_INIT_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10439
Azure.IoT Build 0:6ae2f7bca550 10440 static SASL_INIT_HANDLE sasl_init_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10441 {
AzureIoTClient 28:add19eb7defa 10442 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10443 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10444 {
AzureIoTClient 28:add19eb7defa 10445 sasl_init_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10446 }
AzureIoTClient 28:add19eb7defa 10447
AzureIoTClient 28:add19eb7defa 10448 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10449 }
Azure.IoT Build 0:6ae2f7bca550 10450
Azure.IoT Build 0:6ae2f7bca550 10451 SASL_INIT_HANDLE sasl_init_create(const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10452 {
AzureIoTClient 28:add19eb7defa 10453 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10454 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10455 {
AzureIoTClient 28:add19eb7defa 10456 sasl_init_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(65);
AzureIoTClient 28:add19eb7defa 10457 if (sasl_init_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10458 {
AzureIoTClient 28:add19eb7defa 10459 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10460 sasl_init_instance = NULL;
AzureIoTClient 28:add19eb7defa 10461 }
AzureIoTClient 28:add19eb7defa 10462 else
AzureIoTClient 28:add19eb7defa 10463 {
AzureIoTClient 28:add19eb7defa 10464 AMQP_VALUE mechanism_amqp_value;
AzureIoTClient 28:add19eb7defa 10465 int result = 0;
AzureIoTClient 28:add19eb7defa 10466
AzureIoTClient 28:add19eb7defa 10467 mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
AzureIoTClient 28:add19eb7defa 10468 if ((result == 0) && (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10469 {
AzureIoTClient 28:add19eb7defa 10470 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10471 }
AzureIoTClient 28:add19eb7defa 10472
AzureIoTClient 28:add19eb7defa 10473 amqpvalue_destroy(mechanism_amqp_value);
AzureIoTClient 28:add19eb7defa 10474 }
AzureIoTClient 28:add19eb7defa 10475 }
AzureIoTClient 28:add19eb7defa 10476
AzureIoTClient 28:add19eb7defa 10477 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10478 }
Azure.IoT Build 0:6ae2f7bca550 10479
Azure.IoT Build 0:6ae2f7bca550 10480 SASL_INIT_HANDLE sasl_init_clone(SASL_INIT_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10481 {
AzureIoTClient 28:add19eb7defa 10482 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10483 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10484 {
AzureIoTClient 28:add19eb7defa 10485 sasl_init_instance->composite_value = amqpvalue_clone(((SASL_INIT_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10486 if (sasl_init_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10487 {
AzureIoTClient 28:add19eb7defa 10488 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10489 sasl_init_instance = NULL;
AzureIoTClient 28:add19eb7defa 10490 }
AzureIoTClient 28:add19eb7defa 10491 }
AzureIoTClient 28:add19eb7defa 10492
AzureIoTClient 28:add19eb7defa 10493 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10494 }
Azure.IoT Build 0:6ae2f7bca550 10495
Azure.IoT Build 0:6ae2f7bca550 10496 void sasl_init_destroy(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 10497 {
AzureIoTClient 28:add19eb7defa 10498 if (sasl_init != NULL)
AzureIoTClient 28:add19eb7defa 10499 {
AzureIoTClient 28:add19eb7defa 10500 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10501 amqpvalue_destroy(sasl_init_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10502 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10503 }
Azure.IoT Build 0:6ae2f7bca550 10504 }
Azure.IoT Build 0:6ae2f7bca550 10505
Azure.IoT Build 0:6ae2f7bca550 10506 AMQP_VALUE amqpvalue_create_sasl_init(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 10507 {
AzureIoTClient 28:add19eb7defa 10508 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 10509
AzureIoTClient 28:add19eb7defa 10510 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10511 {
AzureIoTClient 28:add19eb7defa 10512 result = NULL;
AzureIoTClient 28:add19eb7defa 10513 }
AzureIoTClient 28:add19eb7defa 10514 else
AzureIoTClient 28:add19eb7defa 10515 {
AzureIoTClient 28:add19eb7defa 10516 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10517 result = amqpvalue_clone(sasl_init_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10518 }
AzureIoTClient 28:add19eb7defa 10519
AzureIoTClient 28:add19eb7defa 10520 return result;
Azure.IoT Build 0:6ae2f7bca550 10521 }
Azure.IoT Build 0:6ae2f7bca550 10522
Azure.IoT Build 0:6ae2f7bca550 10523 bool is_sasl_init_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10524 {
AzureIoTClient 28:add19eb7defa 10525 bool result;
AzureIoTClient 28:add19eb7defa 10526
AzureIoTClient 28:add19eb7defa 10527 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 10528 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 10529 (descriptor_ulong == 65))
AzureIoTClient 28:add19eb7defa 10530 {
AzureIoTClient 28:add19eb7defa 10531 result = true;
AzureIoTClient 28:add19eb7defa 10532 }
AzureIoTClient 28:add19eb7defa 10533 else
AzureIoTClient 28:add19eb7defa 10534 {
AzureIoTClient 28:add19eb7defa 10535 result = false;
AzureIoTClient 28:add19eb7defa 10536 }
AzureIoTClient 28:add19eb7defa 10537
AzureIoTClient 28:add19eb7defa 10538 return result;
Azure.IoT Build 0:6ae2f7bca550 10539 }
Azure.IoT Build 0:6ae2f7bca550 10540
Azure.IoT Build 0:6ae2f7bca550 10541
Azure.IoT Build 0:6ae2f7bca550 10542 int amqpvalue_get_sasl_init(AMQP_VALUE value, SASL_INIT_HANDLE* sasl_init_handle)
Azure.IoT Build 0:6ae2f7bca550 10543 {
AzureIoTClient 28:add19eb7defa 10544 int result;
AzureIoTClient 28:add19eb7defa 10545 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init_create_internal();
AzureIoTClient 28:add19eb7defa 10546 *sasl_init_handle = sasl_init_instance;
AzureIoTClient 28:add19eb7defa 10547 if (*sasl_init_handle == NULL)
AzureIoTClient 28:add19eb7defa 10548 {
AzureIoTClient 28:add19eb7defa 10549 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10550 }
AzureIoTClient 28:add19eb7defa 10551 else
AzureIoTClient 28:add19eb7defa 10552 {
AzureIoTClient 28:add19eb7defa 10553 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 10554 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 10555 {
AzureIoTClient 28:add19eb7defa 10556 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10557 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10558 }
AzureIoTClient 28:add19eb7defa 10559 else
AzureIoTClient 28:add19eb7defa 10560 {
AzureIoTClient 23:1111ee8bcba4 10561 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10562 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10563 {
AzureIoTClient 23:1111ee8bcba4 10564 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10565 }
AzureIoTClient 23:1111ee8bcba4 10566 else
AzureIoTClient 23:1111ee8bcba4 10567 {
AzureIoTClient 28:add19eb7defa 10568 do
AzureIoTClient 28:add19eb7defa 10569 {
AzureIoTClient 28:add19eb7defa 10570 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 10571 /* mechanism */
AzureIoTClient 28:add19eb7defa 10572 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10573 {
AzureIoTClient 23:1111ee8bcba4 10574 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 10575 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10576 {
AzureIoTClient 28:add19eb7defa 10577 {
AzureIoTClient 28:add19eb7defa 10578 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10579 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10580 break;
AzureIoTClient 28:add19eb7defa 10581 }
AzureIoTClient 28:add19eb7defa 10582 }
AzureIoTClient 28:add19eb7defa 10583 else
AzureIoTClient 28:add19eb7defa 10584 {
AzureIoTClient 28:add19eb7defa 10585 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10586 {
AzureIoTClient 28:add19eb7defa 10587 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10588 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10589 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10590 break;
AzureIoTClient 28:add19eb7defa 10591 }
AzureIoTClient 28:add19eb7defa 10592 else
AzureIoTClient 28:add19eb7defa 10593 {
AzureIoTClient 28:add19eb7defa 10594 const char* mechanism;
AzureIoTClient 28:add19eb7defa 10595 if (amqpvalue_get_symbol(item_value, &mechanism) != 0)
AzureIoTClient 28:add19eb7defa 10596 {
AzureIoTClient 28:add19eb7defa 10597 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10598 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10599 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10600 break;
AzureIoTClient 28:add19eb7defa 10601 }
AzureIoTClient 28:add19eb7defa 10602 }
AzureIoTClient 28:add19eb7defa 10603
AzureIoTClient 28:add19eb7defa 10604 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10605 }
AzureIoTClient 28:add19eb7defa 10606 }
AzureIoTClient 28:add19eb7defa 10607 else
AzureIoTClient 28:add19eb7defa 10608 {
AzureIoTClient 28:add19eb7defa 10609 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10610 }
AzureIoTClient 28:add19eb7defa 10611 /* initial-response */
AzureIoTClient 28:add19eb7defa 10612 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 10613 {
AzureIoTClient 23:1111ee8bcba4 10614 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 10615 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10616 {
AzureIoTClient 28:add19eb7defa 10617 /* do nothing */
AzureIoTClient 28:add19eb7defa 10618 }
AzureIoTClient 28:add19eb7defa 10619 else
AzureIoTClient 28:add19eb7defa 10620 {
AzureIoTClient 28:add19eb7defa 10621 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10622 {
AzureIoTClient 28:add19eb7defa 10623 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 10624 }
AzureIoTClient 28:add19eb7defa 10625 else
AzureIoTClient 28:add19eb7defa 10626 {
AzureIoTClient 28:add19eb7defa 10627 amqp_binary initial_response;
AzureIoTClient 28:add19eb7defa 10628 if (amqpvalue_get_binary(item_value, &initial_response) != 0)
AzureIoTClient 28:add19eb7defa 10629 {
AzureIoTClient 28:add19eb7defa 10630 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10631 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10632 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10633 break;
AzureIoTClient 28:add19eb7defa 10634 }
AzureIoTClient 28:add19eb7defa 10635 }
AzureIoTClient 28:add19eb7defa 10636
AzureIoTClient 28:add19eb7defa 10637 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10638 }
AzureIoTClient 28:add19eb7defa 10639 }
AzureIoTClient 28:add19eb7defa 10640 /* hostname */
AzureIoTClient 28:add19eb7defa 10641 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 10642 {
AzureIoTClient 23:1111ee8bcba4 10643 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 10644 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10645 {
AzureIoTClient 28:add19eb7defa 10646 /* do nothing */
AzureIoTClient 28:add19eb7defa 10647 }
AzureIoTClient 28:add19eb7defa 10648 else
AzureIoTClient 28:add19eb7defa 10649 {
AzureIoTClient 28:add19eb7defa 10650 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10651 {
AzureIoTClient 28:add19eb7defa 10652 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 10653 }
AzureIoTClient 28:add19eb7defa 10654 else
AzureIoTClient 28:add19eb7defa 10655 {
AzureIoTClient 28:add19eb7defa 10656 const char* hostname;
AzureIoTClient 28:add19eb7defa 10657 if (amqpvalue_get_string(item_value, &hostname) != 0)
AzureIoTClient 28:add19eb7defa 10658 {
AzureIoTClient 28:add19eb7defa 10659 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10660 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10661 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10662 break;
AzureIoTClient 28:add19eb7defa 10663 }
AzureIoTClient 28:add19eb7defa 10664 }
AzureIoTClient 28:add19eb7defa 10665
AzureIoTClient 28:add19eb7defa 10666 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10667 }
AzureIoTClient 28:add19eb7defa 10668 }
AzureIoTClient 28:add19eb7defa 10669
AzureIoTClient 28:add19eb7defa 10670 sasl_init_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 10671
AzureIoTClient 28:add19eb7defa 10672 result = 0;
AzureIoTClient 28:add19eb7defa 10673 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 10674 }
AzureIoTClient 28:add19eb7defa 10675 }
AzureIoTClient 28:add19eb7defa 10676 }
AzureIoTClient 28:add19eb7defa 10677
AzureIoTClient 28:add19eb7defa 10678 return result;
Azure.IoT Build 0:6ae2f7bca550 10679 }
Azure.IoT Build 0:6ae2f7bca550 10680
Azure.IoT Build 0:6ae2f7bca550 10681 int sasl_init_get_mechanism(SASL_INIT_HANDLE sasl_init, const char** mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10682 {
AzureIoTClient 28:add19eb7defa 10683 int result;
AzureIoTClient 28:add19eb7defa 10684
AzureIoTClient 28:add19eb7defa 10685 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10686 {
AzureIoTClient 28:add19eb7defa 10687 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10688 }
AzureIoTClient 28:add19eb7defa 10689 else
AzureIoTClient 28:add19eb7defa 10690 {
AzureIoTClient 28:add19eb7defa 10691 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10692 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10693 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10694 {
AzureIoTClient 23:1111ee8bcba4 10695 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10696 }
AzureIoTClient 23:1111ee8bcba4 10697 else
AzureIoTClient 23:1111ee8bcba4 10698 {
AzureIoTClient 23:1111ee8bcba4 10699 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10700 {
AzureIoTClient 28:add19eb7defa 10701 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10702 }
AzureIoTClient 28:add19eb7defa 10703 else
AzureIoTClient 28:add19eb7defa 10704 {
AzureIoTClient 28:add19eb7defa 10705 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10706 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10707 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10708 {
AzureIoTClient 28:add19eb7defa 10709 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10710 }
AzureIoTClient 28:add19eb7defa 10711 else
AzureIoTClient 28:add19eb7defa 10712 {
AzureIoTClient 28:add19eb7defa 10713 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10714 if ((get_single_value_result = amqpvalue_get_symbol(item_value, mechanism_value)) != 0)
AzureIoTClient 28:add19eb7defa 10715 {
AzureIoTClient 28:add19eb7defa 10716 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10717 }
AzureIoTClient 28:add19eb7defa 10718 else
AzureIoTClient 28:add19eb7defa 10719 {
AzureIoTClient 28:add19eb7defa 10720 result = 0;
AzureIoTClient 28:add19eb7defa 10721 }
AzureIoTClient 28:add19eb7defa 10722 }
AzureIoTClient 28:add19eb7defa 10723 }
AzureIoTClient 28:add19eb7defa 10724 }
AzureIoTClient 28:add19eb7defa 10725 }
AzureIoTClient 28:add19eb7defa 10726
AzureIoTClient 28:add19eb7defa 10727 return result;
Azure.IoT Build 0:6ae2f7bca550 10728 }
Azure.IoT Build 0:6ae2f7bca550 10729
Azure.IoT Build 0:6ae2f7bca550 10730 int sasl_init_set_mechanism(SASL_INIT_HANDLE sasl_init, const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10731 {
AzureIoTClient 28:add19eb7defa 10732 int result;
AzureIoTClient 28:add19eb7defa 10733
AzureIoTClient 28:add19eb7defa 10734 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10735 {
AzureIoTClient 28:add19eb7defa 10736 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10737 }
AzureIoTClient 28:add19eb7defa 10738 else
AzureIoTClient 28:add19eb7defa 10739 {
AzureIoTClient 28:add19eb7defa 10740 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10741 AMQP_VALUE mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
AzureIoTClient 28:add19eb7defa 10742 if (mechanism_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10743 {
AzureIoTClient 28:add19eb7defa 10744 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10745 }
AzureIoTClient 28:add19eb7defa 10746 else
AzureIoTClient 28:add19eb7defa 10747 {
AzureIoTClient 28:add19eb7defa 10748 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10749 {
AzureIoTClient 28:add19eb7defa 10750 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10751 }
AzureIoTClient 28:add19eb7defa 10752 else
AzureIoTClient 28:add19eb7defa 10753 {
AzureIoTClient 28:add19eb7defa 10754 result = 0;
AzureIoTClient 28:add19eb7defa 10755 }
AzureIoTClient 28:add19eb7defa 10756
AzureIoTClient 28:add19eb7defa 10757 amqpvalue_destroy(mechanism_amqp_value);
AzureIoTClient 28:add19eb7defa 10758 }
AzureIoTClient 28:add19eb7defa 10759 }
AzureIoTClient 28:add19eb7defa 10760
AzureIoTClient 28:add19eb7defa 10761 return result;
Azure.IoT Build 0:6ae2f7bca550 10762 }
Azure.IoT Build 0:6ae2f7bca550 10763
Azure.IoT Build 0:6ae2f7bca550 10764 int sasl_init_get_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary* initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10765 {
AzureIoTClient 28:add19eb7defa 10766 int result;
AzureIoTClient 28:add19eb7defa 10767
AzureIoTClient 28:add19eb7defa 10768 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10769 {
AzureIoTClient 28:add19eb7defa 10770 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10771 }
AzureIoTClient 28:add19eb7defa 10772 else
AzureIoTClient 28:add19eb7defa 10773 {
AzureIoTClient 28:add19eb7defa 10774 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10775 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10776 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10777 {
AzureIoTClient 23:1111ee8bcba4 10778 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10779 }
AzureIoTClient 23:1111ee8bcba4 10780 else
AzureIoTClient 23:1111ee8bcba4 10781 {
AzureIoTClient 23:1111ee8bcba4 10782 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 10783 {
AzureIoTClient 28:add19eb7defa 10784 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10785 }
AzureIoTClient 28:add19eb7defa 10786 else
AzureIoTClient 28:add19eb7defa 10787 {
AzureIoTClient 28:add19eb7defa 10788 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 10789 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10790 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10791 {
AzureIoTClient 28:add19eb7defa 10792 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10793 }
AzureIoTClient 28:add19eb7defa 10794 else
AzureIoTClient 28:add19eb7defa 10795 {
AzureIoTClient 28:add19eb7defa 10796 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10797 if ((get_single_value_result = amqpvalue_get_binary(item_value, initial_response_value)) != 0)
AzureIoTClient 28:add19eb7defa 10798 {
AzureIoTClient 28:add19eb7defa 10799 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10800 }
AzureIoTClient 28:add19eb7defa 10801 else
AzureIoTClient 28:add19eb7defa 10802 {
AzureIoTClient 28:add19eb7defa 10803 result = 0;
AzureIoTClient 28:add19eb7defa 10804 }
AzureIoTClient 28:add19eb7defa 10805 }
AzureIoTClient 28:add19eb7defa 10806 }
AzureIoTClient 28:add19eb7defa 10807 }
AzureIoTClient 28:add19eb7defa 10808 }
AzureIoTClient 28:add19eb7defa 10809
AzureIoTClient 28:add19eb7defa 10810 return result;
Azure.IoT Build 0:6ae2f7bca550 10811 }
Azure.IoT Build 0:6ae2f7bca550 10812
Azure.IoT Build 0:6ae2f7bca550 10813 int sasl_init_set_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10814 {
AzureIoTClient 28:add19eb7defa 10815 int result;
AzureIoTClient 28:add19eb7defa 10816
AzureIoTClient 28:add19eb7defa 10817 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10818 {
AzureIoTClient 28:add19eb7defa 10819 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10820 }
AzureIoTClient 28:add19eb7defa 10821 else
AzureIoTClient 28:add19eb7defa 10822 {
AzureIoTClient 28:add19eb7defa 10823 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10824 AMQP_VALUE initial_response_amqp_value = amqpvalue_create_binary(initial_response_value);
AzureIoTClient 28:add19eb7defa 10825 if (initial_response_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10826 {
AzureIoTClient 28:add19eb7defa 10827 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10828 }
AzureIoTClient 28:add19eb7defa 10829 else
AzureIoTClient 28:add19eb7defa 10830 {
AzureIoTClient 28:add19eb7defa 10831 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 1, initial_response_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10832 {
AzureIoTClient 28:add19eb7defa 10833 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10834 }
AzureIoTClient 28:add19eb7defa 10835 else
AzureIoTClient 28:add19eb7defa 10836 {
AzureIoTClient 28:add19eb7defa 10837 result = 0;
AzureIoTClient 28:add19eb7defa 10838 }
AzureIoTClient 28:add19eb7defa 10839
AzureIoTClient 28:add19eb7defa 10840 amqpvalue_destroy(initial_response_amqp_value);
AzureIoTClient 28:add19eb7defa 10841 }
AzureIoTClient 28:add19eb7defa 10842 }
AzureIoTClient 28:add19eb7defa 10843
AzureIoTClient 28:add19eb7defa 10844 return result;
Azure.IoT Build 0:6ae2f7bca550 10845 }
Azure.IoT Build 0:6ae2f7bca550 10846
Azure.IoT Build 0:6ae2f7bca550 10847 int sasl_init_get_hostname(SASL_INIT_HANDLE sasl_init, const char** hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10848 {
AzureIoTClient 28:add19eb7defa 10849 int result;
AzureIoTClient 28:add19eb7defa 10850
AzureIoTClient 28:add19eb7defa 10851 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10852 {
AzureIoTClient 28:add19eb7defa 10853 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10854 }
AzureIoTClient 28:add19eb7defa 10855 else
AzureIoTClient 28:add19eb7defa 10856 {
AzureIoTClient 28:add19eb7defa 10857 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10858 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10859 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10860 {
AzureIoTClient 23:1111ee8bcba4 10861 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10862 }
AzureIoTClient 23:1111ee8bcba4 10863 else
AzureIoTClient 23:1111ee8bcba4 10864 {
AzureIoTClient 23:1111ee8bcba4 10865 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 10866 {
AzureIoTClient 28:add19eb7defa 10867 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10868 }
AzureIoTClient 28:add19eb7defa 10869 else
AzureIoTClient 28:add19eb7defa 10870 {
AzureIoTClient 28:add19eb7defa 10871 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 10872 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10873 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10874 {
AzureIoTClient 28:add19eb7defa 10875 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10876 }
AzureIoTClient 28:add19eb7defa 10877 else
AzureIoTClient 28:add19eb7defa 10878 {
AzureIoTClient 28:add19eb7defa 10879 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10880 if ((get_single_value_result = amqpvalue_get_string(item_value, hostname_value)) != 0)
AzureIoTClient 28:add19eb7defa 10881 {
AzureIoTClient 28:add19eb7defa 10882 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10883 }
AzureIoTClient 28:add19eb7defa 10884 else
AzureIoTClient 28:add19eb7defa 10885 {
AzureIoTClient 28:add19eb7defa 10886 result = 0;
AzureIoTClient 28:add19eb7defa 10887 }
AzureIoTClient 28:add19eb7defa 10888 }
AzureIoTClient 28:add19eb7defa 10889 }
AzureIoTClient 28:add19eb7defa 10890 }
AzureIoTClient 28:add19eb7defa 10891 }
AzureIoTClient 28:add19eb7defa 10892
AzureIoTClient 28:add19eb7defa 10893 return result;
Azure.IoT Build 0:6ae2f7bca550 10894 }
Azure.IoT Build 0:6ae2f7bca550 10895
Azure.IoT Build 0:6ae2f7bca550 10896 int sasl_init_set_hostname(SASL_INIT_HANDLE sasl_init, const char* hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10897 {
AzureIoTClient 28:add19eb7defa 10898 int result;
AzureIoTClient 28:add19eb7defa 10899
AzureIoTClient 28:add19eb7defa 10900 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10901 {
AzureIoTClient 28:add19eb7defa 10902 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10903 }
AzureIoTClient 28:add19eb7defa 10904 else
AzureIoTClient 28:add19eb7defa 10905 {
AzureIoTClient 28:add19eb7defa 10906 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10907 AMQP_VALUE hostname_amqp_value = amqpvalue_create_string(hostname_value);
AzureIoTClient 28:add19eb7defa 10908 if (hostname_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10909 {
AzureIoTClient 28:add19eb7defa 10910 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10911 }
AzureIoTClient 28:add19eb7defa 10912 else
AzureIoTClient 28:add19eb7defa 10913 {
AzureIoTClient 28:add19eb7defa 10914 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 2, hostname_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10915 {
AzureIoTClient 28:add19eb7defa 10916 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10917 }
AzureIoTClient 28:add19eb7defa 10918 else
AzureIoTClient 28:add19eb7defa 10919 {
AzureIoTClient 28:add19eb7defa 10920 result = 0;
AzureIoTClient 28:add19eb7defa 10921 }
AzureIoTClient 28:add19eb7defa 10922
AzureIoTClient 28:add19eb7defa 10923 amqpvalue_destroy(hostname_amqp_value);
AzureIoTClient 28:add19eb7defa 10924 }
AzureIoTClient 28:add19eb7defa 10925 }
AzureIoTClient 28:add19eb7defa 10926
AzureIoTClient 28:add19eb7defa 10927 return result;
Azure.IoT Build 0:6ae2f7bca550 10928 }
Azure.IoT Build 0:6ae2f7bca550 10929
Azure.IoT Build 0:6ae2f7bca550 10930
Azure.IoT Build 0:6ae2f7bca550 10931 /* sasl-challenge */
Azure.IoT Build 0:6ae2f7bca550 10932
Azure.IoT Build 0:6ae2f7bca550 10933 typedef struct SASL_CHALLENGE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10934 {
AzureIoTClient 28:add19eb7defa 10935 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10936 } SASL_CHALLENGE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10937
Azure.IoT Build 0:6ae2f7bca550 10938 static SASL_CHALLENGE_HANDLE sasl_challenge_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10939 {
AzureIoTClient 28:add19eb7defa 10940 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10941 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10942 {
AzureIoTClient 28:add19eb7defa 10943 sasl_challenge_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10944 }
AzureIoTClient 28:add19eb7defa 10945
AzureIoTClient 28:add19eb7defa 10946 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10947 }
Azure.IoT Build 0:6ae2f7bca550 10948
Azure.IoT Build 0:6ae2f7bca550 10949 SASL_CHALLENGE_HANDLE sasl_challenge_create(amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 10950 {
AzureIoTClient 28:add19eb7defa 10951 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10952 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10953 {
AzureIoTClient 28:add19eb7defa 10954 sasl_challenge_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(66);
AzureIoTClient 28:add19eb7defa 10955 if (sasl_challenge_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10956 {
AzureIoTClient 28:add19eb7defa 10957 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10958 sasl_challenge_instance = NULL;
AzureIoTClient 28:add19eb7defa 10959 }
AzureIoTClient 28:add19eb7defa 10960 else
AzureIoTClient 28:add19eb7defa 10961 {
AzureIoTClient 28:add19eb7defa 10962 AMQP_VALUE challenge_amqp_value;
AzureIoTClient 28:add19eb7defa 10963 int result = 0;
AzureIoTClient 28:add19eb7defa 10964
AzureIoTClient 28:add19eb7defa 10965 challenge_amqp_value = amqpvalue_create_binary(challenge_value);
AzureIoTClient 28:add19eb7defa 10966 if ((result == 0) && (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10967 {
AzureIoTClient 28:add19eb7defa 10968 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10969 }
AzureIoTClient 28:add19eb7defa 10970
AzureIoTClient 28:add19eb7defa 10971 amqpvalue_destroy(challenge_amqp_value);
AzureIoTClient 28:add19eb7defa 10972 }
AzureIoTClient 28:add19eb7defa 10973 }
AzureIoTClient 28:add19eb7defa 10974
AzureIoTClient 28:add19eb7defa 10975 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10976 }
Azure.IoT Build 0:6ae2f7bca550 10977
Azure.IoT Build 0:6ae2f7bca550 10978 SASL_CHALLENGE_HANDLE sasl_challenge_clone(SASL_CHALLENGE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10979 {
AzureIoTClient 28:add19eb7defa 10980 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10981 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10982 {
AzureIoTClient 28:add19eb7defa 10983 sasl_challenge_instance->composite_value = amqpvalue_clone(((SASL_CHALLENGE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10984 if (sasl_challenge_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10985 {
AzureIoTClient 28:add19eb7defa 10986 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10987 sasl_challenge_instance = NULL;
AzureIoTClient 28:add19eb7defa 10988 }
AzureIoTClient 28:add19eb7defa 10989 }
AzureIoTClient 28:add19eb7defa 10990
AzureIoTClient 28:add19eb7defa 10991 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10992 }
Azure.IoT Build 0:6ae2f7bca550 10993
Azure.IoT Build 0:6ae2f7bca550 10994 void sasl_challenge_destroy(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 10995 {
AzureIoTClient 28:add19eb7defa 10996 if (sasl_challenge != NULL)
AzureIoTClient 28:add19eb7defa 10997 {
AzureIoTClient 28:add19eb7defa 10998 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 10999 amqpvalue_destroy(sasl_challenge_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11000 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 11001 }
Azure.IoT Build 0:6ae2f7bca550 11002 }
Azure.IoT Build 0:6ae2f7bca550 11003
Azure.IoT Build 0:6ae2f7bca550 11004 AMQP_VALUE amqpvalue_create_sasl_challenge(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 11005 {
AzureIoTClient 28:add19eb7defa 11006 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11007
AzureIoTClient 28:add19eb7defa 11008 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11009 {
AzureIoTClient 28:add19eb7defa 11010 result = NULL;
AzureIoTClient 28:add19eb7defa 11011 }
AzureIoTClient 28:add19eb7defa 11012 else
AzureIoTClient 28:add19eb7defa 11013 {
AzureIoTClient 28:add19eb7defa 11014 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 11015 result = amqpvalue_clone(sasl_challenge_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11016 }
AzureIoTClient 28:add19eb7defa 11017
AzureIoTClient 28:add19eb7defa 11018 return result;
Azure.IoT Build 0:6ae2f7bca550 11019 }
Azure.IoT Build 0:6ae2f7bca550 11020
Azure.IoT Build 0:6ae2f7bca550 11021 bool is_sasl_challenge_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11022 {
AzureIoTClient 28:add19eb7defa 11023 bool result;
AzureIoTClient 28:add19eb7defa 11024
AzureIoTClient 28:add19eb7defa 11025 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11026 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11027 (descriptor_ulong == 66))
AzureIoTClient 28:add19eb7defa 11028 {
AzureIoTClient 28:add19eb7defa 11029 result = true;
AzureIoTClient 28:add19eb7defa 11030 }
AzureIoTClient 28:add19eb7defa 11031 else
AzureIoTClient 28:add19eb7defa 11032 {
AzureIoTClient 28:add19eb7defa 11033 result = false;
AzureIoTClient 28:add19eb7defa 11034 }
AzureIoTClient 28:add19eb7defa 11035
AzureIoTClient 28:add19eb7defa 11036 return result;
Azure.IoT Build 0:6ae2f7bca550 11037 }
Azure.IoT Build 0:6ae2f7bca550 11038
Azure.IoT Build 0:6ae2f7bca550 11039
Azure.IoT Build 0:6ae2f7bca550 11040 int amqpvalue_get_sasl_challenge(AMQP_VALUE value, SASL_CHALLENGE_HANDLE* sasl_challenge_handle)
Azure.IoT Build 0:6ae2f7bca550 11041 {
AzureIoTClient 28:add19eb7defa 11042 int result;
AzureIoTClient 28:add19eb7defa 11043 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge_create_internal();
AzureIoTClient 28:add19eb7defa 11044 *sasl_challenge_handle = sasl_challenge_instance;
AzureIoTClient 28:add19eb7defa 11045 if (*sasl_challenge_handle == NULL)
AzureIoTClient 28:add19eb7defa 11046 {
AzureIoTClient 28:add19eb7defa 11047 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11048 }
AzureIoTClient 28:add19eb7defa 11049 else
AzureIoTClient 28:add19eb7defa 11050 {
AzureIoTClient 28:add19eb7defa 11051 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11052 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11053 {
AzureIoTClient 28:add19eb7defa 11054 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11055 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11056 }
AzureIoTClient 28:add19eb7defa 11057 else
AzureIoTClient 28:add19eb7defa 11058 {
AzureIoTClient 23:1111ee8bcba4 11059 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11060 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11061 {
AzureIoTClient 23:1111ee8bcba4 11062 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11063 }
AzureIoTClient 23:1111ee8bcba4 11064 else
AzureIoTClient 23:1111ee8bcba4 11065 {
AzureIoTClient 28:add19eb7defa 11066 do
AzureIoTClient 28:add19eb7defa 11067 {
AzureIoTClient 28:add19eb7defa 11068 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11069 /* challenge */
AzureIoTClient 28:add19eb7defa 11070 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11071 {
AzureIoTClient 23:1111ee8bcba4 11072 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11073 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11074 {
AzureIoTClient 28:add19eb7defa 11075 {
AzureIoTClient 28:add19eb7defa 11076 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11077 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11078 break;
AzureIoTClient 28:add19eb7defa 11079 }
AzureIoTClient 28:add19eb7defa 11080 }
AzureIoTClient 28:add19eb7defa 11081 else
AzureIoTClient 28:add19eb7defa 11082 {
AzureIoTClient 28:add19eb7defa 11083 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11084 {
AzureIoTClient 28:add19eb7defa 11085 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11086 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11087 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11088 break;
AzureIoTClient 28:add19eb7defa 11089 }
AzureIoTClient 28:add19eb7defa 11090 else
AzureIoTClient 28:add19eb7defa 11091 {
AzureIoTClient 28:add19eb7defa 11092 amqp_binary challenge;
AzureIoTClient 28:add19eb7defa 11093 if (amqpvalue_get_binary(item_value, &challenge) != 0)
AzureIoTClient 28:add19eb7defa 11094 {
AzureIoTClient 28:add19eb7defa 11095 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11096 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 11097 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11098 break;
AzureIoTClient 28:add19eb7defa 11099 }
AzureIoTClient 28:add19eb7defa 11100 }
AzureIoTClient 28:add19eb7defa 11101
AzureIoTClient 28:add19eb7defa 11102 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11103 }
AzureIoTClient 28:add19eb7defa 11104 }
AzureIoTClient 28:add19eb7defa 11105 else
AzureIoTClient 28:add19eb7defa 11106 {
AzureIoTClient 28:add19eb7defa 11107 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11108 }
AzureIoTClient 28:add19eb7defa 11109
AzureIoTClient 28:add19eb7defa 11110 sasl_challenge_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11111
AzureIoTClient 28:add19eb7defa 11112 result = 0;
AzureIoTClient 28:add19eb7defa 11113 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11114 }
AzureIoTClient 28:add19eb7defa 11115 }
AzureIoTClient 28:add19eb7defa 11116 }
AzureIoTClient 28:add19eb7defa 11117
AzureIoTClient 28:add19eb7defa 11118 return result;
Azure.IoT Build 0:6ae2f7bca550 11119 }
Azure.IoT Build 0:6ae2f7bca550 11120
Azure.IoT Build 0:6ae2f7bca550 11121 int sasl_challenge_get_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary* challenge_value)
Azure.IoT Build 0:6ae2f7bca550 11122 {
AzureIoTClient 28:add19eb7defa 11123 int result;
AzureIoTClient 28:add19eb7defa 11124
AzureIoTClient 28:add19eb7defa 11125 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11126 {
AzureIoTClient 28:add19eb7defa 11127 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11128 }
AzureIoTClient 28:add19eb7defa 11129 else
AzureIoTClient 28:add19eb7defa 11130 {
AzureIoTClient 28:add19eb7defa 11131 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11132 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 23:1111ee8bcba4 11133 if (amqpvalue_get_composite_item_count(sasl_challenge_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11134 {
AzureIoTClient 23:1111ee8bcba4 11135 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11136 }
AzureIoTClient 23:1111ee8bcba4 11137 else
AzureIoTClient 23:1111ee8bcba4 11138 {
AzureIoTClient 23:1111ee8bcba4 11139 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11140 {
AzureIoTClient 28:add19eb7defa 11141 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11142 }
AzureIoTClient 28:add19eb7defa 11143 else
AzureIoTClient 28:add19eb7defa 11144 {
AzureIoTClient 28:add19eb7defa 11145 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_challenge_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11146 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11147 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11148 {
AzureIoTClient 28:add19eb7defa 11149 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11150 }
AzureIoTClient 28:add19eb7defa 11151 else
AzureIoTClient 28:add19eb7defa 11152 {
AzureIoTClient 28:add19eb7defa 11153 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11154 if ((get_single_value_result = amqpvalue_get_binary(item_value, challenge_value)) != 0)
AzureIoTClient 28:add19eb7defa 11155 {
AzureIoTClient 28:add19eb7defa 11156 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11157 }
AzureIoTClient 28:add19eb7defa 11158 else
AzureIoTClient 28:add19eb7defa 11159 {
AzureIoTClient 28:add19eb7defa 11160 result = 0;
AzureIoTClient 28:add19eb7defa 11161 }
AzureIoTClient 28:add19eb7defa 11162 }
AzureIoTClient 28:add19eb7defa 11163 }
AzureIoTClient 28:add19eb7defa 11164 }
AzureIoTClient 28:add19eb7defa 11165 }
AzureIoTClient 28:add19eb7defa 11166
AzureIoTClient 28:add19eb7defa 11167 return result;
Azure.IoT Build 0:6ae2f7bca550 11168 }
Azure.IoT Build 0:6ae2f7bca550 11169
Azure.IoT Build 0:6ae2f7bca550 11170 int sasl_challenge_set_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 11171 {
AzureIoTClient 28:add19eb7defa 11172 int result;
AzureIoTClient 28:add19eb7defa 11173
AzureIoTClient 28:add19eb7defa 11174 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11175 {
AzureIoTClient 28:add19eb7defa 11176 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11177 }
AzureIoTClient 28:add19eb7defa 11178 else
AzureIoTClient 28:add19eb7defa 11179 {
AzureIoTClient 28:add19eb7defa 11180 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 11181 AMQP_VALUE challenge_amqp_value = amqpvalue_create_binary(challenge_value);
AzureIoTClient 28:add19eb7defa 11182 if (challenge_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11183 {
AzureIoTClient 28:add19eb7defa 11184 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11185 }
AzureIoTClient 28:add19eb7defa 11186 else
AzureIoTClient 28:add19eb7defa 11187 {
AzureIoTClient 28:add19eb7defa 11188 if (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11189 {
AzureIoTClient 28:add19eb7defa 11190 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11191 }
AzureIoTClient 28:add19eb7defa 11192 else
AzureIoTClient 28:add19eb7defa 11193 {
AzureIoTClient 28:add19eb7defa 11194 result = 0;
AzureIoTClient 28:add19eb7defa 11195 }
AzureIoTClient 28:add19eb7defa 11196
AzureIoTClient 28:add19eb7defa 11197 amqpvalue_destroy(challenge_amqp_value);
AzureIoTClient 28:add19eb7defa 11198 }
AzureIoTClient 28:add19eb7defa 11199 }
AzureIoTClient 28:add19eb7defa 11200
AzureIoTClient 28:add19eb7defa 11201 return result;
Azure.IoT Build 0:6ae2f7bca550 11202 }
Azure.IoT Build 0:6ae2f7bca550 11203
Azure.IoT Build 0:6ae2f7bca550 11204
Azure.IoT Build 0:6ae2f7bca550 11205 /* sasl-response */
Azure.IoT Build 0:6ae2f7bca550 11206
Azure.IoT Build 0:6ae2f7bca550 11207 typedef struct SASL_RESPONSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11208 {
AzureIoTClient 28:add19eb7defa 11209 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11210 } SASL_RESPONSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11211
Azure.IoT Build 0:6ae2f7bca550 11212 static SASL_RESPONSE_HANDLE sasl_response_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11213 {
AzureIoTClient 28:add19eb7defa 11214 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11215 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11216 {
AzureIoTClient 28:add19eb7defa 11217 sasl_response_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11218 }
AzureIoTClient 28:add19eb7defa 11219
AzureIoTClient 28:add19eb7defa 11220 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11221 }
Azure.IoT Build 0:6ae2f7bca550 11222
Azure.IoT Build 0:6ae2f7bca550 11223 SASL_RESPONSE_HANDLE sasl_response_create(amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 11224 {
AzureIoTClient 28:add19eb7defa 11225 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11226 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11227 {
AzureIoTClient 28:add19eb7defa 11228 sasl_response_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(67);
AzureIoTClient 28:add19eb7defa 11229 if (sasl_response_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11230 {
AzureIoTClient 28:add19eb7defa 11231 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11232 sasl_response_instance = NULL;
AzureIoTClient 28:add19eb7defa 11233 }
AzureIoTClient 28:add19eb7defa 11234 else
AzureIoTClient 28:add19eb7defa 11235 {
AzureIoTClient 28:add19eb7defa 11236 AMQP_VALUE response_amqp_value;
AzureIoTClient 28:add19eb7defa 11237 int result = 0;
AzureIoTClient 28:add19eb7defa 11238
AzureIoTClient 28:add19eb7defa 11239 response_amqp_value = amqpvalue_create_binary(response_value);
AzureIoTClient 28:add19eb7defa 11240 if ((result == 0) && (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 11241 {
AzureIoTClient 28:add19eb7defa 11242 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11243 }
AzureIoTClient 28:add19eb7defa 11244
AzureIoTClient 28:add19eb7defa 11245 amqpvalue_destroy(response_amqp_value);
AzureIoTClient 28:add19eb7defa 11246 }
AzureIoTClient 28:add19eb7defa 11247 }
AzureIoTClient 28:add19eb7defa 11248
AzureIoTClient 28:add19eb7defa 11249 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11250 }
Azure.IoT Build 0:6ae2f7bca550 11251
Azure.IoT Build 0:6ae2f7bca550 11252 SASL_RESPONSE_HANDLE sasl_response_clone(SASL_RESPONSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11253 {
AzureIoTClient 28:add19eb7defa 11254 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11255 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11256 {
AzureIoTClient 28:add19eb7defa 11257 sasl_response_instance->composite_value = amqpvalue_clone(((SASL_RESPONSE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11258 if (sasl_response_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11259 {
AzureIoTClient 28:add19eb7defa 11260 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11261 sasl_response_instance = NULL;
AzureIoTClient 28:add19eb7defa 11262 }
AzureIoTClient 28:add19eb7defa 11263 }
AzureIoTClient 28:add19eb7defa 11264
AzureIoTClient 28:add19eb7defa 11265 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11266 }
Azure.IoT Build 0:6ae2f7bca550 11267
Azure.IoT Build 0:6ae2f7bca550 11268 void sasl_response_destroy(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 11269 {
AzureIoTClient 28:add19eb7defa 11270 if (sasl_response != NULL)
AzureIoTClient 28:add19eb7defa 11271 {
AzureIoTClient 28:add19eb7defa 11272 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11273 amqpvalue_destroy(sasl_response_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11274 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11275 }
Azure.IoT Build 0:6ae2f7bca550 11276 }
Azure.IoT Build 0:6ae2f7bca550 11277
Azure.IoT Build 0:6ae2f7bca550 11278 AMQP_VALUE amqpvalue_create_sasl_response(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 11279 {
AzureIoTClient 28:add19eb7defa 11280 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11281
AzureIoTClient 28:add19eb7defa 11282 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11283 {
AzureIoTClient 28:add19eb7defa 11284 result = NULL;
AzureIoTClient 28:add19eb7defa 11285 }
AzureIoTClient 28:add19eb7defa 11286 else
AzureIoTClient 28:add19eb7defa 11287 {
AzureIoTClient 28:add19eb7defa 11288 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11289 result = amqpvalue_clone(sasl_response_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11290 }
AzureIoTClient 28:add19eb7defa 11291
AzureIoTClient 28:add19eb7defa 11292 return result;
Azure.IoT Build 0:6ae2f7bca550 11293 }
Azure.IoT Build 0:6ae2f7bca550 11294
Azure.IoT Build 0:6ae2f7bca550 11295 bool is_sasl_response_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11296 {
AzureIoTClient 28:add19eb7defa 11297 bool result;
AzureIoTClient 28:add19eb7defa 11298
AzureIoTClient 28:add19eb7defa 11299 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11300 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11301 (descriptor_ulong == 67))
AzureIoTClient 28:add19eb7defa 11302 {
AzureIoTClient 28:add19eb7defa 11303 result = true;
AzureIoTClient 28:add19eb7defa 11304 }
AzureIoTClient 28:add19eb7defa 11305 else
AzureIoTClient 28:add19eb7defa 11306 {
AzureIoTClient 28:add19eb7defa 11307 result = false;
AzureIoTClient 28:add19eb7defa 11308 }
AzureIoTClient 28:add19eb7defa 11309
AzureIoTClient 28:add19eb7defa 11310 return result;
Azure.IoT Build 0:6ae2f7bca550 11311 }
Azure.IoT Build 0:6ae2f7bca550 11312
Azure.IoT Build 0:6ae2f7bca550 11313
Azure.IoT Build 0:6ae2f7bca550 11314 int amqpvalue_get_sasl_response(AMQP_VALUE value, SASL_RESPONSE_HANDLE* sasl_response_handle)
Azure.IoT Build 0:6ae2f7bca550 11315 {
AzureIoTClient 28:add19eb7defa 11316 int result;
AzureIoTClient 28:add19eb7defa 11317 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response_create_internal();
AzureIoTClient 28:add19eb7defa 11318 *sasl_response_handle = sasl_response_instance;
AzureIoTClient 28:add19eb7defa 11319 if (*sasl_response_handle == NULL)
AzureIoTClient 28:add19eb7defa 11320 {
AzureIoTClient 28:add19eb7defa 11321 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11322 }
AzureIoTClient 28:add19eb7defa 11323 else
AzureIoTClient 28:add19eb7defa 11324 {
AzureIoTClient 28:add19eb7defa 11325 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11326 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11327 {
AzureIoTClient 28:add19eb7defa 11328 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11329 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11330 }
AzureIoTClient 28:add19eb7defa 11331 else
AzureIoTClient 28:add19eb7defa 11332 {
AzureIoTClient 23:1111ee8bcba4 11333 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11334 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11335 {
AzureIoTClient 23:1111ee8bcba4 11336 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11337 }
AzureIoTClient 23:1111ee8bcba4 11338 else
AzureIoTClient 23:1111ee8bcba4 11339 {
AzureIoTClient 28:add19eb7defa 11340 do
AzureIoTClient 28:add19eb7defa 11341 {
AzureIoTClient 28:add19eb7defa 11342 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11343 /* response */
AzureIoTClient 28:add19eb7defa 11344 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11345 {
AzureIoTClient 23:1111ee8bcba4 11346 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11347 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11348 {
AzureIoTClient 28:add19eb7defa 11349 {
AzureIoTClient 28:add19eb7defa 11350 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11351 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11352 break;
AzureIoTClient 28:add19eb7defa 11353 }
AzureIoTClient 28:add19eb7defa 11354 }
AzureIoTClient 28:add19eb7defa 11355 else
AzureIoTClient 28:add19eb7defa 11356 {
AzureIoTClient 28:add19eb7defa 11357 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11358 {
AzureIoTClient 28:add19eb7defa 11359 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11360 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11361 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11362 break;
AzureIoTClient 28:add19eb7defa 11363 }
AzureIoTClient 28:add19eb7defa 11364 else
AzureIoTClient 28:add19eb7defa 11365 {
AzureIoTClient 28:add19eb7defa 11366 amqp_binary response;
AzureIoTClient 28:add19eb7defa 11367 if (amqpvalue_get_binary(item_value, &response) != 0)
AzureIoTClient 28:add19eb7defa 11368 {
AzureIoTClient 28:add19eb7defa 11369 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11370 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11371 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11372 break;
AzureIoTClient 28:add19eb7defa 11373 }
AzureIoTClient 28:add19eb7defa 11374 }
AzureIoTClient 28:add19eb7defa 11375
AzureIoTClient 28:add19eb7defa 11376 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11377 }
AzureIoTClient 28:add19eb7defa 11378 }
AzureIoTClient 28:add19eb7defa 11379 else
AzureIoTClient 28:add19eb7defa 11380 {
AzureIoTClient 28:add19eb7defa 11381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11382 }
AzureIoTClient 28:add19eb7defa 11383
AzureIoTClient 28:add19eb7defa 11384 sasl_response_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11385
AzureIoTClient 28:add19eb7defa 11386 result = 0;
AzureIoTClient 28:add19eb7defa 11387 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11388 }
AzureIoTClient 28:add19eb7defa 11389 }
AzureIoTClient 28:add19eb7defa 11390 }
AzureIoTClient 28:add19eb7defa 11391
AzureIoTClient 28:add19eb7defa 11392 return result;
Azure.IoT Build 0:6ae2f7bca550 11393 }
Azure.IoT Build 0:6ae2f7bca550 11394
Azure.IoT Build 0:6ae2f7bca550 11395 int sasl_response_get_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary* response_value)
Azure.IoT Build 0:6ae2f7bca550 11396 {
AzureIoTClient 28:add19eb7defa 11397 int result;
AzureIoTClient 28:add19eb7defa 11398
AzureIoTClient 28:add19eb7defa 11399 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11400 {
AzureIoTClient 28:add19eb7defa 11401 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11402 }
AzureIoTClient 28:add19eb7defa 11403 else
AzureIoTClient 28:add19eb7defa 11404 {
AzureIoTClient 28:add19eb7defa 11405 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11406 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 23:1111ee8bcba4 11407 if (amqpvalue_get_composite_item_count(sasl_response_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11408 {
AzureIoTClient 23:1111ee8bcba4 11409 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11410 }
AzureIoTClient 23:1111ee8bcba4 11411 else
AzureIoTClient 23:1111ee8bcba4 11412 {
AzureIoTClient 23:1111ee8bcba4 11413 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11414 {
AzureIoTClient 28:add19eb7defa 11415 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11416 }
AzureIoTClient 28:add19eb7defa 11417 else
AzureIoTClient 28:add19eb7defa 11418 {
AzureIoTClient 28:add19eb7defa 11419 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_response_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11420 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11421 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11422 {
AzureIoTClient 28:add19eb7defa 11423 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11424 }
AzureIoTClient 28:add19eb7defa 11425 else
AzureIoTClient 28:add19eb7defa 11426 {
AzureIoTClient 28:add19eb7defa 11427 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11428 if ((get_single_value_result = amqpvalue_get_binary(item_value, response_value)) != 0)
AzureIoTClient 28:add19eb7defa 11429 {
AzureIoTClient 28:add19eb7defa 11430 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11431 }
AzureIoTClient 28:add19eb7defa 11432 else
AzureIoTClient 28:add19eb7defa 11433 {
AzureIoTClient 28:add19eb7defa 11434 result = 0;
AzureIoTClient 28:add19eb7defa 11435 }
AzureIoTClient 28:add19eb7defa 11436 }
AzureIoTClient 28:add19eb7defa 11437 }
AzureIoTClient 28:add19eb7defa 11438 }
AzureIoTClient 28:add19eb7defa 11439 }
AzureIoTClient 28:add19eb7defa 11440
AzureIoTClient 28:add19eb7defa 11441 return result;
Azure.IoT Build 0:6ae2f7bca550 11442 }
Azure.IoT Build 0:6ae2f7bca550 11443
Azure.IoT Build 0:6ae2f7bca550 11444 int sasl_response_set_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 11445 {
AzureIoTClient 28:add19eb7defa 11446 int result;
AzureIoTClient 28:add19eb7defa 11447
AzureIoTClient 28:add19eb7defa 11448 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11449 {
AzureIoTClient 28:add19eb7defa 11450 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11451 }
AzureIoTClient 28:add19eb7defa 11452 else
AzureIoTClient 28:add19eb7defa 11453 {
AzureIoTClient 28:add19eb7defa 11454 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11455 AMQP_VALUE response_amqp_value = amqpvalue_create_binary(response_value);
AzureIoTClient 28:add19eb7defa 11456 if (response_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11457 {
AzureIoTClient 28:add19eb7defa 11458 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11459 }
AzureIoTClient 28:add19eb7defa 11460 else
AzureIoTClient 28:add19eb7defa 11461 {
AzureIoTClient 28:add19eb7defa 11462 if (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11463 {
AzureIoTClient 28:add19eb7defa 11464 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11465 }
AzureIoTClient 28:add19eb7defa 11466 else
AzureIoTClient 28:add19eb7defa 11467 {
AzureIoTClient 28:add19eb7defa 11468 result = 0;
AzureIoTClient 28:add19eb7defa 11469 }
AzureIoTClient 28:add19eb7defa 11470
AzureIoTClient 28:add19eb7defa 11471 amqpvalue_destroy(response_amqp_value);
AzureIoTClient 28:add19eb7defa 11472 }
AzureIoTClient 28:add19eb7defa 11473 }
AzureIoTClient 28:add19eb7defa 11474
AzureIoTClient 28:add19eb7defa 11475 return result;
Azure.IoT Build 0:6ae2f7bca550 11476 }
Azure.IoT Build 0:6ae2f7bca550 11477
Azure.IoT Build 0:6ae2f7bca550 11478
Azure.IoT Build 0:6ae2f7bca550 11479 /* sasl-outcome */
Azure.IoT Build 0:6ae2f7bca550 11480
Azure.IoT Build 0:6ae2f7bca550 11481 typedef struct SASL_OUTCOME_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11482 {
AzureIoTClient 28:add19eb7defa 11483 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11484 } SASL_OUTCOME_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11485
Azure.IoT Build 0:6ae2f7bca550 11486 static SASL_OUTCOME_HANDLE sasl_outcome_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11487 {
AzureIoTClient 28:add19eb7defa 11488 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11489 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11490 {
AzureIoTClient 28:add19eb7defa 11491 sasl_outcome_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11492 }
AzureIoTClient 28:add19eb7defa 11493
AzureIoTClient 28:add19eb7defa 11494 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11495 }
Azure.IoT Build 0:6ae2f7bca550 11496
Azure.IoT Build 0:6ae2f7bca550 11497 SASL_OUTCOME_HANDLE sasl_outcome_create(sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11498 {
AzureIoTClient 28:add19eb7defa 11499 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11500 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11501 {
AzureIoTClient 28:add19eb7defa 11502 sasl_outcome_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(68);
AzureIoTClient 28:add19eb7defa 11503 if (sasl_outcome_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11504 {
AzureIoTClient 28:add19eb7defa 11505 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11506 sasl_outcome_instance = NULL;
AzureIoTClient 28:add19eb7defa 11507 }
AzureIoTClient 28:add19eb7defa 11508 else
AzureIoTClient 28:add19eb7defa 11509 {
AzureIoTClient 28:add19eb7defa 11510 AMQP_VALUE code_amqp_value;
AzureIoTClient 28:add19eb7defa 11511 int result = 0;
AzureIoTClient 28:add19eb7defa 11512
AzureIoTClient 28:add19eb7defa 11513 code_amqp_value = amqpvalue_create_sasl_code(code_value);
AzureIoTClient 28:add19eb7defa 11514 if ((result == 0) && (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 11515 {
AzureIoTClient 28:add19eb7defa 11516 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11517 }
AzureIoTClient 28:add19eb7defa 11518
AzureIoTClient 28:add19eb7defa 11519 amqpvalue_destroy(code_amqp_value);
AzureIoTClient 28:add19eb7defa 11520 }
AzureIoTClient 28:add19eb7defa 11521 }
AzureIoTClient 28:add19eb7defa 11522
AzureIoTClient 28:add19eb7defa 11523 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11524 }
Azure.IoT Build 0:6ae2f7bca550 11525
Azure.IoT Build 0:6ae2f7bca550 11526 SASL_OUTCOME_HANDLE sasl_outcome_clone(SASL_OUTCOME_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11527 {
AzureIoTClient 28:add19eb7defa 11528 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11529 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11530 {
AzureIoTClient 28:add19eb7defa 11531 sasl_outcome_instance->composite_value = amqpvalue_clone(((SASL_OUTCOME_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11532 if (sasl_outcome_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11533 {
AzureIoTClient 28:add19eb7defa 11534 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11535 sasl_outcome_instance = NULL;
AzureIoTClient 28:add19eb7defa 11536 }
AzureIoTClient 28:add19eb7defa 11537 }
AzureIoTClient 28:add19eb7defa 11538
AzureIoTClient 28:add19eb7defa 11539 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11540 }
Azure.IoT Build 0:6ae2f7bca550 11541
Azure.IoT Build 0:6ae2f7bca550 11542 void sasl_outcome_destroy(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 11543 {
AzureIoTClient 28:add19eb7defa 11544 if (sasl_outcome != NULL)
AzureIoTClient 28:add19eb7defa 11545 {
AzureIoTClient 28:add19eb7defa 11546 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11547 amqpvalue_destroy(sasl_outcome_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11548 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11549 }
Azure.IoT Build 0:6ae2f7bca550 11550 }
Azure.IoT Build 0:6ae2f7bca550 11551
Azure.IoT Build 0:6ae2f7bca550 11552 AMQP_VALUE amqpvalue_create_sasl_outcome(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 11553 {
AzureIoTClient 28:add19eb7defa 11554 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11555
AzureIoTClient 28:add19eb7defa 11556 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11557 {
AzureIoTClient 28:add19eb7defa 11558 result = NULL;
AzureIoTClient 28:add19eb7defa 11559 }
AzureIoTClient 28:add19eb7defa 11560 else
AzureIoTClient 28:add19eb7defa 11561 {
AzureIoTClient 28:add19eb7defa 11562 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11563 result = amqpvalue_clone(sasl_outcome_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11564 }
AzureIoTClient 28:add19eb7defa 11565
AzureIoTClient 28:add19eb7defa 11566 return result;
Azure.IoT Build 0:6ae2f7bca550 11567 }
Azure.IoT Build 0:6ae2f7bca550 11568
Azure.IoT Build 0:6ae2f7bca550 11569 bool is_sasl_outcome_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11570 {
AzureIoTClient 28:add19eb7defa 11571 bool result;
AzureIoTClient 28:add19eb7defa 11572
AzureIoTClient 28:add19eb7defa 11573 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11574 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11575 (descriptor_ulong == 68))
AzureIoTClient 28:add19eb7defa 11576 {
AzureIoTClient 28:add19eb7defa 11577 result = true;
AzureIoTClient 28:add19eb7defa 11578 }
AzureIoTClient 28:add19eb7defa 11579 else
AzureIoTClient 28:add19eb7defa 11580 {
AzureIoTClient 28:add19eb7defa 11581 result = false;
AzureIoTClient 28:add19eb7defa 11582 }
AzureIoTClient 28:add19eb7defa 11583
AzureIoTClient 28:add19eb7defa 11584 return result;
Azure.IoT Build 0:6ae2f7bca550 11585 }
Azure.IoT Build 0:6ae2f7bca550 11586
Azure.IoT Build 0:6ae2f7bca550 11587
Azure.IoT Build 0:6ae2f7bca550 11588 int amqpvalue_get_sasl_outcome(AMQP_VALUE value, SASL_OUTCOME_HANDLE* sasl_outcome_handle)
Azure.IoT Build 0:6ae2f7bca550 11589 {
AzureIoTClient 28:add19eb7defa 11590 int result;
AzureIoTClient 28:add19eb7defa 11591 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome_create_internal();
AzureIoTClient 28:add19eb7defa 11592 *sasl_outcome_handle = sasl_outcome_instance;
AzureIoTClient 28:add19eb7defa 11593 if (*sasl_outcome_handle == NULL)
AzureIoTClient 28:add19eb7defa 11594 {
AzureIoTClient 28:add19eb7defa 11595 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11596 }
AzureIoTClient 28:add19eb7defa 11597 else
AzureIoTClient 28:add19eb7defa 11598 {
AzureIoTClient 28:add19eb7defa 11599 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11600 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11601 {
AzureIoTClient 28:add19eb7defa 11602 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11603 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11604 }
AzureIoTClient 28:add19eb7defa 11605 else
AzureIoTClient 28:add19eb7defa 11606 {
AzureIoTClient 23:1111ee8bcba4 11607 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11608 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11609 {
AzureIoTClient 23:1111ee8bcba4 11610 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11611 }
AzureIoTClient 23:1111ee8bcba4 11612 else
AzureIoTClient 23:1111ee8bcba4 11613 {
AzureIoTClient 28:add19eb7defa 11614 do
AzureIoTClient 28:add19eb7defa 11615 {
AzureIoTClient 28:add19eb7defa 11616 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11617 /* code */
AzureIoTClient 28:add19eb7defa 11618 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11619 {
AzureIoTClient 23:1111ee8bcba4 11620 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11621 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11622 {
AzureIoTClient 28:add19eb7defa 11623 {
AzureIoTClient 28:add19eb7defa 11624 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11625 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11626 break;
AzureIoTClient 28:add19eb7defa 11627 }
AzureIoTClient 28:add19eb7defa 11628 }
AzureIoTClient 28:add19eb7defa 11629 else
AzureIoTClient 28:add19eb7defa 11630 {
AzureIoTClient 28:add19eb7defa 11631 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11632 {
AzureIoTClient 28:add19eb7defa 11633 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11634 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11635 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11636 break;
AzureIoTClient 28:add19eb7defa 11637 }
AzureIoTClient 28:add19eb7defa 11638 else
AzureIoTClient 28:add19eb7defa 11639 {
AzureIoTClient 28:add19eb7defa 11640 sasl_code code;
AzureIoTClient 28:add19eb7defa 11641 if (amqpvalue_get_sasl_code(item_value, &code) != 0)
AzureIoTClient 28:add19eb7defa 11642 {
AzureIoTClient 28:add19eb7defa 11643 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11644 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11645 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11646 break;
AzureIoTClient 28:add19eb7defa 11647 }
AzureIoTClient 28:add19eb7defa 11648 }
AzureIoTClient 28:add19eb7defa 11649
AzureIoTClient 28:add19eb7defa 11650 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11651 }
AzureIoTClient 28:add19eb7defa 11652 }
AzureIoTClient 28:add19eb7defa 11653 else
AzureIoTClient 28:add19eb7defa 11654 {
AzureIoTClient 28:add19eb7defa 11655 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11656 }
AzureIoTClient 28:add19eb7defa 11657 /* additional-data */
AzureIoTClient 28:add19eb7defa 11658 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 11659 {
AzureIoTClient 23:1111ee8bcba4 11660 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 11661 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11662 {
AzureIoTClient 28:add19eb7defa 11663 /* do nothing */
AzureIoTClient 28:add19eb7defa 11664 }
AzureIoTClient 28:add19eb7defa 11665 else
AzureIoTClient 28:add19eb7defa 11666 {
AzureIoTClient 28:add19eb7defa 11667 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11668 {
AzureIoTClient 28:add19eb7defa 11669 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 11670 }
AzureIoTClient 28:add19eb7defa 11671 else
AzureIoTClient 28:add19eb7defa 11672 {
AzureIoTClient 28:add19eb7defa 11673 amqp_binary additional_data;
AzureIoTClient 28:add19eb7defa 11674 if (amqpvalue_get_binary(item_value, &additional_data) != 0)
AzureIoTClient 28:add19eb7defa 11675 {
AzureIoTClient 28:add19eb7defa 11676 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11677 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11678 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11679 break;
AzureIoTClient 28:add19eb7defa 11680 }
AzureIoTClient 28:add19eb7defa 11681 }
AzureIoTClient 28:add19eb7defa 11682
AzureIoTClient 28:add19eb7defa 11683 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11684 }
AzureIoTClient 28:add19eb7defa 11685 }
AzureIoTClient 28:add19eb7defa 11686
AzureIoTClient 28:add19eb7defa 11687 sasl_outcome_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11688
AzureIoTClient 28:add19eb7defa 11689 result = 0;
AzureIoTClient 28:add19eb7defa 11690 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11691 }
AzureIoTClient 28:add19eb7defa 11692 }
AzureIoTClient 28:add19eb7defa 11693 }
AzureIoTClient 28:add19eb7defa 11694
AzureIoTClient 28:add19eb7defa 11695 return result;
Azure.IoT Build 0:6ae2f7bca550 11696 }
Azure.IoT Build 0:6ae2f7bca550 11697
Azure.IoT Build 0:6ae2f7bca550 11698 int sasl_outcome_get_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code* code_value)
Azure.IoT Build 0:6ae2f7bca550 11699 {
AzureIoTClient 28:add19eb7defa 11700 int result;
AzureIoTClient 28:add19eb7defa 11701
AzureIoTClient 28:add19eb7defa 11702 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11703 {
AzureIoTClient 28:add19eb7defa 11704 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11705 }
AzureIoTClient 28:add19eb7defa 11706 else
AzureIoTClient 28:add19eb7defa 11707 {
AzureIoTClient 28:add19eb7defa 11708 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11709 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11710 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11711 {
AzureIoTClient 23:1111ee8bcba4 11712 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11713 }
AzureIoTClient 23:1111ee8bcba4 11714 else
AzureIoTClient 23:1111ee8bcba4 11715 {
AzureIoTClient 23:1111ee8bcba4 11716 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11717 {
AzureIoTClient 28:add19eb7defa 11718 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11719 }
AzureIoTClient 28:add19eb7defa 11720 else
AzureIoTClient 28:add19eb7defa 11721 {
AzureIoTClient 28:add19eb7defa 11722 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11723 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11724 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11725 {
AzureIoTClient 28:add19eb7defa 11726 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11727 }
AzureIoTClient 28:add19eb7defa 11728 else
AzureIoTClient 28:add19eb7defa 11729 {
AzureIoTClient 28:add19eb7defa 11730 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11731 if ((get_single_value_result = amqpvalue_get_sasl_code(item_value, code_value)) != 0)
AzureIoTClient 28:add19eb7defa 11732 {
AzureIoTClient 28:add19eb7defa 11733 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11734 }
AzureIoTClient 28:add19eb7defa 11735 else
AzureIoTClient 28:add19eb7defa 11736 {
AzureIoTClient 28:add19eb7defa 11737 result = 0;
AzureIoTClient 28:add19eb7defa 11738 }
AzureIoTClient 28:add19eb7defa 11739 }
AzureIoTClient 28:add19eb7defa 11740 }
AzureIoTClient 28:add19eb7defa 11741 }
AzureIoTClient 28:add19eb7defa 11742 }
AzureIoTClient 28:add19eb7defa 11743
AzureIoTClient 28:add19eb7defa 11744 return result;
Azure.IoT Build 0:6ae2f7bca550 11745 }
Azure.IoT Build 0:6ae2f7bca550 11746
Azure.IoT Build 0:6ae2f7bca550 11747 int sasl_outcome_set_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11748 {
AzureIoTClient 28:add19eb7defa 11749 int result;
AzureIoTClient 28:add19eb7defa 11750
AzureIoTClient 28:add19eb7defa 11751 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11752 {
AzureIoTClient 28:add19eb7defa 11753 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11754 }
AzureIoTClient 28:add19eb7defa 11755 else
AzureIoTClient 28:add19eb7defa 11756 {
AzureIoTClient 28:add19eb7defa 11757 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11758 AMQP_VALUE code_amqp_value = amqpvalue_create_sasl_code(code_value);
AzureIoTClient 28:add19eb7defa 11759 if (code_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11760 {
AzureIoTClient 28:add19eb7defa 11761 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11762 }
AzureIoTClient 28:add19eb7defa 11763 else
AzureIoTClient 28:add19eb7defa 11764 {
AzureIoTClient 28:add19eb7defa 11765 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11766 {
AzureIoTClient 28:add19eb7defa 11767 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11768 }
AzureIoTClient 28:add19eb7defa 11769 else
AzureIoTClient 28:add19eb7defa 11770 {
AzureIoTClient 28:add19eb7defa 11771 result = 0;
AzureIoTClient 28:add19eb7defa 11772 }
AzureIoTClient 28:add19eb7defa 11773
AzureIoTClient 28:add19eb7defa 11774 amqpvalue_destroy(code_amqp_value);
AzureIoTClient 28:add19eb7defa 11775 }
AzureIoTClient 28:add19eb7defa 11776 }
AzureIoTClient 28:add19eb7defa 11777
AzureIoTClient 28:add19eb7defa 11778 return result;
Azure.IoT Build 0:6ae2f7bca550 11779 }
Azure.IoT Build 0:6ae2f7bca550 11780
Azure.IoT Build 0:6ae2f7bca550 11781 int sasl_outcome_get_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary* additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11782 {
AzureIoTClient 28:add19eb7defa 11783 int result;
AzureIoTClient 28:add19eb7defa 11784
AzureIoTClient 28:add19eb7defa 11785 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11786 {
AzureIoTClient 28:add19eb7defa 11787 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11788 }
AzureIoTClient 28:add19eb7defa 11789 else
AzureIoTClient 28:add19eb7defa 11790 {
AzureIoTClient 28:add19eb7defa 11791 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11792 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11793 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11794 {
AzureIoTClient 23:1111ee8bcba4 11795 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11796 }
AzureIoTClient 23:1111ee8bcba4 11797 else
AzureIoTClient 23:1111ee8bcba4 11798 {
AzureIoTClient 23:1111ee8bcba4 11799 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 11800 {
AzureIoTClient 28:add19eb7defa 11801 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11802 }
AzureIoTClient 28:add19eb7defa 11803 else
AzureIoTClient 28:add19eb7defa 11804 {
AzureIoTClient 28:add19eb7defa 11805 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 11806 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11807 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11808 {
AzureIoTClient 28:add19eb7defa 11809 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11810 }
AzureIoTClient 28:add19eb7defa 11811 else
AzureIoTClient 28:add19eb7defa 11812 {
AzureIoTClient 28:add19eb7defa 11813 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11814 if ((get_single_value_result = amqpvalue_get_binary(item_value, additional_data_value)) != 0)
AzureIoTClient 28:add19eb7defa 11815 {
AzureIoTClient 28:add19eb7defa 11816 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11817 }
AzureIoTClient 28:add19eb7defa 11818 else
AzureIoTClient 28:add19eb7defa 11819 {
AzureIoTClient 28:add19eb7defa 11820 result = 0;
AzureIoTClient 28:add19eb7defa 11821 }
AzureIoTClient 28:add19eb7defa 11822 }
AzureIoTClient 28:add19eb7defa 11823 }
AzureIoTClient 28:add19eb7defa 11824 }
AzureIoTClient 28:add19eb7defa 11825 }
AzureIoTClient 28:add19eb7defa 11826
AzureIoTClient 28:add19eb7defa 11827 return result;
Azure.IoT Build 0:6ae2f7bca550 11828 }
Azure.IoT Build 0:6ae2f7bca550 11829
Azure.IoT Build 0:6ae2f7bca550 11830 int sasl_outcome_set_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11831 {
AzureIoTClient 28:add19eb7defa 11832 int result;
AzureIoTClient 28:add19eb7defa 11833
AzureIoTClient 28:add19eb7defa 11834 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11835 {
AzureIoTClient 28:add19eb7defa 11836 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11837 }
AzureIoTClient 28:add19eb7defa 11838 else
AzureIoTClient 28:add19eb7defa 11839 {
AzureIoTClient 28:add19eb7defa 11840 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11841 AMQP_VALUE additional_data_amqp_value = amqpvalue_create_binary(additional_data_value);
AzureIoTClient 28:add19eb7defa 11842 if (additional_data_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11843 {
AzureIoTClient 28:add19eb7defa 11844 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11845 }
AzureIoTClient 28:add19eb7defa 11846 else
AzureIoTClient 28:add19eb7defa 11847 {
AzureIoTClient 28:add19eb7defa 11848 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 1, additional_data_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11849 {
AzureIoTClient 28:add19eb7defa 11850 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11851 }
AzureIoTClient 28:add19eb7defa 11852 else
AzureIoTClient 28:add19eb7defa 11853 {
AzureIoTClient 28:add19eb7defa 11854 result = 0;
AzureIoTClient 28:add19eb7defa 11855 }
AzureIoTClient 28:add19eb7defa 11856
AzureIoTClient 28:add19eb7defa 11857 amqpvalue_destroy(additional_data_amqp_value);
AzureIoTClient 28:add19eb7defa 11858 }
AzureIoTClient 28:add19eb7defa 11859 }
AzureIoTClient 28:add19eb7defa 11860
AzureIoTClient 28:add19eb7defa 11861 return result;
Azure.IoT Build 0:6ae2f7bca550 11862 }
Azure.IoT Build 0:6ae2f7bca550 11863
Azure.IoT Build 0:6ae2f7bca550 11864
Azure.IoT Build 0:6ae2f7bca550 11865 /* terminus-durability */
Azure.IoT Build 0:6ae2f7bca550 11866
Azure.IoT Build 0:6ae2f7bca550 11867 AMQP_VALUE amqpvalue_create_terminus_durability(terminus_durability value)
Azure.IoT Build 0:6ae2f7bca550 11868 {
AzureIoTClient 28:add19eb7defa 11869 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 11870 }
Azure.IoT Build 0:6ae2f7bca550 11871
Azure.IoT Build 0:6ae2f7bca550 11872 /* terminus-expiry-policy */
Azure.IoT Build 0:6ae2f7bca550 11873
Azure.IoT Build 0:6ae2f7bca550 11874 AMQP_VALUE amqpvalue_create_terminus_expiry_policy(terminus_expiry_policy value)
Azure.IoT Build 0:6ae2f7bca550 11875 {
AzureIoTClient 28:add19eb7defa 11876 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 11877 }
Azure.IoT Build 0:6ae2f7bca550 11878
Azure.IoT Build 0:6ae2f7bca550 11879 /* node-properties */
Azure.IoT Build 0:6ae2f7bca550 11880
Azure.IoT Build 0:6ae2f7bca550 11881 AMQP_VALUE amqpvalue_create_node_properties(node_properties value)
Azure.IoT Build 0:6ae2f7bca550 11882 {
AzureIoTClient 28:add19eb7defa 11883 return amqpvalue_create_fields(value);
Azure.IoT Build 0:6ae2f7bca550 11884 }
Azure.IoT Build 0:6ae2f7bca550 11885
Azure.IoT Build 0:6ae2f7bca550 11886 /* filter-set */
Azure.IoT Build 0:6ae2f7bca550 11887
Azure.IoT Build 0:6ae2f7bca550 11888 AMQP_VALUE amqpvalue_create_filter_set(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 11889 {
AzureIoTClient 28:add19eb7defa 11890 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 11891 }
Azure.IoT Build 0:6ae2f7bca550 11892
Azure.IoT Build 0:6ae2f7bca550 11893 /* source */
Azure.IoT Build 0:6ae2f7bca550 11894
Azure.IoT Build 0:6ae2f7bca550 11895 typedef struct SOURCE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11896 {
AzureIoTClient 28:add19eb7defa 11897 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11898 } SOURCE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11899
Azure.IoT Build 0:6ae2f7bca550 11900 static SOURCE_HANDLE source_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11901 {
AzureIoTClient 28:add19eb7defa 11902 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11903 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11904 {
AzureIoTClient 28:add19eb7defa 11905 source_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11906 }
AzureIoTClient 28:add19eb7defa 11907
AzureIoTClient 28:add19eb7defa 11908 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11909 }
Azure.IoT Build 0:6ae2f7bca550 11910
Azure.IoT Build 0:6ae2f7bca550 11911 SOURCE_HANDLE source_create(void)
Azure.IoT Build 0:6ae2f7bca550 11912 {
AzureIoTClient 28:add19eb7defa 11913 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11914 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11915 {
AzureIoTClient 28:add19eb7defa 11916 source_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(40);
AzureIoTClient 28:add19eb7defa 11917 if (source_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11918 {
AzureIoTClient 28:add19eb7defa 11919 free(source_instance);
AzureIoTClient 28:add19eb7defa 11920 source_instance = NULL;
AzureIoTClient 28:add19eb7defa 11921 }
AzureIoTClient 28:add19eb7defa 11922 }
AzureIoTClient 28:add19eb7defa 11923
AzureIoTClient 28:add19eb7defa 11924 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11925 }
Azure.IoT Build 0:6ae2f7bca550 11926
Azure.IoT Build 0:6ae2f7bca550 11927 SOURCE_HANDLE source_clone(SOURCE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11928 {
AzureIoTClient 28:add19eb7defa 11929 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11930 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11931 {
AzureIoTClient 28:add19eb7defa 11932 source_instance->composite_value = amqpvalue_clone(((SOURCE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11933 if (source_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11934 {
AzureIoTClient 28:add19eb7defa 11935 free(source_instance);
AzureIoTClient 28:add19eb7defa 11936 source_instance = NULL;
AzureIoTClient 28:add19eb7defa 11937 }
AzureIoTClient 28:add19eb7defa 11938 }
AzureIoTClient 28:add19eb7defa 11939
AzureIoTClient 28:add19eb7defa 11940 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11941 }
Azure.IoT Build 0:6ae2f7bca550 11942
Azure.IoT Build 0:6ae2f7bca550 11943 void source_destroy(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11944 {
AzureIoTClient 28:add19eb7defa 11945 if (source != NULL)
AzureIoTClient 28:add19eb7defa 11946 {
AzureIoTClient 28:add19eb7defa 11947 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 11948 amqpvalue_destroy(source_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11949 free(source_instance);
AzureIoTClient 28:add19eb7defa 11950 }
Azure.IoT Build 0:6ae2f7bca550 11951 }
Azure.IoT Build 0:6ae2f7bca550 11952
Azure.IoT Build 0:6ae2f7bca550 11953 AMQP_VALUE amqpvalue_create_source(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11954 {
AzureIoTClient 28:add19eb7defa 11955 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11956
AzureIoTClient 28:add19eb7defa 11957 if (source == NULL)
AzureIoTClient 28:add19eb7defa 11958 {
AzureIoTClient 28:add19eb7defa 11959 result = NULL;
AzureIoTClient 28:add19eb7defa 11960 }
AzureIoTClient 28:add19eb7defa 11961 else
AzureIoTClient 28:add19eb7defa 11962 {
AzureIoTClient 28:add19eb7defa 11963 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 11964 result = amqpvalue_clone(source_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11965 }
AzureIoTClient 28:add19eb7defa 11966
AzureIoTClient 28:add19eb7defa 11967 return result;
Azure.IoT Build 0:6ae2f7bca550 11968 }
Azure.IoT Build 0:6ae2f7bca550 11969
Azure.IoT Build 0:6ae2f7bca550 11970 bool is_source_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11971 {
AzureIoTClient 28:add19eb7defa 11972 bool result;
AzureIoTClient 28:add19eb7defa 11973
AzureIoTClient 28:add19eb7defa 11974 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11975 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11976 (descriptor_ulong == 40))
AzureIoTClient 28:add19eb7defa 11977 {
AzureIoTClient 28:add19eb7defa 11978 result = true;
AzureIoTClient 28:add19eb7defa 11979 }
AzureIoTClient 28:add19eb7defa 11980 else
AzureIoTClient 28:add19eb7defa 11981 {
AzureIoTClient 28:add19eb7defa 11982 result = false;
AzureIoTClient 28:add19eb7defa 11983 }
AzureIoTClient 28:add19eb7defa 11984
AzureIoTClient 28:add19eb7defa 11985 return result;
Azure.IoT Build 0:6ae2f7bca550 11986 }
Azure.IoT Build 0:6ae2f7bca550 11987
Azure.IoT Build 0:6ae2f7bca550 11988
Azure.IoT Build 0:6ae2f7bca550 11989 int amqpvalue_get_source(AMQP_VALUE value, SOURCE_HANDLE* source_handle)
Azure.IoT Build 0:6ae2f7bca550 11990 {
AzureIoTClient 28:add19eb7defa 11991 int result;
AzureIoTClient 28:add19eb7defa 11992 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source_create_internal();
AzureIoTClient 28:add19eb7defa 11993 *source_handle = source_instance;
AzureIoTClient 28:add19eb7defa 11994 if (*source_handle == NULL)
AzureIoTClient 28:add19eb7defa 11995 {
AzureIoTClient 28:add19eb7defa 11996 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11997 }
AzureIoTClient 28:add19eb7defa 11998 else
AzureIoTClient 28:add19eb7defa 11999 {
AzureIoTClient 28:add19eb7defa 12000 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 12001 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 12002 {
AzureIoTClient 28:add19eb7defa 12003 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12004 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12005 }
AzureIoTClient 28:add19eb7defa 12006 else
AzureIoTClient 28:add19eb7defa 12007 {
AzureIoTClient 23:1111ee8bcba4 12008 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 12009 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12010 {
AzureIoTClient 23:1111ee8bcba4 12011 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12012 }
AzureIoTClient 23:1111ee8bcba4 12013 else
AzureIoTClient 23:1111ee8bcba4 12014 {
AzureIoTClient 28:add19eb7defa 12015 do
AzureIoTClient 28:add19eb7defa 12016 {
AzureIoTClient 28:add19eb7defa 12017 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 12018 /* address */
AzureIoTClient 28:add19eb7defa 12019 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 12020 {
AzureIoTClient 23:1111ee8bcba4 12021 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 12022 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12023 {
AzureIoTClient 28:add19eb7defa 12024 /* do nothing */
AzureIoTClient 28:add19eb7defa 12025 }
AzureIoTClient 28:add19eb7defa 12026 else
AzureIoTClient 28:add19eb7defa 12027 {
AzureIoTClient 28:add19eb7defa 12028 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12029 }
AzureIoTClient 28:add19eb7defa 12030 }
AzureIoTClient 28:add19eb7defa 12031 /* durable */
AzureIoTClient 28:add19eb7defa 12032 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 12033 {
AzureIoTClient 23:1111ee8bcba4 12034 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 12035 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12036 {
AzureIoTClient 28:add19eb7defa 12037 /* do nothing */
AzureIoTClient 28:add19eb7defa 12038 }
AzureIoTClient 28:add19eb7defa 12039 else
AzureIoTClient 28:add19eb7defa 12040 {
AzureIoTClient 28:add19eb7defa 12041 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12042 {
AzureIoTClient 28:add19eb7defa 12043 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12044 }
AzureIoTClient 28:add19eb7defa 12045 else
AzureIoTClient 28:add19eb7defa 12046 {
AzureIoTClient 28:add19eb7defa 12047 terminus_durability durable;
AzureIoTClient 28:add19eb7defa 12048 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 12049 {
AzureIoTClient 28:add19eb7defa 12050 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12051 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12052 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12053 break;
AzureIoTClient 28:add19eb7defa 12054 }
AzureIoTClient 28:add19eb7defa 12055 }
AzureIoTClient 28:add19eb7defa 12056
AzureIoTClient 28:add19eb7defa 12057 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12058 }
AzureIoTClient 28:add19eb7defa 12059 }
AzureIoTClient 28:add19eb7defa 12060 /* expiry-policy */
AzureIoTClient 28:add19eb7defa 12061 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 12062 {
AzureIoTClient 23:1111ee8bcba4 12063 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 12064 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12065 {
AzureIoTClient 28:add19eb7defa 12066 /* do nothing */
AzureIoTClient 28:add19eb7defa 12067 }
AzureIoTClient 28:add19eb7defa 12068 else
AzureIoTClient 28:add19eb7defa 12069 {
AzureIoTClient 28:add19eb7defa 12070 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12071 {
AzureIoTClient 28:add19eb7defa 12072 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12073 }
AzureIoTClient 28:add19eb7defa 12074 else
AzureIoTClient 28:add19eb7defa 12075 {
AzureIoTClient 28:add19eb7defa 12076 terminus_expiry_policy expiry_policy;
AzureIoTClient 28:add19eb7defa 12077 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 28:add19eb7defa 12078 {
AzureIoTClient 28:add19eb7defa 12079 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12080 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12081 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12082 break;
AzureIoTClient 28:add19eb7defa 12083 }
AzureIoTClient 28:add19eb7defa 12084 }
AzureIoTClient 28:add19eb7defa 12085
AzureIoTClient 28:add19eb7defa 12086 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12087 }
AzureIoTClient 28:add19eb7defa 12088 }
AzureIoTClient 28:add19eb7defa 12089 /* timeout */
AzureIoTClient 28:add19eb7defa 12090 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 12091 {
AzureIoTClient 23:1111ee8bcba4 12092 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 12093 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12094 {
AzureIoTClient 28:add19eb7defa 12095 /* do nothing */
AzureIoTClient 28:add19eb7defa 12096 }
AzureIoTClient 28:add19eb7defa 12097 else
AzureIoTClient 28:add19eb7defa 12098 {
AzureIoTClient 28:add19eb7defa 12099 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12100 {
AzureIoTClient 28:add19eb7defa 12101 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12102 }
AzureIoTClient 28:add19eb7defa 12103 else
AzureIoTClient 28:add19eb7defa 12104 {
AzureIoTClient 28:add19eb7defa 12105 seconds timeout;
AzureIoTClient 28:add19eb7defa 12106 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 28:add19eb7defa 12107 {
AzureIoTClient 28:add19eb7defa 12108 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12109 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12110 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12111 break;
AzureIoTClient 28:add19eb7defa 12112 }
AzureIoTClient 28:add19eb7defa 12113 }
AzureIoTClient 28:add19eb7defa 12114
AzureIoTClient 28:add19eb7defa 12115 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12116 }
AzureIoTClient 28:add19eb7defa 12117 }
AzureIoTClient 28:add19eb7defa 12118 /* dynamic */
AzureIoTClient 28:add19eb7defa 12119 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 12120 {
AzureIoTClient 23:1111ee8bcba4 12121 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 12122 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12123 {
AzureIoTClient 28:add19eb7defa 12124 /* do nothing */
AzureIoTClient 28:add19eb7defa 12125 }
AzureIoTClient 28:add19eb7defa 12126 else
AzureIoTClient 28:add19eb7defa 12127 {
AzureIoTClient 28:add19eb7defa 12128 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12129 {
AzureIoTClient 28:add19eb7defa 12130 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12131 }
AzureIoTClient 28:add19eb7defa 12132 else
AzureIoTClient 28:add19eb7defa 12133 {
AzureIoTClient 28:add19eb7defa 12134 bool dynamic;
AzureIoTClient 28:add19eb7defa 12135 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 28:add19eb7defa 12136 {
AzureIoTClient 28:add19eb7defa 12137 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12138 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12139 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12140 break;
AzureIoTClient 28:add19eb7defa 12141 }
AzureIoTClient 28:add19eb7defa 12142 }
AzureIoTClient 28:add19eb7defa 12143
AzureIoTClient 28:add19eb7defa 12144 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12145 }
AzureIoTClient 28:add19eb7defa 12146 }
AzureIoTClient 28:add19eb7defa 12147 /* dynamic-node-properties */
AzureIoTClient 28:add19eb7defa 12148 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 12149 {
AzureIoTClient 23:1111ee8bcba4 12150 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 12151 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12152 {
AzureIoTClient 28:add19eb7defa 12153 /* do nothing */
AzureIoTClient 28:add19eb7defa 12154 }
AzureIoTClient 28:add19eb7defa 12155 else
AzureIoTClient 28:add19eb7defa 12156 {
AzureIoTClient 28:add19eb7defa 12157 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12158 {
AzureIoTClient 28:add19eb7defa 12159 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12160 }
AzureIoTClient 28:add19eb7defa 12161 else
AzureIoTClient 28:add19eb7defa 12162 {
AzureIoTClient 28:add19eb7defa 12163 node_properties dynamic_node_properties;
AzureIoTClient 28:add19eb7defa 12164 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 28:add19eb7defa 12165 {
AzureIoTClient 28:add19eb7defa 12166 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12167 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12168 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12169 break;
AzureIoTClient 28:add19eb7defa 12170 }
AzureIoTClient 28:add19eb7defa 12171 }
AzureIoTClient 28:add19eb7defa 12172
AzureIoTClient 28:add19eb7defa 12173 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12174 }
AzureIoTClient 28:add19eb7defa 12175 }
AzureIoTClient 28:add19eb7defa 12176 /* distribution-mode */
AzureIoTClient 28:add19eb7defa 12177 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 12178 {
AzureIoTClient 23:1111ee8bcba4 12179 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 12180 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12181 {
AzureIoTClient 28:add19eb7defa 12182 /* do nothing */
AzureIoTClient 28:add19eb7defa 12183 }
AzureIoTClient 28:add19eb7defa 12184 else
AzureIoTClient 28:add19eb7defa 12185 {
AzureIoTClient 28:add19eb7defa 12186 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12187 {
AzureIoTClient 28:add19eb7defa 12188 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12189 }
AzureIoTClient 28:add19eb7defa 12190 else
AzureIoTClient 28:add19eb7defa 12191 {
AzureIoTClient 28:add19eb7defa 12192 const char* distribution_mode;
AzureIoTClient 28:add19eb7defa 12193 if (amqpvalue_get_symbol(item_value, &distribution_mode) != 0)
AzureIoTClient 28:add19eb7defa 12194 {
AzureIoTClient 28:add19eb7defa 12195 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12196 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12197 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12198 break;
AzureIoTClient 28:add19eb7defa 12199 }
AzureIoTClient 28:add19eb7defa 12200 }
AzureIoTClient 28:add19eb7defa 12201
AzureIoTClient 28:add19eb7defa 12202 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12203 }
AzureIoTClient 28:add19eb7defa 12204 }
AzureIoTClient 28:add19eb7defa 12205 /* filter */
AzureIoTClient 28:add19eb7defa 12206 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 12207 {
AzureIoTClient 23:1111ee8bcba4 12208 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 12209 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12210 {
AzureIoTClient 28:add19eb7defa 12211 /* do nothing */
AzureIoTClient 28:add19eb7defa 12212 }
AzureIoTClient 28:add19eb7defa 12213 else
AzureIoTClient 28:add19eb7defa 12214 {
AzureIoTClient 28:add19eb7defa 12215 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12216 {
AzureIoTClient 28:add19eb7defa 12217 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12218 }
AzureIoTClient 28:add19eb7defa 12219 else
AzureIoTClient 28:add19eb7defa 12220 {
AzureIoTClient 28:add19eb7defa 12221 filter_set filter;
AzureIoTClient 28:add19eb7defa 12222 if (amqpvalue_get_filter_set(item_value, &filter) != 0)
AzureIoTClient 28:add19eb7defa 12223 {
AzureIoTClient 28:add19eb7defa 12224 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12225 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12226 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12227 break;
AzureIoTClient 28:add19eb7defa 12228 }
AzureIoTClient 28:add19eb7defa 12229 }
AzureIoTClient 28:add19eb7defa 12230
AzureIoTClient 28:add19eb7defa 12231 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12232 }
AzureIoTClient 28:add19eb7defa 12233 }
AzureIoTClient 28:add19eb7defa 12234 /* default-outcome */
AzureIoTClient 28:add19eb7defa 12235 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 12236 {
AzureIoTClient 23:1111ee8bcba4 12237 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 12238 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12239 {
AzureIoTClient 28:add19eb7defa 12240 /* do nothing */
AzureIoTClient 28:add19eb7defa 12241 }
AzureIoTClient 28:add19eb7defa 12242 else
AzureIoTClient 28:add19eb7defa 12243 {
AzureIoTClient 28:add19eb7defa 12244 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12245 }
AzureIoTClient 28:add19eb7defa 12246 }
AzureIoTClient 28:add19eb7defa 12247 /* outcomes */
AzureIoTClient 28:add19eb7defa 12248 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 12249 {
AzureIoTClient 23:1111ee8bcba4 12250 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 12251 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12252 {
AzureIoTClient 28:add19eb7defa 12253 /* do nothing */
AzureIoTClient 28:add19eb7defa 12254 }
AzureIoTClient 28:add19eb7defa 12255 else
AzureIoTClient 28:add19eb7defa 12256 {
AzureIoTClient 28:add19eb7defa 12257 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12258 {
AzureIoTClient 28:add19eb7defa 12259 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12260 }
AzureIoTClient 28:add19eb7defa 12261 else
AzureIoTClient 28:add19eb7defa 12262 {
AzureIoTClient 28:add19eb7defa 12263 const char* outcomes = NULL;
AzureIoTClient 28:add19eb7defa 12264 AMQP_VALUE outcomes_array;
AzureIoTClient 28:add19eb7defa 12265 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &outcomes_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 12266 (amqpvalue_get_symbol(item_value, &outcomes) != 0))
AzureIoTClient 28:add19eb7defa 12267 {
AzureIoTClient 28:add19eb7defa 12268 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12269 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12270 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12271 break;
AzureIoTClient 28:add19eb7defa 12272 }
AzureIoTClient 28:add19eb7defa 12273 }
AzureIoTClient 28:add19eb7defa 12274
AzureIoTClient 28:add19eb7defa 12275 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12276 }
AzureIoTClient 28:add19eb7defa 12277 }
AzureIoTClient 28:add19eb7defa 12278 /* capabilities */
AzureIoTClient 28:add19eb7defa 12279 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 12280 {
AzureIoTClient 23:1111ee8bcba4 12281 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 12282 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12283 {
AzureIoTClient 28:add19eb7defa 12284 /* do nothing */
AzureIoTClient 28:add19eb7defa 12285 }
AzureIoTClient 28:add19eb7defa 12286 else
AzureIoTClient 28:add19eb7defa 12287 {
AzureIoTClient 28:add19eb7defa 12288 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12289 {
AzureIoTClient 28:add19eb7defa 12290 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12291 }
AzureIoTClient 28:add19eb7defa 12292 else
AzureIoTClient 28:add19eb7defa 12293 {
AzureIoTClient 28:add19eb7defa 12294 const char* capabilities = NULL;
AzureIoTClient 28:add19eb7defa 12295 AMQP_VALUE capabilities_array;
AzureIoTClient 28:add19eb7defa 12296 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 12297 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 28:add19eb7defa 12298 {
AzureIoTClient 28:add19eb7defa 12299 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12300 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12301 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12302 break;
AzureIoTClient 28:add19eb7defa 12303 }
AzureIoTClient 28:add19eb7defa 12304 }
AzureIoTClient 28:add19eb7defa 12305
AzureIoTClient 28:add19eb7defa 12306 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12307 }
AzureIoTClient 28:add19eb7defa 12308 }
AzureIoTClient 28:add19eb7defa 12309
AzureIoTClient 28:add19eb7defa 12310 source_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 12311
AzureIoTClient 28:add19eb7defa 12312 result = 0;
AzureIoTClient 28:add19eb7defa 12313 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 12314 }
AzureIoTClient 28:add19eb7defa 12315 }
AzureIoTClient 28:add19eb7defa 12316 }
AzureIoTClient 28:add19eb7defa 12317
AzureIoTClient 28:add19eb7defa 12318 return result;
Azure.IoT Build 0:6ae2f7bca550 12319 }
Azure.IoT Build 0:6ae2f7bca550 12320
Azure.IoT Build 0:6ae2f7bca550 12321 int source_get_address(SOURCE_HANDLE source, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 12322 {
AzureIoTClient 28:add19eb7defa 12323 int result;
AzureIoTClient 28:add19eb7defa 12324
AzureIoTClient 28:add19eb7defa 12325 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12326 {
AzureIoTClient 28:add19eb7defa 12327 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12328 }
AzureIoTClient 28:add19eb7defa 12329 else
AzureIoTClient 28:add19eb7defa 12330 {
AzureIoTClient 28:add19eb7defa 12331 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12332 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12333 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12334 {
AzureIoTClient 23:1111ee8bcba4 12335 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12336 }
AzureIoTClient 23:1111ee8bcba4 12337 else
AzureIoTClient 23:1111ee8bcba4 12338 {
AzureIoTClient 23:1111ee8bcba4 12339 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 12340 {
AzureIoTClient 28:add19eb7defa 12341 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12342 }
AzureIoTClient 28:add19eb7defa 12343 else
AzureIoTClient 28:add19eb7defa 12344 {
AzureIoTClient 28:add19eb7defa 12345 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 12346 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12347 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12348 {
AzureIoTClient 28:add19eb7defa 12349 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12350 }
AzureIoTClient 28:add19eb7defa 12351 else
AzureIoTClient 28:add19eb7defa 12352 {
AzureIoTClient 28:add19eb7defa 12353 *address_value = item_value;
AzureIoTClient 28:add19eb7defa 12354 result = 0;
AzureIoTClient 28:add19eb7defa 12355 }
AzureIoTClient 28:add19eb7defa 12356 }
AzureIoTClient 28:add19eb7defa 12357 }
AzureIoTClient 28:add19eb7defa 12358 }
AzureIoTClient 28:add19eb7defa 12359
AzureIoTClient 28:add19eb7defa 12360 return result;
Azure.IoT Build 0:6ae2f7bca550 12361 }
Azure.IoT Build 0:6ae2f7bca550 12362
Azure.IoT Build 0:6ae2f7bca550 12363 int source_set_address(SOURCE_HANDLE source, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 12364 {
AzureIoTClient 28:add19eb7defa 12365 int result;
AzureIoTClient 28:add19eb7defa 12366
AzureIoTClient 28:add19eb7defa 12367 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12368 {
AzureIoTClient 28:add19eb7defa 12369 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12370 }
AzureIoTClient 28:add19eb7defa 12371 else
AzureIoTClient 28:add19eb7defa 12372 {
AzureIoTClient 28:add19eb7defa 12373 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12374 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 12375 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12376 {
AzureIoTClient 23:1111ee8bcba4 12377 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 12378 }
AzureIoTClient 23:1111ee8bcba4 12379 else
AzureIoTClient 23:1111ee8bcba4 12380 {
AzureIoTClient 23:1111ee8bcba4 12381 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 12382 }
AzureIoTClient 28:add19eb7defa 12383 if (address_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12384 {
AzureIoTClient 28:add19eb7defa 12385 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12386 }
AzureIoTClient 28:add19eb7defa 12387 else
AzureIoTClient 28:add19eb7defa 12388 {
AzureIoTClient 28:add19eb7defa 12389 if (amqpvalue_set_composite_item(source_instance->composite_value, 0, address_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12390 {
AzureIoTClient 28:add19eb7defa 12391 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12392 }
AzureIoTClient 28:add19eb7defa 12393 else
AzureIoTClient 28:add19eb7defa 12394 {
AzureIoTClient 28:add19eb7defa 12395 result = 0;
AzureIoTClient 28:add19eb7defa 12396 }
AzureIoTClient 28:add19eb7defa 12397
AzureIoTClient 28:add19eb7defa 12398 amqpvalue_destroy(address_amqp_value);
AzureIoTClient 28:add19eb7defa 12399 }
AzureIoTClient 28:add19eb7defa 12400 }
AzureIoTClient 28:add19eb7defa 12401
AzureIoTClient 28:add19eb7defa 12402 return result;
Azure.IoT Build 0:6ae2f7bca550 12403 }
Azure.IoT Build 0:6ae2f7bca550 12404
Azure.IoT Build 0:6ae2f7bca550 12405 int source_get_durable(SOURCE_HANDLE source, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 12406 {
AzureIoTClient 28:add19eb7defa 12407 int result;
AzureIoTClient 28:add19eb7defa 12408
AzureIoTClient 28:add19eb7defa 12409 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12410 {
AzureIoTClient 28:add19eb7defa 12411 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12412 }
AzureIoTClient 28:add19eb7defa 12413 else
AzureIoTClient 28:add19eb7defa 12414 {
AzureIoTClient 28:add19eb7defa 12415 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12416 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12417 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12418 {
AzureIoTClient 23:1111ee8bcba4 12419 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12420 }
AzureIoTClient 23:1111ee8bcba4 12421 else
AzureIoTClient 23:1111ee8bcba4 12422 {
AzureIoTClient 23:1111ee8bcba4 12423 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 12424 {
AzureIoTClient 23:1111ee8bcba4 12425 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 12426 result = 0;
AzureIoTClient 23:1111ee8bcba4 12427 }
AzureIoTClient 23:1111ee8bcba4 12428 else
AzureIoTClient 23:1111ee8bcba4 12429 {
AzureIoTClient 28:add19eb7defa 12430 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 12431 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12432 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12433 {
AzureIoTClient 16:22a72cf8e416 12434 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 12435 result = 0;
AzureIoTClient 28:add19eb7defa 12436 }
AzureIoTClient 28:add19eb7defa 12437 else
AzureIoTClient 28:add19eb7defa 12438 {
AzureIoTClient 28:add19eb7defa 12439 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12440 if ((get_single_value_result = amqpvalue_get_terminus_durability(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 12441 {
AzureIoTClient 23:1111ee8bcba4 12442 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12443 {
AzureIoTClient 28:add19eb7defa 12444 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12445 }
AzureIoTClient 23:1111ee8bcba4 12446 else
AzureIoTClient 23:1111ee8bcba4 12447 {
AzureIoTClient 23:1111ee8bcba4 12448 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 12449 result = 0;
AzureIoTClient 23:1111ee8bcba4 12450 }
AzureIoTClient 28:add19eb7defa 12451 }
AzureIoTClient 28:add19eb7defa 12452 else
AzureIoTClient 28:add19eb7defa 12453 {
AzureIoTClient 28:add19eb7defa 12454 result = 0;
AzureIoTClient 28:add19eb7defa 12455 }
AzureIoTClient 28:add19eb7defa 12456 }
AzureIoTClient 28:add19eb7defa 12457 }
AzureIoTClient 28:add19eb7defa 12458 }
AzureIoTClient 28:add19eb7defa 12459 }
AzureIoTClient 28:add19eb7defa 12460
AzureIoTClient 28:add19eb7defa 12461 return result;
Azure.IoT Build 0:6ae2f7bca550 12462 }
Azure.IoT Build 0:6ae2f7bca550 12463
Azure.IoT Build 0:6ae2f7bca550 12464 int source_set_durable(SOURCE_HANDLE source, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 12465 {
AzureIoTClient 28:add19eb7defa 12466 int result;
AzureIoTClient 28:add19eb7defa 12467
AzureIoTClient 28:add19eb7defa 12468 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12469 {
AzureIoTClient 28:add19eb7defa 12470 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12471 }
AzureIoTClient 28:add19eb7defa 12472 else
AzureIoTClient 28:add19eb7defa 12473 {
AzureIoTClient 28:add19eb7defa 12474 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12475 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
AzureIoTClient 28:add19eb7defa 12476 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12477 {
AzureIoTClient 28:add19eb7defa 12478 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12479 }
AzureIoTClient 28:add19eb7defa 12480 else
AzureIoTClient 28:add19eb7defa 12481 {
AzureIoTClient 28:add19eb7defa 12482 if (amqpvalue_set_composite_item(source_instance->composite_value, 1, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12483 {
AzureIoTClient 28:add19eb7defa 12484 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12485 }
AzureIoTClient 28:add19eb7defa 12486 else
AzureIoTClient 28:add19eb7defa 12487 {
AzureIoTClient 28:add19eb7defa 12488 result = 0;
AzureIoTClient 28:add19eb7defa 12489 }
AzureIoTClient 28:add19eb7defa 12490
AzureIoTClient 28:add19eb7defa 12491 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 12492 }
AzureIoTClient 28:add19eb7defa 12493 }
AzureIoTClient 28:add19eb7defa 12494
AzureIoTClient 28:add19eb7defa 12495 return result;
Azure.IoT Build 0:6ae2f7bca550 12496 }
Azure.IoT Build 0:6ae2f7bca550 12497
Azure.IoT Build 0:6ae2f7bca550 12498 int source_get_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 12499 {
AzureIoTClient 28:add19eb7defa 12500 int result;
AzureIoTClient 28:add19eb7defa 12501
AzureIoTClient 28:add19eb7defa 12502 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12503 {
AzureIoTClient 28:add19eb7defa 12504 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12505 }
AzureIoTClient 28:add19eb7defa 12506 else
AzureIoTClient 28:add19eb7defa 12507 {
AzureIoTClient 28:add19eb7defa 12508 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12509 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12510 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12511 {
AzureIoTClient 23:1111ee8bcba4 12512 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12513 }
AzureIoTClient 23:1111ee8bcba4 12514 else
AzureIoTClient 23:1111ee8bcba4 12515 {
AzureIoTClient 23:1111ee8bcba4 12516 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 12517 {
AzureIoTClient 23:1111ee8bcba4 12518 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 12519 result = 0;
AzureIoTClient 23:1111ee8bcba4 12520 }
AzureIoTClient 23:1111ee8bcba4 12521 else
AzureIoTClient 23:1111ee8bcba4 12522 {
AzureIoTClient 28:add19eb7defa 12523 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 12524 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12525 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12526 {
AzureIoTClient 16:22a72cf8e416 12527 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 12528 result = 0;
AzureIoTClient 28:add19eb7defa 12529 }
AzureIoTClient 28:add19eb7defa 12530 else
AzureIoTClient 28:add19eb7defa 12531 {
AzureIoTClient 28:add19eb7defa 12532 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12533 if ((get_single_value_result = amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value)) != 0)
AzureIoTClient 28:add19eb7defa 12534 {
AzureIoTClient 23:1111ee8bcba4 12535 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12536 {
AzureIoTClient 28:add19eb7defa 12537 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12538 }
AzureIoTClient 23:1111ee8bcba4 12539 else
AzureIoTClient 23:1111ee8bcba4 12540 {
AzureIoTClient 23:1111ee8bcba4 12541 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 12542 result = 0;
AzureIoTClient 23:1111ee8bcba4 12543 }
AzureIoTClient 28:add19eb7defa 12544 }
AzureIoTClient 28:add19eb7defa 12545 else
AzureIoTClient 28:add19eb7defa 12546 {
AzureIoTClient 28:add19eb7defa 12547 result = 0;
AzureIoTClient 28:add19eb7defa 12548 }
AzureIoTClient 28:add19eb7defa 12549 }
AzureIoTClient 28:add19eb7defa 12550 }
AzureIoTClient 28:add19eb7defa 12551 }
AzureIoTClient 28:add19eb7defa 12552 }
AzureIoTClient 28:add19eb7defa 12553
AzureIoTClient 28:add19eb7defa 12554 return result;
Azure.IoT Build 0:6ae2f7bca550 12555 }
Azure.IoT Build 0:6ae2f7bca550 12556
Azure.IoT Build 0:6ae2f7bca550 12557 int source_set_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 12558 {
AzureIoTClient 28:add19eb7defa 12559 int result;
AzureIoTClient 28:add19eb7defa 12560
AzureIoTClient 28:add19eb7defa 12561 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12562 {
AzureIoTClient 28:add19eb7defa 12563 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12564 }
AzureIoTClient 28:add19eb7defa 12565 else
AzureIoTClient 28:add19eb7defa 12566 {
AzureIoTClient 28:add19eb7defa 12567 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12568 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
AzureIoTClient 28:add19eb7defa 12569 if (expiry_policy_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12570 {
AzureIoTClient 28:add19eb7defa 12571 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12572 }
AzureIoTClient 28:add19eb7defa 12573 else
AzureIoTClient 28:add19eb7defa 12574 {
AzureIoTClient 28:add19eb7defa 12575 if (amqpvalue_set_composite_item(source_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12576 {
AzureIoTClient 28:add19eb7defa 12577 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12578 }
AzureIoTClient 28:add19eb7defa 12579 else
AzureIoTClient 28:add19eb7defa 12580 {
AzureIoTClient 28:add19eb7defa 12581 result = 0;
AzureIoTClient 28:add19eb7defa 12582 }
AzureIoTClient 28:add19eb7defa 12583
AzureIoTClient 28:add19eb7defa 12584 amqpvalue_destroy(expiry_policy_amqp_value);
AzureIoTClient 28:add19eb7defa 12585 }
AzureIoTClient 28:add19eb7defa 12586 }
AzureIoTClient 28:add19eb7defa 12587
AzureIoTClient 28:add19eb7defa 12588 return result;
Azure.IoT Build 0:6ae2f7bca550 12589 }
Azure.IoT Build 0:6ae2f7bca550 12590
Azure.IoT Build 0:6ae2f7bca550 12591 int source_get_timeout(SOURCE_HANDLE source, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12592 {
AzureIoTClient 28:add19eb7defa 12593 int result;
AzureIoTClient 28:add19eb7defa 12594
AzureIoTClient 28:add19eb7defa 12595 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12596 {
AzureIoTClient 28:add19eb7defa 12597 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12598 }
AzureIoTClient 28:add19eb7defa 12599 else
AzureIoTClient 28:add19eb7defa 12600 {
AzureIoTClient 28:add19eb7defa 12601 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12602 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12603 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12604 {
AzureIoTClient 23:1111ee8bcba4 12605 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12606 }
AzureIoTClient 23:1111ee8bcba4 12607 else
AzureIoTClient 23:1111ee8bcba4 12608 {
AzureIoTClient 23:1111ee8bcba4 12609 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 12610 {
AzureIoTClient 28:add19eb7defa 12611 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 12612 result = 0;
AzureIoTClient 28:add19eb7defa 12613 }
AzureIoTClient 28:add19eb7defa 12614 else
AzureIoTClient 28:add19eb7defa 12615 {
AzureIoTClient 28:add19eb7defa 12616 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 12617 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12618 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12619 {
AzureIoTClient 28:add19eb7defa 12620 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 12621 result = 0;
AzureIoTClient 28:add19eb7defa 12622 }
AzureIoTClient 28:add19eb7defa 12623 else
AzureIoTClient 28:add19eb7defa 12624 {
AzureIoTClient 28:add19eb7defa 12625 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12626 if ((get_single_value_result = amqpvalue_get_seconds(item_value, timeout_value)) != 0)
AzureIoTClient 28:add19eb7defa 12627 {
AzureIoTClient 23:1111ee8bcba4 12628 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12629 {
AzureIoTClient 28:add19eb7defa 12630 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12631 }
AzureIoTClient 28:add19eb7defa 12632 else
AzureIoTClient 28:add19eb7defa 12633 {
AzureIoTClient 28:add19eb7defa 12634 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 12635 result = 0;
AzureIoTClient 23:1111ee8bcba4 12636 }
AzureIoTClient 28:add19eb7defa 12637 }
AzureIoTClient 28:add19eb7defa 12638 else
AzureIoTClient 28:add19eb7defa 12639 {
AzureIoTClient 28:add19eb7defa 12640 result = 0;
AzureIoTClient 28:add19eb7defa 12641 }
AzureIoTClient 28:add19eb7defa 12642 }
AzureIoTClient 28:add19eb7defa 12643 }
AzureIoTClient 28:add19eb7defa 12644 }
AzureIoTClient 28:add19eb7defa 12645 }
AzureIoTClient 28:add19eb7defa 12646
AzureIoTClient 28:add19eb7defa 12647 return result;
Azure.IoT Build 0:6ae2f7bca550 12648 }
Azure.IoT Build 0:6ae2f7bca550 12649
Azure.IoT Build 0:6ae2f7bca550 12650 int source_set_timeout(SOURCE_HANDLE source, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12651 {
AzureIoTClient 28:add19eb7defa 12652 int result;
AzureIoTClient 28:add19eb7defa 12653
AzureIoTClient 28:add19eb7defa 12654 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12655 {
AzureIoTClient 28:add19eb7defa 12656 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12657 }
AzureIoTClient 28:add19eb7defa 12658 else
AzureIoTClient 28:add19eb7defa 12659 {
AzureIoTClient 28:add19eb7defa 12660 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12661 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
AzureIoTClient 28:add19eb7defa 12662 if (timeout_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12663 {
AzureIoTClient 28:add19eb7defa 12664 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12665 }
AzureIoTClient 28:add19eb7defa 12666 else
AzureIoTClient 28:add19eb7defa 12667 {
AzureIoTClient 28:add19eb7defa 12668 if (amqpvalue_set_composite_item(source_instance->composite_value, 3, timeout_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12669 {
AzureIoTClient 28:add19eb7defa 12670 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12671 }
AzureIoTClient 28:add19eb7defa 12672 else
AzureIoTClient 28:add19eb7defa 12673 {
AzureIoTClient 28:add19eb7defa 12674 result = 0;
AzureIoTClient 28:add19eb7defa 12675 }
AzureIoTClient 28:add19eb7defa 12676
AzureIoTClient 28:add19eb7defa 12677 amqpvalue_destroy(timeout_amqp_value);
AzureIoTClient 28:add19eb7defa 12678 }
AzureIoTClient 28:add19eb7defa 12679 }
AzureIoTClient 28:add19eb7defa 12680
AzureIoTClient 28:add19eb7defa 12681 return result;
Azure.IoT Build 0:6ae2f7bca550 12682 }
Azure.IoT Build 0:6ae2f7bca550 12683
Azure.IoT Build 0:6ae2f7bca550 12684 int source_get_dynamic(SOURCE_HANDLE source, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12685 {
AzureIoTClient 28:add19eb7defa 12686 int result;
AzureIoTClient 28:add19eb7defa 12687
AzureIoTClient 28:add19eb7defa 12688 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12689 {
AzureIoTClient 28:add19eb7defa 12690 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12691 }
AzureIoTClient 28:add19eb7defa 12692 else
AzureIoTClient 28:add19eb7defa 12693 {
AzureIoTClient 28:add19eb7defa 12694 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12695 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12696 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12697 {
AzureIoTClient 23:1111ee8bcba4 12698 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12699 }
AzureIoTClient 23:1111ee8bcba4 12700 else
AzureIoTClient 23:1111ee8bcba4 12701 {
AzureIoTClient 23:1111ee8bcba4 12702 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 12703 {
AzureIoTClient 28:add19eb7defa 12704 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 12705 result = 0;
AzureIoTClient 28:add19eb7defa 12706 }
AzureIoTClient 28:add19eb7defa 12707 else
AzureIoTClient 28:add19eb7defa 12708 {
AzureIoTClient 28:add19eb7defa 12709 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 12710 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12711 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12712 {
AzureIoTClient 28:add19eb7defa 12713 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 12714 result = 0;
AzureIoTClient 28:add19eb7defa 12715 }
AzureIoTClient 28:add19eb7defa 12716 else
AzureIoTClient 28:add19eb7defa 12717 {
AzureIoTClient 28:add19eb7defa 12718 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12719 if ((get_single_value_result = amqpvalue_get_boolean(item_value, dynamic_value)) != 0)
AzureIoTClient 28:add19eb7defa 12720 {
AzureIoTClient 23:1111ee8bcba4 12721 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12722 {
AzureIoTClient 28:add19eb7defa 12723 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12724 }
AzureIoTClient 28:add19eb7defa 12725 else
AzureIoTClient 28:add19eb7defa 12726 {
AzureIoTClient 28:add19eb7defa 12727 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 12728 result = 0;
AzureIoTClient 23:1111ee8bcba4 12729 }
AzureIoTClient 28:add19eb7defa 12730 }
AzureIoTClient 28:add19eb7defa 12731 else
AzureIoTClient 28:add19eb7defa 12732 {
AzureIoTClient 28:add19eb7defa 12733 result = 0;
AzureIoTClient 28:add19eb7defa 12734 }
AzureIoTClient 28:add19eb7defa 12735 }
AzureIoTClient 28:add19eb7defa 12736 }
AzureIoTClient 28:add19eb7defa 12737 }
AzureIoTClient 28:add19eb7defa 12738 }
AzureIoTClient 28:add19eb7defa 12739
AzureIoTClient 28:add19eb7defa 12740 return result;
Azure.IoT Build 0:6ae2f7bca550 12741 }
Azure.IoT Build 0:6ae2f7bca550 12742
Azure.IoT Build 0:6ae2f7bca550 12743 int source_set_dynamic(SOURCE_HANDLE source, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12744 {
AzureIoTClient 28:add19eb7defa 12745 int result;
AzureIoTClient 28:add19eb7defa 12746
AzureIoTClient 28:add19eb7defa 12747 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12748 {
AzureIoTClient 28:add19eb7defa 12749 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12750 }
AzureIoTClient 28:add19eb7defa 12751 else
AzureIoTClient 28:add19eb7defa 12752 {
AzureIoTClient 28:add19eb7defa 12753 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12754 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
AzureIoTClient 28:add19eb7defa 12755 if (dynamic_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12756 {
AzureIoTClient 28:add19eb7defa 12757 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12758 }
AzureIoTClient 28:add19eb7defa 12759 else
AzureIoTClient 28:add19eb7defa 12760 {
AzureIoTClient 28:add19eb7defa 12761 if (amqpvalue_set_composite_item(source_instance->composite_value, 4, dynamic_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12762 {
AzureIoTClient 28:add19eb7defa 12763 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12764 }
AzureIoTClient 28:add19eb7defa 12765 else
AzureIoTClient 28:add19eb7defa 12766 {
AzureIoTClient 28:add19eb7defa 12767 result = 0;
AzureIoTClient 28:add19eb7defa 12768 }
AzureIoTClient 28:add19eb7defa 12769
AzureIoTClient 28:add19eb7defa 12770 amqpvalue_destroy(dynamic_amqp_value);
AzureIoTClient 28:add19eb7defa 12771 }
AzureIoTClient 28:add19eb7defa 12772 }
AzureIoTClient 28:add19eb7defa 12773
AzureIoTClient 28:add19eb7defa 12774 return result;
Azure.IoT Build 0:6ae2f7bca550 12775 }
Azure.IoT Build 0:6ae2f7bca550 12776
Azure.IoT Build 0:6ae2f7bca550 12777 int source_get_dynamic_node_properties(SOURCE_HANDLE source, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12778 {
AzureIoTClient 28:add19eb7defa 12779 int result;
AzureIoTClient 28:add19eb7defa 12780
AzureIoTClient 28:add19eb7defa 12781 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12782 {
AzureIoTClient 28:add19eb7defa 12783 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12784 }
AzureIoTClient 28:add19eb7defa 12785 else
AzureIoTClient 28:add19eb7defa 12786 {
AzureIoTClient 28:add19eb7defa 12787 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12788 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12789 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12790 {
AzureIoTClient 23:1111ee8bcba4 12791 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12792 }
AzureIoTClient 23:1111ee8bcba4 12793 else
AzureIoTClient 23:1111ee8bcba4 12794 {
AzureIoTClient 23:1111ee8bcba4 12795 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 12796 {
AzureIoTClient 28:add19eb7defa 12797 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12798 }
AzureIoTClient 28:add19eb7defa 12799 else
AzureIoTClient 28:add19eb7defa 12800 {
AzureIoTClient 28:add19eb7defa 12801 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 12802 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12803 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12804 {
AzureIoTClient 28:add19eb7defa 12805 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12806 }
AzureIoTClient 28:add19eb7defa 12807 else
AzureIoTClient 28:add19eb7defa 12808 {
AzureIoTClient 28:add19eb7defa 12809 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12810 if ((get_single_value_result = amqpvalue_get_node_properties(item_value, dynamic_node_properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 12811 {
AzureIoTClient 28:add19eb7defa 12812 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12813 }
AzureIoTClient 28:add19eb7defa 12814 else
AzureIoTClient 28:add19eb7defa 12815 {
AzureIoTClient 28:add19eb7defa 12816 result = 0;
AzureIoTClient 28:add19eb7defa 12817 }
AzureIoTClient 28:add19eb7defa 12818 }
AzureIoTClient 28:add19eb7defa 12819 }
AzureIoTClient 28:add19eb7defa 12820 }
AzureIoTClient 28:add19eb7defa 12821 }
AzureIoTClient 28:add19eb7defa 12822
AzureIoTClient 28:add19eb7defa 12823 return result;
Azure.IoT Build 0:6ae2f7bca550 12824 }
Azure.IoT Build 0:6ae2f7bca550 12825
Azure.IoT Build 0:6ae2f7bca550 12826 int source_set_dynamic_node_properties(SOURCE_HANDLE source, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12827 {
AzureIoTClient 28:add19eb7defa 12828 int result;
AzureIoTClient 28:add19eb7defa 12829
AzureIoTClient 28:add19eb7defa 12830 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12831 {
AzureIoTClient 28:add19eb7defa 12832 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12833 }
AzureIoTClient 28:add19eb7defa 12834 else
AzureIoTClient 28:add19eb7defa 12835 {
AzureIoTClient 28:add19eb7defa 12836 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12837 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
AzureIoTClient 28:add19eb7defa 12838 if (dynamic_node_properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12839 {
AzureIoTClient 28:add19eb7defa 12840 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12841 }
AzureIoTClient 28:add19eb7defa 12842 else
AzureIoTClient 28:add19eb7defa 12843 {
AzureIoTClient 28:add19eb7defa 12844 if (amqpvalue_set_composite_item(source_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12845 {
AzureIoTClient 28:add19eb7defa 12846 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12847 }
AzureIoTClient 28:add19eb7defa 12848 else
AzureIoTClient 28:add19eb7defa 12849 {
AzureIoTClient 28:add19eb7defa 12850 result = 0;
AzureIoTClient 28:add19eb7defa 12851 }
AzureIoTClient 28:add19eb7defa 12852
AzureIoTClient 28:add19eb7defa 12853 amqpvalue_destroy(dynamic_node_properties_amqp_value);
AzureIoTClient 28:add19eb7defa 12854 }
AzureIoTClient 28:add19eb7defa 12855 }
AzureIoTClient 28:add19eb7defa 12856
AzureIoTClient 28:add19eb7defa 12857 return result;
Azure.IoT Build 0:6ae2f7bca550 12858 }
Azure.IoT Build 0:6ae2f7bca550 12859
Azure.IoT Build 0:6ae2f7bca550 12860 int source_get_distribution_mode(SOURCE_HANDLE source, const char** distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12861 {
AzureIoTClient 28:add19eb7defa 12862 int result;
AzureIoTClient 28:add19eb7defa 12863
AzureIoTClient 28:add19eb7defa 12864 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12865 {
AzureIoTClient 28:add19eb7defa 12866 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12867 }
AzureIoTClient 28:add19eb7defa 12868 else
AzureIoTClient 28:add19eb7defa 12869 {
AzureIoTClient 28:add19eb7defa 12870 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12871 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12872 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12873 {
AzureIoTClient 23:1111ee8bcba4 12874 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12875 }
AzureIoTClient 23:1111ee8bcba4 12876 else
AzureIoTClient 23:1111ee8bcba4 12877 {
AzureIoTClient 23:1111ee8bcba4 12878 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 12879 {
AzureIoTClient 28:add19eb7defa 12880 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12881 }
AzureIoTClient 28:add19eb7defa 12882 else
AzureIoTClient 28:add19eb7defa 12883 {
AzureIoTClient 28:add19eb7defa 12884 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 12885 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12886 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12887 {
AzureIoTClient 28:add19eb7defa 12888 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12889 }
AzureIoTClient 28:add19eb7defa 12890 else
AzureIoTClient 28:add19eb7defa 12891 {
AzureIoTClient 28:add19eb7defa 12892 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12893 if ((get_single_value_result = amqpvalue_get_symbol(item_value, distribution_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 12894 {
AzureIoTClient 28:add19eb7defa 12895 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12896 }
AzureIoTClient 28:add19eb7defa 12897 else
AzureIoTClient 28:add19eb7defa 12898 {
AzureIoTClient 28:add19eb7defa 12899 result = 0;
AzureIoTClient 28:add19eb7defa 12900 }
AzureIoTClient 28:add19eb7defa 12901 }
AzureIoTClient 28:add19eb7defa 12902 }
AzureIoTClient 28:add19eb7defa 12903 }
AzureIoTClient 28:add19eb7defa 12904 }
AzureIoTClient 28:add19eb7defa 12905
AzureIoTClient 28:add19eb7defa 12906 return result;
Azure.IoT Build 0:6ae2f7bca550 12907 }
Azure.IoT Build 0:6ae2f7bca550 12908
Azure.IoT Build 0:6ae2f7bca550 12909 int source_set_distribution_mode(SOURCE_HANDLE source, const char* distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12910 {
AzureIoTClient 28:add19eb7defa 12911 int result;
AzureIoTClient 28:add19eb7defa 12912
AzureIoTClient 28:add19eb7defa 12913 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12914 {
AzureIoTClient 28:add19eb7defa 12915 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12916 }
AzureIoTClient 28:add19eb7defa 12917 else
AzureIoTClient 28:add19eb7defa 12918 {
AzureIoTClient 28:add19eb7defa 12919 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12920 AMQP_VALUE distribution_mode_amqp_value = amqpvalue_create_symbol(distribution_mode_value);
AzureIoTClient 28:add19eb7defa 12921 if (distribution_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12922 {
AzureIoTClient 28:add19eb7defa 12923 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12924 }
AzureIoTClient 28:add19eb7defa 12925 else
AzureIoTClient 28:add19eb7defa 12926 {
AzureIoTClient 28:add19eb7defa 12927 if (amqpvalue_set_composite_item(source_instance->composite_value, 6, distribution_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12928 {
AzureIoTClient 28:add19eb7defa 12929 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12930 }
AzureIoTClient 28:add19eb7defa 12931 else
AzureIoTClient 28:add19eb7defa 12932 {
AzureIoTClient 28:add19eb7defa 12933 result = 0;
AzureIoTClient 28:add19eb7defa 12934 }
AzureIoTClient 28:add19eb7defa 12935
AzureIoTClient 28:add19eb7defa 12936 amqpvalue_destroy(distribution_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 12937 }
AzureIoTClient 28:add19eb7defa 12938 }
AzureIoTClient 28:add19eb7defa 12939
AzureIoTClient 28:add19eb7defa 12940 return result;
Azure.IoT Build 0:6ae2f7bca550 12941 }
Azure.IoT Build 0:6ae2f7bca550 12942
Azure.IoT Build 0:6ae2f7bca550 12943 int source_get_filter(SOURCE_HANDLE source, filter_set* filter_value)
Azure.IoT Build 0:6ae2f7bca550 12944 {
AzureIoTClient 28:add19eb7defa 12945 int result;
AzureIoTClient 28:add19eb7defa 12946
AzureIoTClient 28:add19eb7defa 12947 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12948 {
AzureIoTClient 28:add19eb7defa 12949 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12950 }
AzureIoTClient 28:add19eb7defa 12951 else
AzureIoTClient 28:add19eb7defa 12952 {
AzureIoTClient 28:add19eb7defa 12953 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12954 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12955 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12956 {
AzureIoTClient 23:1111ee8bcba4 12957 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12958 }
AzureIoTClient 23:1111ee8bcba4 12959 else
AzureIoTClient 23:1111ee8bcba4 12960 {
AzureIoTClient 23:1111ee8bcba4 12961 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 12962 {
AzureIoTClient 28:add19eb7defa 12963 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12964 }
AzureIoTClient 28:add19eb7defa 12965 else
AzureIoTClient 28:add19eb7defa 12966 {
AzureIoTClient 28:add19eb7defa 12967 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 12968 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12969 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12970 {
AzureIoTClient 28:add19eb7defa 12971 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12972 }
AzureIoTClient 28:add19eb7defa 12973 else
AzureIoTClient 28:add19eb7defa 12974 {
AzureIoTClient 28:add19eb7defa 12975 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12976 if ((get_single_value_result = amqpvalue_get_filter_set(item_value, filter_value)) != 0)
AzureIoTClient 28:add19eb7defa 12977 {
AzureIoTClient 28:add19eb7defa 12978 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12979 }
AzureIoTClient 28:add19eb7defa 12980 else
AzureIoTClient 28:add19eb7defa 12981 {
AzureIoTClient 28:add19eb7defa 12982 result = 0;
AzureIoTClient 28:add19eb7defa 12983 }
AzureIoTClient 28:add19eb7defa 12984 }
AzureIoTClient 28:add19eb7defa 12985 }
AzureIoTClient 28:add19eb7defa 12986 }
AzureIoTClient 28:add19eb7defa 12987 }
AzureIoTClient 28:add19eb7defa 12988
AzureIoTClient 28:add19eb7defa 12989 return result;
Azure.IoT Build 0:6ae2f7bca550 12990 }
Azure.IoT Build 0:6ae2f7bca550 12991
Azure.IoT Build 0:6ae2f7bca550 12992 int source_set_filter(SOURCE_HANDLE source, filter_set filter_value)
Azure.IoT Build 0:6ae2f7bca550 12993 {
AzureIoTClient 28:add19eb7defa 12994 int result;
AzureIoTClient 28:add19eb7defa 12995
AzureIoTClient 28:add19eb7defa 12996 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12997 {
AzureIoTClient 28:add19eb7defa 12998 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12999 }
AzureIoTClient 28:add19eb7defa 13000 else
AzureIoTClient 28:add19eb7defa 13001 {
AzureIoTClient 28:add19eb7defa 13002 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13003 AMQP_VALUE filter_amqp_value = amqpvalue_create_filter_set(filter_value);
AzureIoTClient 28:add19eb7defa 13004 if (filter_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13005 {
AzureIoTClient 28:add19eb7defa 13006 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13007 }
AzureIoTClient 28:add19eb7defa 13008 else
AzureIoTClient 28:add19eb7defa 13009 {
AzureIoTClient 28:add19eb7defa 13010 if (amqpvalue_set_composite_item(source_instance->composite_value, 7, filter_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13011 {
AzureIoTClient 28:add19eb7defa 13012 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13013 }
AzureIoTClient 28:add19eb7defa 13014 else
AzureIoTClient 28:add19eb7defa 13015 {
AzureIoTClient 28:add19eb7defa 13016 result = 0;
AzureIoTClient 28:add19eb7defa 13017 }
AzureIoTClient 28:add19eb7defa 13018
AzureIoTClient 28:add19eb7defa 13019 amqpvalue_destroy(filter_amqp_value);
AzureIoTClient 28:add19eb7defa 13020 }
AzureIoTClient 28:add19eb7defa 13021 }
AzureIoTClient 28:add19eb7defa 13022
AzureIoTClient 28:add19eb7defa 13023 return result;
Azure.IoT Build 0:6ae2f7bca550 13024 }
Azure.IoT Build 0:6ae2f7bca550 13025
Azure.IoT Build 0:6ae2f7bca550 13026 int source_get_default_outcome(SOURCE_HANDLE source, AMQP_VALUE* default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 13027 {
AzureIoTClient 28:add19eb7defa 13028 int result;
AzureIoTClient 28:add19eb7defa 13029
AzureIoTClient 28:add19eb7defa 13030 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13031 {
AzureIoTClient 28:add19eb7defa 13032 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13033 }
AzureIoTClient 28:add19eb7defa 13034 else
AzureIoTClient 28:add19eb7defa 13035 {
AzureIoTClient 28:add19eb7defa 13036 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13037 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13038 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13039 {
AzureIoTClient 23:1111ee8bcba4 13040 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13041 }
AzureIoTClient 23:1111ee8bcba4 13042 else
AzureIoTClient 23:1111ee8bcba4 13043 {
AzureIoTClient 23:1111ee8bcba4 13044 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 13045 {
AzureIoTClient 28:add19eb7defa 13046 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13047 }
AzureIoTClient 28:add19eb7defa 13048 else
AzureIoTClient 28:add19eb7defa 13049 {
AzureIoTClient 28:add19eb7defa 13050 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 13051 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13052 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13053 {
AzureIoTClient 28:add19eb7defa 13054 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13055 }
AzureIoTClient 28:add19eb7defa 13056 else
AzureIoTClient 28:add19eb7defa 13057 {
AzureIoTClient 28:add19eb7defa 13058 *default_outcome_value = item_value;
AzureIoTClient 28:add19eb7defa 13059 result = 0;
AzureIoTClient 28:add19eb7defa 13060 }
AzureIoTClient 28:add19eb7defa 13061 }
AzureIoTClient 28:add19eb7defa 13062 }
AzureIoTClient 28:add19eb7defa 13063 }
AzureIoTClient 28:add19eb7defa 13064
AzureIoTClient 28:add19eb7defa 13065 return result;
Azure.IoT Build 0:6ae2f7bca550 13066 }
Azure.IoT Build 0:6ae2f7bca550 13067
Azure.IoT Build 0:6ae2f7bca550 13068 int source_set_default_outcome(SOURCE_HANDLE source, AMQP_VALUE default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 13069 {
AzureIoTClient 28:add19eb7defa 13070 int result;
AzureIoTClient 28:add19eb7defa 13071
AzureIoTClient 28:add19eb7defa 13072 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13073 {
AzureIoTClient 28:add19eb7defa 13074 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13075 }
AzureIoTClient 28:add19eb7defa 13076 else
AzureIoTClient 28:add19eb7defa 13077 {
AzureIoTClient 28:add19eb7defa 13078 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13079 AMQP_VALUE default_outcome_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13080 if (default_outcome_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13081 {
AzureIoTClient 23:1111ee8bcba4 13082 default_outcome_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13083 }
AzureIoTClient 23:1111ee8bcba4 13084 else
AzureIoTClient 23:1111ee8bcba4 13085 {
AzureIoTClient 23:1111ee8bcba4 13086 default_outcome_amqp_value = amqpvalue_clone(default_outcome_value);
AzureIoTClient 23:1111ee8bcba4 13087 }
AzureIoTClient 28:add19eb7defa 13088 if (default_outcome_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13089 {
AzureIoTClient 28:add19eb7defa 13090 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13091 }
AzureIoTClient 28:add19eb7defa 13092 else
AzureIoTClient 28:add19eb7defa 13093 {
AzureIoTClient 28:add19eb7defa 13094 if (amqpvalue_set_composite_item(source_instance->composite_value, 8, default_outcome_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13095 {
AzureIoTClient 28:add19eb7defa 13096 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13097 }
AzureIoTClient 28:add19eb7defa 13098 else
AzureIoTClient 28:add19eb7defa 13099 {
AzureIoTClient 28:add19eb7defa 13100 result = 0;
AzureIoTClient 28:add19eb7defa 13101 }
AzureIoTClient 28:add19eb7defa 13102
AzureIoTClient 28:add19eb7defa 13103 amqpvalue_destroy(default_outcome_amqp_value);
AzureIoTClient 28:add19eb7defa 13104 }
AzureIoTClient 28:add19eb7defa 13105 }
AzureIoTClient 28:add19eb7defa 13106
AzureIoTClient 28:add19eb7defa 13107 return result;
Azure.IoT Build 0:6ae2f7bca550 13108 }
Azure.IoT Build 0:6ae2f7bca550 13109
Azure.IoT Build 0:6ae2f7bca550 13110 int source_get_outcomes(SOURCE_HANDLE source, AMQP_VALUE* outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 13111 {
AzureIoTClient 28:add19eb7defa 13112 int result;
AzureIoTClient 28:add19eb7defa 13113
AzureIoTClient 28:add19eb7defa 13114 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13115 {
AzureIoTClient 28:add19eb7defa 13116 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13117 }
AzureIoTClient 28:add19eb7defa 13118 else
AzureIoTClient 28:add19eb7defa 13119 {
AzureIoTClient 28:add19eb7defa 13120 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13121 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13122 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13123 {
AzureIoTClient 23:1111ee8bcba4 13124 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13125 }
AzureIoTClient 23:1111ee8bcba4 13126 else
AzureIoTClient 23:1111ee8bcba4 13127 {
AzureIoTClient 23:1111ee8bcba4 13128 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 13129 {
AzureIoTClient 28:add19eb7defa 13130 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13131 }
AzureIoTClient 28:add19eb7defa 13132 else
AzureIoTClient 28:add19eb7defa 13133 {
AzureIoTClient 28:add19eb7defa 13134 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 13135 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13136 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13137 {
AzureIoTClient 28:add19eb7defa 13138 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13139 }
AzureIoTClient 28:add19eb7defa 13140 else
AzureIoTClient 28:add19eb7defa 13141 {
AzureIoTClient 28:add19eb7defa 13142 const char* outcomes_single_value;
AzureIoTClient 28:add19eb7defa 13143 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13144 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13145 {
AzureIoTClient 28:add19eb7defa 13146 get_single_value_result = amqpvalue_get_symbol(item_value, &outcomes_single_value);
AzureIoTClient 28:add19eb7defa 13147 }
AzureIoTClient 28:add19eb7defa 13148 else
AzureIoTClient 28:add19eb7defa 13149 {
AzureIoTClient 28:add19eb7defa 13150 (void)memset((void*)&outcomes_single_value, 0, sizeof(outcomes_single_value));
AzureIoTClient 28:add19eb7defa 13151 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 13152 }
AzureIoTClient 28:add19eb7defa 13153
AzureIoTClient 28:add19eb7defa 13154 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, outcomes_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 13155 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 13156 {
AzureIoTClient 28:add19eb7defa 13157 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13158 }
AzureIoTClient 28:add19eb7defa 13159 else
AzureIoTClient 28:add19eb7defa 13160 {
AzureIoTClient 28:add19eb7defa 13161 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13162 {
AzureIoTClient 28:add19eb7defa 13163 *outcomes_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 13164 if (*outcomes_value == NULL)
AzureIoTClient 28:add19eb7defa 13165 {
AzureIoTClient 28:add19eb7defa 13166 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13167 }
AzureIoTClient 28:add19eb7defa 13168 else
AzureIoTClient 28:add19eb7defa 13169 {
AzureIoTClient 28:add19eb7defa 13170 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(outcomes_single_value);
AzureIoTClient 28:add19eb7defa 13171 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13172 {
AzureIoTClient 28:add19eb7defa 13173 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13174 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13175 }
AzureIoTClient 28:add19eb7defa 13176 else
AzureIoTClient 28:add19eb7defa 13177 {
AzureIoTClient 28:add19eb7defa 13178 if (amqpvalue_add_array_item(*outcomes_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13179 {
AzureIoTClient 28:add19eb7defa 13180 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13181 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 13182 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13183 }
AzureIoTClient 28:add19eb7defa 13184 else
AzureIoTClient 28:add19eb7defa 13185 {
AzureIoTClient 29:4a11413cf217 13186 if (amqpvalue_set_composite_item(source_instance->composite_value, 9, *outcomes_value) != 0)
AzureIoTClient 29:4a11413cf217 13187 {
AzureIoTClient 29:4a11413cf217 13188 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 29:4a11413cf217 13189 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 13190 }
AzureIoTClient 29:4a11413cf217 13191 else
AzureIoTClient 29:4a11413cf217 13192 {
AzureIoTClient 29:4a11413cf217 13193 result = 0;
AzureIoTClient 29:4a11413cf217 13194 }
AzureIoTClient 28:add19eb7defa 13195 }
AzureIoTClient 29:4a11413cf217 13196
AzureIoTClient 29:4a11413cf217 13197 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 13198 }
AzureIoTClient 29:4a11413cf217 13199 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13200 }
AzureIoTClient 28:add19eb7defa 13201 }
AzureIoTClient 28:add19eb7defa 13202 else
AzureIoTClient 28:add19eb7defa 13203 {
AzureIoTClient 28:add19eb7defa 13204 result = 0;
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
AzureIoTClient 28:add19eb7defa 13212 return result;
Azure.IoT Build 0:6ae2f7bca550 13213 }
Azure.IoT Build 0:6ae2f7bca550 13214
Azure.IoT Build 0:6ae2f7bca550 13215 int source_set_outcomes(SOURCE_HANDLE source, AMQP_VALUE outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 13216 {
AzureIoTClient 28:add19eb7defa 13217 int result;
AzureIoTClient 28:add19eb7defa 13218
AzureIoTClient 28:add19eb7defa 13219 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13220 {
AzureIoTClient 28:add19eb7defa 13221 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13222 }
AzureIoTClient 28:add19eb7defa 13223 else
AzureIoTClient 28:add19eb7defa 13224 {
AzureIoTClient 28:add19eb7defa 13225 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13226 AMQP_VALUE outcomes_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13227 if (outcomes_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13228 {
AzureIoTClient 23:1111ee8bcba4 13229 outcomes_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13230 }
AzureIoTClient 23:1111ee8bcba4 13231 else
AzureIoTClient 23:1111ee8bcba4 13232 {
AzureIoTClient 23:1111ee8bcba4 13233 outcomes_amqp_value = amqpvalue_clone(outcomes_value);
AzureIoTClient 23:1111ee8bcba4 13234 }
AzureIoTClient 28:add19eb7defa 13235 if (outcomes_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13236 {
AzureIoTClient 28:add19eb7defa 13237 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13238 }
AzureIoTClient 28:add19eb7defa 13239 else
AzureIoTClient 28:add19eb7defa 13240 {
AzureIoTClient 28:add19eb7defa 13241 if (amqpvalue_set_composite_item(source_instance->composite_value, 9, outcomes_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13242 {
AzureIoTClient 28:add19eb7defa 13243 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13244 }
AzureIoTClient 28:add19eb7defa 13245 else
AzureIoTClient 28:add19eb7defa 13246 {
AzureIoTClient 28:add19eb7defa 13247 result = 0;
AzureIoTClient 28:add19eb7defa 13248 }
AzureIoTClient 28:add19eb7defa 13249
AzureIoTClient 28:add19eb7defa 13250 amqpvalue_destroy(outcomes_amqp_value);
AzureIoTClient 28:add19eb7defa 13251 }
AzureIoTClient 28:add19eb7defa 13252 }
AzureIoTClient 28:add19eb7defa 13253
AzureIoTClient 28:add19eb7defa 13254 return result;
Azure.IoT Build 0:6ae2f7bca550 13255 }
Azure.IoT Build 0:6ae2f7bca550 13256
Azure.IoT Build 0:6ae2f7bca550 13257 int source_get_capabilities(SOURCE_HANDLE source, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13258 {
AzureIoTClient 28:add19eb7defa 13259 int result;
AzureIoTClient 28:add19eb7defa 13260
AzureIoTClient 28:add19eb7defa 13261 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13262 {
AzureIoTClient 28:add19eb7defa 13263 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13264 }
AzureIoTClient 28:add19eb7defa 13265 else
AzureIoTClient 28:add19eb7defa 13266 {
AzureIoTClient 28:add19eb7defa 13267 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13268 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13269 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13270 {
AzureIoTClient 23:1111ee8bcba4 13271 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13272 }
AzureIoTClient 23:1111ee8bcba4 13273 else
AzureIoTClient 23:1111ee8bcba4 13274 {
AzureIoTClient 23:1111ee8bcba4 13275 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 13276 {
AzureIoTClient 28:add19eb7defa 13277 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13278 }
AzureIoTClient 28:add19eb7defa 13279 else
AzureIoTClient 28:add19eb7defa 13280 {
AzureIoTClient 28:add19eb7defa 13281 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 13282 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13283 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13284 {
AzureIoTClient 28:add19eb7defa 13285 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13286 }
AzureIoTClient 28:add19eb7defa 13287 else
AzureIoTClient 28:add19eb7defa 13288 {
AzureIoTClient 28:add19eb7defa 13289 const char* capabilities_single_value;
AzureIoTClient 28:add19eb7defa 13290 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13291 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13292 {
AzureIoTClient 28:add19eb7defa 13293 get_single_value_result = amqpvalue_get_symbol(item_value, &capabilities_single_value);
AzureIoTClient 28:add19eb7defa 13294 }
AzureIoTClient 28:add19eb7defa 13295 else
AzureIoTClient 28:add19eb7defa 13296 {
AzureIoTClient 28:add19eb7defa 13297 (void)memset((void*)&capabilities_single_value, 0, sizeof(capabilities_single_value));
AzureIoTClient 28:add19eb7defa 13298 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 13299 }
AzureIoTClient 28:add19eb7defa 13300
AzureIoTClient 28:add19eb7defa 13301 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 13302 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 13303 {
AzureIoTClient 28:add19eb7defa 13304 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13305 }
AzureIoTClient 28:add19eb7defa 13306 else
AzureIoTClient 28:add19eb7defa 13307 {
AzureIoTClient 28:add19eb7defa 13308 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13309 {
AzureIoTClient 28:add19eb7defa 13310 *capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 13311 if (*capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 13312 {
AzureIoTClient 28:add19eb7defa 13313 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13314 }
AzureIoTClient 28:add19eb7defa 13315 else
AzureIoTClient 28:add19eb7defa 13316 {
AzureIoTClient 28:add19eb7defa 13317 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(capabilities_single_value);
AzureIoTClient 28:add19eb7defa 13318 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13319 {
AzureIoTClient 28:add19eb7defa 13320 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13321 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13322 }
AzureIoTClient 28:add19eb7defa 13323 else
AzureIoTClient 28:add19eb7defa 13324 {
AzureIoTClient 28:add19eb7defa 13325 if (amqpvalue_add_array_item(*capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13326 {
AzureIoTClient 28:add19eb7defa 13327 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13328 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 13329 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13330 }
AzureIoTClient 28:add19eb7defa 13331 else
AzureIoTClient 28:add19eb7defa 13332 {
AzureIoTClient 29:4a11413cf217 13333 if (amqpvalue_set_composite_item(source_instance->composite_value, 10, *capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 13334 {
AzureIoTClient 29:4a11413cf217 13335 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 29:4a11413cf217 13336 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 13337 }
AzureIoTClient 29:4a11413cf217 13338 else
AzureIoTClient 29:4a11413cf217 13339 {
AzureIoTClient 29:4a11413cf217 13340 result = 0;
AzureIoTClient 29:4a11413cf217 13341 }
AzureIoTClient 28:add19eb7defa 13342 }
AzureIoTClient 29:4a11413cf217 13343
AzureIoTClient 29:4a11413cf217 13344 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 13345 }
AzureIoTClient 29:4a11413cf217 13346 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13347 }
AzureIoTClient 28:add19eb7defa 13348 }
AzureIoTClient 28:add19eb7defa 13349 else
AzureIoTClient 28:add19eb7defa 13350 {
AzureIoTClient 28:add19eb7defa 13351 result = 0;
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
AzureIoTClient 28:add19eb7defa 13359 return result;
Azure.IoT Build 0:6ae2f7bca550 13360 }
Azure.IoT Build 0:6ae2f7bca550 13361
Azure.IoT Build 0:6ae2f7bca550 13362 int source_set_capabilities(SOURCE_HANDLE source, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13363 {
AzureIoTClient 28:add19eb7defa 13364 int result;
AzureIoTClient 28:add19eb7defa 13365
AzureIoTClient 28:add19eb7defa 13366 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13367 {
AzureIoTClient 28:add19eb7defa 13368 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13369 }
AzureIoTClient 28:add19eb7defa 13370 else
AzureIoTClient 28:add19eb7defa 13371 {
AzureIoTClient 28:add19eb7defa 13372 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13373 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13374 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13375 {
AzureIoTClient 23:1111ee8bcba4 13376 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13377 }
AzureIoTClient 23:1111ee8bcba4 13378 else
AzureIoTClient 23:1111ee8bcba4 13379 {
AzureIoTClient 23:1111ee8bcba4 13380 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 13381 }
AzureIoTClient 28:add19eb7defa 13382 if (capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13383 {
AzureIoTClient 28:add19eb7defa 13384 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13385 }
AzureIoTClient 28:add19eb7defa 13386 else
AzureIoTClient 28:add19eb7defa 13387 {
AzureIoTClient 28:add19eb7defa 13388 if (amqpvalue_set_composite_item(source_instance->composite_value, 10, capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13389 {
AzureIoTClient 28:add19eb7defa 13390 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13391 }
AzureIoTClient 28:add19eb7defa 13392 else
AzureIoTClient 28:add19eb7defa 13393 {
AzureIoTClient 28:add19eb7defa 13394 result = 0;
AzureIoTClient 28:add19eb7defa 13395 }
AzureIoTClient 28:add19eb7defa 13396
AzureIoTClient 28:add19eb7defa 13397 amqpvalue_destroy(capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 13398 }
AzureIoTClient 28:add19eb7defa 13399 }
AzureIoTClient 28:add19eb7defa 13400
AzureIoTClient 28:add19eb7defa 13401 return result;
Azure.IoT Build 0:6ae2f7bca550 13402 }
Azure.IoT Build 0:6ae2f7bca550 13403
Azure.IoT Build 0:6ae2f7bca550 13404
Azure.IoT Build 0:6ae2f7bca550 13405 /* target */
Azure.IoT Build 0:6ae2f7bca550 13406
Azure.IoT Build 0:6ae2f7bca550 13407 typedef struct TARGET_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 13408 {
AzureIoTClient 28:add19eb7defa 13409 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 13410 } TARGET_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 13411
Azure.IoT Build 0:6ae2f7bca550 13412 static TARGET_HANDLE target_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 13413 {
AzureIoTClient 28:add19eb7defa 13414 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13415 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13416 {
AzureIoTClient 28:add19eb7defa 13417 target_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 13418 }
AzureIoTClient 28:add19eb7defa 13419
AzureIoTClient 28:add19eb7defa 13420 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13421 }
Azure.IoT Build 0:6ae2f7bca550 13422
Azure.IoT Build 0:6ae2f7bca550 13423 TARGET_HANDLE target_create(void)
Azure.IoT Build 0:6ae2f7bca550 13424 {
AzureIoTClient 28:add19eb7defa 13425 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13426 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13427 {
AzureIoTClient 28:add19eb7defa 13428 target_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(41);
AzureIoTClient 28:add19eb7defa 13429 if (target_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 13430 {
AzureIoTClient 28:add19eb7defa 13431 free(target_instance);
AzureIoTClient 28:add19eb7defa 13432 target_instance = NULL;
AzureIoTClient 28:add19eb7defa 13433 }
AzureIoTClient 28:add19eb7defa 13434 }
AzureIoTClient 28:add19eb7defa 13435
AzureIoTClient 28:add19eb7defa 13436 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13437 }
Azure.IoT Build 0:6ae2f7bca550 13438
Azure.IoT Build 0:6ae2f7bca550 13439 TARGET_HANDLE target_clone(TARGET_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 13440 {
AzureIoTClient 28:add19eb7defa 13441 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13442 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13443 {
AzureIoTClient 28:add19eb7defa 13444 target_instance->composite_value = amqpvalue_clone(((TARGET_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 13445 if (target_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 13446 {
AzureIoTClient 28:add19eb7defa 13447 free(target_instance);
AzureIoTClient 28:add19eb7defa 13448 target_instance = NULL;
AzureIoTClient 28:add19eb7defa 13449 }
AzureIoTClient 28:add19eb7defa 13450 }
AzureIoTClient 28:add19eb7defa 13451
AzureIoTClient 28:add19eb7defa 13452 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13453 }
Azure.IoT Build 0:6ae2f7bca550 13454
Azure.IoT Build 0:6ae2f7bca550 13455 void target_destroy(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 13456 {
AzureIoTClient 28:add19eb7defa 13457 if (target != NULL)
AzureIoTClient 28:add19eb7defa 13458 {
AzureIoTClient 28:add19eb7defa 13459 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13460 amqpvalue_destroy(target_instance->composite_value);
AzureIoTClient 28:add19eb7defa 13461 free(target_instance);
AzureIoTClient 28:add19eb7defa 13462 }
Azure.IoT Build 0:6ae2f7bca550 13463 }
Azure.IoT Build 0:6ae2f7bca550 13464
Azure.IoT Build 0:6ae2f7bca550 13465 AMQP_VALUE amqpvalue_create_target(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 13466 {
AzureIoTClient 28:add19eb7defa 13467 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 13468
AzureIoTClient 28:add19eb7defa 13469 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13470 {
AzureIoTClient 28:add19eb7defa 13471 result = NULL;
AzureIoTClient 28:add19eb7defa 13472 }
AzureIoTClient 28:add19eb7defa 13473 else
AzureIoTClient 28:add19eb7defa 13474 {
AzureIoTClient 28:add19eb7defa 13475 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13476 result = amqpvalue_clone(target_instance->composite_value);
AzureIoTClient 28:add19eb7defa 13477 }
AzureIoTClient 28:add19eb7defa 13478
AzureIoTClient 28:add19eb7defa 13479 return result;
Azure.IoT Build 0:6ae2f7bca550 13480 }
Azure.IoT Build 0:6ae2f7bca550 13481
Azure.IoT Build 0:6ae2f7bca550 13482 bool is_target_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 13483 {
AzureIoTClient 28:add19eb7defa 13484 bool result;
AzureIoTClient 28:add19eb7defa 13485
AzureIoTClient 28:add19eb7defa 13486 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 13487 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 13488 (descriptor_ulong == 41))
AzureIoTClient 28:add19eb7defa 13489 {
AzureIoTClient 28:add19eb7defa 13490 result = true;
AzureIoTClient 28:add19eb7defa 13491 }
AzureIoTClient 28:add19eb7defa 13492 else
AzureIoTClient 28:add19eb7defa 13493 {
AzureIoTClient 28:add19eb7defa 13494 result = false;
AzureIoTClient 28:add19eb7defa 13495 }
AzureIoTClient 28:add19eb7defa 13496
AzureIoTClient 28:add19eb7defa 13497 return result;
Azure.IoT Build 0:6ae2f7bca550 13498 }
Azure.IoT Build 0:6ae2f7bca550 13499
Azure.IoT Build 0:6ae2f7bca550 13500
Azure.IoT Build 0:6ae2f7bca550 13501 int amqpvalue_get_target(AMQP_VALUE value, TARGET_HANDLE* target_handle)
Azure.IoT Build 0:6ae2f7bca550 13502 {
AzureIoTClient 28:add19eb7defa 13503 int result;
AzureIoTClient 28:add19eb7defa 13504 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target_create_internal();
AzureIoTClient 28:add19eb7defa 13505 *target_handle = target_instance;
AzureIoTClient 28:add19eb7defa 13506 if (*target_handle == NULL)
AzureIoTClient 28:add19eb7defa 13507 {
AzureIoTClient 28:add19eb7defa 13508 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13509 }
AzureIoTClient 28:add19eb7defa 13510 else
AzureIoTClient 28:add19eb7defa 13511 {
AzureIoTClient 28:add19eb7defa 13512 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 13513 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 13514 {
AzureIoTClient 28:add19eb7defa 13515 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13516 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13517 }
AzureIoTClient 28:add19eb7defa 13518 else
AzureIoTClient 28:add19eb7defa 13519 {
AzureIoTClient 23:1111ee8bcba4 13520 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 13521 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13522 {
AzureIoTClient 23:1111ee8bcba4 13523 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13524 }
AzureIoTClient 23:1111ee8bcba4 13525 else
AzureIoTClient 23:1111ee8bcba4 13526 {
AzureIoTClient 28:add19eb7defa 13527 do
AzureIoTClient 28:add19eb7defa 13528 {
AzureIoTClient 28:add19eb7defa 13529 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 13530 /* address */
AzureIoTClient 28:add19eb7defa 13531 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 13532 {
AzureIoTClient 23:1111ee8bcba4 13533 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 13534 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13535 {
AzureIoTClient 28:add19eb7defa 13536 /* do nothing */
AzureIoTClient 28:add19eb7defa 13537 }
AzureIoTClient 28:add19eb7defa 13538 else
AzureIoTClient 28:add19eb7defa 13539 {
AzureIoTClient 28:add19eb7defa 13540 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13541 }
AzureIoTClient 28:add19eb7defa 13542 }
AzureIoTClient 28:add19eb7defa 13543 /* durable */
AzureIoTClient 28:add19eb7defa 13544 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 13545 {
AzureIoTClient 23:1111ee8bcba4 13546 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 13547 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13548 {
AzureIoTClient 28:add19eb7defa 13549 /* do nothing */
AzureIoTClient 28:add19eb7defa 13550 }
AzureIoTClient 28:add19eb7defa 13551 else
AzureIoTClient 28:add19eb7defa 13552 {
AzureIoTClient 28:add19eb7defa 13553 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13554 {
AzureIoTClient 28:add19eb7defa 13555 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13556 }
AzureIoTClient 28:add19eb7defa 13557 else
AzureIoTClient 28:add19eb7defa 13558 {
AzureIoTClient 28:add19eb7defa 13559 terminus_durability durable;
AzureIoTClient 28:add19eb7defa 13560 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 13561 {
AzureIoTClient 28:add19eb7defa 13562 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13563 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13564 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13565 break;
AzureIoTClient 28:add19eb7defa 13566 }
AzureIoTClient 28:add19eb7defa 13567 }
AzureIoTClient 28:add19eb7defa 13568
AzureIoTClient 28:add19eb7defa 13569 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13570 }
AzureIoTClient 28:add19eb7defa 13571 }
AzureIoTClient 28:add19eb7defa 13572 /* expiry-policy */
AzureIoTClient 28:add19eb7defa 13573 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 13574 {
AzureIoTClient 23:1111ee8bcba4 13575 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 13576 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13577 {
AzureIoTClient 28:add19eb7defa 13578 /* do nothing */
AzureIoTClient 28:add19eb7defa 13579 }
AzureIoTClient 28:add19eb7defa 13580 else
AzureIoTClient 28:add19eb7defa 13581 {
AzureIoTClient 28:add19eb7defa 13582 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13583 {
AzureIoTClient 28:add19eb7defa 13584 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13585 }
AzureIoTClient 28:add19eb7defa 13586 else
AzureIoTClient 28:add19eb7defa 13587 {
AzureIoTClient 28:add19eb7defa 13588 terminus_expiry_policy expiry_policy;
AzureIoTClient 28:add19eb7defa 13589 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 28:add19eb7defa 13590 {
AzureIoTClient 28:add19eb7defa 13591 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13592 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13593 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13594 break;
AzureIoTClient 28:add19eb7defa 13595 }
AzureIoTClient 28:add19eb7defa 13596 }
AzureIoTClient 28:add19eb7defa 13597
AzureIoTClient 28:add19eb7defa 13598 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13599 }
AzureIoTClient 28:add19eb7defa 13600 }
AzureIoTClient 28:add19eb7defa 13601 /* timeout */
AzureIoTClient 28:add19eb7defa 13602 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 13603 {
AzureIoTClient 23:1111ee8bcba4 13604 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 13605 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13606 {
AzureIoTClient 28:add19eb7defa 13607 /* do nothing */
AzureIoTClient 28:add19eb7defa 13608 }
AzureIoTClient 28:add19eb7defa 13609 else
AzureIoTClient 28:add19eb7defa 13610 {
AzureIoTClient 28:add19eb7defa 13611 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13612 {
AzureIoTClient 28:add19eb7defa 13613 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13614 }
AzureIoTClient 28:add19eb7defa 13615 else
AzureIoTClient 28:add19eb7defa 13616 {
AzureIoTClient 28:add19eb7defa 13617 seconds timeout;
AzureIoTClient 28:add19eb7defa 13618 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 28:add19eb7defa 13619 {
AzureIoTClient 28:add19eb7defa 13620 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13621 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13622 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13623 break;
AzureIoTClient 28:add19eb7defa 13624 }
AzureIoTClient 28:add19eb7defa 13625 }
AzureIoTClient 28:add19eb7defa 13626
AzureIoTClient 28:add19eb7defa 13627 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13628 }
AzureIoTClient 28:add19eb7defa 13629 }
AzureIoTClient 28:add19eb7defa 13630 /* dynamic */
AzureIoTClient 28:add19eb7defa 13631 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 13632 {
AzureIoTClient 23:1111ee8bcba4 13633 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 13634 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13635 {
AzureIoTClient 28:add19eb7defa 13636 /* do nothing */
AzureIoTClient 28:add19eb7defa 13637 }
AzureIoTClient 28:add19eb7defa 13638 else
AzureIoTClient 28:add19eb7defa 13639 {
AzureIoTClient 28:add19eb7defa 13640 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13641 {
AzureIoTClient 28:add19eb7defa 13642 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13643 }
AzureIoTClient 28:add19eb7defa 13644 else
AzureIoTClient 28:add19eb7defa 13645 {
AzureIoTClient 28:add19eb7defa 13646 bool dynamic;
AzureIoTClient 28:add19eb7defa 13647 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 28:add19eb7defa 13648 {
AzureIoTClient 28:add19eb7defa 13649 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13650 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13651 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13652 break;
AzureIoTClient 28:add19eb7defa 13653 }
AzureIoTClient 28:add19eb7defa 13654 }
AzureIoTClient 28:add19eb7defa 13655
AzureIoTClient 28:add19eb7defa 13656 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13657 }
AzureIoTClient 28:add19eb7defa 13658 }
AzureIoTClient 28:add19eb7defa 13659 /* dynamic-node-properties */
AzureIoTClient 28:add19eb7defa 13660 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 13661 {
AzureIoTClient 23:1111ee8bcba4 13662 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 13663 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13664 {
AzureIoTClient 28:add19eb7defa 13665 /* do nothing */
AzureIoTClient 28:add19eb7defa 13666 }
AzureIoTClient 28:add19eb7defa 13667 else
AzureIoTClient 28:add19eb7defa 13668 {
AzureIoTClient 28:add19eb7defa 13669 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13670 {
AzureIoTClient 28:add19eb7defa 13671 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13672 }
AzureIoTClient 28:add19eb7defa 13673 else
AzureIoTClient 28:add19eb7defa 13674 {
AzureIoTClient 28:add19eb7defa 13675 node_properties dynamic_node_properties;
AzureIoTClient 28:add19eb7defa 13676 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 28:add19eb7defa 13677 {
AzureIoTClient 28:add19eb7defa 13678 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13679 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13680 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13681 break;
AzureIoTClient 28:add19eb7defa 13682 }
AzureIoTClient 28:add19eb7defa 13683 }
AzureIoTClient 28:add19eb7defa 13684
AzureIoTClient 28:add19eb7defa 13685 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13686 }
AzureIoTClient 28:add19eb7defa 13687 }
AzureIoTClient 28:add19eb7defa 13688 /* capabilities */
AzureIoTClient 28:add19eb7defa 13689 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 13690 {
AzureIoTClient 23:1111ee8bcba4 13691 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 13692 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13693 {
AzureIoTClient 28:add19eb7defa 13694 /* do nothing */
AzureIoTClient 28:add19eb7defa 13695 }
AzureIoTClient 28:add19eb7defa 13696 else
AzureIoTClient 28:add19eb7defa 13697 {
AzureIoTClient 28:add19eb7defa 13698 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13699 {
AzureIoTClient 28:add19eb7defa 13700 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13701 }
AzureIoTClient 28:add19eb7defa 13702 else
AzureIoTClient 28:add19eb7defa 13703 {
AzureIoTClient 28:add19eb7defa 13704 const char* capabilities = NULL;
AzureIoTClient 28:add19eb7defa 13705 AMQP_VALUE capabilities_array;
AzureIoTClient 28:add19eb7defa 13706 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 13707 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 28:add19eb7defa 13708 {
AzureIoTClient 28:add19eb7defa 13709 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13710 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13711 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13712 break;
AzureIoTClient 28:add19eb7defa 13713 }
AzureIoTClient 28:add19eb7defa 13714 }
AzureIoTClient 28:add19eb7defa 13715
AzureIoTClient 28:add19eb7defa 13716 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13717 }
AzureIoTClient 28:add19eb7defa 13718 }
AzureIoTClient 28:add19eb7defa 13719
AzureIoTClient 28:add19eb7defa 13720 target_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 13721
AzureIoTClient 28:add19eb7defa 13722 result = 0;
AzureIoTClient 28:add19eb7defa 13723 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 13724 }
AzureIoTClient 28:add19eb7defa 13725 }
AzureIoTClient 28:add19eb7defa 13726 }
AzureIoTClient 28:add19eb7defa 13727
AzureIoTClient 28:add19eb7defa 13728 return result;
Azure.IoT Build 0:6ae2f7bca550 13729 }
Azure.IoT Build 0:6ae2f7bca550 13730
Azure.IoT Build 0:6ae2f7bca550 13731 int target_get_address(TARGET_HANDLE target, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 13732 {
AzureIoTClient 28:add19eb7defa 13733 int result;
AzureIoTClient 28:add19eb7defa 13734
AzureIoTClient 28:add19eb7defa 13735 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13736 {
AzureIoTClient 28:add19eb7defa 13737 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13738 }
AzureIoTClient 28:add19eb7defa 13739 else
AzureIoTClient 28:add19eb7defa 13740 {
AzureIoTClient 28:add19eb7defa 13741 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13742 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13743 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13744 {
AzureIoTClient 23:1111ee8bcba4 13745 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13746 }
AzureIoTClient 23:1111ee8bcba4 13747 else
AzureIoTClient 23:1111ee8bcba4 13748 {
AzureIoTClient 23:1111ee8bcba4 13749 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 13750 {
AzureIoTClient 28:add19eb7defa 13751 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13752 }
AzureIoTClient 28:add19eb7defa 13753 else
AzureIoTClient 28:add19eb7defa 13754 {
AzureIoTClient 28:add19eb7defa 13755 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 13756 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13757 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13758 {
AzureIoTClient 28:add19eb7defa 13759 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13760 }
AzureIoTClient 28:add19eb7defa 13761 else
AzureIoTClient 28:add19eb7defa 13762 {
AzureIoTClient 28:add19eb7defa 13763 *address_value = item_value;
AzureIoTClient 28:add19eb7defa 13764 result = 0;
AzureIoTClient 28:add19eb7defa 13765 }
AzureIoTClient 28:add19eb7defa 13766 }
AzureIoTClient 28:add19eb7defa 13767 }
AzureIoTClient 28:add19eb7defa 13768 }
AzureIoTClient 28:add19eb7defa 13769
AzureIoTClient 28:add19eb7defa 13770 return result;
Azure.IoT Build 0:6ae2f7bca550 13771 }
Azure.IoT Build 0:6ae2f7bca550 13772
Azure.IoT Build 0:6ae2f7bca550 13773 int target_set_address(TARGET_HANDLE target, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 13774 {
AzureIoTClient 28:add19eb7defa 13775 int result;
AzureIoTClient 28:add19eb7defa 13776
AzureIoTClient 28:add19eb7defa 13777 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13778 {
AzureIoTClient 28:add19eb7defa 13779 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13780 }
AzureIoTClient 28:add19eb7defa 13781 else
AzureIoTClient 28:add19eb7defa 13782 {
AzureIoTClient 28:add19eb7defa 13783 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13784 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13785 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13786 {
AzureIoTClient 23:1111ee8bcba4 13787 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13788 }
AzureIoTClient 23:1111ee8bcba4 13789 else
AzureIoTClient 23:1111ee8bcba4 13790 {
AzureIoTClient 23:1111ee8bcba4 13791 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 13792 }
AzureIoTClient 28:add19eb7defa 13793 if (address_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13794 {
AzureIoTClient 28:add19eb7defa 13795 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13796 }
AzureIoTClient 28:add19eb7defa 13797 else
AzureIoTClient 28:add19eb7defa 13798 {
AzureIoTClient 28:add19eb7defa 13799 if (amqpvalue_set_composite_item(target_instance->composite_value, 0, address_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13800 {
AzureIoTClient 28:add19eb7defa 13801 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13802 }
AzureIoTClient 28:add19eb7defa 13803 else
AzureIoTClient 28:add19eb7defa 13804 {
AzureIoTClient 28:add19eb7defa 13805 result = 0;
AzureIoTClient 28:add19eb7defa 13806 }
AzureIoTClient 28:add19eb7defa 13807
AzureIoTClient 28:add19eb7defa 13808 amqpvalue_destroy(address_amqp_value);
AzureIoTClient 28:add19eb7defa 13809 }
AzureIoTClient 28:add19eb7defa 13810 }
AzureIoTClient 28:add19eb7defa 13811
AzureIoTClient 28:add19eb7defa 13812 return result;
Azure.IoT Build 0:6ae2f7bca550 13813 }
Azure.IoT Build 0:6ae2f7bca550 13814
Azure.IoT Build 0:6ae2f7bca550 13815 int target_get_durable(TARGET_HANDLE target, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 13816 {
AzureIoTClient 28:add19eb7defa 13817 int result;
AzureIoTClient 28:add19eb7defa 13818
AzureIoTClient 28:add19eb7defa 13819 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13820 {
AzureIoTClient 28:add19eb7defa 13821 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13822 }
AzureIoTClient 28:add19eb7defa 13823 else
AzureIoTClient 28:add19eb7defa 13824 {
AzureIoTClient 28:add19eb7defa 13825 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13826 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13827 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13828 {
AzureIoTClient 23:1111ee8bcba4 13829 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13830 }
AzureIoTClient 23:1111ee8bcba4 13831 else
AzureIoTClient 23:1111ee8bcba4 13832 {
AzureIoTClient 23:1111ee8bcba4 13833 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 13834 {
AzureIoTClient 23:1111ee8bcba4 13835 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13836 result = 0;
AzureIoTClient 23:1111ee8bcba4 13837 }
AzureIoTClient 23:1111ee8bcba4 13838 else
AzureIoTClient 23:1111ee8bcba4 13839 {
AzureIoTClient 28:add19eb7defa 13840 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 13841 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13842 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13843 {
AzureIoTClient 16:22a72cf8e416 13844 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 13845 result = 0;
AzureIoTClient 28:add19eb7defa 13846 }
AzureIoTClient 28:add19eb7defa 13847 else
AzureIoTClient 28:add19eb7defa 13848 {
AzureIoTClient 28:add19eb7defa 13849 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13850 if ((get_single_value_result = amqpvalue_get_terminus_durability(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 13851 {
AzureIoTClient 23:1111ee8bcba4 13852 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13853 {
AzureIoTClient 28:add19eb7defa 13854 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13855 }
AzureIoTClient 23:1111ee8bcba4 13856 else
AzureIoTClient 23:1111ee8bcba4 13857 {
AzureIoTClient 23:1111ee8bcba4 13858 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13859 result = 0;
AzureIoTClient 23:1111ee8bcba4 13860 }
AzureIoTClient 28:add19eb7defa 13861 }
AzureIoTClient 28:add19eb7defa 13862 else
AzureIoTClient 28:add19eb7defa 13863 {
AzureIoTClient 28:add19eb7defa 13864 result = 0;
AzureIoTClient 28:add19eb7defa 13865 }
AzureIoTClient 28:add19eb7defa 13866 }
AzureIoTClient 28:add19eb7defa 13867 }
AzureIoTClient 28:add19eb7defa 13868 }
AzureIoTClient 28:add19eb7defa 13869 }
AzureIoTClient 28:add19eb7defa 13870
AzureIoTClient 28:add19eb7defa 13871 return result;
Azure.IoT Build 0:6ae2f7bca550 13872 }
Azure.IoT Build 0:6ae2f7bca550 13873
Azure.IoT Build 0:6ae2f7bca550 13874 int target_set_durable(TARGET_HANDLE target, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 13875 {
AzureIoTClient 28:add19eb7defa 13876 int result;
AzureIoTClient 28:add19eb7defa 13877
AzureIoTClient 28:add19eb7defa 13878 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13879 {
AzureIoTClient 28:add19eb7defa 13880 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13881 }
AzureIoTClient 28:add19eb7defa 13882 else
AzureIoTClient 28:add19eb7defa 13883 {
AzureIoTClient 28:add19eb7defa 13884 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13885 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
AzureIoTClient 28:add19eb7defa 13886 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13887 {
AzureIoTClient 28:add19eb7defa 13888 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13889 }
AzureIoTClient 28:add19eb7defa 13890 else
AzureIoTClient 28:add19eb7defa 13891 {
AzureIoTClient 28:add19eb7defa 13892 if (amqpvalue_set_composite_item(target_instance->composite_value, 1, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13893 {
AzureIoTClient 28:add19eb7defa 13894 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13895 }
AzureIoTClient 28:add19eb7defa 13896 else
AzureIoTClient 28:add19eb7defa 13897 {
AzureIoTClient 28:add19eb7defa 13898 result = 0;
AzureIoTClient 28:add19eb7defa 13899 }
AzureIoTClient 28:add19eb7defa 13900
AzureIoTClient 28:add19eb7defa 13901 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 13902 }
AzureIoTClient 28:add19eb7defa 13903 }
AzureIoTClient 28:add19eb7defa 13904
AzureIoTClient 28:add19eb7defa 13905 return result;
Azure.IoT Build 0:6ae2f7bca550 13906 }
Azure.IoT Build 0:6ae2f7bca550 13907
Azure.IoT Build 0:6ae2f7bca550 13908 int target_get_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13909 {
AzureIoTClient 28:add19eb7defa 13910 int result;
AzureIoTClient 28:add19eb7defa 13911
AzureIoTClient 28:add19eb7defa 13912 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13913 {
AzureIoTClient 28:add19eb7defa 13914 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13915 }
AzureIoTClient 28:add19eb7defa 13916 else
AzureIoTClient 28:add19eb7defa 13917 {
AzureIoTClient 28:add19eb7defa 13918 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13919 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13920 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13921 {
AzureIoTClient 23:1111ee8bcba4 13922 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13923 }
AzureIoTClient 23:1111ee8bcba4 13924 else
AzureIoTClient 23:1111ee8bcba4 13925 {
AzureIoTClient 23:1111ee8bcba4 13926 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 13927 {
AzureIoTClient 23:1111ee8bcba4 13928 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13929 result = 0;
AzureIoTClient 23:1111ee8bcba4 13930 }
AzureIoTClient 23:1111ee8bcba4 13931 else
AzureIoTClient 23:1111ee8bcba4 13932 {
AzureIoTClient 28:add19eb7defa 13933 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 13934 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13935 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13936 {
AzureIoTClient 16:22a72cf8e416 13937 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 13938 result = 0;
AzureIoTClient 28:add19eb7defa 13939 }
AzureIoTClient 28:add19eb7defa 13940 else
AzureIoTClient 28:add19eb7defa 13941 {
AzureIoTClient 28:add19eb7defa 13942 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13943 if ((get_single_value_result = amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value)) != 0)
AzureIoTClient 28:add19eb7defa 13944 {
AzureIoTClient 23:1111ee8bcba4 13945 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13946 {
AzureIoTClient 28:add19eb7defa 13947 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13948 }
AzureIoTClient 23:1111ee8bcba4 13949 else
AzureIoTClient 23:1111ee8bcba4 13950 {
AzureIoTClient 23:1111ee8bcba4 13951 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13952 result = 0;
AzureIoTClient 23:1111ee8bcba4 13953 }
AzureIoTClient 28:add19eb7defa 13954 }
AzureIoTClient 28:add19eb7defa 13955 else
AzureIoTClient 28:add19eb7defa 13956 {
AzureIoTClient 28:add19eb7defa 13957 result = 0;
AzureIoTClient 28:add19eb7defa 13958 }
AzureIoTClient 28:add19eb7defa 13959 }
AzureIoTClient 28:add19eb7defa 13960 }
AzureIoTClient 28:add19eb7defa 13961 }
AzureIoTClient 28:add19eb7defa 13962 }
AzureIoTClient 28:add19eb7defa 13963
AzureIoTClient 28:add19eb7defa 13964 return result;
Azure.IoT Build 0:6ae2f7bca550 13965 }
Azure.IoT Build 0:6ae2f7bca550 13966
Azure.IoT Build 0:6ae2f7bca550 13967 int target_set_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13968 {
AzureIoTClient 28:add19eb7defa 13969 int result;
AzureIoTClient 28:add19eb7defa 13970
AzureIoTClient 28:add19eb7defa 13971 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13972 {
AzureIoTClient 28:add19eb7defa 13973 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13974 }
AzureIoTClient 28:add19eb7defa 13975 else
AzureIoTClient 28:add19eb7defa 13976 {
AzureIoTClient 28:add19eb7defa 13977 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13978 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
AzureIoTClient 28:add19eb7defa 13979 if (expiry_policy_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13980 {
AzureIoTClient 28:add19eb7defa 13981 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13982 }
AzureIoTClient 28:add19eb7defa 13983 else
AzureIoTClient 28:add19eb7defa 13984 {
AzureIoTClient 28:add19eb7defa 13985 if (amqpvalue_set_composite_item(target_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13986 {
AzureIoTClient 28:add19eb7defa 13987 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13988 }
AzureIoTClient 28:add19eb7defa 13989 else
AzureIoTClient 28:add19eb7defa 13990 {
AzureIoTClient 28:add19eb7defa 13991 result = 0;
AzureIoTClient 28:add19eb7defa 13992 }
AzureIoTClient 28:add19eb7defa 13993
AzureIoTClient 28:add19eb7defa 13994 amqpvalue_destroy(expiry_policy_amqp_value);
AzureIoTClient 28:add19eb7defa 13995 }
AzureIoTClient 28:add19eb7defa 13996 }
AzureIoTClient 28:add19eb7defa 13997
AzureIoTClient 28:add19eb7defa 13998 return result;
Azure.IoT Build 0:6ae2f7bca550 13999 }
Azure.IoT Build 0:6ae2f7bca550 14000
Azure.IoT Build 0:6ae2f7bca550 14001 int target_get_timeout(TARGET_HANDLE target, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 14002 {
AzureIoTClient 28:add19eb7defa 14003 int result;
AzureIoTClient 28:add19eb7defa 14004
AzureIoTClient 28:add19eb7defa 14005 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14006 {
AzureIoTClient 28:add19eb7defa 14007 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14008 }
AzureIoTClient 28:add19eb7defa 14009 else
AzureIoTClient 28:add19eb7defa 14010 {
AzureIoTClient 28:add19eb7defa 14011 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14012 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14013 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14014 {
AzureIoTClient 23:1111ee8bcba4 14015 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14016 }
AzureIoTClient 23:1111ee8bcba4 14017 else
AzureIoTClient 23:1111ee8bcba4 14018 {
AzureIoTClient 23:1111ee8bcba4 14019 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 14020 {
AzureIoTClient 28:add19eb7defa 14021 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 14022 result = 0;
AzureIoTClient 28:add19eb7defa 14023 }
AzureIoTClient 28:add19eb7defa 14024 else
AzureIoTClient 28:add19eb7defa 14025 {
AzureIoTClient 28:add19eb7defa 14026 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 14027 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14028 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14029 {
AzureIoTClient 28:add19eb7defa 14030 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 14031 result = 0;
AzureIoTClient 28:add19eb7defa 14032 }
AzureIoTClient 28:add19eb7defa 14033 else
AzureIoTClient 28:add19eb7defa 14034 {
AzureIoTClient 28:add19eb7defa 14035 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14036 if ((get_single_value_result = amqpvalue_get_seconds(item_value, timeout_value)) != 0)
AzureIoTClient 28:add19eb7defa 14037 {
AzureIoTClient 23:1111ee8bcba4 14038 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14039 {
AzureIoTClient 28:add19eb7defa 14040 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14041 }
AzureIoTClient 28:add19eb7defa 14042 else
AzureIoTClient 28:add19eb7defa 14043 {
AzureIoTClient 28:add19eb7defa 14044 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 14045 result = 0;
AzureIoTClient 23:1111ee8bcba4 14046 }
AzureIoTClient 28:add19eb7defa 14047 }
AzureIoTClient 28:add19eb7defa 14048 else
AzureIoTClient 28:add19eb7defa 14049 {
AzureIoTClient 28:add19eb7defa 14050 result = 0;
AzureIoTClient 28:add19eb7defa 14051 }
AzureIoTClient 28:add19eb7defa 14052 }
AzureIoTClient 28:add19eb7defa 14053 }
AzureIoTClient 28:add19eb7defa 14054 }
AzureIoTClient 28:add19eb7defa 14055 }
AzureIoTClient 28:add19eb7defa 14056
AzureIoTClient 28:add19eb7defa 14057 return result;
Azure.IoT Build 0:6ae2f7bca550 14058 }
Azure.IoT Build 0:6ae2f7bca550 14059
Azure.IoT Build 0:6ae2f7bca550 14060 int target_set_timeout(TARGET_HANDLE target, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 14061 {
AzureIoTClient 28:add19eb7defa 14062 int result;
AzureIoTClient 28:add19eb7defa 14063
AzureIoTClient 28:add19eb7defa 14064 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14065 {
AzureIoTClient 28:add19eb7defa 14066 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14067 }
AzureIoTClient 28:add19eb7defa 14068 else
AzureIoTClient 28:add19eb7defa 14069 {
AzureIoTClient 28:add19eb7defa 14070 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14071 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
AzureIoTClient 28:add19eb7defa 14072 if (timeout_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14073 {
AzureIoTClient 28:add19eb7defa 14074 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14075 }
AzureIoTClient 28:add19eb7defa 14076 else
AzureIoTClient 28:add19eb7defa 14077 {
AzureIoTClient 28:add19eb7defa 14078 if (amqpvalue_set_composite_item(target_instance->composite_value, 3, timeout_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14079 {
AzureIoTClient 28:add19eb7defa 14080 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14081 }
AzureIoTClient 28:add19eb7defa 14082 else
AzureIoTClient 28:add19eb7defa 14083 {
AzureIoTClient 28:add19eb7defa 14084 result = 0;
AzureIoTClient 28:add19eb7defa 14085 }
AzureIoTClient 28:add19eb7defa 14086
AzureIoTClient 28:add19eb7defa 14087 amqpvalue_destroy(timeout_amqp_value);
AzureIoTClient 28:add19eb7defa 14088 }
AzureIoTClient 28:add19eb7defa 14089 }
AzureIoTClient 28:add19eb7defa 14090
AzureIoTClient 28:add19eb7defa 14091 return result;
Azure.IoT Build 0:6ae2f7bca550 14092 }
Azure.IoT Build 0:6ae2f7bca550 14093
Azure.IoT Build 0:6ae2f7bca550 14094 int target_get_dynamic(TARGET_HANDLE target, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 14095 {
AzureIoTClient 28:add19eb7defa 14096 int result;
AzureIoTClient 28:add19eb7defa 14097
AzureIoTClient 28:add19eb7defa 14098 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14099 {
AzureIoTClient 28:add19eb7defa 14100 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14101 }
AzureIoTClient 28:add19eb7defa 14102 else
AzureIoTClient 28:add19eb7defa 14103 {
AzureIoTClient 28:add19eb7defa 14104 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14105 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14106 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14107 {
AzureIoTClient 23:1111ee8bcba4 14108 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14109 }
AzureIoTClient 23:1111ee8bcba4 14110 else
AzureIoTClient 23:1111ee8bcba4 14111 {
AzureIoTClient 23:1111ee8bcba4 14112 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 14113 {
AzureIoTClient 28:add19eb7defa 14114 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 14115 result = 0;
AzureIoTClient 28:add19eb7defa 14116 }
AzureIoTClient 28:add19eb7defa 14117 else
AzureIoTClient 28:add19eb7defa 14118 {
AzureIoTClient 28:add19eb7defa 14119 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 14120 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14121 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14122 {
AzureIoTClient 28:add19eb7defa 14123 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 14124 result = 0;
AzureIoTClient 28:add19eb7defa 14125 }
AzureIoTClient 28:add19eb7defa 14126 else
AzureIoTClient 28:add19eb7defa 14127 {
AzureIoTClient 28:add19eb7defa 14128 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14129 if ((get_single_value_result = amqpvalue_get_boolean(item_value, dynamic_value)) != 0)
AzureIoTClient 28:add19eb7defa 14130 {
AzureIoTClient 23:1111ee8bcba4 14131 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14132 {
AzureIoTClient 28:add19eb7defa 14133 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14134 }
AzureIoTClient 28:add19eb7defa 14135 else
AzureIoTClient 28:add19eb7defa 14136 {
AzureIoTClient 28:add19eb7defa 14137 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 14138 result = 0;
AzureIoTClient 23:1111ee8bcba4 14139 }
AzureIoTClient 28:add19eb7defa 14140 }
AzureIoTClient 28:add19eb7defa 14141 else
AzureIoTClient 28:add19eb7defa 14142 {
AzureIoTClient 28:add19eb7defa 14143 result = 0;
AzureIoTClient 28:add19eb7defa 14144 }
AzureIoTClient 28:add19eb7defa 14145 }
AzureIoTClient 28:add19eb7defa 14146 }
AzureIoTClient 28:add19eb7defa 14147 }
AzureIoTClient 28:add19eb7defa 14148 }
AzureIoTClient 28:add19eb7defa 14149
AzureIoTClient 28:add19eb7defa 14150 return result;
Azure.IoT Build 0:6ae2f7bca550 14151 }
Azure.IoT Build 0:6ae2f7bca550 14152
Azure.IoT Build 0:6ae2f7bca550 14153 int target_set_dynamic(TARGET_HANDLE target, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 14154 {
AzureIoTClient 28:add19eb7defa 14155 int result;
AzureIoTClient 28:add19eb7defa 14156
AzureIoTClient 28:add19eb7defa 14157 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14158 {
AzureIoTClient 28:add19eb7defa 14159 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14160 }
AzureIoTClient 28:add19eb7defa 14161 else
AzureIoTClient 28:add19eb7defa 14162 {
AzureIoTClient 28:add19eb7defa 14163 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14164 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
AzureIoTClient 28:add19eb7defa 14165 if (dynamic_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14166 {
AzureIoTClient 28:add19eb7defa 14167 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14168 }
AzureIoTClient 28:add19eb7defa 14169 else
AzureIoTClient 28:add19eb7defa 14170 {
AzureIoTClient 28:add19eb7defa 14171 if (amqpvalue_set_composite_item(target_instance->composite_value, 4, dynamic_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14172 {
AzureIoTClient 28:add19eb7defa 14173 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14174 }
AzureIoTClient 28:add19eb7defa 14175 else
AzureIoTClient 28:add19eb7defa 14176 {
AzureIoTClient 28:add19eb7defa 14177 result = 0;
AzureIoTClient 28:add19eb7defa 14178 }
AzureIoTClient 28:add19eb7defa 14179
AzureIoTClient 28:add19eb7defa 14180 amqpvalue_destroy(dynamic_amqp_value);
AzureIoTClient 28:add19eb7defa 14181 }
AzureIoTClient 28:add19eb7defa 14182 }
AzureIoTClient 28:add19eb7defa 14183
AzureIoTClient 28:add19eb7defa 14184 return result;
Azure.IoT Build 0:6ae2f7bca550 14185 }
Azure.IoT Build 0:6ae2f7bca550 14186
Azure.IoT Build 0:6ae2f7bca550 14187 int target_get_dynamic_node_properties(TARGET_HANDLE target, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 14188 {
AzureIoTClient 28:add19eb7defa 14189 int result;
AzureIoTClient 28:add19eb7defa 14190
AzureIoTClient 28:add19eb7defa 14191 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14192 {
AzureIoTClient 28:add19eb7defa 14193 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14194 }
AzureIoTClient 28:add19eb7defa 14195 else
AzureIoTClient 28:add19eb7defa 14196 {
AzureIoTClient 28:add19eb7defa 14197 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14198 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14199 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14200 {
AzureIoTClient 23:1111ee8bcba4 14201 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14202 }
AzureIoTClient 23:1111ee8bcba4 14203 else
AzureIoTClient 23:1111ee8bcba4 14204 {
AzureIoTClient 23:1111ee8bcba4 14205 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 14206 {
AzureIoTClient 28:add19eb7defa 14207 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14208 }
AzureIoTClient 28:add19eb7defa 14209 else
AzureIoTClient 28:add19eb7defa 14210 {
AzureIoTClient 28:add19eb7defa 14211 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 14212 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14213 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14214 {
AzureIoTClient 28:add19eb7defa 14215 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14216 }
AzureIoTClient 28:add19eb7defa 14217 else
AzureIoTClient 28:add19eb7defa 14218 {
AzureIoTClient 28:add19eb7defa 14219 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14220 if ((get_single_value_result = amqpvalue_get_node_properties(item_value, dynamic_node_properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 14221 {
AzureIoTClient 28:add19eb7defa 14222 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14223 }
AzureIoTClient 28:add19eb7defa 14224 else
AzureIoTClient 28:add19eb7defa 14225 {
AzureIoTClient 28:add19eb7defa 14226 result = 0;
AzureIoTClient 28:add19eb7defa 14227 }
AzureIoTClient 28:add19eb7defa 14228 }
AzureIoTClient 28:add19eb7defa 14229 }
AzureIoTClient 28:add19eb7defa 14230 }
AzureIoTClient 28:add19eb7defa 14231 }
AzureIoTClient 28:add19eb7defa 14232
AzureIoTClient 28:add19eb7defa 14233 return result;
Azure.IoT Build 0:6ae2f7bca550 14234 }
Azure.IoT Build 0:6ae2f7bca550 14235
Azure.IoT Build 0:6ae2f7bca550 14236 int target_set_dynamic_node_properties(TARGET_HANDLE target, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 14237 {
AzureIoTClient 28:add19eb7defa 14238 int result;
AzureIoTClient 28:add19eb7defa 14239
AzureIoTClient 28:add19eb7defa 14240 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14241 {
AzureIoTClient 28:add19eb7defa 14242 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14243 }
AzureIoTClient 28:add19eb7defa 14244 else
AzureIoTClient 28:add19eb7defa 14245 {
AzureIoTClient 28:add19eb7defa 14246 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14247 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
AzureIoTClient 28:add19eb7defa 14248 if (dynamic_node_properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14249 {
AzureIoTClient 28:add19eb7defa 14250 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14251 }
AzureIoTClient 28:add19eb7defa 14252 else
AzureIoTClient 28:add19eb7defa 14253 {
AzureIoTClient 28:add19eb7defa 14254 if (amqpvalue_set_composite_item(target_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14255 {
AzureIoTClient 28:add19eb7defa 14256 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14257 }
AzureIoTClient 28:add19eb7defa 14258 else
AzureIoTClient 28:add19eb7defa 14259 {
AzureIoTClient 28:add19eb7defa 14260 result = 0;
AzureIoTClient 28:add19eb7defa 14261 }
AzureIoTClient 28:add19eb7defa 14262
AzureIoTClient 28:add19eb7defa 14263 amqpvalue_destroy(dynamic_node_properties_amqp_value);
AzureIoTClient 28:add19eb7defa 14264 }
AzureIoTClient 28:add19eb7defa 14265 }
AzureIoTClient 28:add19eb7defa 14266
AzureIoTClient 28:add19eb7defa 14267 return result;
Azure.IoT Build 0:6ae2f7bca550 14268 }
Azure.IoT Build 0:6ae2f7bca550 14269
Azure.IoT Build 0:6ae2f7bca550 14270 int target_get_capabilities(TARGET_HANDLE target, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 14271 {
AzureIoTClient 28:add19eb7defa 14272 int result;
AzureIoTClient 28:add19eb7defa 14273
AzureIoTClient 28:add19eb7defa 14274 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14275 {
AzureIoTClient 28:add19eb7defa 14276 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14277 }
AzureIoTClient 28:add19eb7defa 14278 else
AzureIoTClient 28:add19eb7defa 14279 {
AzureIoTClient 28:add19eb7defa 14280 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14281 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14282 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14283 {
AzureIoTClient 23:1111ee8bcba4 14284 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14285 }
AzureIoTClient 23:1111ee8bcba4 14286 else
AzureIoTClient 23:1111ee8bcba4 14287 {
AzureIoTClient 23:1111ee8bcba4 14288 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 14289 {
AzureIoTClient 28:add19eb7defa 14290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14291 }
AzureIoTClient 28:add19eb7defa 14292 else
AzureIoTClient 28:add19eb7defa 14293 {
AzureIoTClient 28:add19eb7defa 14294 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 14295 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14296 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14297 {
AzureIoTClient 28:add19eb7defa 14298 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14299 }
AzureIoTClient 28:add19eb7defa 14300 else
AzureIoTClient 28:add19eb7defa 14301 {
AzureIoTClient 28:add19eb7defa 14302 const char* capabilities_single_value;
AzureIoTClient 28:add19eb7defa 14303 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14304 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 14305 {
AzureIoTClient 28:add19eb7defa 14306 get_single_value_result = amqpvalue_get_symbol(item_value, &capabilities_single_value);
AzureIoTClient 28:add19eb7defa 14307 }
AzureIoTClient 28:add19eb7defa 14308 else
AzureIoTClient 28:add19eb7defa 14309 {
AzureIoTClient 28:add19eb7defa 14310 (void)memset((void*)&capabilities_single_value, 0, sizeof(capabilities_single_value));
AzureIoTClient 28:add19eb7defa 14311 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 14312 }
AzureIoTClient 28:add19eb7defa 14313
AzureIoTClient 28:add19eb7defa 14314 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 14315 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 14316 {
AzureIoTClient 28:add19eb7defa 14317 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14318 }
AzureIoTClient 28:add19eb7defa 14319 else
AzureIoTClient 28:add19eb7defa 14320 {
AzureIoTClient 28:add19eb7defa 14321 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 14322 {
AzureIoTClient 28:add19eb7defa 14323 *capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 14324 if (*capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 14325 {
AzureIoTClient 28:add19eb7defa 14326 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14327 }
AzureIoTClient 28:add19eb7defa 14328 else
AzureIoTClient 28:add19eb7defa 14329 {
AzureIoTClient 28:add19eb7defa 14330 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(capabilities_single_value);
AzureIoTClient 28:add19eb7defa 14331 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14332 {
AzureIoTClient 28:add19eb7defa 14333 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14334 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14335 }
AzureIoTClient 28:add19eb7defa 14336 else
AzureIoTClient 28:add19eb7defa 14337 {
AzureIoTClient 28:add19eb7defa 14338 if (amqpvalue_add_array_item(*capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14339 {
AzureIoTClient 28:add19eb7defa 14340 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14341 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 14342 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14343 }
AzureIoTClient 28:add19eb7defa 14344 else
AzureIoTClient 28:add19eb7defa 14345 {
AzureIoTClient 29:4a11413cf217 14346 if (amqpvalue_set_composite_item(target_instance->composite_value, 6, *capabilities_value) != 0)
AzureIoTClient 29:4a11413cf217 14347 {
AzureIoTClient 29:4a11413cf217 14348 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 29:4a11413cf217 14349 result = __FAILURE__;
AzureIoTClient 29:4a11413cf217 14350 }
AzureIoTClient 29:4a11413cf217 14351 else
AzureIoTClient 29:4a11413cf217 14352 {
AzureIoTClient 29:4a11413cf217 14353 result = 0;
AzureIoTClient 29:4a11413cf217 14354 }
AzureIoTClient 28:add19eb7defa 14355 }
AzureIoTClient 29:4a11413cf217 14356
AzureIoTClient 29:4a11413cf217 14357 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 29:4a11413cf217 14358 }
AzureIoTClient 29:4a11413cf217 14359 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14360 }
AzureIoTClient 28:add19eb7defa 14361 }
AzureIoTClient 28:add19eb7defa 14362 else
AzureIoTClient 28:add19eb7defa 14363 {
AzureIoTClient 28:add19eb7defa 14364 result = 0;
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
AzureIoTClient 28:add19eb7defa 14372 return result;
Azure.IoT Build 0:6ae2f7bca550 14373 }
Azure.IoT Build 0:6ae2f7bca550 14374
Azure.IoT Build 0:6ae2f7bca550 14375 int target_set_capabilities(TARGET_HANDLE target, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 14376 {
AzureIoTClient 28:add19eb7defa 14377 int result;
AzureIoTClient 28:add19eb7defa 14378
AzureIoTClient 28:add19eb7defa 14379 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14380 {
AzureIoTClient 28:add19eb7defa 14381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14382 }
AzureIoTClient 28:add19eb7defa 14383 else
AzureIoTClient 28:add19eb7defa 14384 {
AzureIoTClient 28:add19eb7defa 14385 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14386 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 14387 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14388 {
AzureIoTClient 23:1111ee8bcba4 14389 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 14390 }
AzureIoTClient 23:1111ee8bcba4 14391 else
AzureIoTClient 23:1111ee8bcba4 14392 {
AzureIoTClient 23:1111ee8bcba4 14393 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 14394 }
AzureIoTClient 28:add19eb7defa 14395 if (capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14396 {
AzureIoTClient 28:add19eb7defa 14397 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14398 }
AzureIoTClient 28:add19eb7defa 14399 else
AzureIoTClient 28:add19eb7defa 14400 {
AzureIoTClient 28:add19eb7defa 14401 if (amqpvalue_set_composite_item(target_instance->composite_value, 6, capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14402 {
AzureIoTClient 28:add19eb7defa 14403 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14404 }
AzureIoTClient 28:add19eb7defa 14405 else
AzureIoTClient 28:add19eb7defa 14406 {
AzureIoTClient 28:add19eb7defa 14407 result = 0;
AzureIoTClient 28:add19eb7defa 14408 }
AzureIoTClient 28:add19eb7defa 14409
AzureIoTClient 28:add19eb7defa 14410 amqpvalue_destroy(capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 14411 }
AzureIoTClient 28:add19eb7defa 14412 }
AzureIoTClient 28:add19eb7defa 14413
AzureIoTClient 28:add19eb7defa 14414 return result;
Azure.IoT Build 0:6ae2f7bca550 14415 }
Azure.IoT Build 0:6ae2f7bca550 14416
Azure.IoT Build 0:6ae2f7bca550 14417
Azure.IoT Build 0:6ae2f7bca550 14418 /* annotations */
Azure.IoT Build 0:6ae2f7bca550 14419
Azure.IoT Build 0:6ae2f7bca550 14420 AMQP_VALUE amqpvalue_create_annotations(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 14421 {
AzureIoTClient 28:add19eb7defa 14422 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 14423 }
Azure.IoT Build 0:6ae2f7bca550 14424
Azure.IoT Build 0:6ae2f7bca550 14425 /* message-id-ulong */
Azure.IoT Build 0:6ae2f7bca550 14426
Azure.IoT Build 0:6ae2f7bca550 14427 AMQP_VALUE amqpvalue_create_message_id_ulong(message_id_ulong value)
Azure.IoT Build 0:6ae2f7bca550 14428 {
AzureIoTClient 28:add19eb7defa 14429 return amqpvalue_create_ulong(value);
Azure.IoT Build 0:6ae2f7bca550 14430 }
Azure.IoT Build 0:6ae2f7bca550 14431
Azure.IoT Build 0:6ae2f7bca550 14432 /* message-id-uuid */
Azure.IoT Build 0:6ae2f7bca550 14433
Azure.IoT Build 0:6ae2f7bca550 14434 AMQP_VALUE amqpvalue_create_message_id_uuid(message_id_uuid value)
Azure.IoT Build 0:6ae2f7bca550 14435 {
AzureIoTClient 28:add19eb7defa 14436 return amqpvalue_create_uuid(value);
Azure.IoT Build 0:6ae2f7bca550 14437 }
Azure.IoT Build 0:6ae2f7bca550 14438
Azure.IoT Build 0:6ae2f7bca550 14439 /* message-id-binary */
Azure.IoT Build 0:6ae2f7bca550 14440
Azure.IoT Build 0:6ae2f7bca550 14441 AMQP_VALUE amqpvalue_create_message_id_binary(message_id_binary value)
Azure.IoT Build 0:6ae2f7bca550 14442 {
AzureIoTClient 28:add19eb7defa 14443 return amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 14444 }
Azure.IoT Build 0:6ae2f7bca550 14445
Azure.IoT Build 0:6ae2f7bca550 14446 /* message-id-string */
Azure.IoT Build 0:6ae2f7bca550 14447
Azure.IoT Build 0:6ae2f7bca550 14448 AMQP_VALUE amqpvalue_create_message_id_string(message_id_string value)
Azure.IoT Build 0:6ae2f7bca550 14449 {
AzureIoTClient 28:add19eb7defa 14450 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 14451 }
Azure.IoT Build 0:6ae2f7bca550 14452
Azure.IoT Build 0:6ae2f7bca550 14453 /* address-string */
Azure.IoT Build 0:6ae2f7bca550 14454
Azure.IoT Build 0:6ae2f7bca550 14455 AMQP_VALUE amqpvalue_create_address_string(address_string value)
Azure.IoT Build 0:6ae2f7bca550 14456 {
AzureIoTClient 28:add19eb7defa 14457 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 14458 }
Azure.IoT Build 0:6ae2f7bca550 14459
Azure.IoT Build 0:6ae2f7bca550 14460 /* header */
Azure.IoT Build 0:6ae2f7bca550 14461
Azure.IoT Build 0:6ae2f7bca550 14462 typedef struct HEADER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 14463 {
AzureIoTClient 28:add19eb7defa 14464 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 14465 } HEADER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 14466
Azure.IoT Build 0:6ae2f7bca550 14467 static HEADER_HANDLE header_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 14468 {
AzureIoTClient 28:add19eb7defa 14469 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14470 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14471 {
AzureIoTClient 28:add19eb7defa 14472 header_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 14473 }
AzureIoTClient 28:add19eb7defa 14474
AzureIoTClient 28:add19eb7defa 14475 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14476 }
Azure.IoT Build 0:6ae2f7bca550 14477
Azure.IoT Build 0:6ae2f7bca550 14478 HEADER_HANDLE header_create(void)
Azure.IoT Build 0:6ae2f7bca550 14479 {
AzureIoTClient 28:add19eb7defa 14480 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14481 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14482 {
AzureIoTClient 28:add19eb7defa 14483 header_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(112);
AzureIoTClient 28:add19eb7defa 14484 if (header_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 14485 {
AzureIoTClient 28:add19eb7defa 14486 free(header_instance);
AzureIoTClient 28:add19eb7defa 14487 header_instance = NULL;
AzureIoTClient 28:add19eb7defa 14488 }
AzureIoTClient 28:add19eb7defa 14489 }
AzureIoTClient 28:add19eb7defa 14490
AzureIoTClient 28:add19eb7defa 14491 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14492 }
Azure.IoT Build 0:6ae2f7bca550 14493
Azure.IoT Build 0:6ae2f7bca550 14494 HEADER_HANDLE header_clone(HEADER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 14495 {
AzureIoTClient 28:add19eb7defa 14496 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14497 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14498 {
AzureIoTClient 28:add19eb7defa 14499 header_instance->composite_value = amqpvalue_clone(((HEADER_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 14500 if (header_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 14501 {
AzureIoTClient 28:add19eb7defa 14502 free(header_instance);
AzureIoTClient 28:add19eb7defa 14503 header_instance = NULL;
AzureIoTClient 28:add19eb7defa 14504 }
AzureIoTClient 28:add19eb7defa 14505 }
AzureIoTClient 28:add19eb7defa 14506
AzureIoTClient 28:add19eb7defa 14507 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14508 }
Azure.IoT Build 0:6ae2f7bca550 14509
Azure.IoT Build 0:6ae2f7bca550 14510 void header_destroy(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 14511 {
AzureIoTClient 28:add19eb7defa 14512 if (header != NULL)
AzureIoTClient 28:add19eb7defa 14513 {
AzureIoTClient 28:add19eb7defa 14514 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14515 amqpvalue_destroy(header_instance->composite_value);
AzureIoTClient 28:add19eb7defa 14516 free(header_instance);
AzureIoTClient 28:add19eb7defa 14517 }
Azure.IoT Build 0:6ae2f7bca550 14518 }
Azure.IoT Build 0:6ae2f7bca550 14519
Azure.IoT Build 0:6ae2f7bca550 14520 AMQP_VALUE amqpvalue_create_header(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 14521 {
AzureIoTClient 28:add19eb7defa 14522 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 14523
AzureIoTClient 28:add19eb7defa 14524 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14525 {
AzureIoTClient 28:add19eb7defa 14526 result = NULL;
AzureIoTClient 28:add19eb7defa 14527 }
AzureIoTClient 28:add19eb7defa 14528 else
AzureIoTClient 28:add19eb7defa 14529 {
AzureIoTClient 28:add19eb7defa 14530 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14531 result = amqpvalue_clone(header_instance->composite_value);
AzureIoTClient 28:add19eb7defa 14532 }
AzureIoTClient 28:add19eb7defa 14533
AzureIoTClient 28:add19eb7defa 14534 return result;
Azure.IoT Build 0:6ae2f7bca550 14535 }
Azure.IoT Build 0:6ae2f7bca550 14536
Azure.IoT Build 0:6ae2f7bca550 14537 bool is_header_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14538 {
AzureIoTClient 28:add19eb7defa 14539 bool result;
AzureIoTClient 28:add19eb7defa 14540
AzureIoTClient 28:add19eb7defa 14541 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 14542 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 14543 (descriptor_ulong == 112))
AzureIoTClient 28:add19eb7defa 14544 {
AzureIoTClient 28:add19eb7defa 14545 result = true;
AzureIoTClient 28:add19eb7defa 14546 }
AzureIoTClient 28:add19eb7defa 14547 else
AzureIoTClient 28:add19eb7defa 14548 {
AzureIoTClient 28:add19eb7defa 14549 result = false;
AzureIoTClient 28:add19eb7defa 14550 }
AzureIoTClient 28:add19eb7defa 14551
AzureIoTClient 28:add19eb7defa 14552 return result;
Azure.IoT Build 0:6ae2f7bca550 14553 }
Azure.IoT Build 0:6ae2f7bca550 14554
Azure.IoT Build 0:6ae2f7bca550 14555
Azure.IoT Build 0:6ae2f7bca550 14556 int amqpvalue_get_header(AMQP_VALUE value, HEADER_HANDLE* header_handle)
Azure.IoT Build 0:6ae2f7bca550 14557 {
AzureIoTClient 28:add19eb7defa 14558 int result;
AzureIoTClient 28:add19eb7defa 14559 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header_create_internal();
AzureIoTClient 28:add19eb7defa 14560 *header_handle = header_instance;
AzureIoTClient 28:add19eb7defa 14561 if (*header_handle == NULL)
AzureIoTClient 28:add19eb7defa 14562 {
AzureIoTClient 28:add19eb7defa 14563 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14564 }
AzureIoTClient 28:add19eb7defa 14565 else
AzureIoTClient 28:add19eb7defa 14566 {
AzureIoTClient 28:add19eb7defa 14567 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 14568 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 14569 {
AzureIoTClient 28:add19eb7defa 14570 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14571 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14572 }
AzureIoTClient 28:add19eb7defa 14573 else
AzureIoTClient 28:add19eb7defa 14574 {
AzureIoTClient 23:1111ee8bcba4 14575 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 14576 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14577 {
AzureIoTClient 23:1111ee8bcba4 14578 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14579 }
AzureIoTClient 23:1111ee8bcba4 14580 else
AzureIoTClient 23:1111ee8bcba4 14581 {
AzureIoTClient 28:add19eb7defa 14582 do
AzureIoTClient 28:add19eb7defa 14583 {
AzureIoTClient 28:add19eb7defa 14584 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 14585 /* durable */
AzureIoTClient 28:add19eb7defa 14586 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 14587 {
AzureIoTClient 23:1111ee8bcba4 14588 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 14589 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14590 {
AzureIoTClient 28:add19eb7defa 14591 /* do nothing */
AzureIoTClient 28:add19eb7defa 14592 }
AzureIoTClient 28:add19eb7defa 14593 else
AzureIoTClient 28:add19eb7defa 14594 {
AzureIoTClient 28:add19eb7defa 14595 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14596 {
AzureIoTClient 28:add19eb7defa 14597 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14598 }
AzureIoTClient 28:add19eb7defa 14599 else
AzureIoTClient 28:add19eb7defa 14600 {
AzureIoTClient 28:add19eb7defa 14601 bool durable;
AzureIoTClient 28:add19eb7defa 14602 if (amqpvalue_get_boolean(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 14603 {
AzureIoTClient 28:add19eb7defa 14604 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14605 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14606 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14607 break;
AzureIoTClient 28:add19eb7defa 14608 }
AzureIoTClient 28:add19eb7defa 14609 }
AzureIoTClient 28:add19eb7defa 14610
AzureIoTClient 28:add19eb7defa 14611 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14612 }
AzureIoTClient 28:add19eb7defa 14613 }
AzureIoTClient 28:add19eb7defa 14614 /* priority */
AzureIoTClient 28:add19eb7defa 14615 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 14616 {
AzureIoTClient 23:1111ee8bcba4 14617 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 14618 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14619 {
AzureIoTClient 28:add19eb7defa 14620 /* do nothing */
AzureIoTClient 28:add19eb7defa 14621 }
AzureIoTClient 28:add19eb7defa 14622 else
AzureIoTClient 28:add19eb7defa 14623 {
AzureIoTClient 28:add19eb7defa 14624 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14625 {
AzureIoTClient 28:add19eb7defa 14626 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14627 }
AzureIoTClient 28:add19eb7defa 14628 else
AzureIoTClient 28:add19eb7defa 14629 {
AzureIoTClient 28:add19eb7defa 14630 uint8_t priority;
AzureIoTClient 28:add19eb7defa 14631 if (amqpvalue_get_ubyte(item_value, &priority) != 0)
AzureIoTClient 28:add19eb7defa 14632 {
AzureIoTClient 28:add19eb7defa 14633 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14634 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14635 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14636 break;
AzureIoTClient 28:add19eb7defa 14637 }
AzureIoTClient 28:add19eb7defa 14638 }
AzureIoTClient 28:add19eb7defa 14639
AzureIoTClient 28:add19eb7defa 14640 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14641 }
AzureIoTClient 28:add19eb7defa 14642 }
AzureIoTClient 28:add19eb7defa 14643 /* ttl */
AzureIoTClient 28:add19eb7defa 14644 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 14645 {
AzureIoTClient 23:1111ee8bcba4 14646 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 14647 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14648 {
AzureIoTClient 28:add19eb7defa 14649 /* do nothing */
AzureIoTClient 28:add19eb7defa 14650 }
AzureIoTClient 28:add19eb7defa 14651 else
AzureIoTClient 28:add19eb7defa 14652 {
AzureIoTClient 28:add19eb7defa 14653 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14654 {
AzureIoTClient 28:add19eb7defa 14655 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14656 }
AzureIoTClient 28:add19eb7defa 14657 else
AzureIoTClient 28:add19eb7defa 14658 {
AzureIoTClient 28:add19eb7defa 14659 milliseconds ttl;
AzureIoTClient 28:add19eb7defa 14660 if (amqpvalue_get_milliseconds(item_value, &ttl) != 0)
AzureIoTClient 28:add19eb7defa 14661 {
AzureIoTClient 28:add19eb7defa 14662 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14663 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14664 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14665 break;
AzureIoTClient 28:add19eb7defa 14666 }
AzureIoTClient 28:add19eb7defa 14667 }
AzureIoTClient 28:add19eb7defa 14668
AzureIoTClient 28:add19eb7defa 14669 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14670 }
AzureIoTClient 28:add19eb7defa 14671 }
AzureIoTClient 28:add19eb7defa 14672 /* first-acquirer */
AzureIoTClient 28:add19eb7defa 14673 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 14674 {
AzureIoTClient 23:1111ee8bcba4 14675 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 14676 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14677 {
AzureIoTClient 28:add19eb7defa 14678 /* do nothing */
AzureIoTClient 28:add19eb7defa 14679 }
AzureIoTClient 28:add19eb7defa 14680 else
AzureIoTClient 28:add19eb7defa 14681 {
AzureIoTClient 28:add19eb7defa 14682 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14683 {
AzureIoTClient 28:add19eb7defa 14684 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14685 }
AzureIoTClient 28:add19eb7defa 14686 else
AzureIoTClient 28:add19eb7defa 14687 {
AzureIoTClient 28:add19eb7defa 14688 bool first_acquirer;
AzureIoTClient 28:add19eb7defa 14689 if (amqpvalue_get_boolean(item_value, &first_acquirer) != 0)
AzureIoTClient 28:add19eb7defa 14690 {
AzureIoTClient 28:add19eb7defa 14691 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14692 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14693 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14694 break;
AzureIoTClient 28:add19eb7defa 14695 }
AzureIoTClient 28:add19eb7defa 14696 }
AzureIoTClient 28:add19eb7defa 14697
AzureIoTClient 28:add19eb7defa 14698 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14699 }
AzureIoTClient 28:add19eb7defa 14700 }
AzureIoTClient 28:add19eb7defa 14701 /* delivery-count */
AzureIoTClient 28:add19eb7defa 14702 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 14703 {
AzureIoTClient 23:1111ee8bcba4 14704 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 14705 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14706 {
AzureIoTClient 28:add19eb7defa 14707 /* do nothing */
AzureIoTClient 28:add19eb7defa 14708 }
AzureIoTClient 28:add19eb7defa 14709 else
AzureIoTClient 28:add19eb7defa 14710 {
AzureIoTClient 28:add19eb7defa 14711 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14712 {
AzureIoTClient 28:add19eb7defa 14713 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14714 }
AzureIoTClient 28:add19eb7defa 14715 else
AzureIoTClient 28:add19eb7defa 14716 {
AzureIoTClient 28:add19eb7defa 14717 uint32_t delivery_count;
AzureIoTClient 28:add19eb7defa 14718 if (amqpvalue_get_uint(item_value, &delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 14719 {
AzureIoTClient 28:add19eb7defa 14720 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14721 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14722 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14723 break;
AzureIoTClient 28:add19eb7defa 14724 }
AzureIoTClient 28:add19eb7defa 14725 }
AzureIoTClient 28:add19eb7defa 14726
AzureIoTClient 28:add19eb7defa 14727 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14728 }
AzureIoTClient 28:add19eb7defa 14729 }
AzureIoTClient 28:add19eb7defa 14730
AzureIoTClient 28:add19eb7defa 14731 header_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 14732
AzureIoTClient 28:add19eb7defa 14733 result = 0;
AzureIoTClient 28:add19eb7defa 14734 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 14735 }
AzureIoTClient 28:add19eb7defa 14736 }
AzureIoTClient 28:add19eb7defa 14737 }
AzureIoTClient 28:add19eb7defa 14738
AzureIoTClient 28:add19eb7defa 14739 return result;
Azure.IoT Build 0:6ae2f7bca550 14740 }
Azure.IoT Build 0:6ae2f7bca550 14741
Azure.IoT Build 0:6ae2f7bca550 14742 int header_get_durable(HEADER_HANDLE header, bool* durable_value)
Azure.IoT Build 0:6ae2f7bca550 14743 {
AzureIoTClient 28:add19eb7defa 14744 int result;
AzureIoTClient 28:add19eb7defa 14745
AzureIoTClient 28:add19eb7defa 14746 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14747 {
AzureIoTClient 28:add19eb7defa 14748 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14749 }
AzureIoTClient 28:add19eb7defa 14750 else
AzureIoTClient 28:add19eb7defa 14751 {
AzureIoTClient 28:add19eb7defa 14752 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14753 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14754 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14755 {
AzureIoTClient 23:1111ee8bcba4 14756 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14757 }
AzureIoTClient 23:1111ee8bcba4 14758 else
AzureIoTClient 23:1111ee8bcba4 14759 {
AzureIoTClient 23:1111ee8bcba4 14760 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 14761 {
AzureIoTClient 28:add19eb7defa 14762 *durable_value = false;
AzureIoTClient 28:add19eb7defa 14763 result = 0;
AzureIoTClient 28:add19eb7defa 14764 }
AzureIoTClient 28:add19eb7defa 14765 else
AzureIoTClient 28:add19eb7defa 14766 {
AzureIoTClient 28:add19eb7defa 14767 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 14768 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14769 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14770 {
AzureIoTClient 28:add19eb7defa 14771 *durable_value = false;
AzureIoTClient 28:add19eb7defa 14772 result = 0;
AzureIoTClient 28:add19eb7defa 14773 }
AzureIoTClient 28:add19eb7defa 14774 else
AzureIoTClient 28:add19eb7defa 14775 {
AzureIoTClient 28:add19eb7defa 14776 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14777 if ((get_single_value_result = amqpvalue_get_boolean(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 14778 {
AzureIoTClient 23:1111ee8bcba4 14779 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14780 {
AzureIoTClient 28:add19eb7defa 14781 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14782 }
AzureIoTClient 28:add19eb7defa 14783 else
AzureIoTClient 28:add19eb7defa 14784 {
AzureIoTClient 28:add19eb7defa 14785 *durable_value = false;
AzureIoTClient 23:1111ee8bcba4 14786 result = 0;
AzureIoTClient 23:1111ee8bcba4 14787 }
AzureIoTClient 28:add19eb7defa 14788 }
AzureIoTClient 28:add19eb7defa 14789 else
AzureIoTClient 28:add19eb7defa 14790 {
AzureIoTClient 28:add19eb7defa 14791 result = 0;
AzureIoTClient 28:add19eb7defa 14792 }
AzureIoTClient 28:add19eb7defa 14793 }
AzureIoTClient 28:add19eb7defa 14794 }
AzureIoTClient 28:add19eb7defa 14795 }
AzureIoTClient 28:add19eb7defa 14796 }
AzureIoTClient 28:add19eb7defa 14797
AzureIoTClient 28:add19eb7defa 14798 return result;
Azure.IoT Build 0:6ae2f7bca550 14799 }
Azure.IoT Build 0:6ae2f7bca550 14800
Azure.IoT Build 0:6ae2f7bca550 14801 int header_set_durable(HEADER_HANDLE header, bool durable_value)
Azure.IoT Build 0:6ae2f7bca550 14802 {
AzureIoTClient 28:add19eb7defa 14803 int result;
AzureIoTClient 28:add19eb7defa 14804
AzureIoTClient 28:add19eb7defa 14805 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14806 {
AzureIoTClient 28:add19eb7defa 14807 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14808 }
AzureIoTClient 28:add19eb7defa 14809 else
AzureIoTClient 28:add19eb7defa 14810 {
AzureIoTClient 28:add19eb7defa 14811 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14812 AMQP_VALUE durable_amqp_value = amqpvalue_create_boolean(durable_value);
AzureIoTClient 28:add19eb7defa 14813 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14814 {
AzureIoTClient 28:add19eb7defa 14815 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14816 }
AzureIoTClient 28:add19eb7defa 14817 else
AzureIoTClient 28:add19eb7defa 14818 {
AzureIoTClient 28:add19eb7defa 14819 if (amqpvalue_set_composite_item(header_instance->composite_value, 0, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14820 {
AzureIoTClient 28:add19eb7defa 14821 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14822 }
AzureIoTClient 28:add19eb7defa 14823 else
AzureIoTClient 28:add19eb7defa 14824 {
AzureIoTClient 28:add19eb7defa 14825 result = 0;
AzureIoTClient 28:add19eb7defa 14826 }
AzureIoTClient 28:add19eb7defa 14827
AzureIoTClient 28:add19eb7defa 14828 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 14829 }
AzureIoTClient 28:add19eb7defa 14830 }
AzureIoTClient 28:add19eb7defa 14831
AzureIoTClient 28:add19eb7defa 14832 return result;
Azure.IoT Build 0:6ae2f7bca550 14833 }
Azure.IoT Build 0:6ae2f7bca550 14834
Azure.IoT Build 0:6ae2f7bca550 14835 int header_get_priority(HEADER_HANDLE header, uint8_t* priority_value)
Azure.IoT Build 0:6ae2f7bca550 14836 {
AzureIoTClient 28:add19eb7defa 14837 int result;
AzureIoTClient 28:add19eb7defa 14838
AzureIoTClient 28:add19eb7defa 14839 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14840 {
AzureIoTClient 28:add19eb7defa 14841 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14842 }
AzureIoTClient 28:add19eb7defa 14843 else
AzureIoTClient 28:add19eb7defa 14844 {
AzureIoTClient 28:add19eb7defa 14845 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14846 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14847 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14848 {
AzureIoTClient 23:1111ee8bcba4 14849 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14850 }
AzureIoTClient 23:1111ee8bcba4 14851 else
AzureIoTClient 23:1111ee8bcba4 14852 {
AzureIoTClient 23:1111ee8bcba4 14853 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 14854 {
AzureIoTClient 28:add19eb7defa 14855 *priority_value = 4;
AzureIoTClient 28:add19eb7defa 14856 result = 0;
AzureIoTClient 28:add19eb7defa 14857 }
AzureIoTClient 28:add19eb7defa 14858 else
AzureIoTClient 28:add19eb7defa 14859 {
AzureIoTClient 28:add19eb7defa 14860 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 14861 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14862 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14863 {
AzureIoTClient 28:add19eb7defa 14864 *priority_value = 4;
AzureIoTClient 28:add19eb7defa 14865 result = 0;
AzureIoTClient 28:add19eb7defa 14866 }
AzureIoTClient 28:add19eb7defa 14867 else
AzureIoTClient 28:add19eb7defa 14868 {
AzureIoTClient 28:add19eb7defa 14869 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14870 if ((get_single_value_result = amqpvalue_get_ubyte(item_value, priority_value)) != 0)
AzureIoTClient 28:add19eb7defa 14871 {
AzureIoTClient 23:1111ee8bcba4 14872 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14873 {
AzureIoTClient 28:add19eb7defa 14874 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14875 }
AzureIoTClient 28:add19eb7defa 14876 else
AzureIoTClient 28:add19eb7defa 14877 {
AzureIoTClient 28:add19eb7defa 14878 *priority_value = 4;
AzureIoTClient 23:1111ee8bcba4 14879 result = 0;
AzureIoTClient 23:1111ee8bcba4 14880 }
AzureIoTClient 28:add19eb7defa 14881 }
AzureIoTClient 28:add19eb7defa 14882 else
AzureIoTClient 28:add19eb7defa 14883 {
AzureIoTClient 28:add19eb7defa 14884 result = 0;
AzureIoTClient 28:add19eb7defa 14885 }
AzureIoTClient 28:add19eb7defa 14886 }
AzureIoTClient 28:add19eb7defa 14887 }
AzureIoTClient 28:add19eb7defa 14888 }
AzureIoTClient 28:add19eb7defa 14889 }
AzureIoTClient 28:add19eb7defa 14890
AzureIoTClient 28:add19eb7defa 14891 return result;
Azure.IoT Build 0:6ae2f7bca550 14892 }
Azure.IoT Build 0:6ae2f7bca550 14893
Azure.IoT Build 0:6ae2f7bca550 14894 int header_set_priority(HEADER_HANDLE header, uint8_t priority_value)
Azure.IoT Build 0:6ae2f7bca550 14895 {
AzureIoTClient 28:add19eb7defa 14896 int result;
AzureIoTClient 28:add19eb7defa 14897
AzureIoTClient 28:add19eb7defa 14898 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14899 {
AzureIoTClient 28:add19eb7defa 14900 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14901 }
AzureIoTClient 28:add19eb7defa 14902 else
AzureIoTClient 28:add19eb7defa 14903 {
AzureIoTClient 28:add19eb7defa 14904 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14905 AMQP_VALUE priority_amqp_value = amqpvalue_create_ubyte(priority_value);
AzureIoTClient 28:add19eb7defa 14906 if (priority_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14907 {
AzureIoTClient 28:add19eb7defa 14908 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14909 }
AzureIoTClient 28:add19eb7defa 14910 else
AzureIoTClient 28:add19eb7defa 14911 {
AzureIoTClient 28:add19eb7defa 14912 if (amqpvalue_set_composite_item(header_instance->composite_value, 1, priority_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14913 {
AzureIoTClient 28:add19eb7defa 14914 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14915 }
AzureIoTClient 28:add19eb7defa 14916 else
AzureIoTClient 28:add19eb7defa 14917 {
AzureIoTClient 28:add19eb7defa 14918 result = 0;
AzureIoTClient 28:add19eb7defa 14919 }
AzureIoTClient 28:add19eb7defa 14920
AzureIoTClient 28:add19eb7defa 14921 amqpvalue_destroy(priority_amqp_value);
AzureIoTClient 28:add19eb7defa 14922 }
AzureIoTClient 28:add19eb7defa 14923 }
AzureIoTClient 28:add19eb7defa 14924
AzureIoTClient 28:add19eb7defa 14925 return result;
Azure.IoT Build 0:6ae2f7bca550 14926 }
Azure.IoT Build 0:6ae2f7bca550 14927
Azure.IoT Build 0:6ae2f7bca550 14928 int header_get_ttl(HEADER_HANDLE header, milliseconds* ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14929 {
AzureIoTClient 28:add19eb7defa 14930 int result;
AzureIoTClient 28:add19eb7defa 14931
AzureIoTClient 28:add19eb7defa 14932 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14933 {
AzureIoTClient 28:add19eb7defa 14934 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14935 }
AzureIoTClient 28:add19eb7defa 14936 else
AzureIoTClient 28:add19eb7defa 14937 {
AzureIoTClient 28:add19eb7defa 14938 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14939 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14940 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14941 {
AzureIoTClient 23:1111ee8bcba4 14942 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14943 }
AzureIoTClient 23:1111ee8bcba4 14944 else
AzureIoTClient 23:1111ee8bcba4 14945 {
AzureIoTClient 23:1111ee8bcba4 14946 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 14947 {
AzureIoTClient 28:add19eb7defa 14948 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14949 }
AzureIoTClient 28:add19eb7defa 14950 else
AzureIoTClient 28:add19eb7defa 14951 {
AzureIoTClient 28:add19eb7defa 14952 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 14953 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14954 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14955 {
AzureIoTClient 28:add19eb7defa 14956 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14957 }
AzureIoTClient 28:add19eb7defa 14958 else
AzureIoTClient 28:add19eb7defa 14959 {
AzureIoTClient 28:add19eb7defa 14960 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14961 if ((get_single_value_result = amqpvalue_get_milliseconds(item_value, ttl_value)) != 0)
AzureIoTClient 28:add19eb7defa 14962 {
AzureIoTClient 28:add19eb7defa 14963 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14964 }
AzureIoTClient 28:add19eb7defa 14965 else
AzureIoTClient 28:add19eb7defa 14966 {
AzureIoTClient 28:add19eb7defa 14967 result = 0;
AzureIoTClient 28:add19eb7defa 14968 }
AzureIoTClient 28:add19eb7defa 14969 }
AzureIoTClient 28:add19eb7defa 14970 }
AzureIoTClient 28:add19eb7defa 14971 }
AzureIoTClient 28:add19eb7defa 14972 }
AzureIoTClient 28:add19eb7defa 14973
AzureIoTClient 28:add19eb7defa 14974 return result;
Azure.IoT Build 0:6ae2f7bca550 14975 }
Azure.IoT Build 0:6ae2f7bca550 14976
Azure.IoT Build 0:6ae2f7bca550 14977 int header_set_ttl(HEADER_HANDLE header, milliseconds ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14978 {
AzureIoTClient 28:add19eb7defa 14979 int result;
AzureIoTClient 28:add19eb7defa 14980
AzureIoTClient 28:add19eb7defa 14981 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14982 {
AzureIoTClient 28:add19eb7defa 14983 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14984 }
AzureIoTClient 28:add19eb7defa 14985 else
AzureIoTClient 28:add19eb7defa 14986 {
AzureIoTClient 28:add19eb7defa 14987 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14988 AMQP_VALUE ttl_amqp_value = amqpvalue_create_milliseconds(ttl_value);
AzureIoTClient 28:add19eb7defa 14989 if (ttl_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14990 {
AzureIoTClient 28:add19eb7defa 14991 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14992 }
AzureIoTClient 28:add19eb7defa 14993 else
AzureIoTClient 28:add19eb7defa 14994 {
AzureIoTClient 28:add19eb7defa 14995 if (amqpvalue_set_composite_item(header_instance->composite_value, 2, ttl_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14996 {
AzureIoTClient 28:add19eb7defa 14997 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14998 }
AzureIoTClient 28:add19eb7defa 14999 else
AzureIoTClient 28:add19eb7defa 15000 {
AzureIoTClient 28:add19eb7defa 15001 result = 0;
AzureIoTClient 28:add19eb7defa 15002 }
AzureIoTClient 28:add19eb7defa 15003
AzureIoTClient 28:add19eb7defa 15004 amqpvalue_destroy(ttl_amqp_value);
AzureIoTClient 28:add19eb7defa 15005 }
AzureIoTClient 28:add19eb7defa 15006 }
AzureIoTClient 28:add19eb7defa 15007
AzureIoTClient 28:add19eb7defa 15008 return result;
Azure.IoT Build 0:6ae2f7bca550 15009 }
Azure.IoT Build 0:6ae2f7bca550 15010
Azure.IoT Build 0:6ae2f7bca550 15011 int header_get_first_acquirer(HEADER_HANDLE header, bool* first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 15012 {
AzureIoTClient 28:add19eb7defa 15013 int result;
AzureIoTClient 28:add19eb7defa 15014
AzureIoTClient 28:add19eb7defa 15015 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15016 {
AzureIoTClient 28:add19eb7defa 15017 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15018 }
AzureIoTClient 28:add19eb7defa 15019 else
AzureIoTClient 28:add19eb7defa 15020 {
AzureIoTClient 28:add19eb7defa 15021 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15022 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 15023 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15024 {
AzureIoTClient 23:1111ee8bcba4 15025 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15026 }
AzureIoTClient 23:1111ee8bcba4 15027 else
AzureIoTClient 23:1111ee8bcba4 15028 {
AzureIoTClient 23:1111ee8bcba4 15029 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 15030 {
AzureIoTClient 28:add19eb7defa 15031 *first_acquirer_value = false;
AzureIoTClient 28:add19eb7defa 15032 result = 0;
AzureIoTClient 28:add19eb7defa 15033 }
AzureIoTClient 28:add19eb7defa 15034 else
AzureIoTClient 28:add19eb7defa 15035 {
AzureIoTClient 28:add19eb7defa 15036 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 15037 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 15038 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 15039 {
AzureIoTClient 28:add19eb7defa 15040 *first_acquirer_value = false;
AzureIoTClient 28:add19eb7defa 15041 result = 0;
AzureIoTClient 28:add19eb7defa 15042 }
AzureIoTClient 28:add19eb7defa 15043 else
AzureIoTClient 28:add19eb7defa 15044 {
AzureIoTClient 28:add19eb7defa 15045 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 15046 if ((get_single_value_result = amqpvalue_get_boolean(item_value, first_acquirer_value)) != 0)
AzureIoTClient 28:add19eb7defa 15047 {
AzureIoTClient 23:1111ee8bcba4 15048 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 15049 {
AzureIoTClient 28:add19eb7defa 15050 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15051 }
AzureIoTClient 28:add19eb7defa 15052 else
AzureIoTClient 28:add19eb7defa 15053 {
AzureIoTClient 28:add19eb7defa 15054 *first_acquirer_value = false;
AzureIoTClient 23:1111ee8bcba4 15055 result = 0;
AzureIoTClient 23:1111ee8bcba4 15056 }
AzureIoTClient 28:add19eb7defa 15057 }
AzureIoTClient 28:add19eb7defa 15058 else
AzureIoTClient 28:add19eb7defa 15059 {
AzureIoTClient 28:add19eb7defa 15060 result = 0;
AzureIoTClient 28:add19eb7defa 15061 }
AzureIoTClient 28:add19eb7defa 15062 }
AzureIoTClient 28:add19eb7defa 15063 }
AzureIoTClient 28:add19eb7defa 15064 }
AzureIoTClient 28:add19eb7defa 15065 }
AzureIoTClient 28:add19eb7defa 15066
AzureIoTClient 28:add19eb7defa 15067 return result;
Azure.IoT Build 0:6ae2f7bca550 15068 }
Azure.IoT Build 0:6ae2f7bca550 15069
Azure.IoT Build 0:6ae2f7bca550 15070 int header_set_first_acquirer(HEADER_HANDLE header, bool first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 15071 {
AzureIoTClient 28:add19eb7defa 15072 int result;
AzureIoTClient 28:add19eb7defa 15073
AzureIoTClient 28:add19eb7defa 15074 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15075 {
AzureIoTClient 28:add19eb7defa 15076 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15077 }
AzureIoTClient 28:add19eb7defa 15078 else
AzureIoTClient 28:add19eb7defa 15079 {
AzureIoTClient 28:add19eb7defa 15080 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 15081 AMQP_VALUE first_acquirer_amqp_value = amqpvalue_create_boolean(first_acquirer_value);
AzureIoTClient 28:add19eb7defa 15082 if (first_acquirer_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15083 {
AzureIoTClient 28:add19eb7defa 15084 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15085 }
AzureIoTClient 28:add19eb7defa 15086 else
AzureIoTClient 28:add19eb7defa 15087 {
AzureIoTClient 28:add19eb7defa 15088 if (amqpvalue_set_composite_item(header_instance->composite_value, 3, first_acquirer_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 15089 {
AzureIoTClient 28:add19eb7defa 15090 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15091 }
AzureIoTClient 28:add19eb7defa 15092 else
AzureIoTClient 28:add19eb7defa 15093 {
AzureIoTClient 28:add19eb7defa 15094 result = 0;
AzureIoTClient 28:add19eb7defa 15095 }
AzureIoTClient 28:add19eb7defa 15096
AzureIoTClient 28:add19eb7defa 15097 amqpvalue_destroy(first_acquirer_amqp_value);
AzureIoTClient 28:add19eb7defa 15098 }
AzureIoTClient 28:add19eb7defa 15099 }
AzureIoTClient 28:add19eb7defa 15100
AzureIoTClient 28:add19eb7defa 15101 return result;
Azure.IoT Build 0:6ae2f7bca550 15102 }
Azure.IoT Build 0:6ae2f7bca550 15103
Azure.IoT Build 0:6ae2f7bca550 15104 int header_get_delivery_count(HEADER_HANDLE header, uint32_t* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 15105 {
AzureIoTClient 28:add19eb7defa 15106 int result;
AzureIoTClient 28:add19eb7defa 15107
AzureIoTClient 28:add19eb7defa 15108 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15109 {
AzureIoTClient 28:add19eb7defa 15110 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15111 }
AzureIoTClient 28:add19eb7defa 15112 else
AzureIoTClient 28:add19eb7defa 15113 {
AzureIoTClient 28:add19eb7defa 15114 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15115 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 15116 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15117 {
AzureIoTClient 23:1111ee8bcba4 15118 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15119 }
AzureIoTClient 23:1111ee8bcba4 15120 else
AzureIoTClient 23:1111ee8bcba4 15121 {
AzureIoTClient 23:1111ee8bcba4 15122 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 15123 {
AzureIoTClient 28:add19eb7defa 15124 *delivery_count_value = 0;
AzureIoTClient 28:add19eb7defa 15125 result = 0;
AzureIoTClient 28:add19eb7defa 15126 }
AzureIoTClient 28:add19eb7defa 15127 else
AzureIoTClient 28:add19eb7defa 15128 {
AzureIoTClient 28:add19eb7defa 15129 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 15130 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 15131 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 15132 {
AzureIoTClient 28:add19eb7defa 15133 *delivery_count_value = 0;
AzureIoTClient 28:add19eb7defa 15134 result = 0;
AzureIoTClient 28:add19eb7defa 15135 }
AzureIoTClient 28:add19eb7defa 15136 else
AzureIoTClient 28:add19eb7defa 15137 {
AzureIoTClient 28:add19eb7defa 15138 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 15139 if ((get_single_value_result = amqpvalue_get_uint(item_value, delivery_count_value)) != 0)
AzureIoTClient 28:add19eb7defa 15140 {
AzureIoTClient 23:1111ee8bcba4 15141 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 15142 {
AzureIoTClient 28:add19eb7defa 15143 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15144 }
AzureIoTClient 28:add19eb7defa 15145 else
AzureIoTClient 28:add19eb7defa 15146 {
AzureIoTClient 28:add19eb7defa 15147 *delivery_count_value = 0;
AzureIoTClient 23:1111ee8bcba4 15148 result = 0;
AzureIoTClient 23:1111ee8bcba4 15149 }
AzureIoTClient 28:add19eb7defa 15150 }
AzureIoTClient 28:add19eb7defa 15151 else
AzureIoTClient 28:add19eb7defa 15152 {
AzureIoTClient 28:add19eb7defa 15153 result = 0;
AzureIoTClient 28:add19eb7defa 15154 }
AzureIoTClient 28:add19eb7defa 15155 }
AzureIoTClient 28:add19eb7defa 15156 }
AzureIoTClient 28:add19eb7defa 15157 }
AzureIoTClient 28:add19eb7defa 15158 }
AzureIoTClient 28:add19eb7defa 15159
AzureIoTClient 28:add19eb7defa 15160 return result;
Azure.IoT Build 0:6ae2f7bca550 15161 }
Azure.IoT Build 0:6ae2f7bca550 15162
Azure.IoT Build 0:6ae2f7bca550 15163 int header_set_delivery_count(HEADER_HANDLE header, uint32_t delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 15164 {
AzureIoTClient 28:add19eb7defa 15165 int result;
AzureIoTClient 28:add19eb7defa 15166
AzureIoTClient 28:add19eb7defa 15167 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15168 {
AzureIoTClient 28:add19eb7defa 15169 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15170 }
AzureIoTClient 28:add19eb7defa 15171 else
AzureIoTClient 28:add19eb7defa 15172 {
AzureIoTClient 28:add19eb7defa 15173 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 15174 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_uint(delivery_count_value);
AzureIoTClient 28:add19eb7defa 15175 if (delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15176 {
AzureIoTClient 28:add19eb7defa 15177 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15178 }
AzureIoTClient 28:add19eb7defa 15179 else
AzureIoTClient 28:add19eb7defa 15180 {
AzureIoTClient 28:add19eb7defa 15181 if (amqpvalue_set_composite_item(header_instance->composite_value, 4, delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 15182 {
AzureIoTClient 28:add19eb7defa 15183 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15184 }
AzureIoTClient 28:add19eb7defa 15185 else
AzureIoTClient 28:add19eb7defa 15186 {
AzureIoTClient 28:add19eb7defa 15187 result = 0;
AzureIoTClient 28:add19eb7defa 15188 }
AzureIoTClient 28:add19eb7defa 15189
AzureIoTClient 28:add19eb7defa 15190 amqpvalue_destroy(delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 15191 }
AzureIoTClient 28:add19eb7defa 15192 }
AzureIoTClient 28:add19eb7defa 15193
AzureIoTClient 28:add19eb7defa 15194 return result;
Azure.IoT Build 0:6ae2f7bca550 15195 }
Azure.IoT Build 0:6ae2f7bca550 15196
Azure.IoT Build 0:6ae2f7bca550 15197
Azure.IoT Build 0:6ae2f7bca550 15198 /* delivery-annotations */
Azure.IoT Build 0:6ae2f7bca550 15199
Azure.IoT Build 0:6ae2f7bca550 15200 AMQP_VALUE amqpvalue_create_delivery_annotations(delivery_annotations value)
Azure.IoT Build 0:6ae2f7bca550 15201 {
AzureIoTClient 28:add19eb7defa 15202 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15203 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15204 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15205 {
AzureIoTClient 28:add19eb7defa 15206 result = NULL;
AzureIoTClient 28:add19eb7defa 15207 }
AzureIoTClient 28:add19eb7defa 15208 else
AzureIoTClient 28:add19eb7defa 15209 {
AzureIoTClient 28:add19eb7defa 15210 AMQP_VALUE descriptor = amqpvalue_create_ulong(113);
AzureIoTClient 28:add19eb7defa 15211 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15212 {
AzureIoTClient 28:add19eb7defa 15213 result = NULL;
AzureIoTClient 28:add19eb7defa 15214 }
AzureIoTClient 28:add19eb7defa 15215 else
AzureIoTClient 28:add19eb7defa 15216 {
AzureIoTClient 28:add19eb7defa 15217 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15218
AzureIoTClient 28:add19eb7defa 15219 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15220 }
AzureIoTClient 28:add19eb7defa 15221
AzureIoTClient 28:add19eb7defa 15222 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15223 }
AzureIoTClient 28:add19eb7defa 15224
AzureIoTClient 28:add19eb7defa 15225 return result;
Azure.IoT Build 0:6ae2f7bca550 15226 }
Azure.IoT Build 0:6ae2f7bca550 15227
Azure.IoT Build 0:6ae2f7bca550 15228 bool is_delivery_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15229 {
AzureIoTClient 28:add19eb7defa 15230 bool result;
AzureIoTClient 28:add19eb7defa 15231
AzureIoTClient 28:add19eb7defa 15232 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15233 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15234 (descriptor_ulong == 113))
AzureIoTClient 28:add19eb7defa 15235 {
AzureIoTClient 28:add19eb7defa 15236 result = true;
AzureIoTClient 28:add19eb7defa 15237 }
AzureIoTClient 28:add19eb7defa 15238 else
AzureIoTClient 28:add19eb7defa 15239 {
AzureIoTClient 28:add19eb7defa 15240 result = false;
AzureIoTClient 28:add19eb7defa 15241 }
AzureIoTClient 28:add19eb7defa 15242
AzureIoTClient 28:add19eb7defa 15243 return result;
Azure.IoT Build 0:6ae2f7bca550 15244 }
Azure.IoT Build 0:6ae2f7bca550 15245
Azure.IoT Build 0:6ae2f7bca550 15246 /* message-annotations */
Azure.IoT Build 0:6ae2f7bca550 15247
Azure.IoT Build 0:6ae2f7bca550 15248 AMQP_VALUE amqpvalue_create_message_annotations(message_annotations value)
Azure.IoT Build 0:6ae2f7bca550 15249 {
AzureIoTClient 28:add19eb7defa 15250 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15251 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15252 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15253 {
AzureIoTClient 28:add19eb7defa 15254 result = NULL;
AzureIoTClient 28:add19eb7defa 15255 }
AzureIoTClient 28:add19eb7defa 15256 else
AzureIoTClient 28:add19eb7defa 15257 {
AzureIoTClient 28:add19eb7defa 15258 AMQP_VALUE descriptor = amqpvalue_create_ulong(114);
AzureIoTClient 28:add19eb7defa 15259 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15260 {
AzureIoTClient 28:add19eb7defa 15261 result = NULL;
AzureIoTClient 28:add19eb7defa 15262 }
AzureIoTClient 28:add19eb7defa 15263 else
AzureIoTClient 28:add19eb7defa 15264 {
AzureIoTClient 28:add19eb7defa 15265 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15266
AzureIoTClient 28:add19eb7defa 15267 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15268 }
AzureIoTClient 28:add19eb7defa 15269
AzureIoTClient 28:add19eb7defa 15270 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15271 }
AzureIoTClient 28:add19eb7defa 15272
AzureIoTClient 28:add19eb7defa 15273 return result;
Azure.IoT Build 0:6ae2f7bca550 15274 }
Azure.IoT Build 0:6ae2f7bca550 15275
Azure.IoT Build 0:6ae2f7bca550 15276 bool is_message_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15277 {
AzureIoTClient 28:add19eb7defa 15278 bool result;
AzureIoTClient 28:add19eb7defa 15279
AzureIoTClient 28:add19eb7defa 15280 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15281 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15282 (descriptor_ulong == 114))
AzureIoTClient 28:add19eb7defa 15283 {
AzureIoTClient 28:add19eb7defa 15284 result = true;
AzureIoTClient 28:add19eb7defa 15285 }
AzureIoTClient 28:add19eb7defa 15286 else
AzureIoTClient 28:add19eb7defa 15287 {
AzureIoTClient 28:add19eb7defa 15288 result = false;
AzureIoTClient 28:add19eb7defa 15289 }
AzureIoTClient 28:add19eb7defa 15290
AzureIoTClient 28:add19eb7defa 15291 return result;
Azure.IoT Build 0:6ae2f7bca550 15292 }
Azure.IoT Build 0:6ae2f7bca550 15293
Azure.IoT Build 0:6ae2f7bca550 15294 /* application-properties */
Azure.IoT Build 0:6ae2f7bca550 15295
Azure.IoT Build 0:6ae2f7bca550 15296 AMQP_VALUE amqpvalue_create_application_properties(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15297 {
AzureIoTClient 28:add19eb7defa 15298 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15299 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15300 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15301 {
AzureIoTClient 28:add19eb7defa 15302 result = NULL;
AzureIoTClient 28:add19eb7defa 15303 }
AzureIoTClient 28:add19eb7defa 15304 else
AzureIoTClient 28:add19eb7defa 15305 {
AzureIoTClient 28:add19eb7defa 15306 AMQP_VALUE descriptor = amqpvalue_create_ulong(116);
AzureIoTClient 28:add19eb7defa 15307 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15308 {
AzureIoTClient 28:add19eb7defa 15309 result = NULL;
AzureIoTClient 28:add19eb7defa 15310 }
AzureIoTClient 28:add19eb7defa 15311 else
AzureIoTClient 28:add19eb7defa 15312 {
AzureIoTClient 28:add19eb7defa 15313 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15314
AzureIoTClient 28:add19eb7defa 15315 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15316 }
AzureIoTClient 28:add19eb7defa 15317
AzureIoTClient 28:add19eb7defa 15318 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15319 }
AzureIoTClient 28:add19eb7defa 15320
AzureIoTClient 28:add19eb7defa 15321 return result;
Azure.IoT Build 0:6ae2f7bca550 15322 }
Azure.IoT Build 0:6ae2f7bca550 15323
Azure.IoT Build 0:6ae2f7bca550 15324 bool is_application_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15325 {
AzureIoTClient 28:add19eb7defa 15326 bool result;
AzureIoTClient 28:add19eb7defa 15327
AzureIoTClient 28:add19eb7defa 15328 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15329 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15330 (descriptor_ulong == 116))
AzureIoTClient 28:add19eb7defa 15331 {
AzureIoTClient 28:add19eb7defa 15332 result = true;
AzureIoTClient 28:add19eb7defa 15333 }
AzureIoTClient 28:add19eb7defa 15334 else
AzureIoTClient 28:add19eb7defa 15335 {
AzureIoTClient 28:add19eb7defa 15336 result = false;
AzureIoTClient 28:add19eb7defa 15337 }
AzureIoTClient 28:add19eb7defa 15338
AzureIoTClient 28:add19eb7defa 15339 return result;
Azure.IoT Build 0:6ae2f7bca550 15340 }
Azure.IoT Build 0:6ae2f7bca550 15341
Azure.IoT Build 0:6ae2f7bca550 15342 /* data */
Azure.IoT Build 0:6ae2f7bca550 15343
Azure.IoT Build 0:6ae2f7bca550 15344 AMQP_VALUE amqpvalue_create_data(data value)
Azure.IoT Build 0:6ae2f7bca550 15345 {
AzureIoTClient 28:add19eb7defa 15346 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15347 AMQP_VALUE described_value = amqpvalue_create_binary(value);
AzureIoTClient 28:add19eb7defa 15348 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15349 {
AzureIoTClient 28:add19eb7defa 15350 result = NULL;
AzureIoTClient 28:add19eb7defa 15351 }
AzureIoTClient 28:add19eb7defa 15352 else
AzureIoTClient 28:add19eb7defa 15353 {
AzureIoTClient 28:add19eb7defa 15354 AMQP_VALUE descriptor = amqpvalue_create_ulong(117);
AzureIoTClient 28:add19eb7defa 15355 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15356 {
AzureIoTClient 28:add19eb7defa 15357 result = NULL;
AzureIoTClient 28:add19eb7defa 15358 }
AzureIoTClient 28:add19eb7defa 15359 else
AzureIoTClient 28:add19eb7defa 15360 {
AzureIoTClient 28:add19eb7defa 15361 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15362
AzureIoTClient 28:add19eb7defa 15363 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15364 }
AzureIoTClient 28:add19eb7defa 15365
AzureIoTClient 28:add19eb7defa 15366 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15367 }
AzureIoTClient 28:add19eb7defa 15368
AzureIoTClient 28:add19eb7defa 15369 return result;
Azure.IoT Build 0:6ae2f7bca550 15370 }
Azure.IoT Build 0:6ae2f7bca550 15371
Azure.IoT Build 0:6ae2f7bca550 15372 bool is_data_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15373 {
AzureIoTClient 28:add19eb7defa 15374 bool result;
AzureIoTClient 28:add19eb7defa 15375
AzureIoTClient 28:add19eb7defa 15376 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15377 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15378 (descriptor_ulong == 117))
AzureIoTClient 28:add19eb7defa 15379 {
AzureIoTClient 28:add19eb7defa 15380 result = true;
AzureIoTClient 28:add19eb7defa 15381 }
AzureIoTClient 28:add19eb7defa 15382 else
AzureIoTClient 28:add19eb7defa 15383 {
AzureIoTClient 28:add19eb7defa 15384 result = false;
AzureIoTClient 28:add19eb7defa 15385 }
AzureIoTClient 28:add19eb7defa 15386
AzureIoTClient 28:add19eb7defa 15387 return result;
Azure.IoT Build 0:6ae2f7bca550 15388 }
Azure.IoT Build 0:6ae2f7bca550 15389
Azure.IoT Build 0:6ae2f7bca550 15390 /* amqp-sequence */
Azure.IoT Build 0:6ae2f7bca550 15391
Azure.IoT Build 0:6ae2f7bca550 15392 AMQP_VALUE amqpvalue_create_amqp_sequence(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15393 {
AzureIoTClient 28:add19eb7defa 15394 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15395 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15396 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15397 {
AzureIoTClient 28:add19eb7defa 15398 result = NULL;
AzureIoTClient 28:add19eb7defa 15399 }
AzureIoTClient 28:add19eb7defa 15400 else
AzureIoTClient 28:add19eb7defa 15401 {
AzureIoTClient 28:add19eb7defa 15402 AMQP_VALUE descriptor = amqpvalue_create_ulong(118);
AzureIoTClient 28:add19eb7defa 15403 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15404 {
AzureIoTClient 28:add19eb7defa 15405 result = NULL;
AzureIoTClient 28:add19eb7defa 15406 }
AzureIoTClient 28:add19eb7defa 15407 else
AzureIoTClient 28:add19eb7defa 15408 {
AzureIoTClient 28:add19eb7defa 15409 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15410
AzureIoTClient 28:add19eb7defa 15411 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15412 }
AzureIoTClient 28:add19eb7defa 15413
AzureIoTClient 28:add19eb7defa 15414 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15415 }
AzureIoTClient 28:add19eb7defa 15416
AzureIoTClient 28:add19eb7defa 15417 return result;
Azure.IoT Build 0:6ae2f7bca550 15418 }
Azure.IoT Build 0:6ae2f7bca550 15419
Azure.IoT Build 0:6ae2f7bca550 15420 bool is_amqp_sequence_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15421 {
AzureIoTClient 28:add19eb7defa 15422 bool result;
AzureIoTClient 28:add19eb7defa 15423
AzureIoTClient 28:add19eb7defa 15424 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15425 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15426 (descriptor_ulong == 118))
AzureIoTClient 28:add19eb7defa 15427 {
AzureIoTClient 28:add19eb7defa 15428 result = true;
AzureIoTClient 28:add19eb7defa 15429 }
AzureIoTClient 28:add19eb7defa 15430 else
AzureIoTClient 28:add19eb7defa 15431 {
AzureIoTClient 28:add19eb7defa 15432 result = false;
AzureIoTClient 28:add19eb7defa 15433 }
AzureIoTClient 28:add19eb7defa 15434
AzureIoTClient 28:add19eb7defa 15435 return result;
Azure.IoT Build 0:6ae2f7bca550 15436 }
Azure.IoT Build 0:6ae2f7bca550 15437
Azure.IoT Build 0:6ae2f7bca550 15438 /* amqp-value */
Azure.IoT Build 0:6ae2f7bca550 15439
Azure.IoT Build 0:6ae2f7bca550 15440 AMQP_VALUE amqpvalue_create_amqp_value(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15441 {
AzureIoTClient 28:add19eb7defa 15442 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15443 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15444 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15445 {
AzureIoTClient 28:add19eb7defa 15446 result = NULL;
AzureIoTClient 28:add19eb7defa 15447 }
AzureIoTClient 28:add19eb7defa 15448 else
AzureIoTClient 28:add19eb7defa 15449 {
AzureIoTClient 28:add19eb7defa 15450 AMQP_VALUE descriptor = amqpvalue_create_ulong(119);
AzureIoTClient 28:add19eb7defa 15451 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15452 {
AzureIoTClient 28:add19eb7defa 15453 result = NULL;
AzureIoTClient 28:add19eb7defa 15454 }
AzureIoTClient 28:add19eb7defa 15455 else
AzureIoTClient 28:add19eb7defa 15456 {
AzureIoTClient 28:add19eb7defa 15457 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15458
AzureIoTClient 28:add19eb7defa 15459 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15460 }
AzureIoTClient 28:add19eb7defa 15461
AzureIoTClient 28:add19eb7defa 15462 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15463 }
AzureIoTClient 28:add19eb7defa 15464
AzureIoTClient 28:add19eb7defa 15465 return result;
Azure.IoT Build 0:6ae2f7bca550 15466 }
Azure.IoT Build 0:6ae2f7bca550 15467
Azure.IoT Build 0:6ae2f7bca550 15468 bool is_amqp_value_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15469 {
AzureIoTClient 28:add19eb7defa 15470 bool result;
AzureIoTClient 28:add19eb7defa 15471
AzureIoTClient 28:add19eb7defa 15472 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15473 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15474 (descriptor_ulong == 119))
AzureIoTClient 28:add19eb7defa 15475 {
AzureIoTClient 28:add19eb7defa 15476 result = true;
AzureIoTClient 28:add19eb7defa 15477 }
AzureIoTClient 28:add19eb7defa 15478 else
AzureIoTClient 28:add19eb7defa 15479 {
AzureIoTClient 28:add19eb7defa 15480 result = false;
AzureIoTClient 28:add19eb7defa 15481 }
AzureIoTClient 28:add19eb7defa 15482
AzureIoTClient 28:add19eb7defa 15483 return result;
Azure.IoT Build 0:6ae2f7bca550 15484 }
Azure.IoT Build 0:6ae2f7bca550 15485
Azure.IoT Build 0:6ae2f7bca550 15486 /* footer */
Azure.IoT Build 0:6ae2f7bca550 15487
Azure.IoT Build 0:6ae2f7bca550 15488 AMQP_VALUE amqpvalue_create_footer(footer value)
Azure.IoT Build 0:6ae2f7bca550 15489 {
AzureIoTClient 28:add19eb7defa 15490 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15491 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15492 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15493 {
AzureIoTClient 28:add19eb7defa 15494 result = NULL;
AzureIoTClient 28:add19eb7defa 15495 }
AzureIoTClient 28:add19eb7defa 15496 else
AzureIoTClient 28:add19eb7defa 15497 {
AzureIoTClient 28:add19eb7defa 15498 AMQP_VALUE descriptor = amqpvalue_create_ulong(120);
AzureIoTClient 28:add19eb7defa 15499 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15500 {
AzureIoTClient 28:add19eb7defa 15501 result = NULL;
AzureIoTClient 28:add19eb7defa 15502 }
AzureIoTClient 28:add19eb7defa 15503 else
AzureIoTClient 28:add19eb7defa 15504 {
AzureIoTClient 28:add19eb7defa 15505 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15506
AzureIoTClient 28:add19eb7defa 15507 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15508 }
AzureIoTClient 28:add19eb7defa 15509
AzureIoTClient 28:add19eb7defa 15510 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15511 }
AzureIoTClient 28:add19eb7defa 15512
AzureIoTClient 28:add19eb7defa 15513 return result;
Azure.IoT Build 0:6ae2f7bca550 15514 }
Azure.IoT Build 0:6ae2f7bca550 15515
Azure.IoT Build 0:6ae2f7bca550 15516 bool is_footer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15517 {
AzureIoTClient 28:add19eb7defa 15518 bool result;
AzureIoTClient 28:add19eb7defa 15519
AzureIoTClient 28:add19eb7defa 15520 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15521 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15522 (descriptor_ulong == 120))
AzureIoTClient 28:add19eb7defa 15523 {
AzureIoTClient 28:add19eb7defa 15524 result = true;
AzureIoTClient 28:add19eb7defa 15525 }
AzureIoTClient 28:add19eb7defa 15526 else
AzureIoTClient 28:add19eb7defa 15527 {
AzureIoTClient 28:add19eb7defa 15528 result = false;
AzureIoTClient 28:add19eb7defa 15529 }
AzureIoTClient 28:add19eb7defa 15530
AzureIoTClient 28:add19eb7defa 15531 return result;
Azure.IoT Build 0:6ae2f7bca550 15532 }
Azure.IoT Build 0:6ae2f7bca550 15533
Azure.IoT Build 0:6ae2f7bca550 15534 /* properties */
Azure.IoT Build 0:6ae2f7bca550 15535
Azure.IoT Build 0:6ae2f7bca550 15536 typedef struct PROPERTIES_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 15537 {
AzureIoTClient 28:add19eb7defa 15538 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 15539 } PROPERTIES_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 15540
Azure.IoT Build 0:6ae2f7bca550 15541 static PROPERTIES_HANDLE properties_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 15542 {
AzureIoTClient 28:add19eb7defa 15543 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15544 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15545 {
AzureIoTClient 28:add19eb7defa 15546 properties_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 15547 }
AzureIoTClient 28:add19eb7defa 15548
AzureIoTClient 28:add19eb7defa 15549 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15550 }
Azure.IoT Build 0:6ae2f7bca550 15551
Azure.IoT Build 0:6ae2f7bca550 15552 PROPERTIES_HANDLE properties_create(void)
Azure.IoT Build 0:6ae2f7bca550 15553 {
AzureIoTClient 28:add19eb7defa 15554 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15555 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15556 {
AzureIoTClient 28:add19eb7defa 15557 properties_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(115);
AzureIoTClient 28:add19eb7defa 15558 if (properties_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 15559 {
AzureIoTClient 28:add19eb7defa 15560 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15561 properties_instance = NULL;
AzureIoTClient 28:add19eb7defa 15562 }
AzureIoTClient 28:add19eb7defa 15563 }
AzureIoTClient 28:add19eb7defa 15564
AzureIoTClient 28:add19eb7defa 15565 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15566 }
Azure.IoT Build 0:6ae2f7bca550 15567
Azure.IoT Build 0:6ae2f7bca550 15568 PROPERTIES_HANDLE properties_clone(PROPERTIES_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 15569 {
AzureIoTClient 28:add19eb7defa 15570 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15571 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15572 {
AzureIoTClient 28:add19eb7defa 15573 properties_instance->composite_value = amqpvalue_clone(((PROPERTIES_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 15574 if (properties_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 15575 {
AzureIoTClient 28:add19eb7defa 15576 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15577 properties_instance = NULL;
AzureIoTClient 28:add19eb7defa 15578 }
AzureIoTClient 28:add19eb7defa 15579 }
AzureIoTClient 28:add19eb7defa 15580
AzureIoTClient 28:add19eb7defa 15581 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15582 }
Azure.IoT Build 0:6ae2f7bca550 15583
Azure.IoT Build 0:6ae2f7bca550 15584 void properties_destroy(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 15585 {
AzureIoTClient 28:add19eb7defa 15586 if (properties != NULL)
AzureIoTClient 28:add19eb7defa 15587 {
AzureIoTClient 28:add19eb7defa 15588 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15589 amqpvalue_destroy(properties_instance->composite_value);
AzureIoTClient 28:add19eb7defa 15590 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15591 }
Azure.IoT Build 0:6ae2f7bca550 15592 }
Azure.IoT Build 0:6ae2f7bca550 15593
Azure.IoT Build 0:6ae2f7bca550 15594 AMQP_VALUE amqpvalue_create_properties(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 15595 {
AzureIoTClient 28:add19eb7defa 15596 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15597
AzureIoTClient 28:add19eb7defa 15598 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15599 {
AzureIoTClient 28:add19eb7defa 15600 result = NULL;
AzureIoTClient 28:add19eb7defa 15601 }
AzureIoTClient 28:add19eb7defa 15602 else
AzureIoTClient 28:add19eb7defa 15603 {
AzureIoTClient 28:add19eb7defa 15604 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15605 result = amqpvalue_clone(properties_instance->composite_value);
AzureIoTClient 28:add19eb7defa 15606 }
AzureIoTClient 28:add19eb7defa 15607
AzureIoTClient 28:add19eb7defa 15608 return result;
Azure.IoT Build 0:6ae2f7bca550 15609 }
Azure.IoT Build 0:6ae2f7bca550 15610
Azure.IoT Build 0:6ae2f7bca550 15611 bool is_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15612 {
AzureIoTClient 28:add19eb7defa 15613 bool result;
AzureIoTClient 28:add19eb7defa 15614
AzureIoTClient 28:add19eb7defa 15615 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15616 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15617 (descriptor_ulong == 115))
AzureIoTClient 28:add19eb7defa 15618 {
AzureIoTClient 28:add19eb7defa 15619 result = true;
AzureIoTClient 28:add19eb7defa 15620 }
AzureIoTClient 28:add19eb7defa 15621 else
AzureIoTClient 28:add19eb7defa 15622 {
AzureIoTClient 28:add19eb7defa 15623 result = false;
AzureIoTClient 28:add19eb7defa 15624 }
AzureIoTClient 28:add19eb7defa 15625
AzureIoTClient 28:add19eb7defa 15626 return result;
Azure.IoT Build 0:6ae2f7bca550 15627 }
Azure.IoT Build 0:6ae2f7bca550 15628
Azure.IoT Build 0:6ae2f7bca550 15629
Azure.IoT Build 0:6ae2f7bca550 15630 int amqpvalue_get_properties(AMQP_VALUE value, PROPERTIES_HANDLE* properties_handle)
Azure.IoT Build 0:6ae2f7bca550 15631 {
AzureIoTClient 28:add19eb7defa 15632 int result;
AzureIoTClient 28:add19eb7defa 15633 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties_create_internal();
AzureIoTClient 28:add19eb7defa 15634 *properties_handle = properties_instance;
AzureIoTClient 28:add19eb7defa 15635 if (*properties_handle == NULL)
AzureIoTClient 28:add19eb7defa 15636 {
AzureIoTClient 28:add19eb7defa 15637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15638 }
AzureIoTClient 28:add19eb7defa 15639 else
AzureIoTClient 28:add19eb7defa 15640 {
AzureIoTClient 28:add19eb7defa 15641 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 15642 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 15643 {
AzureIoTClient 28:add19eb7defa 15644 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15645 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15646 }
AzureIoTClient 28:add19eb7defa 15647 else
AzureIoTClient 28:add19eb7defa 15648 {
AzureIoTClient 23:1111ee8bcba4 15649 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 15650 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15651 {
AzureIoTClient 23:1111ee8bcba4 15652 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15653 }
AzureIoTClient 23:1111ee8bcba4 15654 else
AzureIoTClient 23:1111ee8bcba4 15655 {
AzureIoTClient 28:add19eb7defa 15656 do
AzureIoTClient 28:add19eb7defa 15657 {
AzureIoTClient 28:add19eb7defa 15658 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 15659 /* message-id */
AzureIoTClient 28:add19eb7defa 15660 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 15661 {
AzureIoTClient 23:1111ee8bcba4 15662 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 15663 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15664 {
AzureIoTClient 28:add19eb7defa 15665 /* do nothing */
AzureIoTClient 28:add19eb7defa 15666 }
AzureIoTClient 28:add19eb7defa 15667 else
AzureIoTClient 28:add19eb7defa 15668 {
AzureIoTClient 28:add19eb7defa 15669 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15670 }
AzureIoTClient 28:add19eb7defa 15671 }
AzureIoTClient 28:add19eb7defa 15672 /* user-id */
AzureIoTClient 28:add19eb7defa 15673 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 15674 {
AzureIoTClient 23:1111ee8bcba4 15675 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 15676 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15677 {
AzureIoTClient 28:add19eb7defa 15678 /* do nothing */
AzureIoTClient 28:add19eb7defa 15679 }
AzureIoTClient 28:add19eb7defa 15680 else
AzureIoTClient 28:add19eb7defa 15681 {
AzureIoTClient 28:add19eb7defa 15682 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15683 {
AzureIoTClient 28:add19eb7defa 15684 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15685 }
AzureIoTClient 28:add19eb7defa 15686 else
AzureIoTClient 28:add19eb7defa 15687 {
AzureIoTClient 28:add19eb7defa 15688 amqp_binary user_id;
AzureIoTClient 28:add19eb7defa 15689 if (amqpvalue_get_binary(item_value, &user_id) != 0)
AzureIoTClient 28:add19eb7defa 15690 {
AzureIoTClient 28:add19eb7defa 15691 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15692 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15693 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15694 break;
AzureIoTClient 28:add19eb7defa 15695 }
AzureIoTClient 28:add19eb7defa 15696 }
AzureIoTClient 28:add19eb7defa 15697
AzureIoTClient 28:add19eb7defa 15698 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15699 }
AzureIoTClient 28:add19eb7defa 15700 }
AzureIoTClient 28:add19eb7defa 15701 /* to */
AzureIoTClient 28:add19eb7defa 15702 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 15703 {
AzureIoTClient 23:1111ee8bcba4 15704 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 15705 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15706 {
AzureIoTClient 28:add19eb7defa 15707 /* do nothing */
AzureIoTClient 28:add19eb7defa 15708 }
AzureIoTClient 28:add19eb7defa 15709 else
AzureIoTClient 28:add19eb7defa 15710 {
AzureIoTClient 28:add19eb7defa 15711 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15712 }
AzureIoTClient 28:add19eb7defa 15713 }
AzureIoTClient 28:add19eb7defa 15714 /* subject */
AzureIoTClient 28:add19eb7defa 15715 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 15716 {
AzureIoTClient 23:1111ee8bcba4 15717 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 15718 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15719 {
AzureIoTClient 28:add19eb7defa 15720 /* do nothing */
AzureIoTClient 28:add19eb7defa 15721 }
AzureIoTClient 28:add19eb7defa 15722 else
AzureIoTClient 28:add19eb7defa 15723 {
AzureIoTClient 28:add19eb7defa 15724 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15725 {
AzureIoTClient 28:add19eb7defa 15726 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15727 }
AzureIoTClient 28:add19eb7defa 15728 else
AzureIoTClient 28:add19eb7defa 15729 {
AzureIoTClient 28:add19eb7defa 15730 const char* subject;
AzureIoTClient 28:add19eb7defa 15731 if (amqpvalue_get_string(item_value, &subject) != 0)
AzureIoTClient 28:add19eb7defa 15732 {
AzureIoTClient 28:add19eb7defa 15733 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15734 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15735 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15736 break;
AzureIoTClient 28:add19eb7defa 15737 }
AzureIoTClient 28:add19eb7defa 15738 }
AzureIoTClient 28:add19eb7defa 15739
AzureIoTClient 28:add19eb7defa 15740 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15741 }
AzureIoTClient 28:add19eb7defa 15742 }
AzureIoTClient 28:add19eb7defa 15743 /* reply-to */
AzureIoTClient 28:add19eb7defa 15744 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 15745 {
AzureIoTClient 23:1111ee8bcba4 15746 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 15747 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15748 {
AzureIoTClient 28:add19eb7defa 15749 /* do nothing */
AzureIoTClient 28:add19eb7defa 15750 }
AzureIoTClient 28:add19eb7defa 15751 else
AzureIoTClient 28:add19eb7defa 15752 {
AzureIoTClient 28:add19eb7defa 15753 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15754 }
AzureIoTClient 28:add19eb7defa 15755 }
AzureIoTClient 28:add19eb7defa 15756 /* correlation-id */
AzureIoTClient 28:add19eb7defa 15757 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 15758 {
AzureIoTClient 23:1111ee8bcba4 15759 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 15760 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15761 {
AzureIoTClient 28:add19eb7defa 15762 /* do nothing */
AzureIoTClient 28:add19eb7defa 15763 }
AzureIoTClient 28:add19eb7defa 15764 else
AzureIoTClient 28:add19eb7defa 15765 {
AzureIoTClient 28:add19eb7defa 15766 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15767 }
AzureIoTClient 28:add19eb7defa 15768 }
AzureIoTClient 28:add19eb7defa 15769 /* content-type */
AzureIoTClient 28:add19eb7defa 15770 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 15771 {
AzureIoTClient 23:1111ee8bcba4 15772 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 15773 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15774 {
AzureIoTClient 28:add19eb7defa 15775 /* do nothing */
AzureIoTClient 28:add19eb7defa 15776 }
AzureIoTClient 28:add19eb7defa 15777 else
AzureIoTClient 28:add19eb7defa 15778 {
AzureIoTClient 28:add19eb7defa 15779 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15780 {
AzureIoTClient 28:add19eb7defa 15781 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15782 }
AzureIoTClient 28:add19eb7defa 15783 else
AzureIoTClient 28:add19eb7defa 15784 {
AzureIoTClient 28:add19eb7defa 15785 const char* content_type;
AzureIoTClient 28:add19eb7defa 15786 if (amqpvalue_get_symbol(item_value, &content_type) != 0)
AzureIoTClient 28:add19eb7defa 15787 {
AzureIoTClient 28:add19eb7defa 15788 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15789 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15790 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15791 break;
AzureIoTClient 28:add19eb7defa 15792 }
AzureIoTClient 28:add19eb7defa 15793 }
AzureIoTClient 28:add19eb7defa 15794
AzureIoTClient 28:add19eb7defa 15795 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15796 }
AzureIoTClient 28:add19eb7defa 15797 }
AzureIoTClient 28:add19eb7defa 15798 /* content-encoding */
AzureIoTClient 28:add19eb7defa 15799 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 15800 {
AzureIoTClient 23:1111ee8bcba4 15801 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 15802 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15803 {
AzureIoTClient 28:add19eb7defa 15804 /* do nothing */
AzureIoTClient 28:add19eb7defa 15805 }
AzureIoTClient 28:add19eb7defa 15806 else
AzureIoTClient 28:add19eb7defa 15807 {
AzureIoTClient 28:add19eb7defa 15808 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15809 {
AzureIoTClient 28:add19eb7defa 15810 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15811 }
AzureIoTClient 28:add19eb7defa 15812 else
AzureIoTClient 28:add19eb7defa 15813 {
AzureIoTClient 28:add19eb7defa 15814 const char* content_encoding;
AzureIoTClient 28:add19eb7defa 15815 if (amqpvalue_get_symbol(item_value, &content_encoding) != 0)
AzureIoTClient 28:add19eb7defa 15816 {
AzureIoTClient 28:add19eb7defa 15817 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15818 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15819 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15820 break;
AzureIoTClient 28:add19eb7defa 15821 }
AzureIoTClient 28:add19eb7defa 15822 }
AzureIoTClient 28:add19eb7defa 15823
AzureIoTClient 28:add19eb7defa 15824 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15825 }
AzureIoTClient 28:add19eb7defa 15826 }
AzureIoTClient 28:add19eb7defa 15827 /* absolute-expiry-time */
AzureIoTClient 28:add19eb7defa 15828 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 15829 {
AzureIoTClient 23:1111ee8bcba4 15830 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 15831 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15832 {
AzureIoTClient 28:add19eb7defa 15833 /* do nothing */
AzureIoTClient 28:add19eb7defa 15834 }
AzureIoTClient 28:add19eb7defa 15835 else
AzureIoTClient 28:add19eb7defa 15836 {
AzureIoTClient 28:add19eb7defa 15837 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15838 {
AzureIoTClient 28:add19eb7defa 15839 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15840 }
AzureIoTClient 28:add19eb7defa 15841 else
AzureIoTClient 28:add19eb7defa 15842 {
AzureIoTClient 28:add19eb7defa 15843 timestamp absolute_expiry_time;
AzureIoTClient 28:add19eb7defa 15844 if (amqpvalue_get_timestamp(item_value, &absolute_expiry_time) != 0)
AzureIoTClient 28:add19eb7defa 15845 {
AzureIoTClient 28:add19eb7defa 15846 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15847 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15848 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15849 break;
AzureIoTClient 28:add19eb7defa 15850 }
AzureIoTClient 28:add19eb7defa 15851 }
AzureIoTClient 28:add19eb7defa 15852
AzureIoTClient 28:add19eb7defa 15853 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15854 }
AzureIoTClient 28:add19eb7defa 15855 }
AzureIoTClient 28:add19eb7defa 15856 /* creation-time */
AzureIoTClient 28:add19eb7defa 15857 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 15858 {
AzureIoTClient 23:1111ee8bcba4 15859 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 15860 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15861 {
AzureIoTClient 28:add19eb7defa 15862 /* do nothing */
AzureIoTClient 28:add19eb7defa 15863 }
AzureIoTClient 28:add19eb7defa 15864 else
AzureIoTClient 28:add19eb7defa 15865 {
AzureIoTClient 28:add19eb7defa 15866 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15867 {
AzureIoTClient 28:add19eb7defa 15868 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15869 }
AzureIoTClient 28:add19eb7defa 15870 else
AzureIoTClient 28:add19eb7defa 15871 {
AzureIoTClient 28:add19eb7defa 15872 timestamp creation_time;
AzureIoTClient 28:add19eb7defa 15873 if (amqpvalue_get_timestamp(item_value, &creation_time) != 0)
AzureIoTClient 28:add19eb7defa 15874 {
AzureIoTClient 28:add19eb7defa 15875 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15876 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15877 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15878 break;
AzureIoTClient 28:add19eb7defa 15879 }
AzureIoTClient 28:add19eb7defa 15880 }
AzureIoTClient 28:add19eb7defa 15881
AzureIoTClient 28:add19eb7defa 15882 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15883 }
AzureIoTClient 28:add19eb7defa 15884 }
AzureIoTClient 28:add19eb7defa 15885 /* group-id */
AzureIoTClient 28:add19eb7defa 15886 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 15887 {
AzureIoTClient 23:1111ee8bcba4 15888 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 15889 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15890 {
AzureIoTClient 28:add19eb7defa 15891 /* do nothing */
AzureIoTClient 28:add19eb7defa 15892 }
AzureIoTClient 28:add19eb7defa 15893 else
AzureIoTClient 28:add19eb7defa 15894 {
AzureIoTClient 28:add19eb7defa 15895 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15896 {
AzureIoTClient 28:add19eb7defa 15897 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15898 }
AzureIoTClient 28:add19eb7defa 15899 else
AzureIoTClient 28:add19eb7defa 15900 {
AzureIoTClient 28:add19eb7defa 15901 const char* group_id;
AzureIoTClient 28:add19eb7defa 15902 if (amqpvalue_get_string(item_value, &group_id) != 0)
AzureIoTClient 28:add19eb7defa 15903 {
AzureIoTClient 28:add19eb7defa 15904 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15905 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15906 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15907 break;
AzureIoTClient 28:add19eb7defa 15908 }
AzureIoTClient 28:add19eb7defa 15909 }
AzureIoTClient 28:add19eb7defa 15910
AzureIoTClient 28:add19eb7defa 15911 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15912 }
AzureIoTClient 28:add19eb7defa 15913 }
AzureIoTClient 28:add19eb7defa 15914 /* group-sequence */
AzureIoTClient 28:add19eb7defa 15915 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 15916 {
AzureIoTClient 23:1111ee8bcba4 15917 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 28:add19eb7defa 15918 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15919 {
AzureIoTClient 28:add19eb7defa 15920 /* do nothing */
AzureIoTClient 28:add19eb7defa 15921 }
AzureIoTClient 28:add19eb7defa 15922 else
AzureIoTClient 28:add19eb7defa 15923 {
AzureIoTClient 28:add19eb7defa 15924 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15925 {
AzureIoTClient 28:add19eb7defa 15926 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15927 }
AzureIoTClient 28:add19eb7defa 15928 else
AzureIoTClient 28:add19eb7defa 15929 {
AzureIoTClient 28:add19eb7defa 15930 sequence_no group_sequence;
AzureIoTClient 28:add19eb7defa 15931 if (amqpvalue_get_sequence_no(item_value, &group_sequence) != 0)
AzureIoTClient 28:add19eb7defa 15932 {
AzureIoTClient 28:add19eb7defa 15933 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15934 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15935 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15936 break;
AzureIoTClient 28:add19eb7defa 15937 }
AzureIoTClient 28:add19eb7defa 15938 }
AzureIoTClient 28:add19eb7defa 15939
AzureIoTClient 28:add19eb7defa 15940 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15941 }
AzureIoTClient 28:add19eb7defa 15942 }
AzureIoTClient 28:add19eb7defa 15943 /* reply-to-group-id */
AzureIoTClient 28:add19eb7defa 15944 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 15945 {
AzureIoTClient 23:1111ee8bcba4 15946 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 28:add19eb7defa 15947 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15948 {
AzureIoTClient 28:add19eb7defa 15949 /* do nothing */
AzureIoTClient 28:add19eb7defa 15950 }
AzureIoTClient 28:add19eb7defa 15951 else
AzureIoTClient 28:add19eb7defa 15952 {
AzureIoTClient 28:add19eb7defa 15953 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15954 {
AzureIoTClient 28:add19eb7defa 15955 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15956 }
AzureIoTClient 28:add19eb7defa 15957 else
AzureIoTClient 28:add19eb7defa 15958 {
AzureIoTClient 28:add19eb7defa 15959 const char* reply_to_group_id;
AzureIoTClient 28:add19eb7defa 15960 if (amqpvalue_get_string(item_value, &reply_to_group_id) != 0)
AzureIoTClient 28:add19eb7defa 15961 {
AzureIoTClient 28:add19eb7defa 15962 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15963 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15964 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15965 break;
AzureIoTClient 28:add19eb7defa 15966 }
AzureIoTClient 28:add19eb7defa 15967 }
AzureIoTClient 28:add19eb7defa 15968
AzureIoTClient 28:add19eb7defa 15969 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15970 }
AzureIoTClient 28:add19eb7defa 15971 }
AzureIoTClient 28:add19eb7defa 15972
AzureIoTClient 28:add19eb7defa 15973 properties_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15974
AzureIoTClient 28:add19eb7defa 15975 result = 0;
AzureIoTClient 28:add19eb7defa 15976 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 15977 }
AzureIoTClient 28:add19eb7defa 15978 }
AzureIoTClient 28:add19eb7defa 15979 }
AzureIoTClient 28:add19eb7defa 15980
AzureIoTClient 28:add19eb7defa 15981 return result;
Azure.IoT Build 0:6ae2f7bca550 15982 }
Azure.IoT Build 0:6ae2f7bca550 15983
Azure.IoT Build 0:6ae2f7bca550 15984 int properties_get_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE* message_id_value)
Azure.IoT Build 0:6ae2f7bca550 15985 {
AzureIoTClient 28:add19eb7defa 15986 int result;
AzureIoTClient 28:add19eb7defa 15987
AzureIoTClient 28:add19eb7defa 15988 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15989 {
AzureIoTClient 28:add19eb7defa 15990 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15991 }
AzureIoTClient 28:add19eb7defa 15992 else
AzureIoTClient 28:add19eb7defa 15993 {
AzureIoTClient 28:add19eb7defa 15994 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15995 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15996 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15997 {
AzureIoTClient 23:1111ee8bcba4 15998 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15999 }
AzureIoTClient 23:1111ee8bcba4 16000 else
AzureIoTClient 23:1111ee8bcba4 16001 {
AzureIoTClient 23:1111ee8bcba4 16002 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 16003 {
AzureIoTClient 28:add19eb7defa 16004 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16005 }
AzureIoTClient 28:add19eb7defa 16006 else
AzureIoTClient 28:add19eb7defa 16007 {
AzureIoTClient 28:add19eb7defa 16008 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 16009 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16010 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16011 {
AzureIoTClient 28:add19eb7defa 16012 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16013 }
AzureIoTClient 28:add19eb7defa 16014 else
AzureIoTClient 28:add19eb7defa 16015 {
AzureIoTClient 28:add19eb7defa 16016 *message_id_value = item_value;
AzureIoTClient 28:add19eb7defa 16017 result = 0;
AzureIoTClient 28:add19eb7defa 16018 }
AzureIoTClient 28:add19eb7defa 16019 }
AzureIoTClient 28:add19eb7defa 16020 }
AzureIoTClient 28:add19eb7defa 16021 }
AzureIoTClient 28:add19eb7defa 16022
AzureIoTClient 28:add19eb7defa 16023 return result;
Azure.IoT Build 0:6ae2f7bca550 16024 }
Azure.IoT Build 0:6ae2f7bca550 16025
Azure.IoT Build 0:6ae2f7bca550 16026 int properties_set_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE message_id_value)
Azure.IoT Build 0:6ae2f7bca550 16027 {
AzureIoTClient 28:add19eb7defa 16028 int result;
AzureIoTClient 28:add19eb7defa 16029
AzureIoTClient 28:add19eb7defa 16030 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16031 {
AzureIoTClient 28:add19eb7defa 16032 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16033 }
AzureIoTClient 28:add19eb7defa 16034 else
AzureIoTClient 28:add19eb7defa 16035 {
AzureIoTClient 28:add19eb7defa 16036 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16037 AMQP_VALUE message_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16038 if (message_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16039 {
AzureIoTClient 23:1111ee8bcba4 16040 message_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16041 }
AzureIoTClient 23:1111ee8bcba4 16042 else
AzureIoTClient 23:1111ee8bcba4 16043 {
AzureIoTClient 23:1111ee8bcba4 16044 message_id_amqp_value = amqpvalue_clone(message_id_value);
AzureIoTClient 23:1111ee8bcba4 16045 }
AzureIoTClient 28:add19eb7defa 16046 if (message_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16047 {
AzureIoTClient 28:add19eb7defa 16048 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16049 }
AzureIoTClient 28:add19eb7defa 16050 else
AzureIoTClient 28:add19eb7defa 16051 {
AzureIoTClient 28:add19eb7defa 16052 if (amqpvalue_set_composite_item(properties_instance->composite_value, 0, message_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16053 {
AzureIoTClient 28:add19eb7defa 16054 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16055 }
AzureIoTClient 28:add19eb7defa 16056 else
AzureIoTClient 28:add19eb7defa 16057 {
AzureIoTClient 28:add19eb7defa 16058 result = 0;
AzureIoTClient 28:add19eb7defa 16059 }
AzureIoTClient 28:add19eb7defa 16060
AzureIoTClient 28:add19eb7defa 16061 amqpvalue_destroy(message_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16062 }
AzureIoTClient 28:add19eb7defa 16063 }
AzureIoTClient 28:add19eb7defa 16064
AzureIoTClient 28:add19eb7defa 16065 return result;
Azure.IoT Build 0:6ae2f7bca550 16066 }
Azure.IoT Build 0:6ae2f7bca550 16067
Azure.IoT Build 0:6ae2f7bca550 16068 int properties_get_user_id(PROPERTIES_HANDLE properties, amqp_binary* user_id_value)
Azure.IoT Build 0:6ae2f7bca550 16069 {
AzureIoTClient 28:add19eb7defa 16070 int result;
AzureIoTClient 28:add19eb7defa 16071
AzureIoTClient 28:add19eb7defa 16072 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16073 {
AzureIoTClient 28:add19eb7defa 16074 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16075 }
AzureIoTClient 28:add19eb7defa 16076 else
AzureIoTClient 28:add19eb7defa 16077 {
AzureIoTClient 28:add19eb7defa 16078 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16079 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16080 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16081 {
AzureIoTClient 23:1111ee8bcba4 16082 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16083 }
AzureIoTClient 23:1111ee8bcba4 16084 else
AzureIoTClient 23:1111ee8bcba4 16085 {
AzureIoTClient 23:1111ee8bcba4 16086 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 16087 {
AzureIoTClient 28:add19eb7defa 16088 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16089 }
AzureIoTClient 28:add19eb7defa 16090 else
AzureIoTClient 28:add19eb7defa 16091 {
AzureIoTClient 28:add19eb7defa 16092 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 16093 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16094 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16095 {
AzureIoTClient 28:add19eb7defa 16096 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16097 }
AzureIoTClient 28:add19eb7defa 16098 else
AzureIoTClient 28:add19eb7defa 16099 {
AzureIoTClient 28:add19eb7defa 16100 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16101 if ((get_single_value_result = amqpvalue_get_binary(item_value, user_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 16102 {
AzureIoTClient 28:add19eb7defa 16103 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16104 }
AzureIoTClient 28:add19eb7defa 16105 else
AzureIoTClient 28:add19eb7defa 16106 {
AzureIoTClient 28:add19eb7defa 16107 result = 0;
AzureIoTClient 28:add19eb7defa 16108 }
AzureIoTClient 28:add19eb7defa 16109 }
AzureIoTClient 28:add19eb7defa 16110 }
AzureIoTClient 28:add19eb7defa 16111 }
AzureIoTClient 28:add19eb7defa 16112 }
AzureIoTClient 28:add19eb7defa 16113
AzureIoTClient 28:add19eb7defa 16114 return result;
Azure.IoT Build 0:6ae2f7bca550 16115 }
Azure.IoT Build 0:6ae2f7bca550 16116
Azure.IoT Build 0:6ae2f7bca550 16117 int properties_set_user_id(PROPERTIES_HANDLE properties, amqp_binary user_id_value)
Azure.IoT Build 0:6ae2f7bca550 16118 {
AzureIoTClient 28:add19eb7defa 16119 int result;
AzureIoTClient 28:add19eb7defa 16120
AzureIoTClient 28:add19eb7defa 16121 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16122 {
AzureIoTClient 28:add19eb7defa 16123 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16124 }
AzureIoTClient 28:add19eb7defa 16125 else
AzureIoTClient 28:add19eb7defa 16126 {
AzureIoTClient 28:add19eb7defa 16127 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16128 AMQP_VALUE user_id_amqp_value = amqpvalue_create_binary(user_id_value);
AzureIoTClient 28:add19eb7defa 16129 if (user_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16130 {
AzureIoTClient 28:add19eb7defa 16131 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16132 }
AzureIoTClient 28:add19eb7defa 16133 else
AzureIoTClient 28:add19eb7defa 16134 {
AzureIoTClient 28:add19eb7defa 16135 if (amqpvalue_set_composite_item(properties_instance->composite_value, 1, user_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16136 {
AzureIoTClient 28:add19eb7defa 16137 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16138 }
AzureIoTClient 28:add19eb7defa 16139 else
AzureIoTClient 28:add19eb7defa 16140 {
AzureIoTClient 28:add19eb7defa 16141 result = 0;
AzureIoTClient 28:add19eb7defa 16142 }
AzureIoTClient 28:add19eb7defa 16143
AzureIoTClient 28:add19eb7defa 16144 amqpvalue_destroy(user_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16145 }
AzureIoTClient 28:add19eb7defa 16146 }
AzureIoTClient 28:add19eb7defa 16147
AzureIoTClient 28:add19eb7defa 16148 return result;
Azure.IoT Build 0:6ae2f7bca550 16149 }
Azure.IoT Build 0:6ae2f7bca550 16150
Azure.IoT Build 0:6ae2f7bca550 16151 int properties_get_to(PROPERTIES_HANDLE properties, AMQP_VALUE* to_value)
Azure.IoT Build 0:6ae2f7bca550 16152 {
AzureIoTClient 28:add19eb7defa 16153 int result;
AzureIoTClient 28:add19eb7defa 16154
AzureIoTClient 28:add19eb7defa 16155 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16156 {
AzureIoTClient 28:add19eb7defa 16157 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16158 }
AzureIoTClient 28:add19eb7defa 16159 else
AzureIoTClient 28:add19eb7defa 16160 {
AzureIoTClient 28:add19eb7defa 16161 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16162 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16163 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16164 {
AzureIoTClient 23:1111ee8bcba4 16165 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16166 }
AzureIoTClient 23:1111ee8bcba4 16167 else
AzureIoTClient 23:1111ee8bcba4 16168 {
AzureIoTClient 23:1111ee8bcba4 16169 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 16170 {
AzureIoTClient 28:add19eb7defa 16171 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16172 }
AzureIoTClient 28:add19eb7defa 16173 else
AzureIoTClient 28:add19eb7defa 16174 {
AzureIoTClient 28:add19eb7defa 16175 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 16176 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16177 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16178 {
AzureIoTClient 28:add19eb7defa 16179 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16180 }
AzureIoTClient 28:add19eb7defa 16181 else
AzureIoTClient 28:add19eb7defa 16182 {
AzureIoTClient 28:add19eb7defa 16183 *to_value = item_value;
AzureIoTClient 28:add19eb7defa 16184 result = 0;
AzureIoTClient 28:add19eb7defa 16185 }
AzureIoTClient 28:add19eb7defa 16186 }
AzureIoTClient 28:add19eb7defa 16187 }
AzureIoTClient 28:add19eb7defa 16188 }
AzureIoTClient 28:add19eb7defa 16189
AzureIoTClient 28:add19eb7defa 16190 return result;
Azure.IoT Build 0:6ae2f7bca550 16191 }
Azure.IoT Build 0:6ae2f7bca550 16192
Azure.IoT Build 0:6ae2f7bca550 16193 int properties_set_to(PROPERTIES_HANDLE properties, AMQP_VALUE to_value)
Azure.IoT Build 0:6ae2f7bca550 16194 {
AzureIoTClient 28:add19eb7defa 16195 int result;
AzureIoTClient 28:add19eb7defa 16196
AzureIoTClient 28:add19eb7defa 16197 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16198 {
AzureIoTClient 28:add19eb7defa 16199 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16200 }
AzureIoTClient 28:add19eb7defa 16201 else
AzureIoTClient 28:add19eb7defa 16202 {
AzureIoTClient 28:add19eb7defa 16203 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16204 AMQP_VALUE to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16205 if (to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16206 {
AzureIoTClient 23:1111ee8bcba4 16207 to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16208 }
AzureIoTClient 23:1111ee8bcba4 16209 else
AzureIoTClient 23:1111ee8bcba4 16210 {
AzureIoTClient 23:1111ee8bcba4 16211 to_amqp_value = amqpvalue_clone(to_value);
AzureIoTClient 23:1111ee8bcba4 16212 }
AzureIoTClient 28:add19eb7defa 16213 if (to_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16214 {
AzureIoTClient 28:add19eb7defa 16215 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16216 }
AzureIoTClient 28:add19eb7defa 16217 else
AzureIoTClient 28:add19eb7defa 16218 {
AzureIoTClient 28:add19eb7defa 16219 if (amqpvalue_set_composite_item(properties_instance->composite_value, 2, to_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16220 {
AzureIoTClient 28:add19eb7defa 16221 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16222 }
AzureIoTClient 28:add19eb7defa 16223 else
AzureIoTClient 28:add19eb7defa 16224 {
AzureIoTClient 28:add19eb7defa 16225 result = 0;
AzureIoTClient 28:add19eb7defa 16226 }
AzureIoTClient 28:add19eb7defa 16227
AzureIoTClient 28:add19eb7defa 16228 amqpvalue_destroy(to_amqp_value);
AzureIoTClient 28:add19eb7defa 16229 }
AzureIoTClient 28:add19eb7defa 16230 }
AzureIoTClient 28:add19eb7defa 16231
AzureIoTClient 28:add19eb7defa 16232 return result;
Azure.IoT Build 0:6ae2f7bca550 16233 }
Azure.IoT Build 0:6ae2f7bca550 16234
Azure.IoT Build 0:6ae2f7bca550 16235 int properties_get_subject(PROPERTIES_HANDLE properties, const char** subject_value)
Azure.IoT Build 0:6ae2f7bca550 16236 {
AzureIoTClient 28:add19eb7defa 16237 int result;
AzureIoTClient 28:add19eb7defa 16238
AzureIoTClient 28:add19eb7defa 16239 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16240 {
AzureIoTClient 28:add19eb7defa 16241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16242 }
AzureIoTClient 28:add19eb7defa 16243 else
AzureIoTClient 28:add19eb7defa 16244 {
AzureIoTClient 28:add19eb7defa 16245 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16246 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16247 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16248 {
AzureIoTClient 23:1111ee8bcba4 16249 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16250 }
AzureIoTClient 23:1111ee8bcba4 16251 else
AzureIoTClient 23:1111ee8bcba4 16252 {
AzureIoTClient 23:1111ee8bcba4 16253 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 16254 {
AzureIoTClient 28:add19eb7defa 16255 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16256 }
AzureIoTClient 28:add19eb7defa 16257 else
AzureIoTClient 28:add19eb7defa 16258 {
AzureIoTClient 28:add19eb7defa 16259 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 16260 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16261 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16262 {
AzureIoTClient 28:add19eb7defa 16263 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16264 }
AzureIoTClient 28:add19eb7defa 16265 else
AzureIoTClient 28:add19eb7defa 16266 {
AzureIoTClient 28:add19eb7defa 16267 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16268 if ((get_single_value_result = amqpvalue_get_string(item_value, subject_value)) != 0)
AzureIoTClient 28:add19eb7defa 16269 {
AzureIoTClient 28:add19eb7defa 16270 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16271 }
AzureIoTClient 28:add19eb7defa 16272 else
AzureIoTClient 28:add19eb7defa 16273 {
AzureIoTClient 28:add19eb7defa 16274 result = 0;
AzureIoTClient 28:add19eb7defa 16275 }
AzureIoTClient 28:add19eb7defa 16276 }
AzureIoTClient 28:add19eb7defa 16277 }
AzureIoTClient 28:add19eb7defa 16278 }
AzureIoTClient 28:add19eb7defa 16279 }
AzureIoTClient 28:add19eb7defa 16280
AzureIoTClient 28:add19eb7defa 16281 return result;
Azure.IoT Build 0:6ae2f7bca550 16282 }
Azure.IoT Build 0:6ae2f7bca550 16283
Azure.IoT Build 0:6ae2f7bca550 16284 int properties_set_subject(PROPERTIES_HANDLE properties, const char* subject_value)
Azure.IoT Build 0:6ae2f7bca550 16285 {
AzureIoTClient 28:add19eb7defa 16286 int result;
AzureIoTClient 28:add19eb7defa 16287
AzureIoTClient 28:add19eb7defa 16288 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16289 {
AzureIoTClient 28:add19eb7defa 16290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16291 }
AzureIoTClient 28:add19eb7defa 16292 else
AzureIoTClient 28:add19eb7defa 16293 {
AzureIoTClient 28:add19eb7defa 16294 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16295 AMQP_VALUE subject_amqp_value = amqpvalue_create_string(subject_value);
AzureIoTClient 28:add19eb7defa 16296 if (subject_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16297 {
AzureIoTClient 28:add19eb7defa 16298 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16299 }
AzureIoTClient 28:add19eb7defa 16300 else
AzureIoTClient 28:add19eb7defa 16301 {
AzureIoTClient 28:add19eb7defa 16302 if (amqpvalue_set_composite_item(properties_instance->composite_value, 3, subject_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16303 {
AzureIoTClient 28:add19eb7defa 16304 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16305 }
AzureIoTClient 28:add19eb7defa 16306 else
AzureIoTClient 28:add19eb7defa 16307 {
AzureIoTClient 28:add19eb7defa 16308 result = 0;
AzureIoTClient 28:add19eb7defa 16309 }
AzureIoTClient 28:add19eb7defa 16310
AzureIoTClient 28:add19eb7defa 16311 amqpvalue_destroy(subject_amqp_value);
AzureIoTClient 28:add19eb7defa 16312 }
AzureIoTClient 28:add19eb7defa 16313 }
AzureIoTClient 28:add19eb7defa 16314
AzureIoTClient 28:add19eb7defa 16315 return result;
Azure.IoT Build 0:6ae2f7bca550 16316 }
Azure.IoT Build 0:6ae2f7bca550 16317
Azure.IoT Build 0:6ae2f7bca550 16318 int properties_get_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE* reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 16319 {
AzureIoTClient 28:add19eb7defa 16320 int result;
AzureIoTClient 28:add19eb7defa 16321
AzureIoTClient 28:add19eb7defa 16322 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16323 {
AzureIoTClient 28:add19eb7defa 16324 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16325 }
AzureIoTClient 28:add19eb7defa 16326 else
AzureIoTClient 28:add19eb7defa 16327 {
AzureIoTClient 28:add19eb7defa 16328 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16329 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16330 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16331 {
AzureIoTClient 23:1111ee8bcba4 16332 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16333 }
AzureIoTClient 23:1111ee8bcba4 16334 else
AzureIoTClient 23:1111ee8bcba4 16335 {
AzureIoTClient 23:1111ee8bcba4 16336 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 16337 {
AzureIoTClient 28:add19eb7defa 16338 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16339 }
AzureIoTClient 28:add19eb7defa 16340 else
AzureIoTClient 28:add19eb7defa 16341 {
AzureIoTClient 28:add19eb7defa 16342 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 16343 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16344 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16345 {
AzureIoTClient 28:add19eb7defa 16346 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16347 }
AzureIoTClient 28:add19eb7defa 16348 else
AzureIoTClient 28:add19eb7defa 16349 {
AzureIoTClient 28:add19eb7defa 16350 *reply_to_value = item_value;
AzureIoTClient 28:add19eb7defa 16351 result = 0;
AzureIoTClient 28:add19eb7defa 16352 }
AzureIoTClient 28:add19eb7defa 16353 }
AzureIoTClient 28:add19eb7defa 16354 }
AzureIoTClient 28:add19eb7defa 16355 }
AzureIoTClient 28:add19eb7defa 16356
AzureIoTClient 28:add19eb7defa 16357 return result;
Azure.IoT Build 0:6ae2f7bca550 16358 }
Azure.IoT Build 0:6ae2f7bca550 16359
Azure.IoT Build 0:6ae2f7bca550 16360 int properties_set_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 16361 {
AzureIoTClient 28:add19eb7defa 16362 int result;
AzureIoTClient 28:add19eb7defa 16363
AzureIoTClient 28:add19eb7defa 16364 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16365 {
AzureIoTClient 28:add19eb7defa 16366 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16367 }
AzureIoTClient 28:add19eb7defa 16368 else
AzureIoTClient 28:add19eb7defa 16369 {
AzureIoTClient 28:add19eb7defa 16370 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16371 AMQP_VALUE reply_to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16372 if (reply_to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16373 {
AzureIoTClient 23:1111ee8bcba4 16374 reply_to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16375 }
AzureIoTClient 23:1111ee8bcba4 16376 else
AzureIoTClient 23:1111ee8bcba4 16377 {
AzureIoTClient 23:1111ee8bcba4 16378 reply_to_amqp_value = amqpvalue_clone(reply_to_value);
AzureIoTClient 23:1111ee8bcba4 16379 }
AzureIoTClient 28:add19eb7defa 16380 if (reply_to_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16381 {
AzureIoTClient 28:add19eb7defa 16382 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16383 }
AzureIoTClient 28:add19eb7defa 16384 else
AzureIoTClient 28:add19eb7defa 16385 {
AzureIoTClient 28:add19eb7defa 16386 if (amqpvalue_set_composite_item(properties_instance->composite_value, 4, reply_to_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16387 {
AzureIoTClient 28:add19eb7defa 16388 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16389 }
AzureIoTClient 28:add19eb7defa 16390 else
AzureIoTClient 28:add19eb7defa 16391 {
AzureIoTClient 28:add19eb7defa 16392 result = 0;
AzureIoTClient 28:add19eb7defa 16393 }
AzureIoTClient 28:add19eb7defa 16394
AzureIoTClient 28:add19eb7defa 16395 amqpvalue_destroy(reply_to_amqp_value);
AzureIoTClient 28:add19eb7defa 16396 }
AzureIoTClient 28:add19eb7defa 16397 }
AzureIoTClient 28:add19eb7defa 16398
AzureIoTClient 28:add19eb7defa 16399 return result;
Azure.IoT Build 0:6ae2f7bca550 16400 }
Azure.IoT Build 0:6ae2f7bca550 16401
Azure.IoT Build 0:6ae2f7bca550 16402 int properties_get_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE* correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 16403 {
AzureIoTClient 28:add19eb7defa 16404 int result;
AzureIoTClient 28:add19eb7defa 16405
AzureIoTClient 28:add19eb7defa 16406 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16407 {
AzureIoTClient 28:add19eb7defa 16408 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16409 }
AzureIoTClient 28:add19eb7defa 16410 else
AzureIoTClient 28:add19eb7defa 16411 {
AzureIoTClient 28:add19eb7defa 16412 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16413 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16414 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16415 {
AzureIoTClient 23:1111ee8bcba4 16416 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16417 }
AzureIoTClient 23:1111ee8bcba4 16418 else
AzureIoTClient 23:1111ee8bcba4 16419 {
AzureIoTClient 23:1111ee8bcba4 16420 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 16421 {
AzureIoTClient 28:add19eb7defa 16422 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16423 }
AzureIoTClient 28:add19eb7defa 16424 else
AzureIoTClient 28:add19eb7defa 16425 {
AzureIoTClient 28:add19eb7defa 16426 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 16427 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16428 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16429 {
AzureIoTClient 28:add19eb7defa 16430 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16431 }
AzureIoTClient 28:add19eb7defa 16432 else
AzureIoTClient 28:add19eb7defa 16433 {
AzureIoTClient 28:add19eb7defa 16434 *correlation_id_value = item_value;
AzureIoTClient 28:add19eb7defa 16435 result = 0;
AzureIoTClient 28:add19eb7defa 16436 }
AzureIoTClient 28:add19eb7defa 16437 }
AzureIoTClient 28:add19eb7defa 16438 }
AzureIoTClient 28:add19eb7defa 16439 }
AzureIoTClient 28:add19eb7defa 16440
AzureIoTClient 28:add19eb7defa 16441 return result;
Azure.IoT Build 0:6ae2f7bca550 16442 }
Azure.IoT Build 0:6ae2f7bca550 16443
Azure.IoT Build 0:6ae2f7bca550 16444 int properties_set_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 16445 {
AzureIoTClient 28:add19eb7defa 16446 int result;
AzureIoTClient 28:add19eb7defa 16447
AzureIoTClient 28:add19eb7defa 16448 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16449 {
AzureIoTClient 28:add19eb7defa 16450 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16451 }
AzureIoTClient 28:add19eb7defa 16452 else
AzureIoTClient 28:add19eb7defa 16453 {
AzureIoTClient 28:add19eb7defa 16454 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16455 AMQP_VALUE correlation_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16456 if (correlation_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16457 {
AzureIoTClient 23:1111ee8bcba4 16458 correlation_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16459 }
AzureIoTClient 23:1111ee8bcba4 16460 else
AzureIoTClient 23:1111ee8bcba4 16461 {
AzureIoTClient 23:1111ee8bcba4 16462 correlation_id_amqp_value = amqpvalue_clone(correlation_id_value);
AzureIoTClient 23:1111ee8bcba4 16463 }
AzureIoTClient 28:add19eb7defa 16464 if (correlation_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16465 {
AzureIoTClient 28:add19eb7defa 16466 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16467 }
AzureIoTClient 28:add19eb7defa 16468 else
AzureIoTClient 28:add19eb7defa 16469 {
AzureIoTClient 28:add19eb7defa 16470 if (amqpvalue_set_composite_item(properties_instance->composite_value, 5, correlation_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16471 {
AzureIoTClient 28:add19eb7defa 16472 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16473 }
AzureIoTClient 28:add19eb7defa 16474 else
AzureIoTClient 28:add19eb7defa 16475 {
AzureIoTClient 28:add19eb7defa 16476 result = 0;
AzureIoTClient 28:add19eb7defa 16477 }
AzureIoTClient 28:add19eb7defa 16478
AzureIoTClient 28:add19eb7defa 16479 amqpvalue_destroy(correlation_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16480 }
AzureIoTClient 28:add19eb7defa 16481 }
AzureIoTClient 28:add19eb7defa 16482
AzureIoTClient 28:add19eb7defa 16483 return result;
Azure.IoT Build 0:6ae2f7bca550 16484 }
Azure.IoT Build 0:6ae2f7bca550 16485
Azure.IoT Build 0:6ae2f7bca550 16486 int properties_get_content_type(PROPERTIES_HANDLE properties, const char** content_type_value)
Azure.IoT Build 0:6ae2f7bca550 16487 {
AzureIoTClient 28:add19eb7defa 16488 int result;
AzureIoTClient 28:add19eb7defa 16489
AzureIoTClient 28:add19eb7defa 16490 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16491 {
AzureIoTClient 28:add19eb7defa 16492 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16493 }
AzureIoTClient 28:add19eb7defa 16494 else
AzureIoTClient 28:add19eb7defa 16495 {
AzureIoTClient 28:add19eb7defa 16496 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16497 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16498 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16499 {
AzureIoTClient 23:1111ee8bcba4 16500 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16501 }
AzureIoTClient 23:1111ee8bcba4 16502 else
AzureIoTClient 23:1111ee8bcba4 16503 {
AzureIoTClient 23:1111ee8bcba4 16504 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 16505 {
AzureIoTClient 28:add19eb7defa 16506 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16507 }
AzureIoTClient 28:add19eb7defa 16508 else
AzureIoTClient 28:add19eb7defa 16509 {
AzureIoTClient 28:add19eb7defa 16510 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 16511 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16512 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16513 {
AzureIoTClient 28:add19eb7defa 16514 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16515 }
AzureIoTClient 28:add19eb7defa 16516 else
AzureIoTClient 28:add19eb7defa 16517 {
AzureIoTClient 28:add19eb7defa 16518 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16519 if ((get_single_value_result = amqpvalue_get_symbol(item_value, content_type_value)) != 0)
AzureIoTClient 28:add19eb7defa 16520 {
AzureIoTClient 28:add19eb7defa 16521 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16522 }
AzureIoTClient 28:add19eb7defa 16523 else
AzureIoTClient 28:add19eb7defa 16524 {
AzureIoTClient 28:add19eb7defa 16525 result = 0;
AzureIoTClient 28:add19eb7defa 16526 }
AzureIoTClient 28:add19eb7defa 16527 }
AzureIoTClient 28:add19eb7defa 16528 }
AzureIoTClient 28:add19eb7defa 16529 }
AzureIoTClient 28:add19eb7defa 16530 }
AzureIoTClient 28:add19eb7defa 16531
AzureIoTClient 28:add19eb7defa 16532 return result;
Azure.IoT Build 0:6ae2f7bca550 16533 }
Azure.IoT Build 0:6ae2f7bca550 16534
Azure.IoT Build 0:6ae2f7bca550 16535 int properties_set_content_type(PROPERTIES_HANDLE properties, const char* content_type_value)
Azure.IoT Build 0:6ae2f7bca550 16536 {
AzureIoTClient 28:add19eb7defa 16537 int result;
AzureIoTClient 28:add19eb7defa 16538
AzureIoTClient 28:add19eb7defa 16539 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16540 {
AzureIoTClient 28:add19eb7defa 16541 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16542 }
AzureIoTClient 28:add19eb7defa 16543 else
AzureIoTClient 28:add19eb7defa 16544 {
AzureIoTClient 28:add19eb7defa 16545 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16546 AMQP_VALUE content_type_amqp_value = amqpvalue_create_symbol(content_type_value);
AzureIoTClient 28:add19eb7defa 16547 if (content_type_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16548 {
AzureIoTClient 28:add19eb7defa 16549 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16550 }
AzureIoTClient 28:add19eb7defa 16551 else
AzureIoTClient 28:add19eb7defa 16552 {
AzureIoTClient 28:add19eb7defa 16553 if (amqpvalue_set_composite_item(properties_instance->composite_value, 6, content_type_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16554 {
AzureIoTClient 28:add19eb7defa 16555 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16556 }
AzureIoTClient 28:add19eb7defa 16557 else
AzureIoTClient 28:add19eb7defa 16558 {
AzureIoTClient 28:add19eb7defa 16559 result = 0;
AzureIoTClient 28:add19eb7defa 16560 }
AzureIoTClient 28:add19eb7defa 16561
AzureIoTClient 28:add19eb7defa 16562 amqpvalue_destroy(content_type_amqp_value);
AzureIoTClient 28:add19eb7defa 16563 }
AzureIoTClient 28:add19eb7defa 16564 }
AzureIoTClient 28:add19eb7defa 16565
AzureIoTClient 28:add19eb7defa 16566 return result;
Azure.IoT Build 0:6ae2f7bca550 16567 }
Azure.IoT Build 0:6ae2f7bca550 16568
Azure.IoT Build 0:6ae2f7bca550 16569 int properties_get_content_encoding(PROPERTIES_HANDLE properties, const char** content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 16570 {
AzureIoTClient 28:add19eb7defa 16571 int result;
AzureIoTClient 28:add19eb7defa 16572
AzureIoTClient 28:add19eb7defa 16573 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16574 {
AzureIoTClient 28:add19eb7defa 16575 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16576 }
AzureIoTClient 28:add19eb7defa 16577 else
AzureIoTClient 28:add19eb7defa 16578 {
AzureIoTClient 28:add19eb7defa 16579 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16580 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16581 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16582 {
AzureIoTClient 23:1111ee8bcba4 16583 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16584 }
AzureIoTClient 23:1111ee8bcba4 16585 else
AzureIoTClient 23:1111ee8bcba4 16586 {
AzureIoTClient 23:1111ee8bcba4 16587 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 16588 {
AzureIoTClient 28:add19eb7defa 16589 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16590 }
AzureIoTClient 28:add19eb7defa 16591 else
AzureIoTClient 28:add19eb7defa 16592 {
AzureIoTClient 28:add19eb7defa 16593 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 16594 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16595 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16596 {
AzureIoTClient 28:add19eb7defa 16597 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16598 }
AzureIoTClient 28:add19eb7defa 16599 else
AzureIoTClient 28:add19eb7defa 16600 {
AzureIoTClient 28:add19eb7defa 16601 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16602 if ((get_single_value_result = amqpvalue_get_symbol(item_value, content_encoding_value)) != 0)
AzureIoTClient 28:add19eb7defa 16603 {
AzureIoTClient 28:add19eb7defa 16604 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16605 }
AzureIoTClient 28:add19eb7defa 16606 else
AzureIoTClient 28:add19eb7defa 16607 {
AzureIoTClient 28:add19eb7defa 16608 result = 0;
AzureIoTClient 28:add19eb7defa 16609 }
AzureIoTClient 28:add19eb7defa 16610 }
AzureIoTClient 28:add19eb7defa 16611 }
AzureIoTClient 28:add19eb7defa 16612 }
AzureIoTClient 28:add19eb7defa 16613 }
AzureIoTClient 28:add19eb7defa 16614
AzureIoTClient 28:add19eb7defa 16615 return result;
Azure.IoT Build 0:6ae2f7bca550 16616 }
Azure.IoT Build 0:6ae2f7bca550 16617
Azure.IoT Build 0:6ae2f7bca550 16618 int properties_set_content_encoding(PROPERTIES_HANDLE properties, const char* content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 16619 {
AzureIoTClient 28:add19eb7defa 16620 int result;
AzureIoTClient 28:add19eb7defa 16621
AzureIoTClient 28:add19eb7defa 16622 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16623 {
AzureIoTClient 28:add19eb7defa 16624 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16625 }
AzureIoTClient 28:add19eb7defa 16626 else
AzureIoTClient 28:add19eb7defa 16627 {
AzureIoTClient 28:add19eb7defa 16628 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16629 AMQP_VALUE content_encoding_amqp_value = amqpvalue_create_symbol(content_encoding_value);
AzureIoTClient 28:add19eb7defa 16630 if (content_encoding_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16631 {
AzureIoTClient 28:add19eb7defa 16632 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16633 }
AzureIoTClient 28:add19eb7defa 16634 else
AzureIoTClient 28:add19eb7defa 16635 {
AzureIoTClient 28:add19eb7defa 16636 if (amqpvalue_set_composite_item(properties_instance->composite_value, 7, content_encoding_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16637 {
AzureIoTClient 28:add19eb7defa 16638 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16639 }
AzureIoTClient 28:add19eb7defa 16640 else
AzureIoTClient 28:add19eb7defa 16641 {
AzureIoTClient 28:add19eb7defa 16642 result = 0;
AzureIoTClient 28:add19eb7defa 16643 }
AzureIoTClient 28:add19eb7defa 16644
AzureIoTClient 28:add19eb7defa 16645 amqpvalue_destroy(content_encoding_amqp_value);
AzureIoTClient 28:add19eb7defa 16646 }
AzureIoTClient 28:add19eb7defa 16647 }
AzureIoTClient 28:add19eb7defa 16648
AzureIoTClient 28:add19eb7defa 16649 return result;
Azure.IoT Build 0:6ae2f7bca550 16650 }
Azure.IoT Build 0:6ae2f7bca550 16651
Azure.IoT Build 0:6ae2f7bca550 16652 int properties_get_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp* absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 16653 {
AzureIoTClient 28:add19eb7defa 16654 int result;
AzureIoTClient 28:add19eb7defa 16655
AzureIoTClient 28:add19eb7defa 16656 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16657 {
AzureIoTClient 28:add19eb7defa 16658 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16659 }
AzureIoTClient 28:add19eb7defa 16660 else
AzureIoTClient 28:add19eb7defa 16661 {
AzureIoTClient 28:add19eb7defa 16662 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16663 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16664 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16665 {
AzureIoTClient 23:1111ee8bcba4 16666 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16667 }
AzureIoTClient 23:1111ee8bcba4 16668 else
AzureIoTClient 23:1111ee8bcba4 16669 {
AzureIoTClient 23:1111ee8bcba4 16670 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 16671 {
AzureIoTClient 28:add19eb7defa 16672 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16673 }
AzureIoTClient 28:add19eb7defa 16674 else
AzureIoTClient 28:add19eb7defa 16675 {
AzureIoTClient 28:add19eb7defa 16676 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 16677 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16678 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16679 {
AzureIoTClient 28:add19eb7defa 16680 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16681 }
AzureIoTClient 28:add19eb7defa 16682 else
AzureIoTClient 28:add19eb7defa 16683 {
AzureIoTClient 28:add19eb7defa 16684 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16685 if ((get_single_value_result = amqpvalue_get_timestamp(item_value, absolute_expiry_time_value)) != 0)
AzureIoTClient 28:add19eb7defa 16686 {
AzureIoTClient 28:add19eb7defa 16687 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16688 }
AzureIoTClient 28:add19eb7defa 16689 else
AzureIoTClient 28:add19eb7defa 16690 {
AzureIoTClient 28:add19eb7defa 16691 result = 0;
AzureIoTClient 28:add19eb7defa 16692 }
AzureIoTClient 28:add19eb7defa 16693 }
AzureIoTClient 28:add19eb7defa 16694 }
AzureIoTClient 28:add19eb7defa 16695 }
AzureIoTClient 28:add19eb7defa 16696 }
AzureIoTClient 28:add19eb7defa 16697
AzureIoTClient 28:add19eb7defa 16698 return result;
Azure.IoT Build 0:6ae2f7bca550 16699 }
Azure.IoT Build 0:6ae2f7bca550 16700
Azure.IoT Build 0:6ae2f7bca550 16701 int properties_set_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 16702 {
AzureIoTClient 28:add19eb7defa 16703 int result;
AzureIoTClient 28:add19eb7defa 16704
AzureIoTClient 28:add19eb7defa 16705 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16706 {
AzureIoTClient 28:add19eb7defa 16707 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16708 }
AzureIoTClient 28:add19eb7defa 16709 else
AzureIoTClient 28:add19eb7defa 16710 {
AzureIoTClient 28:add19eb7defa 16711 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16712 AMQP_VALUE absolute_expiry_time_amqp_value = amqpvalue_create_timestamp(absolute_expiry_time_value);
AzureIoTClient 28:add19eb7defa 16713 if (absolute_expiry_time_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16714 {
AzureIoTClient 28:add19eb7defa 16715 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16716 }
AzureIoTClient 28:add19eb7defa 16717 else
AzureIoTClient 28:add19eb7defa 16718 {
AzureIoTClient 28:add19eb7defa 16719 if (amqpvalue_set_composite_item(properties_instance->composite_value, 8, absolute_expiry_time_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16720 {
AzureIoTClient 28:add19eb7defa 16721 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16722 }
AzureIoTClient 28:add19eb7defa 16723 else
AzureIoTClient 28:add19eb7defa 16724 {
AzureIoTClient 28:add19eb7defa 16725 result = 0;
AzureIoTClient 28:add19eb7defa 16726 }
AzureIoTClient 28:add19eb7defa 16727
AzureIoTClient 28:add19eb7defa 16728 amqpvalue_destroy(absolute_expiry_time_amqp_value);
AzureIoTClient 28:add19eb7defa 16729 }
AzureIoTClient 28:add19eb7defa 16730 }
AzureIoTClient 28:add19eb7defa 16731
AzureIoTClient 28:add19eb7defa 16732 return result;
Azure.IoT Build 0:6ae2f7bca550 16733 }
Azure.IoT Build 0:6ae2f7bca550 16734
Azure.IoT Build 0:6ae2f7bca550 16735 int properties_get_creation_time(PROPERTIES_HANDLE properties, timestamp* creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16736 {
AzureIoTClient 28:add19eb7defa 16737 int result;
AzureIoTClient 28:add19eb7defa 16738
AzureIoTClient 28:add19eb7defa 16739 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16740 {
AzureIoTClient 28:add19eb7defa 16741 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16742 }
AzureIoTClient 28:add19eb7defa 16743 else
AzureIoTClient 28:add19eb7defa 16744 {
AzureIoTClient 28:add19eb7defa 16745 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16746 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16747 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16748 {
AzureIoTClient 23:1111ee8bcba4 16749 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16750 }
AzureIoTClient 23:1111ee8bcba4 16751 else
AzureIoTClient 23:1111ee8bcba4 16752 {
AzureIoTClient 23:1111ee8bcba4 16753 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 16754 {
AzureIoTClient 28:add19eb7defa 16755 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16756 }
AzureIoTClient 28:add19eb7defa 16757 else
AzureIoTClient 28:add19eb7defa 16758 {
AzureIoTClient 28:add19eb7defa 16759 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 16760 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16761 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16762 {
AzureIoTClient 28:add19eb7defa 16763 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16764 }
AzureIoTClient 28:add19eb7defa 16765 else
AzureIoTClient 28:add19eb7defa 16766 {
AzureIoTClient 28:add19eb7defa 16767 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16768 if ((get_single_value_result = amqpvalue_get_timestamp(item_value, creation_time_value)) != 0)
AzureIoTClient 28:add19eb7defa 16769 {
AzureIoTClient 28:add19eb7defa 16770 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16771 }
AzureIoTClient 28:add19eb7defa 16772 else
AzureIoTClient 28:add19eb7defa 16773 {
AzureIoTClient 28:add19eb7defa 16774 result = 0;
AzureIoTClient 28:add19eb7defa 16775 }
AzureIoTClient 28:add19eb7defa 16776 }
AzureIoTClient 28:add19eb7defa 16777 }
AzureIoTClient 28:add19eb7defa 16778 }
AzureIoTClient 28:add19eb7defa 16779 }
AzureIoTClient 28:add19eb7defa 16780
AzureIoTClient 28:add19eb7defa 16781 return result;
Azure.IoT Build 0:6ae2f7bca550 16782 }
Azure.IoT Build 0:6ae2f7bca550 16783
Azure.IoT Build 0:6ae2f7bca550 16784 int properties_set_creation_time(PROPERTIES_HANDLE properties, timestamp creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16785 {
AzureIoTClient 28:add19eb7defa 16786 int result;
AzureIoTClient 28:add19eb7defa 16787
AzureIoTClient 28:add19eb7defa 16788 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16789 {
AzureIoTClient 28:add19eb7defa 16790 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16791 }
AzureIoTClient 28:add19eb7defa 16792 else
AzureIoTClient 28:add19eb7defa 16793 {
AzureIoTClient 28:add19eb7defa 16794 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16795 AMQP_VALUE creation_time_amqp_value = amqpvalue_create_timestamp(creation_time_value);
AzureIoTClient 28:add19eb7defa 16796 if (creation_time_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16797 {
AzureIoTClient 28:add19eb7defa 16798 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16799 }
AzureIoTClient 28:add19eb7defa 16800 else
AzureIoTClient 28:add19eb7defa 16801 {
AzureIoTClient 28:add19eb7defa 16802 if (amqpvalue_set_composite_item(properties_instance->composite_value, 9, creation_time_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16803 {
AzureIoTClient 28:add19eb7defa 16804 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16805 }
AzureIoTClient 28:add19eb7defa 16806 else
AzureIoTClient 28:add19eb7defa 16807 {
AzureIoTClient 28:add19eb7defa 16808 result = 0;
AzureIoTClient 28:add19eb7defa 16809 }
AzureIoTClient 28:add19eb7defa 16810
AzureIoTClient 28:add19eb7defa 16811 amqpvalue_destroy(creation_time_amqp_value);
AzureIoTClient 28:add19eb7defa 16812 }
AzureIoTClient 28:add19eb7defa 16813 }
AzureIoTClient 28:add19eb7defa 16814
AzureIoTClient 28:add19eb7defa 16815 return result;
Azure.IoT Build 0:6ae2f7bca550 16816 }
Azure.IoT Build 0:6ae2f7bca550 16817
Azure.IoT Build 0:6ae2f7bca550 16818 int properties_get_group_id(PROPERTIES_HANDLE properties, const char** group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16819 {
AzureIoTClient 28:add19eb7defa 16820 int result;
AzureIoTClient 28:add19eb7defa 16821
AzureIoTClient 28:add19eb7defa 16822 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16823 {
AzureIoTClient 28:add19eb7defa 16824 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16825 }
AzureIoTClient 28:add19eb7defa 16826 else
AzureIoTClient 28:add19eb7defa 16827 {
AzureIoTClient 28:add19eb7defa 16828 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16829 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16830 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16831 {
AzureIoTClient 23:1111ee8bcba4 16832 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16833 }
AzureIoTClient 23:1111ee8bcba4 16834 else
AzureIoTClient 23:1111ee8bcba4 16835 {
AzureIoTClient 23:1111ee8bcba4 16836 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 16837 {
AzureIoTClient 28:add19eb7defa 16838 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16839 }
AzureIoTClient 28:add19eb7defa 16840 else
AzureIoTClient 28:add19eb7defa 16841 {
AzureIoTClient 28:add19eb7defa 16842 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 16843 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16844 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16845 {
AzureIoTClient 28:add19eb7defa 16846 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16847 }
AzureIoTClient 28:add19eb7defa 16848 else
AzureIoTClient 28:add19eb7defa 16849 {
AzureIoTClient 28:add19eb7defa 16850 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16851 if ((get_single_value_result = amqpvalue_get_string(item_value, group_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 16852 {
AzureIoTClient 28:add19eb7defa 16853 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16854 }
AzureIoTClient 28:add19eb7defa 16855 else
AzureIoTClient 28:add19eb7defa 16856 {
AzureIoTClient 28:add19eb7defa 16857 result = 0;
AzureIoTClient 28:add19eb7defa 16858 }
AzureIoTClient 28:add19eb7defa 16859 }
AzureIoTClient 28:add19eb7defa 16860 }
AzureIoTClient 28:add19eb7defa 16861 }
AzureIoTClient 28:add19eb7defa 16862 }
AzureIoTClient 28:add19eb7defa 16863
AzureIoTClient 28:add19eb7defa 16864 return result;
Azure.IoT Build 0:6ae2f7bca550 16865 }
Azure.IoT Build 0:6ae2f7bca550 16866
Azure.IoT Build 0:6ae2f7bca550 16867 int properties_set_group_id(PROPERTIES_HANDLE properties, const char* group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16868 {
AzureIoTClient 28:add19eb7defa 16869 int result;
AzureIoTClient 28:add19eb7defa 16870
AzureIoTClient 28:add19eb7defa 16871 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16872 {
AzureIoTClient 28:add19eb7defa 16873 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16874 }
AzureIoTClient 28:add19eb7defa 16875 else
AzureIoTClient 28:add19eb7defa 16876 {
AzureIoTClient 28:add19eb7defa 16877 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16878 AMQP_VALUE group_id_amqp_value = amqpvalue_create_string(group_id_value);
AzureIoTClient 28:add19eb7defa 16879 if (group_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16880 {
AzureIoTClient 28:add19eb7defa 16881 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16882 }
AzureIoTClient 28:add19eb7defa 16883 else
AzureIoTClient 28:add19eb7defa 16884 {
AzureIoTClient 28:add19eb7defa 16885 if (amqpvalue_set_composite_item(properties_instance->composite_value, 10, group_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16886 {
AzureIoTClient 28:add19eb7defa 16887 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16888 }
AzureIoTClient 28:add19eb7defa 16889 else
AzureIoTClient 28:add19eb7defa 16890 {
AzureIoTClient 28:add19eb7defa 16891 result = 0;
AzureIoTClient 28:add19eb7defa 16892 }
AzureIoTClient 28:add19eb7defa 16893
AzureIoTClient 28:add19eb7defa 16894 amqpvalue_destroy(group_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16895 }
AzureIoTClient 28:add19eb7defa 16896 }
AzureIoTClient 28:add19eb7defa 16897
AzureIoTClient 28:add19eb7defa 16898 return result;
Azure.IoT Build 0:6ae2f7bca550 16899 }
Azure.IoT Build 0:6ae2f7bca550 16900
Azure.IoT Build 0:6ae2f7bca550 16901 int properties_get_group_sequence(PROPERTIES_HANDLE properties, sequence_no* group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16902 {
AzureIoTClient 28:add19eb7defa 16903 int result;
AzureIoTClient 28:add19eb7defa 16904
AzureIoTClient 28:add19eb7defa 16905 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16906 {
AzureIoTClient 28:add19eb7defa 16907 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16908 }
AzureIoTClient 28:add19eb7defa 16909 else
AzureIoTClient 28:add19eb7defa 16910 {
AzureIoTClient 28:add19eb7defa 16911 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16912 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16913 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16914 {
AzureIoTClient 23:1111ee8bcba4 16915 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16916 }
AzureIoTClient 23:1111ee8bcba4 16917 else
AzureIoTClient 23:1111ee8bcba4 16918 {
AzureIoTClient 23:1111ee8bcba4 16919 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 16920 {
AzureIoTClient 28:add19eb7defa 16921 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16922 }
AzureIoTClient 28:add19eb7defa 16923 else
AzureIoTClient 28:add19eb7defa 16924 {
AzureIoTClient 28:add19eb7defa 16925 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 11);
AzureIoTClient 28:add19eb7defa 16926 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16927 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16928 {
AzureIoTClient 28:add19eb7defa 16929 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16930 }
AzureIoTClient 28:add19eb7defa 16931 else
AzureIoTClient 28:add19eb7defa 16932 {
AzureIoTClient 28:add19eb7defa 16933 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16934 if ((get_single_value_result = amqpvalue_get_sequence_no(item_value, group_sequence_value)) != 0)
AzureIoTClient 28:add19eb7defa 16935 {
AzureIoTClient 28:add19eb7defa 16936 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16937 }
AzureIoTClient 28:add19eb7defa 16938 else
AzureIoTClient 28:add19eb7defa 16939 {
AzureIoTClient 28:add19eb7defa 16940 result = 0;
AzureIoTClient 28:add19eb7defa 16941 }
AzureIoTClient 28:add19eb7defa 16942 }
AzureIoTClient 28:add19eb7defa 16943 }
AzureIoTClient 28:add19eb7defa 16944 }
AzureIoTClient 28:add19eb7defa 16945 }
AzureIoTClient 28:add19eb7defa 16946
AzureIoTClient 28:add19eb7defa 16947 return result;
Azure.IoT Build 0:6ae2f7bca550 16948 }
Azure.IoT Build 0:6ae2f7bca550 16949
Azure.IoT Build 0:6ae2f7bca550 16950 int properties_set_group_sequence(PROPERTIES_HANDLE properties, sequence_no group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16951 {
AzureIoTClient 28:add19eb7defa 16952 int result;
AzureIoTClient 28:add19eb7defa 16953
AzureIoTClient 28:add19eb7defa 16954 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16955 {
AzureIoTClient 28:add19eb7defa 16956 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16957 }
AzureIoTClient 28:add19eb7defa 16958 else
AzureIoTClient 28:add19eb7defa 16959 {
AzureIoTClient 28:add19eb7defa 16960 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16961 AMQP_VALUE group_sequence_amqp_value = amqpvalue_create_sequence_no(group_sequence_value);
AzureIoTClient 28:add19eb7defa 16962 if (group_sequence_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16963 {
AzureIoTClient 28:add19eb7defa 16964 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16965 }
AzureIoTClient 28:add19eb7defa 16966 else
AzureIoTClient 28:add19eb7defa 16967 {
AzureIoTClient 28:add19eb7defa 16968 if (amqpvalue_set_composite_item(properties_instance->composite_value, 11, group_sequence_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16969 {
AzureIoTClient 28:add19eb7defa 16970 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16971 }
AzureIoTClient 28:add19eb7defa 16972 else
AzureIoTClient 28:add19eb7defa 16973 {
AzureIoTClient 28:add19eb7defa 16974 result = 0;
AzureIoTClient 28:add19eb7defa 16975 }
AzureIoTClient 28:add19eb7defa 16976
AzureIoTClient 28:add19eb7defa 16977 amqpvalue_destroy(group_sequence_amqp_value);
AzureIoTClient 28:add19eb7defa 16978 }
AzureIoTClient 28:add19eb7defa 16979 }
AzureIoTClient 28:add19eb7defa 16980
AzureIoTClient 28:add19eb7defa 16981 return result;
Azure.IoT Build 0:6ae2f7bca550 16982 }
Azure.IoT Build 0:6ae2f7bca550 16983
Azure.IoT Build 0:6ae2f7bca550 16984 int properties_get_reply_to_group_id(PROPERTIES_HANDLE properties, const char** reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16985 {
AzureIoTClient 28:add19eb7defa 16986 int result;
AzureIoTClient 28:add19eb7defa 16987
AzureIoTClient 28:add19eb7defa 16988 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16989 {
AzureIoTClient 28:add19eb7defa 16990 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16991 }
AzureIoTClient 28:add19eb7defa 16992 else
AzureIoTClient 28:add19eb7defa 16993 {
AzureIoTClient 28:add19eb7defa 16994 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16995 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16996 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16997 {
AzureIoTClient 23:1111ee8bcba4 16998 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16999 }
AzureIoTClient 23:1111ee8bcba4 17000 else
AzureIoTClient 23:1111ee8bcba4 17001 {
AzureIoTClient 23:1111ee8bcba4 17002 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 17003 {
AzureIoTClient 28:add19eb7defa 17004 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17005 }
AzureIoTClient 28:add19eb7defa 17006 else
AzureIoTClient 28:add19eb7defa 17007 {
AzureIoTClient 28:add19eb7defa 17008 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 12);
AzureIoTClient 28:add19eb7defa 17009 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17010 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17011 {
AzureIoTClient 28:add19eb7defa 17012 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17013 }
AzureIoTClient 28:add19eb7defa 17014 else
AzureIoTClient 28:add19eb7defa 17015 {
AzureIoTClient 28:add19eb7defa 17016 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17017 if ((get_single_value_result = amqpvalue_get_string(item_value, reply_to_group_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 17018 {
AzureIoTClient 28:add19eb7defa 17019 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17020 }
AzureIoTClient 28:add19eb7defa 17021 else
AzureIoTClient 28:add19eb7defa 17022 {
AzureIoTClient 28:add19eb7defa 17023 result = 0;
AzureIoTClient 28:add19eb7defa 17024 }
AzureIoTClient 28:add19eb7defa 17025 }
AzureIoTClient 28:add19eb7defa 17026 }
AzureIoTClient 28:add19eb7defa 17027 }
AzureIoTClient 28:add19eb7defa 17028 }
AzureIoTClient 28:add19eb7defa 17029
AzureIoTClient 28:add19eb7defa 17030 return result;
Azure.IoT Build 0:6ae2f7bca550 17031 }
Azure.IoT Build 0:6ae2f7bca550 17032
Azure.IoT Build 0:6ae2f7bca550 17033 int properties_set_reply_to_group_id(PROPERTIES_HANDLE properties, const char* reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 17034 {
AzureIoTClient 28:add19eb7defa 17035 int result;
AzureIoTClient 28:add19eb7defa 17036
AzureIoTClient 28:add19eb7defa 17037 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 17038 {
AzureIoTClient 28:add19eb7defa 17039 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17040 }
AzureIoTClient 28:add19eb7defa 17041 else
AzureIoTClient 28:add19eb7defa 17042 {
AzureIoTClient 28:add19eb7defa 17043 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 17044 AMQP_VALUE reply_to_group_id_amqp_value = amqpvalue_create_string(reply_to_group_id_value);
AzureIoTClient 28:add19eb7defa 17045 if (reply_to_group_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17046 {
AzureIoTClient 28:add19eb7defa 17047 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17048 }
AzureIoTClient 28:add19eb7defa 17049 else
AzureIoTClient 28:add19eb7defa 17050 {
AzureIoTClient 28:add19eb7defa 17051 if (amqpvalue_set_composite_item(properties_instance->composite_value, 12, reply_to_group_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17052 {
AzureIoTClient 28:add19eb7defa 17053 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17054 }
AzureIoTClient 28:add19eb7defa 17055 else
AzureIoTClient 28:add19eb7defa 17056 {
AzureIoTClient 28:add19eb7defa 17057 result = 0;
AzureIoTClient 28:add19eb7defa 17058 }
AzureIoTClient 28:add19eb7defa 17059
AzureIoTClient 28:add19eb7defa 17060 amqpvalue_destroy(reply_to_group_id_amqp_value);
AzureIoTClient 28:add19eb7defa 17061 }
AzureIoTClient 28:add19eb7defa 17062 }
AzureIoTClient 28:add19eb7defa 17063
AzureIoTClient 28:add19eb7defa 17064 return result;
Azure.IoT Build 0:6ae2f7bca550 17065 }
Azure.IoT Build 0:6ae2f7bca550 17066
Azure.IoT Build 0:6ae2f7bca550 17067
Azure.IoT Build 0:6ae2f7bca550 17068 /* received */
Azure.IoT Build 0:6ae2f7bca550 17069
Azure.IoT Build 0:6ae2f7bca550 17070 typedef struct RECEIVED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17071 {
AzureIoTClient 28:add19eb7defa 17072 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17073 } RECEIVED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17074
Azure.IoT Build 0:6ae2f7bca550 17075 static RECEIVED_HANDLE received_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17076 {
AzureIoTClient 28:add19eb7defa 17077 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17078 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17079 {
AzureIoTClient 28:add19eb7defa 17080 received_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17081 }
AzureIoTClient 28:add19eb7defa 17082
AzureIoTClient 28:add19eb7defa 17083 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17084 }
Azure.IoT Build 0:6ae2f7bca550 17085
Azure.IoT Build 0:6ae2f7bca550 17086 RECEIVED_HANDLE received_create(uint32_t section_number_value, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17087 {
AzureIoTClient 28:add19eb7defa 17088 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17089 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17090 {
AzureIoTClient 28:add19eb7defa 17091 received_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(35);
AzureIoTClient 28:add19eb7defa 17092 if (received_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17093 {
AzureIoTClient 28:add19eb7defa 17094 free(received_instance);
AzureIoTClient 28:add19eb7defa 17095 received_instance = NULL;
AzureIoTClient 28:add19eb7defa 17096 }
AzureIoTClient 28:add19eb7defa 17097 else
AzureIoTClient 28:add19eb7defa 17098 {
AzureIoTClient 28:add19eb7defa 17099 AMQP_VALUE section_number_amqp_value;
AzureIoTClient 28:add19eb7defa 17100 AMQP_VALUE section_offset_amqp_value;
AzureIoTClient 28:add19eb7defa 17101 int result = 0;
AzureIoTClient 28:add19eb7defa 17102
AzureIoTClient 28:add19eb7defa 17103 section_number_amqp_value = amqpvalue_create_uint(section_number_value);
AzureIoTClient 28:add19eb7defa 17104 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 17105 {
AzureIoTClient 28:add19eb7defa 17106 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17107 }
AzureIoTClient 28:add19eb7defa 17108 section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
AzureIoTClient 28:add19eb7defa 17109 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 17110 {
AzureIoTClient 28:add19eb7defa 17111 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17112 }
AzureIoTClient 28:add19eb7defa 17113
AzureIoTClient 28:add19eb7defa 17114 amqpvalue_destroy(section_number_amqp_value);
AzureIoTClient 28:add19eb7defa 17115 amqpvalue_destroy(section_offset_amqp_value);
AzureIoTClient 28:add19eb7defa 17116 }
AzureIoTClient 28:add19eb7defa 17117 }
AzureIoTClient 28:add19eb7defa 17118
AzureIoTClient 28:add19eb7defa 17119 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17120 }
Azure.IoT Build 0:6ae2f7bca550 17121
Azure.IoT Build 0:6ae2f7bca550 17122 RECEIVED_HANDLE received_clone(RECEIVED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17123 {
AzureIoTClient 28:add19eb7defa 17124 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17125 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 17126 {
AzureIoTClient 28:add19eb7defa 17127 received_instance->composite_value = amqpvalue_clone(((RECEIVED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17128 if (received_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17129 {
AzureIoTClient 28:add19eb7defa 17130 free(received_instance);
AzureIoTClient 28:add19eb7defa 17131 received_instance = NULL;
AzureIoTClient 28:add19eb7defa 17132 }
AzureIoTClient 28:add19eb7defa 17133 }
AzureIoTClient 28:add19eb7defa 17134
AzureIoTClient 28:add19eb7defa 17135 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17136 }
Azure.IoT Build 0:6ae2f7bca550 17137
Azure.IoT Build 0:6ae2f7bca550 17138 void received_destroy(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 17139 {
AzureIoTClient 28:add19eb7defa 17140 if (received != NULL)
AzureIoTClient 28:add19eb7defa 17141 {
AzureIoTClient 28:add19eb7defa 17142 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17143 amqpvalue_destroy(received_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17144 free(received_instance);
AzureIoTClient 28:add19eb7defa 17145 }
Azure.IoT Build 0:6ae2f7bca550 17146 }
Azure.IoT Build 0:6ae2f7bca550 17147
Azure.IoT Build 0:6ae2f7bca550 17148 AMQP_VALUE amqpvalue_create_received(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 17149 {
AzureIoTClient 28:add19eb7defa 17150 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17151
AzureIoTClient 28:add19eb7defa 17152 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17153 {
AzureIoTClient 28:add19eb7defa 17154 result = NULL;
AzureIoTClient 28:add19eb7defa 17155 }
AzureIoTClient 28:add19eb7defa 17156 else
AzureIoTClient 28:add19eb7defa 17157 {
AzureIoTClient 28:add19eb7defa 17158 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17159 result = amqpvalue_clone(received_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17160 }
AzureIoTClient 28:add19eb7defa 17161
AzureIoTClient 28:add19eb7defa 17162 return result;
Azure.IoT Build 0:6ae2f7bca550 17163 }
Azure.IoT Build 0:6ae2f7bca550 17164
Azure.IoT Build 0:6ae2f7bca550 17165 bool is_received_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17166 {
AzureIoTClient 28:add19eb7defa 17167 bool result;
AzureIoTClient 28:add19eb7defa 17168
AzureIoTClient 28:add19eb7defa 17169 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17170 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17171 (descriptor_ulong == 35))
AzureIoTClient 28:add19eb7defa 17172 {
AzureIoTClient 28:add19eb7defa 17173 result = true;
AzureIoTClient 28:add19eb7defa 17174 }
AzureIoTClient 28:add19eb7defa 17175 else
AzureIoTClient 28:add19eb7defa 17176 {
AzureIoTClient 28:add19eb7defa 17177 result = false;
AzureIoTClient 28:add19eb7defa 17178 }
AzureIoTClient 28:add19eb7defa 17179
AzureIoTClient 28:add19eb7defa 17180 return result;
Azure.IoT Build 0:6ae2f7bca550 17181 }
Azure.IoT Build 0:6ae2f7bca550 17182
Azure.IoT Build 0:6ae2f7bca550 17183
Azure.IoT Build 0:6ae2f7bca550 17184 int amqpvalue_get_received(AMQP_VALUE value, RECEIVED_HANDLE* received_handle)
Azure.IoT Build 0:6ae2f7bca550 17185 {
AzureIoTClient 28:add19eb7defa 17186 int result;
AzureIoTClient 28:add19eb7defa 17187 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received_create_internal();
AzureIoTClient 28:add19eb7defa 17188 *received_handle = received_instance;
AzureIoTClient 28:add19eb7defa 17189 if (*received_handle == NULL)
AzureIoTClient 28:add19eb7defa 17190 {
AzureIoTClient 28:add19eb7defa 17191 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17192 }
AzureIoTClient 28:add19eb7defa 17193 else
AzureIoTClient 28:add19eb7defa 17194 {
AzureIoTClient 28:add19eb7defa 17195 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17196 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17197 {
AzureIoTClient 28:add19eb7defa 17198 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17199 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17200 }
AzureIoTClient 28:add19eb7defa 17201 else
AzureIoTClient 28:add19eb7defa 17202 {
AzureIoTClient 23:1111ee8bcba4 17203 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17204 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17205 {
AzureIoTClient 23:1111ee8bcba4 17206 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17207 }
AzureIoTClient 23:1111ee8bcba4 17208 else
AzureIoTClient 23:1111ee8bcba4 17209 {
AzureIoTClient 28:add19eb7defa 17210 do
AzureIoTClient 28:add19eb7defa 17211 {
AzureIoTClient 28:add19eb7defa 17212 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17213 /* section-number */
AzureIoTClient 28:add19eb7defa 17214 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17215 {
AzureIoTClient 23:1111ee8bcba4 17216 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17217 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17218 {
AzureIoTClient 28:add19eb7defa 17219 {
AzureIoTClient 28:add19eb7defa 17220 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17221 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17222 break;
AzureIoTClient 28:add19eb7defa 17223 }
AzureIoTClient 28:add19eb7defa 17224 }
AzureIoTClient 28:add19eb7defa 17225 else
AzureIoTClient 28:add19eb7defa 17226 {
AzureIoTClient 28:add19eb7defa 17227 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17228 {
AzureIoTClient 28:add19eb7defa 17229 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17230 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17231 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17232 break;
AzureIoTClient 28:add19eb7defa 17233 }
AzureIoTClient 28:add19eb7defa 17234 else
AzureIoTClient 28:add19eb7defa 17235 {
AzureIoTClient 28:add19eb7defa 17236 uint32_t section_number;
AzureIoTClient 28:add19eb7defa 17237 if (amqpvalue_get_uint(item_value, &section_number) != 0)
AzureIoTClient 28:add19eb7defa 17238 {
AzureIoTClient 28:add19eb7defa 17239 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17240 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17242 break;
AzureIoTClient 28:add19eb7defa 17243 }
AzureIoTClient 28:add19eb7defa 17244 }
AzureIoTClient 28:add19eb7defa 17245
AzureIoTClient 28:add19eb7defa 17246 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17247 }
AzureIoTClient 28:add19eb7defa 17248 }
AzureIoTClient 28:add19eb7defa 17249 else
AzureIoTClient 28:add19eb7defa 17250 {
AzureIoTClient 28:add19eb7defa 17251 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17252 }
AzureIoTClient 28:add19eb7defa 17253 /* section-offset */
AzureIoTClient 28:add19eb7defa 17254 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 17255 {
AzureIoTClient 23:1111ee8bcba4 17256 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 17257 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17258 {
AzureIoTClient 28:add19eb7defa 17259 {
AzureIoTClient 28:add19eb7defa 17260 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17261 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17262 break;
AzureIoTClient 28:add19eb7defa 17263 }
AzureIoTClient 28:add19eb7defa 17264 }
AzureIoTClient 28:add19eb7defa 17265 else
AzureIoTClient 28:add19eb7defa 17266 {
AzureIoTClient 28:add19eb7defa 17267 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17268 {
AzureIoTClient 28:add19eb7defa 17269 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17270 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17271 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17272 break;
AzureIoTClient 28:add19eb7defa 17273 }
AzureIoTClient 28:add19eb7defa 17274 else
AzureIoTClient 28:add19eb7defa 17275 {
AzureIoTClient 28:add19eb7defa 17276 uint64_t section_offset;
AzureIoTClient 28:add19eb7defa 17277 if (amqpvalue_get_ulong(item_value, &section_offset) != 0)
AzureIoTClient 28:add19eb7defa 17278 {
AzureIoTClient 28:add19eb7defa 17279 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17280 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17281 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17282 break;
AzureIoTClient 28:add19eb7defa 17283 }
AzureIoTClient 28:add19eb7defa 17284 }
AzureIoTClient 28:add19eb7defa 17285
AzureIoTClient 28:add19eb7defa 17286 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17287 }
AzureIoTClient 28:add19eb7defa 17288 }
AzureIoTClient 28:add19eb7defa 17289 else
AzureIoTClient 28:add19eb7defa 17290 {
AzureIoTClient 28:add19eb7defa 17291 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17292 }
AzureIoTClient 28:add19eb7defa 17293
AzureIoTClient 28:add19eb7defa 17294 received_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17295
AzureIoTClient 28:add19eb7defa 17296 result = 0;
AzureIoTClient 28:add19eb7defa 17297 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17298 }
AzureIoTClient 28:add19eb7defa 17299 }
AzureIoTClient 28:add19eb7defa 17300 }
AzureIoTClient 28:add19eb7defa 17301
AzureIoTClient 28:add19eb7defa 17302 return result;
Azure.IoT Build 0:6ae2f7bca550 17303 }
Azure.IoT Build 0:6ae2f7bca550 17304
Azure.IoT Build 0:6ae2f7bca550 17305 int received_get_section_number(RECEIVED_HANDLE received, uint32_t* section_number_value)
Azure.IoT Build 0:6ae2f7bca550 17306 {
AzureIoTClient 28:add19eb7defa 17307 int result;
AzureIoTClient 28:add19eb7defa 17308
AzureIoTClient 28:add19eb7defa 17309 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17310 {
AzureIoTClient 28:add19eb7defa 17311 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17312 }
AzureIoTClient 28:add19eb7defa 17313 else
AzureIoTClient 28:add19eb7defa 17314 {
AzureIoTClient 28:add19eb7defa 17315 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17316 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 17317 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17318 {
AzureIoTClient 23:1111ee8bcba4 17319 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17320 }
AzureIoTClient 23:1111ee8bcba4 17321 else
AzureIoTClient 23:1111ee8bcba4 17322 {
AzureIoTClient 23:1111ee8bcba4 17323 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17324 {
AzureIoTClient 28:add19eb7defa 17325 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17326 }
AzureIoTClient 28:add19eb7defa 17327 else
AzureIoTClient 28:add19eb7defa 17328 {
AzureIoTClient 28:add19eb7defa 17329 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 17330 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17331 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17332 {
AzureIoTClient 28:add19eb7defa 17333 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17334 }
AzureIoTClient 28:add19eb7defa 17335 else
AzureIoTClient 28:add19eb7defa 17336 {
AzureIoTClient 28:add19eb7defa 17337 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17338 if ((get_single_value_result = amqpvalue_get_uint(item_value, section_number_value)) != 0)
AzureIoTClient 28:add19eb7defa 17339 {
AzureIoTClient 28:add19eb7defa 17340 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17341 }
AzureIoTClient 28:add19eb7defa 17342 else
AzureIoTClient 28:add19eb7defa 17343 {
AzureIoTClient 28:add19eb7defa 17344 result = 0;
AzureIoTClient 28:add19eb7defa 17345 }
AzureIoTClient 28:add19eb7defa 17346 }
AzureIoTClient 28:add19eb7defa 17347 }
AzureIoTClient 28:add19eb7defa 17348 }
AzureIoTClient 28:add19eb7defa 17349 }
AzureIoTClient 28:add19eb7defa 17350
AzureIoTClient 28:add19eb7defa 17351 return result;
Azure.IoT Build 0:6ae2f7bca550 17352 }
Azure.IoT Build 0:6ae2f7bca550 17353
Azure.IoT Build 0:6ae2f7bca550 17354 int received_set_section_number(RECEIVED_HANDLE received, uint32_t section_number_value)
Azure.IoT Build 0:6ae2f7bca550 17355 {
AzureIoTClient 28:add19eb7defa 17356 int result;
AzureIoTClient 28:add19eb7defa 17357
AzureIoTClient 28:add19eb7defa 17358 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17359 {
AzureIoTClient 28:add19eb7defa 17360 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17361 }
AzureIoTClient 28:add19eb7defa 17362 else
AzureIoTClient 28:add19eb7defa 17363 {
AzureIoTClient 28:add19eb7defa 17364 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17365 AMQP_VALUE section_number_amqp_value = amqpvalue_create_uint(section_number_value);
AzureIoTClient 28:add19eb7defa 17366 if (section_number_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17367 {
AzureIoTClient 28:add19eb7defa 17368 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17369 }
AzureIoTClient 28:add19eb7defa 17370 else
AzureIoTClient 28:add19eb7defa 17371 {
AzureIoTClient 28:add19eb7defa 17372 if (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17373 {
AzureIoTClient 28:add19eb7defa 17374 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17375 }
AzureIoTClient 28:add19eb7defa 17376 else
AzureIoTClient 28:add19eb7defa 17377 {
AzureIoTClient 28:add19eb7defa 17378 result = 0;
AzureIoTClient 28:add19eb7defa 17379 }
AzureIoTClient 28:add19eb7defa 17380
AzureIoTClient 28:add19eb7defa 17381 amqpvalue_destroy(section_number_amqp_value);
AzureIoTClient 28:add19eb7defa 17382 }
AzureIoTClient 28:add19eb7defa 17383 }
AzureIoTClient 28:add19eb7defa 17384
AzureIoTClient 28:add19eb7defa 17385 return result;
Azure.IoT Build 0:6ae2f7bca550 17386 }
Azure.IoT Build 0:6ae2f7bca550 17387
Azure.IoT Build 0:6ae2f7bca550 17388 int received_get_section_offset(RECEIVED_HANDLE received, uint64_t* section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17389 {
AzureIoTClient 28:add19eb7defa 17390 int result;
AzureIoTClient 28:add19eb7defa 17391
AzureIoTClient 28:add19eb7defa 17392 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17393 {
AzureIoTClient 28:add19eb7defa 17394 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17395 }
AzureIoTClient 28:add19eb7defa 17396 else
AzureIoTClient 28:add19eb7defa 17397 {
AzureIoTClient 28:add19eb7defa 17398 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17399 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 17400 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17401 {
AzureIoTClient 23:1111ee8bcba4 17402 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17403 }
AzureIoTClient 23:1111ee8bcba4 17404 else
AzureIoTClient 23:1111ee8bcba4 17405 {
AzureIoTClient 23:1111ee8bcba4 17406 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 17407 {
AzureIoTClient 28:add19eb7defa 17408 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17409 }
AzureIoTClient 28:add19eb7defa 17410 else
AzureIoTClient 28:add19eb7defa 17411 {
AzureIoTClient 28:add19eb7defa 17412 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 17413 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17414 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17415 {
AzureIoTClient 28:add19eb7defa 17416 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17417 }
AzureIoTClient 28:add19eb7defa 17418 else
AzureIoTClient 28:add19eb7defa 17419 {
AzureIoTClient 28:add19eb7defa 17420 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17421 if ((get_single_value_result = amqpvalue_get_ulong(item_value, section_offset_value)) != 0)
AzureIoTClient 28:add19eb7defa 17422 {
AzureIoTClient 28:add19eb7defa 17423 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17424 }
AzureIoTClient 28:add19eb7defa 17425 else
AzureIoTClient 28:add19eb7defa 17426 {
AzureIoTClient 28:add19eb7defa 17427 result = 0;
AzureIoTClient 28:add19eb7defa 17428 }
AzureIoTClient 28:add19eb7defa 17429 }
AzureIoTClient 28:add19eb7defa 17430 }
AzureIoTClient 28:add19eb7defa 17431 }
AzureIoTClient 28:add19eb7defa 17432 }
AzureIoTClient 28:add19eb7defa 17433
AzureIoTClient 28:add19eb7defa 17434 return result;
Azure.IoT Build 0:6ae2f7bca550 17435 }
Azure.IoT Build 0:6ae2f7bca550 17436
Azure.IoT Build 0:6ae2f7bca550 17437 int received_set_section_offset(RECEIVED_HANDLE received, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17438 {
AzureIoTClient 28:add19eb7defa 17439 int result;
AzureIoTClient 28:add19eb7defa 17440
AzureIoTClient 28:add19eb7defa 17441 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17442 {
AzureIoTClient 28:add19eb7defa 17443 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17444 }
AzureIoTClient 28:add19eb7defa 17445 else
AzureIoTClient 28:add19eb7defa 17446 {
AzureIoTClient 28:add19eb7defa 17447 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17448 AMQP_VALUE section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
AzureIoTClient 28:add19eb7defa 17449 if (section_offset_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17450 {
AzureIoTClient 28:add19eb7defa 17451 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17452 }
AzureIoTClient 28:add19eb7defa 17453 else
AzureIoTClient 28:add19eb7defa 17454 {
AzureIoTClient 28:add19eb7defa 17455 if (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17456 {
AzureIoTClient 28:add19eb7defa 17457 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17458 }
AzureIoTClient 28:add19eb7defa 17459 else
AzureIoTClient 28:add19eb7defa 17460 {
AzureIoTClient 28:add19eb7defa 17461 result = 0;
AzureIoTClient 28:add19eb7defa 17462 }
AzureIoTClient 28:add19eb7defa 17463
AzureIoTClient 28:add19eb7defa 17464 amqpvalue_destroy(section_offset_amqp_value);
AzureIoTClient 28:add19eb7defa 17465 }
AzureIoTClient 28:add19eb7defa 17466 }
AzureIoTClient 28:add19eb7defa 17467
AzureIoTClient 28:add19eb7defa 17468 return result;
Azure.IoT Build 0:6ae2f7bca550 17469 }
Azure.IoT Build 0:6ae2f7bca550 17470
Azure.IoT Build 0:6ae2f7bca550 17471
Azure.IoT Build 0:6ae2f7bca550 17472 /* accepted */
Azure.IoT Build 0:6ae2f7bca550 17473
Azure.IoT Build 0:6ae2f7bca550 17474 typedef struct ACCEPTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17475 {
AzureIoTClient 28:add19eb7defa 17476 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17477 } ACCEPTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17478
Azure.IoT Build 0:6ae2f7bca550 17479 static ACCEPTED_HANDLE accepted_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17480 {
AzureIoTClient 28:add19eb7defa 17481 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17482 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17483 {
AzureIoTClient 28:add19eb7defa 17484 accepted_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17485 }
AzureIoTClient 28:add19eb7defa 17486
AzureIoTClient 28:add19eb7defa 17487 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17488 }
Azure.IoT Build 0:6ae2f7bca550 17489
Azure.IoT Build 0:6ae2f7bca550 17490 ACCEPTED_HANDLE accepted_create(void)
Azure.IoT Build 0:6ae2f7bca550 17491 {
AzureIoTClient 28:add19eb7defa 17492 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17493 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17494 {
AzureIoTClient 28:add19eb7defa 17495 accepted_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(36);
AzureIoTClient 28:add19eb7defa 17496 if (accepted_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17497 {
AzureIoTClient 28:add19eb7defa 17498 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17499 accepted_instance = NULL;
AzureIoTClient 28:add19eb7defa 17500 }
AzureIoTClient 28:add19eb7defa 17501 }
AzureIoTClient 28:add19eb7defa 17502
AzureIoTClient 28:add19eb7defa 17503 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17504 }
Azure.IoT Build 0:6ae2f7bca550 17505
Azure.IoT Build 0:6ae2f7bca550 17506 ACCEPTED_HANDLE accepted_clone(ACCEPTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17507 {
AzureIoTClient 28:add19eb7defa 17508 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17509 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17510 {
AzureIoTClient 28:add19eb7defa 17511 accepted_instance->composite_value = amqpvalue_clone(((ACCEPTED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17512 if (accepted_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17513 {
AzureIoTClient 28:add19eb7defa 17514 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17515 accepted_instance = NULL;
AzureIoTClient 28:add19eb7defa 17516 }
AzureIoTClient 28:add19eb7defa 17517 }
AzureIoTClient 28:add19eb7defa 17518
AzureIoTClient 28:add19eb7defa 17519 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17520 }
Azure.IoT Build 0:6ae2f7bca550 17521
Azure.IoT Build 0:6ae2f7bca550 17522 void accepted_destroy(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 17523 {
AzureIoTClient 28:add19eb7defa 17524 if (accepted != NULL)
AzureIoTClient 28:add19eb7defa 17525 {
AzureIoTClient 28:add19eb7defa 17526 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
AzureIoTClient 28:add19eb7defa 17527 amqpvalue_destroy(accepted_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17528 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17529 }
Azure.IoT Build 0:6ae2f7bca550 17530 }
Azure.IoT Build 0:6ae2f7bca550 17531
Azure.IoT Build 0:6ae2f7bca550 17532 AMQP_VALUE amqpvalue_create_accepted(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 17533 {
AzureIoTClient 28:add19eb7defa 17534 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17535
AzureIoTClient 28:add19eb7defa 17536 if (accepted == NULL)
AzureIoTClient 28:add19eb7defa 17537 {
AzureIoTClient 28:add19eb7defa 17538 result = NULL;
AzureIoTClient 28:add19eb7defa 17539 }
AzureIoTClient 28:add19eb7defa 17540 else
AzureIoTClient 28:add19eb7defa 17541 {
AzureIoTClient 28:add19eb7defa 17542 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
AzureIoTClient 28:add19eb7defa 17543 result = amqpvalue_clone(accepted_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17544 }
AzureIoTClient 28:add19eb7defa 17545
AzureIoTClient 28:add19eb7defa 17546 return result;
Azure.IoT Build 0:6ae2f7bca550 17547 }
Azure.IoT Build 0:6ae2f7bca550 17548
Azure.IoT Build 0:6ae2f7bca550 17549 bool is_accepted_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17550 {
AzureIoTClient 28:add19eb7defa 17551 bool result;
AzureIoTClient 28:add19eb7defa 17552
AzureIoTClient 28:add19eb7defa 17553 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17554 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17555 (descriptor_ulong == 36))
AzureIoTClient 28:add19eb7defa 17556 {
AzureIoTClient 28:add19eb7defa 17557 result = true;
AzureIoTClient 28:add19eb7defa 17558 }
AzureIoTClient 28:add19eb7defa 17559 else
AzureIoTClient 28:add19eb7defa 17560 {
AzureIoTClient 28:add19eb7defa 17561 result = false;
AzureIoTClient 28:add19eb7defa 17562 }
AzureIoTClient 28:add19eb7defa 17563
AzureIoTClient 28:add19eb7defa 17564 return result;
Azure.IoT Build 0:6ae2f7bca550 17565 }
Azure.IoT Build 0:6ae2f7bca550 17566
Azure.IoT Build 0:6ae2f7bca550 17567
Azure.IoT Build 0:6ae2f7bca550 17568 int amqpvalue_get_accepted(AMQP_VALUE value, ACCEPTED_HANDLE* accepted_handle)
Azure.IoT Build 0:6ae2f7bca550 17569 {
AzureIoTClient 28:add19eb7defa 17570 int result;
AzureIoTClient 28:add19eb7defa 17571 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted_create_internal();
AzureIoTClient 28:add19eb7defa 17572 *accepted_handle = accepted_instance;
AzureIoTClient 28:add19eb7defa 17573 if (*accepted_handle == NULL)
AzureIoTClient 28:add19eb7defa 17574 {
AzureIoTClient 28:add19eb7defa 17575 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17576 }
AzureIoTClient 28:add19eb7defa 17577 else
AzureIoTClient 28:add19eb7defa 17578 {
AzureIoTClient 28:add19eb7defa 17579 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17580 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17581 {
AzureIoTClient 28:add19eb7defa 17582 accepted_destroy(*accepted_handle);
AzureIoTClient 28:add19eb7defa 17583 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17584 }
AzureIoTClient 28:add19eb7defa 17585 else
AzureIoTClient 28:add19eb7defa 17586 {
AzureIoTClient 23:1111ee8bcba4 17587 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17588 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17589 {
AzureIoTClient 23:1111ee8bcba4 17590 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17591 }
AzureIoTClient 23:1111ee8bcba4 17592 else
AzureIoTClient 23:1111ee8bcba4 17593 {
AzureIoTClient 28:add19eb7defa 17594 do
AzureIoTClient 28:add19eb7defa 17595 {
AzureIoTClient 28:add19eb7defa 17596
AzureIoTClient 28:add19eb7defa 17597 accepted_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17598
AzureIoTClient 28:add19eb7defa 17599 result = 0;
AzureIoTClient 28:add19eb7defa 17600 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17601 }
AzureIoTClient 28:add19eb7defa 17602 }
AzureIoTClient 28:add19eb7defa 17603 }
AzureIoTClient 28:add19eb7defa 17604
AzureIoTClient 28:add19eb7defa 17605 return result;
Azure.IoT Build 0:6ae2f7bca550 17606 }
Azure.IoT Build 0:6ae2f7bca550 17607
Azure.IoT Build 0:6ae2f7bca550 17608
Azure.IoT Build 0:6ae2f7bca550 17609 /* rejected */
Azure.IoT Build 0:6ae2f7bca550 17610
Azure.IoT Build 0:6ae2f7bca550 17611 typedef struct REJECTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17612 {
AzureIoTClient 28:add19eb7defa 17613 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17614 } REJECTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17615
Azure.IoT Build 0:6ae2f7bca550 17616 static REJECTED_HANDLE rejected_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17617 {
AzureIoTClient 28:add19eb7defa 17618 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17619 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17620 {
AzureIoTClient 28:add19eb7defa 17621 rejected_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17622 }
AzureIoTClient 28:add19eb7defa 17623
AzureIoTClient 28:add19eb7defa 17624 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17625 }
Azure.IoT Build 0:6ae2f7bca550 17626
Azure.IoT Build 0:6ae2f7bca550 17627 REJECTED_HANDLE rejected_create(void)
Azure.IoT Build 0:6ae2f7bca550 17628 {
AzureIoTClient 28:add19eb7defa 17629 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17630 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17631 {
AzureIoTClient 28:add19eb7defa 17632 rejected_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(37);
AzureIoTClient 28:add19eb7defa 17633 if (rejected_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17634 {
AzureIoTClient 28:add19eb7defa 17635 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17636 rejected_instance = NULL;
AzureIoTClient 28:add19eb7defa 17637 }
AzureIoTClient 28:add19eb7defa 17638 }
AzureIoTClient 28:add19eb7defa 17639
AzureIoTClient 28:add19eb7defa 17640 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17641 }
Azure.IoT Build 0:6ae2f7bca550 17642
Azure.IoT Build 0:6ae2f7bca550 17643 REJECTED_HANDLE rejected_clone(REJECTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17644 {
AzureIoTClient 28:add19eb7defa 17645 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17646 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17647 {
AzureIoTClient 28:add19eb7defa 17648 rejected_instance->composite_value = amqpvalue_clone(((REJECTED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17649 if (rejected_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17650 {
AzureIoTClient 28:add19eb7defa 17651 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17652 rejected_instance = NULL;
AzureIoTClient 28:add19eb7defa 17653 }
AzureIoTClient 28:add19eb7defa 17654 }
AzureIoTClient 28:add19eb7defa 17655
AzureIoTClient 28:add19eb7defa 17656 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17657 }
Azure.IoT Build 0:6ae2f7bca550 17658
Azure.IoT Build 0:6ae2f7bca550 17659 void rejected_destroy(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 17660 {
AzureIoTClient 28:add19eb7defa 17661 if (rejected != NULL)
AzureIoTClient 28:add19eb7defa 17662 {
AzureIoTClient 28:add19eb7defa 17663 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17664 amqpvalue_destroy(rejected_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17665 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17666 }
Azure.IoT Build 0:6ae2f7bca550 17667 }
Azure.IoT Build 0:6ae2f7bca550 17668
Azure.IoT Build 0:6ae2f7bca550 17669 AMQP_VALUE amqpvalue_create_rejected(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 17670 {
AzureIoTClient 28:add19eb7defa 17671 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17672
AzureIoTClient 28:add19eb7defa 17673 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17674 {
AzureIoTClient 28:add19eb7defa 17675 result = NULL;
AzureIoTClient 28:add19eb7defa 17676 }
AzureIoTClient 28:add19eb7defa 17677 else
AzureIoTClient 28:add19eb7defa 17678 {
AzureIoTClient 28:add19eb7defa 17679 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17680 result = amqpvalue_clone(rejected_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17681 }
AzureIoTClient 28:add19eb7defa 17682
AzureIoTClient 28:add19eb7defa 17683 return result;
Azure.IoT Build 0:6ae2f7bca550 17684 }
Azure.IoT Build 0:6ae2f7bca550 17685
Azure.IoT Build 0:6ae2f7bca550 17686 bool is_rejected_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17687 {
AzureIoTClient 28:add19eb7defa 17688 bool result;
AzureIoTClient 28:add19eb7defa 17689
AzureIoTClient 28:add19eb7defa 17690 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17691 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17692 (descriptor_ulong == 37))
AzureIoTClient 28:add19eb7defa 17693 {
AzureIoTClient 28:add19eb7defa 17694 result = true;
AzureIoTClient 28:add19eb7defa 17695 }
AzureIoTClient 28:add19eb7defa 17696 else
AzureIoTClient 28:add19eb7defa 17697 {
AzureIoTClient 28:add19eb7defa 17698 result = false;
AzureIoTClient 28:add19eb7defa 17699 }
AzureIoTClient 28:add19eb7defa 17700
AzureIoTClient 28:add19eb7defa 17701 return result;
Azure.IoT Build 0:6ae2f7bca550 17702 }
Azure.IoT Build 0:6ae2f7bca550 17703
Azure.IoT Build 0:6ae2f7bca550 17704
Azure.IoT Build 0:6ae2f7bca550 17705 int amqpvalue_get_rejected(AMQP_VALUE value, REJECTED_HANDLE* rejected_handle)
Azure.IoT Build 0:6ae2f7bca550 17706 {
AzureIoTClient 28:add19eb7defa 17707 int result;
AzureIoTClient 28:add19eb7defa 17708 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected_create_internal();
AzureIoTClient 28:add19eb7defa 17709 *rejected_handle = rejected_instance;
AzureIoTClient 28:add19eb7defa 17710 if (*rejected_handle == NULL)
AzureIoTClient 28:add19eb7defa 17711 {
AzureIoTClient 28:add19eb7defa 17712 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17713 }
AzureIoTClient 28:add19eb7defa 17714 else
AzureIoTClient 28:add19eb7defa 17715 {
AzureIoTClient 28:add19eb7defa 17716 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17717 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17718 {
AzureIoTClient 28:add19eb7defa 17719 rejected_destroy(*rejected_handle);
AzureIoTClient 28:add19eb7defa 17720 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17721 }
AzureIoTClient 28:add19eb7defa 17722 else
AzureIoTClient 28:add19eb7defa 17723 {
AzureIoTClient 23:1111ee8bcba4 17724 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17725 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17726 {
AzureIoTClient 23:1111ee8bcba4 17727 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17728 }
AzureIoTClient 23:1111ee8bcba4 17729 else
AzureIoTClient 23:1111ee8bcba4 17730 {
AzureIoTClient 28:add19eb7defa 17731 do
AzureIoTClient 28:add19eb7defa 17732 {
AzureIoTClient 28:add19eb7defa 17733 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17734 /* error */
AzureIoTClient 28:add19eb7defa 17735 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17736 {
AzureIoTClient 23:1111ee8bcba4 17737 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17738 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17739 {
AzureIoTClient 28:add19eb7defa 17740 /* do nothing */
AzureIoTClient 28:add19eb7defa 17741 }
AzureIoTClient 28:add19eb7defa 17742 else
AzureIoTClient 28:add19eb7defa 17743 {
AzureIoTClient 28:add19eb7defa 17744 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17745 {
AzureIoTClient 28:add19eb7defa 17746 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 17747 }
AzureIoTClient 28:add19eb7defa 17748 else
AzureIoTClient 28:add19eb7defa 17749 {
AzureIoTClient 28:add19eb7defa 17750 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 17751 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 17752 {
AzureIoTClient 28:add19eb7defa 17753 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17754 rejected_destroy(*rejected_handle);
AzureIoTClient 28:add19eb7defa 17755 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17756 break;
AzureIoTClient 28:add19eb7defa 17757 }
AzureIoTClient 25:1101516ee67d 17758 else
AzureIoTClient 25:1101516ee67d 17759 {
AzureIoTClient 28:add19eb7defa 17760 error_destroy(error);
AzureIoTClient 28:add19eb7defa 17761 }
AzureIoTClient 28:add19eb7defa 17762 }
AzureIoTClient 28:add19eb7defa 17763
AzureIoTClient 28:add19eb7defa 17764 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17765 }
AzureIoTClient 28:add19eb7defa 17766 }
AzureIoTClient 28:add19eb7defa 17767
AzureIoTClient 28:add19eb7defa 17768 rejected_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17769
AzureIoTClient 28:add19eb7defa 17770 result = 0;
AzureIoTClient 28:add19eb7defa 17771 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17772 }
AzureIoTClient 28:add19eb7defa 17773 }
AzureIoTClient 28:add19eb7defa 17774 }
AzureIoTClient 28:add19eb7defa 17775
AzureIoTClient 28:add19eb7defa 17776 return result;
Azure.IoT Build 0:6ae2f7bca550 17777 }
Azure.IoT Build 0:6ae2f7bca550 17778
Azure.IoT Build 0:6ae2f7bca550 17779 int rejected_get_error(REJECTED_HANDLE rejected, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 17780 {
AzureIoTClient 28:add19eb7defa 17781 int result;
AzureIoTClient 28:add19eb7defa 17782
AzureIoTClient 28:add19eb7defa 17783 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17784 {
AzureIoTClient 28:add19eb7defa 17785 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17786 }
AzureIoTClient 28:add19eb7defa 17787 else
AzureIoTClient 28:add19eb7defa 17788 {
AzureIoTClient 28:add19eb7defa 17789 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17790 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 23:1111ee8bcba4 17791 if (amqpvalue_get_composite_item_count(rejected_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17792 {
AzureIoTClient 23:1111ee8bcba4 17793 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17794 }
AzureIoTClient 23:1111ee8bcba4 17795 else
AzureIoTClient 23:1111ee8bcba4 17796 {
AzureIoTClient 23:1111ee8bcba4 17797 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17798 {
AzureIoTClient 28:add19eb7defa 17799 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17800 }
AzureIoTClient 28:add19eb7defa 17801 else
AzureIoTClient 28:add19eb7defa 17802 {
AzureIoTClient 28:add19eb7defa 17803 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(rejected_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 17804 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17805 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17806 {
AzureIoTClient 28:add19eb7defa 17807 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17808 }
AzureIoTClient 28:add19eb7defa 17809 else
AzureIoTClient 28:add19eb7defa 17810 {
AzureIoTClient 28:add19eb7defa 17811 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17812 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 17813 {
AzureIoTClient 28:add19eb7defa 17814 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17815 }
AzureIoTClient 28:add19eb7defa 17816 else
AzureIoTClient 28:add19eb7defa 17817 {
AzureIoTClient 28:add19eb7defa 17818 result = 0;
AzureIoTClient 28:add19eb7defa 17819 }
AzureIoTClient 28:add19eb7defa 17820 }
AzureIoTClient 28:add19eb7defa 17821 }
AzureIoTClient 28:add19eb7defa 17822 }
AzureIoTClient 28:add19eb7defa 17823 }
AzureIoTClient 28:add19eb7defa 17824
AzureIoTClient 28:add19eb7defa 17825 return result;
Azure.IoT Build 0:6ae2f7bca550 17826 }
Azure.IoT Build 0:6ae2f7bca550 17827
Azure.IoT Build 0:6ae2f7bca550 17828 int rejected_set_error(REJECTED_HANDLE rejected, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 17829 {
AzureIoTClient 28:add19eb7defa 17830 int result;
AzureIoTClient 28:add19eb7defa 17831
AzureIoTClient 28:add19eb7defa 17832 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17833 {
AzureIoTClient 28:add19eb7defa 17834 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17835 }
AzureIoTClient 28:add19eb7defa 17836 else
AzureIoTClient 28:add19eb7defa 17837 {
AzureIoTClient 28:add19eb7defa 17838 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17839 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 17840 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17841 {
AzureIoTClient 28:add19eb7defa 17842 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17843 }
AzureIoTClient 28:add19eb7defa 17844 else
AzureIoTClient 28:add19eb7defa 17845 {
AzureIoTClient 28:add19eb7defa 17846 if (amqpvalue_set_composite_item(rejected_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17847 {
AzureIoTClient 28:add19eb7defa 17848 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17849 }
AzureIoTClient 28:add19eb7defa 17850 else
AzureIoTClient 28:add19eb7defa 17851 {
AzureIoTClient 28:add19eb7defa 17852 result = 0;
AzureIoTClient 28:add19eb7defa 17853 }
AzureIoTClient 28:add19eb7defa 17854
AzureIoTClient 28:add19eb7defa 17855 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 17856 }
AzureIoTClient 28:add19eb7defa 17857 }
AzureIoTClient 28:add19eb7defa 17858
AzureIoTClient 28:add19eb7defa 17859 return result;
Azure.IoT Build 0:6ae2f7bca550 17860 }
Azure.IoT Build 0:6ae2f7bca550 17861
Azure.IoT Build 0:6ae2f7bca550 17862
Azure.IoT Build 0:6ae2f7bca550 17863 /* released */
Azure.IoT Build 0:6ae2f7bca550 17864
Azure.IoT Build 0:6ae2f7bca550 17865 typedef struct RELEASED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17866 {
AzureIoTClient 28:add19eb7defa 17867 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17868 } RELEASED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17869
Azure.IoT Build 0:6ae2f7bca550 17870 static RELEASED_HANDLE released_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17871 {
AzureIoTClient 28:add19eb7defa 17872 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17873 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17874 {
AzureIoTClient 28:add19eb7defa 17875 released_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17876 }
AzureIoTClient 28:add19eb7defa 17877
AzureIoTClient 28:add19eb7defa 17878 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17879 }
Azure.IoT Build 0:6ae2f7bca550 17880
Azure.IoT Build 0:6ae2f7bca550 17881 RELEASED_HANDLE released_create(void)
Azure.IoT Build 0:6ae2f7bca550 17882 {
AzureIoTClient 28:add19eb7defa 17883 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17884 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17885 {
AzureIoTClient 28:add19eb7defa 17886 released_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(38);
AzureIoTClient 28:add19eb7defa 17887 if (released_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17888 {
AzureIoTClient 28:add19eb7defa 17889 free(released_instance);
AzureIoTClient 28:add19eb7defa 17890 released_instance = NULL;
AzureIoTClient 28:add19eb7defa 17891 }
AzureIoTClient 28:add19eb7defa 17892 }
AzureIoTClient 28:add19eb7defa 17893
AzureIoTClient 28:add19eb7defa 17894 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17895 }
Azure.IoT Build 0:6ae2f7bca550 17896
Azure.IoT Build 0:6ae2f7bca550 17897 RELEASED_HANDLE released_clone(RELEASED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17898 {
AzureIoTClient 28:add19eb7defa 17899 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17900 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17901 {
AzureIoTClient 28:add19eb7defa 17902 released_instance->composite_value = amqpvalue_clone(((RELEASED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17903 if (released_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17904 {
AzureIoTClient 28:add19eb7defa 17905 free(released_instance);
AzureIoTClient 28:add19eb7defa 17906 released_instance = NULL;
AzureIoTClient 28:add19eb7defa 17907 }
AzureIoTClient 28:add19eb7defa 17908 }
AzureIoTClient 28:add19eb7defa 17909
AzureIoTClient 28:add19eb7defa 17910 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17911 }
Azure.IoT Build 0:6ae2f7bca550 17912
Azure.IoT Build 0:6ae2f7bca550 17913 void released_destroy(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17914 {
AzureIoTClient 28:add19eb7defa 17915 if (released != NULL)
AzureIoTClient 28:add19eb7defa 17916 {
AzureIoTClient 28:add19eb7defa 17917 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
AzureIoTClient 28:add19eb7defa 17918 amqpvalue_destroy(released_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17919 free(released_instance);
AzureIoTClient 28:add19eb7defa 17920 }
Azure.IoT Build 0:6ae2f7bca550 17921 }
Azure.IoT Build 0:6ae2f7bca550 17922
Azure.IoT Build 0:6ae2f7bca550 17923 AMQP_VALUE amqpvalue_create_released(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17924 {
AzureIoTClient 28:add19eb7defa 17925 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17926
AzureIoTClient 28:add19eb7defa 17927 if (released == NULL)
AzureIoTClient 28:add19eb7defa 17928 {
AzureIoTClient 28:add19eb7defa 17929 result = NULL;
AzureIoTClient 28:add19eb7defa 17930 }
AzureIoTClient 28:add19eb7defa 17931 else
AzureIoTClient 28:add19eb7defa 17932 {
AzureIoTClient 28:add19eb7defa 17933 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
AzureIoTClient 28:add19eb7defa 17934 result = amqpvalue_clone(released_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17935 }
AzureIoTClient 28:add19eb7defa 17936
AzureIoTClient 28:add19eb7defa 17937 return result;
Azure.IoT Build 0:6ae2f7bca550 17938 }
Azure.IoT Build 0:6ae2f7bca550 17939
Azure.IoT Build 0:6ae2f7bca550 17940 bool is_released_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17941 {
AzureIoTClient 28:add19eb7defa 17942 bool result;
AzureIoTClient 28:add19eb7defa 17943
AzureIoTClient 28:add19eb7defa 17944 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17945 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17946 (descriptor_ulong == 38))
AzureIoTClient 28:add19eb7defa 17947 {
AzureIoTClient 28:add19eb7defa 17948 result = true;
AzureIoTClient 28:add19eb7defa 17949 }
AzureIoTClient 28:add19eb7defa 17950 else
AzureIoTClient 28:add19eb7defa 17951 {
AzureIoTClient 28:add19eb7defa 17952 result = false;
AzureIoTClient 28:add19eb7defa 17953 }
AzureIoTClient 28:add19eb7defa 17954
AzureIoTClient 28:add19eb7defa 17955 return result;
Azure.IoT Build 0:6ae2f7bca550 17956 }
Azure.IoT Build 0:6ae2f7bca550 17957
Azure.IoT Build 0:6ae2f7bca550 17958
Azure.IoT Build 0:6ae2f7bca550 17959 int amqpvalue_get_released(AMQP_VALUE value, RELEASED_HANDLE* released_handle)
Azure.IoT Build 0:6ae2f7bca550 17960 {
AzureIoTClient 28:add19eb7defa 17961 int result;
AzureIoTClient 28:add19eb7defa 17962 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released_create_internal();
AzureIoTClient 28:add19eb7defa 17963 *released_handle = released_instance;
AzureIoTClient 28:add19eb7defa 17964 if (*released_handle == NULL)
AzureIoTClient 28:add19eb7defa 17965 {
AzureIoTClient 28:add19eb7defa 17966 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17967 }
AzureIoTClient 28:add19eb7defa 17968 else
AzureIoTClient 28:add19eb7defa 17969 {
AzureIoTClient 28:add19eb7defa 17970 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17971 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17972 {
AzureIoTClient 28:add19eb7defa 17973 released_destroy(*released_handle);
AzureIoTClient 28:add19eb7defa 17974 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17975 }
AzureIoTClient 28:add19eb7defa 17976 else
AzureIoTClient 28:add19eb7defa 17977 {
AzureIoTClient 23:1111ee8bcba4 17978 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17979 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17980 {
AzureIoTClient 23:1111ee8bcba4 17981 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17982 }
AzureIoTClient 23:1111ee8bcba4 17983 else
AzureIoTClient 23:1111ee8bcba4 17984 {
AzureIoTClient 28:add19eb7defa 17985 do
AzureIoTClient 28:add19eb7defa 17986 {
AzureIoTClient 28:add19eb7defa 17987
AzureIoTClient 28:add19eb7defa 17988 released_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17989
AzureIoTClient 28:add19eb7defa 17990 result = 0;
AzureIoTClient 28:add19eb7defa 17991 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17992 }
AzureIoTClient 28:add19eb7defa 17993 }
AzureIoTClient 28:add19eb7defa 17994 }
AzureIoTClient 28:add19eb7defa 17995
AzureIoTClient 28:add19eb7defa 17996 return result;
Azure.IoT Build 0:6ae2f7bca550 17997 }
Azure.IoT Build 0:6ae2f7bca550 17998
Azure.IoT Build 0:6ae2f7bca550 17999
Azure.IoT Build 0:6ae2f7bca550 18000 /* modified */
Azure.IoT Build 0:6ae2f7bca550 18001
Azure.IoT Build 0:6ae2f7bca550 18002 typedef struct MODIFIED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 18003 {
AzureIoTClient 28:add19eb7defa 18004 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 18005 } MODIFIED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 18006
Azure.IoT Build 0:6ae2f7bca550 18007 static MODIFIED_HANDLE modified_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 18008 {
AzureIoTClient 28:add19eb7defa 18009 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18010 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18011 {
AzureIoTClient 28:add19eb7defa 18012 modified_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 18013 }
AzureIoTClient 28:add19eb7defa 18014
AzureIoTClient 28:add19eb7defa 18015 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18016 }
Azure.IoT Build 0:6ae2f7bca550 18017
Azure.IoT Build 0:6ae2f7bca550 18018 MODIFIED_HANDLE modified_create(void)
Azure.IoT Build 0:6ae2f7bca550 18019 {
AzureIoTClient 28:add19eb7defa 18020 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18021 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18022 {
AzureIoTClient 28:add19eb7defa 18023 modified_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(39);
AzureIoTClient 28:add19eb7defa 18024 if (modified_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 18025 {
AzureIoTClient 28:add19eb7defa 18026 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18027 modified_instance = NULL;
AzureIoTClient 28:add19eb7defa 18028 }
AzureIoTClient 28:add19eb7defa 18029 }
AzureIoTClient 28:add19eb7defa 18030
AzureIoTClient 28:add19eb7defa 18031 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18032 }
Azure.IoT Build 0:6ae2f7bca550 18033
Azure.IoT Build 0:6ae2f7bca550 18034 MODIFIED_HANDLE modified_clone(MODIFIED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 18035 {
AzureIoTClient 28:add19eb7defa 18036 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 18037 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 18038 {
AzureIoTClient 28:add19eb7defa 18039 modified_instance->composite_value = amqpvalue_clone(((MODIFIED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 18040 if (modified_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 18041 {
AzureIoTClient 28:add19eb7defa 18042 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18043 modified_instance = NULL;
AzureIoTClient 28:add19eb7defa 18044 }
AzureIoTClient 28:add19eb7defa 18045 }
AzureIoTClient 28:add19eb7defa 18046
AzureIoTClient 28:add19eb7defa 18047 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 18048 }
Azure.IoT Build 0:6ae2f7bca550 18049
Azure.IoT Build 0:6ae2f7bca550 18050 void modified_destroy(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 18051 {
AzureIoTClient 28:add19eb7defa 18052 if (modified != NULL)
AzureIoTClient 28:add19eb7defa 18053 {
AzureIoTClient 28:add19eb7defa 18054 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18055 amqpvalue_destroy(modified_instance->composite_value);
AzureIoTClient 28:add19eb7defa 18056 free(modified_instance);
AzureIoTClient 28:add19eb7defa 18057 }
Azure.IoT Build 0:6ae2f7bca550 18058 }
Azure.IoT Build 0:6ae2f7bca550 18059
Azure.IoT Build 0:6ae2f7bca550 18060 AMQP_VALUE amqpvalue_create_modified(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 18061 {
AzureIoTClient 28:add19eb7defa 18062 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 18063
AzureIoTClient 28:add19eb7defa 18064 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18065 {
AzureIoTClient 28:add19eb7defa 18066 result = NULL;
AzureIoTClient 28:add19eb7defa 18067 }
AzureIoTClient 28:add19eb7defa 18068 else
AzureIoTClient 28:add19eb7defa 18069 {
AzureIoTClient 28:add19eb7defa 18070 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18071 result = amqpvalue_clone(modified_instance->composite_value);
AzureIoTClient 28:add19eb7defa 18072 }
AzureIoTClient 28:add19eb7defa 18073
AzureIoTClient 28:add19eb7defa 18074 return result;
Azure.IoT Build 0:6ae2f7bca550 18075 }
Azure.IoT Build 0:6ae2f7bca550 18076
Azure.IoT Build 0:6ae2f7bca550 18077 bool is_modified_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 18078 {
AzureIoTClient 28:add19eb7defa 18079 bool result;
AzureIoTClient 28:add19eb7defa 18080
AzureIoTClient 28:add19eb7defa 18081 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 18082 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 18083 (descriptor_ulong == 39))
AzureIoTClient 28:add19eb7defa 18084 {
AzureIoTClient 28:add19eb7defa 18085 result = true;
AzureIoTClient 28:add19eb7defa 18086 }
AzureIoTClient 28:add19eb7defa 18087 else
AzureIoTClient 28:add19eb7defa 18088 {
AzureIoTClient 28:add19eb7defa 18089 result = false;
AzureIoTClient 28:add19eb7defa 18090 }
AzureIoTClient 28:add19eb7defa 18091
AzureIoTClient 28:add19eb7defa 18092 return result;
Azure.IoT Build 0:6ae2f7bca550 18093 }
Azure.IoT Build 0:6ae2f7bca550 18094
Azure.IoT Build 0:6ae2f7bca550 18095
Azure.IoT Build 0:6ae2f7bca550 18096 int amqpvalue_get_modified(AMQP_VALUE value, MODIFIED_HANDLE* modified_handle)
Azure.IoT Build 0:6ae2f7bca550 18097 {
AzureIoTClient 28:add19eb7defa 18098 int result;
AzureIoTClient 28:add19eb7defa 18099 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified_create_internal();
AzureIoTClient 28:add19eb7defa 18100 *modified_handle = modified_instance;
AzureIoTClient 28:add19eb7defa 18101 if (*modified_handle == NULL)
AzureIoTClient 28:add19eb7defa 18102 {
AzureIoTClient 28:add19eb7defa 18103 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18104 }
AzureIoTClient 28:add19eb7defa 18105 else
AzureIoTClient 28:add19eb7defa 18106 {
AzureIoTClient 28:add19eb7defa 18107 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 18108 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 18109 {
AzureIoTClient 28:add19eb7defa 18110 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18111 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18112 }
AzureIoTClient 28:add19eb7defa 18113 else
AzureIoTClient 28:add19eb7defa 18114 {
AzureIoTClient 23:1111ee8bcba4 18115 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 18116 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18117 {
AzureIoTClient 23:1111ee8bcba4 18118 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18119 }
AzureIoTClient 23:1111ee8bcba4 18120 else
AzureIoTClient 23:1111ee8bcba4 18121 {
AzureIoTClient 28:add19eb7defa 18122 do
AzureIoTClient 28:add19eb7defa 18123 {
AzureIoTClient 28:add19eb7defa 18124 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 18125 /* delivery-failed */
AzureIoTClient 28:add19eb7defa 18126 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 18127 {
AzureIoTClient 23:1111ee8bcba4 18128 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 18129 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18130 {
AzureIoTClient 28:add19eb7defa 18131 /* do nothing */
AzureIoTClient 28:add19eb7defa 18132 }
AzureIoTClient 28:add19eb7defa 18133 else
AzureIoTClient 28:add19eb7defa 18134 {
AzureIoTClient 28:add19eb7defa 18135 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18136 {
AzureIoTClient 28:add19eb7defa 18137 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18138 }
AzureIoTClient 28:add19eb7defa 18139 else
AzureIoTClient 28:add19eb7defa 18140 {
AzureIoTClient 28:add19eb7defa 18141 bool delivery_failed;
AzureIoTClient 28:add19eb7defa 18142 if (amqpvalue_get_boolean(item_value, &delivery_failed) != 0)
AzureIoTClient 28:add19eb7defa 18143 {
AzureIoTClient 28:add19eb7defa 18144 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18145 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18146 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18147 break;
AzureIoTClient 28:add19eb7defa 18148 }
AzureIoTClient 28:add19eb7defa 18149 }
AzureIoTClient 28:add19eb7defa 18150
AzureIoTClient 28:add19eb7defa 18151 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18152 }
AzureIoTClient 28:add19eb7defa 18153 }
AzureIoTClient 28:add19eb7defa 18154 /* undeliverable-here */
AzureIoTClient 28:add19eb7defa 18155 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 18156 {
AzureIoTClient 23:1111ee8bcba4 18157 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 18158 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18159 {
AzureIoTClient 28:add19eb7defa 18160 /* do nothing */
AzureIoTClient 28:add19eb7defa 18161 }
AzureIoTClient 28:add19eb7defa 18162 else
AzureIoTClient 28:add19eb7defa 18163 {
AzureIoTClient 28:add19eb7defa 18164 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18165 {
AzureIoTClient 28:add19eb7defa 18166 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18167 }
AzureIoTClient 28:add19eb7defa 18168 else
AzureIoTClient 28:add19eb7defa 18169 {
AzureIoTClient 28:add19eb7defa 18170 bool undeliverable_here;
AzureIoTClient 28:add19eb7defa 18171 if (amqpvalue_get_boolean(item_value, &undeliverable_here) != 0)
AzureIoTClient 28:add19eb7defa 18172 {
AzureIoTClient 28:add19eb7defa 18173 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18174 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18175 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18176 break;
AzureIoTClient 28:add19eb7defa 18177 }
AzureIoTClient 28:add19eb7defa 18178 }
AzureIoTClient 28:add19eb7defa 18179
AzureIoTClient 28:add19eb7defa 18180 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18181 }
AzureIoTClient 28:add19eb7defa 18182 }
AzureIoTClient 28:add19eb7defa 18183 /* message-annotations */
AzureIoTClient 28:add19eb7defa 18184 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 18185 {
AzureIoTClient 23:1111ee8bcba4 18186 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 18187 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18188 {
AzureIoTClient 28:add19eb7defa 18189 /* do nothing */
AzureIoTClient 28:add19eb7defa 18190 }
AzureIoTClient 28:add19eb7defa 18191 else
AzureIoTClient 28:add19eb7defa 18192 {
AzureIoTClient 28:add19eb7defa 18193 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18194 {
AzureIoTClient 28:add19eb7defa 18195 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18196 }
AzureIoTClient 28:add19eb7defa 18197 else
AzureIoTClient 28:add19eb7defa 18198 {
AzureIoTClient 28:add19eb7defa 18199 fields message_annotations;
AzureIoTClient 28:add19eb7defa 18200 if (amqpvalue_get_fields(item_value, &message_annotations) != 0)
AzureIoTClient 28:add19eb7defa 18201 {
AzureIoTClient 28:add19eb7defa 18202 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18203 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18204 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18205 break;
AzureIoTClient 28:add19eb7defa 18206 }
AzureIoTClient 28:add19eb7defa 18207 }
AzureIoTClient 28:add19eb7defa 18208
AzureIoTClient 28:add19eb7defa 18209 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18210 }
AzureIoTClient 28:add19eb7defa 18211 }
AzureIoTClient 28:add19eb7defa 18212
AzureIoTClient 28:add19eb7defa 18213 modified_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 18214
AzureIoTClient 28:add19eb7defa 18215 result = 0;
AzureIoTClient 28:add19eb7defa 18216 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 18217 }
AzureIoTClient 28:add19eb7defa 18218 }
AzureIoTClient 28:add19eb7defa 18219 }
AzureIoTClient 28:add19eb7defa 18220
AzureIoTClient 28:add19eb7defa 18221 return result;
Azure.IoT Build 0:6ae2f7bca550 18222 }
Azure.IoT Build 0:6ae2f7bca550 18223
Azure.IoT Build 0:6ae2f7bca550 18224 int modified_get_delivery_failed(MODIFIED_HANDLE modified, bool* delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 18225 {
AzureIoTClient 28:add19eb7defa 18226 int result;
AzureIoTClient 28:add19eb7defa 18227
AzureIoTClient 28:add19eb7defa 18228 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18229 {
AzureIoTClient 28:add19eb7defa 18230 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18231 }
AzureIoTClient 28:add19eb7defa 18232 else
AzureIoTClient 28:add19eb7defa 18233 {
AzureIoTClient 28:add19eb7defa 18234 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18235 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18236 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18237 {
AzureIoTClient 23:1111ee8bcba4 18238 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18239 }
AzureIoTClient 23:1111ee8bcba4 18240 else
AzureIoTClient 23:1111ee8bcba4 18241 {
AzureIoTClient 23:1111ee8bcba4 18242 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 18243 {
AzureIoTClient 28:add19eb7defa 18244 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18245 }
AzureIoTClient 28:add19eb7defa 18246 else
AzureIoTClient 28:add19eb7defa 18247 {
AzureIoTClient 28:add19eb7defa 18248 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 18249 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18250 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18251 {
AzureIoTClient 28:add19eb7defa 18252 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18253 }
AzureIoTClient 28:add19eb7defa 18254 else
AzureIoTClient 28:add19eb7defa 18255 {
AzureIoTClient 28:add19eb7defa 18256 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18257 if ((get_single_value_result = amqpvalue_get_boolean(item_value, delivery_failed_value)) != 0)
AzureIoTClient 28:add19eb7defa 18258 {
AzureIoTClient 28:add19eb7defa 18259 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18260 }
AzureIoTClient 28:add19eb7defa 18261 else
AzureIoTClient 28:add19eb7defa 18262 {
AzureIoTClient 28:add19eb7defa 18263 result = 0;
AzureIoTClient 28:add19eb7defa 18264 }
AzureIoTClient 28:add19eb7defa 18265 }
AzureIoTClient 28:add19eb7defa 18266 }
AzureIoTClient 28:add19eb7defa 18267 }
AzureIoTClient 28:add19eb7defa 18268 }
AzureIoTClient 28:add19eb7defa 18269
AzureIoTClient 28:add19eb7defa 18270 return result;
Azure.IoT Build 0:6ae2f7bca550 18271 }
Azure.IoT Build 0:6ae2f7bca550 18272
Azure.IoT Build 0:6ae2f7bca550 18273 int modified_set_delivery_failed(MODIFIED_HANDLE modified, bool delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 18274 {
AzureIoTClient 28:add19eb7defa 18275 int result;
AzureIoTClient 28:add19eb7defa 18276
AzureIoTClient 28:add19eb7defa 18277 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18278 {
AzureIoTClient 28:add19eb7defa 18279 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18280 }
AzureIoTClient 28:add19eb7defa 18281 else
AzureIoTClient 28:add19eb7defa 18282 {
AzureIoTClient 28:add19eb7defa 18283 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18284 AMQP_VALUE delivery_failed_amqp_value = amqpvalue_create_boolean(delivery_failed_value);
AzureIoTClient 28:add19eb7defa 18285 if (delivery_failed_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18286 {
AzureIoTClient 28:add19eb7defa 18287 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18288 }
AzureIoTClient 28:add19eb7defa 18289 else
AzureIoTClient 28:add19eb7defa 18290 {
AzureIoTClient 28:add19eb7defa 18291 if (amqpvalue_set_composite_item(modified_instance->composite_value, 0, delivery_failed_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18292 {
AzureIoTClient 28:add19eb7defa 18293 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18294 }
AzureIoTClient 28:add19eb7defa 18295 else
AzureIoTClient 28:add19eb7defa 18296 {
AzureIoTClient 28:add19eb7defa 18297 result = 0;
AzureIoTClient 28:add19eb7defa 18298 }
AzureIoTClient 28:add19eb7defa 18299
AzureIoTClient 28:add19eb7defa 18300 amqpvalue_destroy(delivery_failed_amqp_value);
AzureIoTClient 28:add19eb7defa 18301 }
AzureIoTClient 28:add19eb7defa 18302 }
AzureIoTClient 28:add19eb7defa 18303
AzureIoTClient 28:add19eb7defa 18304 return result;
Azure.IoT Build 0:6ae2f7bca550 18305 }
Azure.IoT Build 0:6ae2f7bca550 18306
Azure.IoT Build 0:6ae2f7bca550 18307 int modified_get_undeliverable_here(MODIFIED_HANDLE modified, bool* undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 18308 {
AzureIoTClient 28:add19eb7defa 18309 int result;
AzureIoTClient 28:add19eb7defa 18310
AzureIoTClient 28:add19eb7defa 18311 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18312 {
AzureIoTClient 28:add19eb7defa 18313 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18314 }
AzureIoTClient 28:add19eb7defa 18315 else
AzureIoTClient 28:add19eb7defa 18316 {
AzureIoTClient 28:add19eb7defa 18317 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18318 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18319 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18320 {
AzureIoTClient 23:1111ee8bcba4 18321 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18322 }
AzureIoTClient 23:1111ee8bcba4 18323 else
AzureIoTClient 23:1111ee8bcba4 18324 {
AzureIoTClient 23:1111ee8bcba4 18325 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 18326 {
AzureIoTClient 28:add19eb7defa 18327 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18328 }
AzureIoTClient 28:add19eb7defa 18329 else
AzureIoTClient 28:add19eb7defa 18330 {
AzureIoTClient 28:add19eb7defa 18331 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 18332 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18333 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18334 {
AzureIoTClient 28:add19eb7defa 18335 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18336 }
AzureIoTClient 28:add19eb7defa 18337 else
AzureIoTClient 28:add19eb7defa 18338 {
AzureIoTClient 28:add19eb7defa 18339 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18340 if ((get_single_value_result = amqpvalue_get_boolean(item_value, undeliverable_here_value)) != 0)
AzureIoTClient 28:add19eb7defa 18341 {
AzureIoTClient 28:add19eb7defa 18342 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18343 }
AzureIoTClient 28:add19eb7defa 18344 else
AzureIoTClient 28:add19eb7defa 18345 {
AzureIoTClient 28:add19eb7defa 18346 result = 0;
AzureIoTClient 28:add19eb7defa 18347 }
AzureIoTClient 28:add19eb7defa 18348 }
AzureIoTClient 28:add19eb7defa 18349 }
AzureIoTClient 28:add19eb7defa 18350 }
AzureIoTClient 28:add19eb7defa 18351 }
AzureIoTClient 28:add19eb7defa 18352
AzureIoTClient 28:add19eb7defa 18353 return result;
Azure.IoT Build 0:6ae2f7bca550 18354 }
Azure.IoT Build 0:6ae2f7bca550 18355
Azure.IoT Build 0:6ae2f7bca550 18356 int modified_set_undeliverable_here(MODIFIED_HANDLE modified, bool undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 18357 {
AzureIoTClient 28:add19eb7defa 18358 int result;
AzureIoTClient 28:add19eb7defa 18359
AzureIoTClient 28:add19eb7defa 18360 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18361 {
AzureIoTClient 28:add19eb7defa 18362 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18363 }
AzureIoTClient 28:add19eb7defa 18364 else
AzureIoTClient 28:add19eb7defa 18365 {
AzureIoTClient 28:add19eb7defa 18366 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18367 AMQP_VALUE undeliverable_here_amqp_value = amqpvalue_create_boolean(undeliverable_here_value);
AzureIoTClient 28:add19eb7defa 18368 if (undeliverable_here_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18369 {
AzureIoTClient 28:add19eb7defa 18370 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18371 }
AzureIoTClient 28:add19eb7defa 18372 else
AzureIoTClient 28:add19eb7defa 18373 {
AzureIoTClient 28:add19eb7defa 18374 if (amqpvalue_set_composite_item(modified_instance->composite_value, 1, undeliverable_here_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18375 {
AzureIoTClient 28:add19eb7defa 18376 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18377 }
AzureIoTClient 28:add19eb7defa 18378 else
AzureIoTClient 28:add19eb7defa 18379 {
AzureIoTClient 28:add19eb7defa 18380 result = 0;
AzureIoTClient 28:add19eb7defa 18381 }
AzureIoTClient 28:add19eb7defa 18382
AzureIoTClient 28:add19eb7defa 18383 amqpvalue_destroy(undeliverable_here_amqp_value);
AzureIoTClient 28:add19eb7defa 18384 }
AzureIoTClient 28:add19eb7defa 18385 }
AzureIoTClient 28:add19eb7defa 18386
AzureIoTClient 28:add19eb7defa 18387 return result;
Azure.IoT Build 0:6ae2f7bca550 18388 }
Azure.IoT Build 0:6ae2f7bca550 18389
Azure.IoT Build 0:6ae2f7bca550 18390 int modified_get_message_annotations(MODIFIED_HANDLE modified, fields* message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 18391 {
AzureIoTClient 28:add19eb7defa 18392 int result;
AzureIoTClient 28:add19eb7defa 18393
AzureIoTClient 28:add19eb7defa 18394 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18395 {
AzureIoTClient 28:add19eb7defa 18396 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18397 }
AzureIoTClient 28:add19eb7defa 18398 else
AzureIoTClient 28:add19eb7defa 18399 {
AzureIoTClient 28:add19eb7defa 18400 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18401 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18402 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18403 {
AzureIoTClient 23:1111ee8bcba4 18404 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18405 }
AzureIoTClient 23:1111ee8bcba4 18406 else
AzureIoTClient 23:1111ee8bcba4 18407 {
AzureIoTClient 23:1111ee8bcba4 18408 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 18409 {
AzureIoTClient 28:add19eb7defa 18410 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18411 }
AzureIoTClient 28:add19eb7defa 18412 else
AzureIoTClient 28:add19eb7defa 18413 {
AzureIoTClient 28:add19eb7defa 18414 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 18415 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18416 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18417 {
AzureIoTClient 28:add19eb7defa 18418 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18419 }
AzureIoTClient 28:add19eb7defa 18420 else
AzureIoTClient 28:add19eb7defa 18421 {
AzureIoTClient 28:add19eb7defa 18422 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18423 if ((get_single_value_result = amqpvalue_get_fields(item_value, message_annotations_value)) != 0)
AzureIoTClient 28:add19eb7defa 18424 {
AzureIoTClient 28:add19eb7defa 18425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18426 }
AzureIoTClient 28:add19eb7defa 18427 else
AzureIoTClient 28:add19eb7defa 18428 {
AzureIoTClient 28:add19eb7defa 18429 result = 0;
AzureIoTClient 28:add19eb7defa 18430 }
AzureIoTClient 28:add19eb7defa 18431 }
AzureIoTClient 28:add19eb7defa 18432 }
AzureIoTClient 28:add19eb7defa 18433 }
AzureIoTClient 28:add19eb7defa 18434 }
AzureIoTClient 28:add19eb7defa 18435
AzureIoTClient 28:add19eb7defa 18436 return result;
Azure.IoT Build 0:6ae2f7bca550 18437 }
Azure.IoT Build 0:6ae2f7bca550 18438
Azure.IoT Build 0:6ae2f7bca550 18439 int modified_set_message_annotations(MODIFIED_HANDLE modified, fields message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 18440 {
AzureIoTClient 28:add19eb7defa 18441 int result;
AzureIoTClient 28:add19eb7defa 18442
AzureIoTClient 28:add19eb7defa 18443 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18444 {
AzureIoTClient 28:add19eb7defa 18445 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18446 }
AzureIoTClient 28:add19eb7defa 18447 else
AzureIoTClient 28:add19eb7defa 18448 {
AzureIoTClient 28:add19eb7defa 18449 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18450 AMQP_VALUE message_annotations_amqp_value = amqpvalue_create_fields(message_annotations_value);
AzureIoTClient 28:add19eb7defa 18451 if (message_annotations_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18452 {
AzureIoTClient 28:add19eb7defa 18453 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18454 }
AzureIoTClient 28:add19eb7defa 18455 else
AzureIoTClient 28:add19eb7defa 18456 {
AzureIoTClient 28:add19eb7defa 18457 if (amqpvalue_set_composite_item(modified_instance->composite_value, 2, message_annotations_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18458 {
AzureIoTClient 28:add19eb7defa 18459 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18460 }
AzureIoTClient 28:add19eb7defa 18461 else
AzureIoTClient 28:add19eb7defa 18462 {
AzureIoTClient 28:add19eb7defa 18463 result = 0;
AzureIoTClient 28:add19eb7defa 18464 }
AzureIoTClient 28:add19eb7defa 18465
AzureIoTClient 28:add19eb7defa 18466 amqpvalue_destroy(message_annotations_amqp_value);
AzureIoTClient 28:add19eb7defa 18467 }
AzureIoTClient 28:add19eb7defa 18468 }
AzureIoTClient 28:add19eb7defa 18469
AzureIoTClient 28:add19eb7defa 18470 return result;
AzureIoTClient 28:add19eb7defa 18471 }
AzureIoTClient 28:add19eb7defa 18472
AzureIoTClient 28:add19eb7defa 18473