A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Committer:
AzureIoTClient
Date:
Fri Jun 30 10:41:22 2017 -0700
Revision:
28:add19eb7defa
Parent:
25:1101516ee67d
Child:
29:4a11413cf217
1.1.18

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 28:add19eb7defa 1601 result = 0;
AzureIoTClient 28:add19eb7defa 1602 }
AzureIoTClient 28:add19eb7defa 1603 }
AzureIoTClient 28:add19eb7defa 1604 }
AzureIoTClient 28:add19eb7defa 1605 }
AzureIoTClient 28:add19eb7defa 1606 else
AzureIoTClient 28:add19eb7defa 1607 {
AzureIoTClient 28:add19eb7defa 1608 result = 0;
AzureIoTClient 28:add19eb7defa 1609 }
AzureIoTClient 28:add19eb7defa 1610 }
AzureIoTClient 28:add19eb7defa 1611 }
AzureIoTClient 28:add19eb7defa 1612 }
AzureIoTClient 28:add19eb7defa 1613 }
AzureIoTClient 28:add19eb7defa 1614 }
AzureIoTClient 28:add19eb7defa 1615
AzureIoTClient 28:add19eb7defa 1616 return result;
Azure.IoT Build 0:6ae2f7bca550 1617 }
Azure.IoT Build 0:6ae2f7bca550 1618
Azure.IoT Build 0:6ae2f7bca550 1619 int open_set_outgoing_locales(OPEN_HANDLE open, AMQP_VALUE outgoing_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1620 {
AzureIoTClient 28:add19eb7defa 1621 int result;
AzureIoTClient 28:add19eb7defa 1622
AzureIoTClient 28:add19eb7defa 1623 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1624 {
AzureIoTClient 28:add19eb7defa 1625 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1626 }
AzureIoTClient 28:add19eb7defa 1627 else
AzureIoTClient 28:add19eb7defa 1628 {
AzureIoTClient 28:add19eb7defa 1629 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1630 AMQP_VALUE outgoing_locales_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1631 if (outgoing_locales_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1632 {
AzureIoTClient 23:1111ee8bcba4 1633 outgoing_locales_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1634 }
AzureIoTClient 23:1111ee8bcba4 1635 else
AzureIoTClient 23:1111ee8bcba4 1636 {
AzureIoTClient 23:1111ee8bcba4 1637 outgoing_locales_amqp_value = amqpvalue_clone(outgoing_locales_value);
AzureIoTClient 23:1111ee8bcba4 1638 }
AzureIoTClient 28:add19eb7defa 1639 if (outgoing_locales_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1640 {
AzureIoTClient 28:add19eb7defa 1641 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1642 }
AzureIoTClient 28:add19eb7defa 1643 else
AzureIoTClient 28:add19eb7defa 1644 {
AzureIoTClient 28:add19eb7defa 1645 if (amqpvalue_set_composite_item(open_instance->composite_value, 5, outgoing_locales_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1646 {
AzureIoTClient 28:add19eb7defa 1647 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1648 }
AzureIoTClient 28:add19eb7defa 1649 else
AzureIoTClient 28:add19eb7defa 1650 {
AzureIoTClient 28:add19eb7defa 1651 result = 0;
AzureIoTClient 28:add19eb7defa 1652 }
AzureIoTClient 28:add19eb7defa 1653
AzureIoTClient 28:add19eb7defa 1654 amqpvalue_destroy(outgoing_locales_amqp_value);
AzureIoTClient 28:add19eb7defa 1655 }
AzureIoTClient 28:add19eb7defa 1656 }
AzureIoTClient 28:add19eb7defa 1657
AzureIoTClient 28:add19eb7defa 1658 return result;
Azure.IoT Build 0:6ae2f7bca550 1659 }
Azure.IoT Build 0:6ae2f7bca550 1660
Azure.IoT Build 0:6ae2f7bca550 1661 int open_get_incoming_locales(OPEN_HANDLE open, AMQP_VALUE* incoming_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1662 {
AzureIoTClient 28:add19eb7defa 1663 int result;
AzureIoTClient 28:add19eb7defa 1664
AzureIoTClient 28:add19eb7defa 1665 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1666 {
AzureIoTClient 28:add19eb7defa 1667 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1668 }
AzureIoTClient 28:add19eb7defa 1669 else
AzureIoTClient 28:add19eb7defa 1670 {
AzureIoTClient 28:add19eb7defa 1671 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1672 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1673 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1674 {
AzureIoTClient 23:1111ee8bcba4 1675 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1676 }
AzureIoTClient 23:1111ee8bcba4 1677 else
AzureIoTClient 23:1111ee8bcba4 1678 {
AzureIoTClient 23:1111ee8bcba4 1679 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 1680 {
AzureIoTClient 28:add19eb7defa 1681 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1682 }
AzureIoTClient 28:add19eb7defa 1683 else
AzureIoTClient 28:add19eb7defa 1684 {
AzureIoTClient 28:add19eb7defa 1685 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 1686 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1687 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1688 {
AzureIoTClient 28:add19eb7defa 1689 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1690 }
AzureIoTClient 28:add19eb7defa 1691 else
AzureIoTClient 28:add19eb7defa 1692 {
AzureIoTClient 28:add19eb7defa 1693 ietf_language_tag incoming_locales_single_value;
AzureIoTClient 28:add19eb7defa 1694 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1695 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1696 {
AzureIoTClient 28:add19eb7defa 1697 get_single_value_result = amqpvalue_get_ietf_language_tag(item_value, &incoming_locales_single_value);
AzureIoTClient 28:add19eb7defa 1698 }
AzureIoTClient 28:add19eb7defa 1699 else
AzureIoTClient 28:add19eb7defa 1700 {
AzureIoTClient 28:add19eb7defa 1701 (void)memset((void*)&incoming_locales_single_value, 0, sizeof(incoming_locales_single_value));
AzureIoTClient 28:add19eb7defa 1702 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1703 }
AzureIoTClient 28:add19eb7defa 1704
AzureIoTClient 28:add19eb7defa 1705 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, incoming_locales_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1706 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1707 {
AzureIoTClient 28:add19eb7defa 1708 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1709 }
AzureIoTClient 28:add19eb7defa 1710 else
AzureIoTClient 28:add19eb7defa 1711 {
AzureIoTClient 28:add19eb7defa 1712 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1713 {
AzureIoTClient 28:add19eb7defa 1714 *incoming_locales_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1715 if (*incoming_locales_value == NULL)
AzureIoTClient 28:add19eb7defa 1716 {
AzureIoTClient 28:add19eb7defa 1717 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1718 }
AzureIoTClient 28:add19eb7defa 1719 else
AzureIoTClient 28:add19eb7defa 1720 {
AzureIoTClient 28:add19eb7defa 1721 AMQP_VALUE single_amqp_value = amqpvalue_create_ietf_language_tag(incoming_locales_single_value);
AzureIoTClient 28:add19eb7defa 1722 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1723 {
AzureIoTClient 28:add19eb7defa 1724 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 28:add19eb7defa 1725 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1726 }
AzureIoTClient 28:add19eb7defa 1727 else
AzureIoTClient 28:add19eb7defa 1728 {
AzureIoTClient 28:add19eb7defa 1729 if (amqpvalue_add_array_item(*incoming_locales_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1730 {
AzureIoTClient 28:add19eb7defa 1731 amqpvalue_destroy(*incoming_locales_value);
AzureIoTClient 28:add19eb7defa 1732 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 1733 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1734 }
AzureIoTClient 28:add19eb7defa 1735 else
AzureIoTClient 28:add19eb7defa 1736 {
AzureIoTClient 28:add19eb7defa 1737 result = 0;
AzureIoTClient 28:add19eb7defa 1738 }
AzureIoTClient 28:add19eb7defa 1739 }
AzureIoTClient 28:add19eb7defa 1740 }
AzureIoTClient 28:add19eb7defa 1741 }
AzureIoTClient 28:add19eb7defa 1742 else
AzureIoTClient 28:add19eb7defa 1743 {
AzureIoTClient 28:add19eb7defa 1744 result = 0;
AzureIoTClient 28:add19eb7defa 1745 }
AzureIoTClient 28:add19eb7defa 1746 }
AzureIoTClient 28:add19eb7defa 1747 }
AzureIoTClient 28:add19eb7defa 1748 }
AzureIoTClient 28:add19eb7defa 1749 }
AzureIoTClient 28:add19eb7defa 1750 }
AzureIoTClient 28:add19eb7defa 1751
AzureIoTClient 28:add19eb7defa 1752 return result;
Azure.IoT Build 0:6ae2f7bca550 1753 }
Azure.IoT Build 0:6ae2f7bca550 1754
Azure.IoT Build 0:6ae2f7bca550 1755 int open_set_incoming_locales(OPEN_HANDLE open, AMQP_VALUE incoming_locales_value)
Azure.IoT Build 0:6ae2f7bca550 1756 {
AzureIoTClient 28:add19eb7defa 1757 int result;
AzureIoTClient 28:add19eb7defa 1758
AzureIoTClient 28:add19eb7defa 1759 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1760 {
AzureIoTClient 28:add19eb7defa 1761 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1762 }
AzureIoTClient 28:add19eb7defa 1763 else
AzureIoTClient 28:add19eb7defa 1764 {
AzureIoTClient 28:add19eb7defa 1765 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1766 AMQP_VALUE incoming_locales_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1767 if (incoming_locales_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1768 {
AzureIoTClient 23:1111ee8bcba4 1769 incoming_locales_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1770 }
AzureIoTClient 23:1111ee8bcba4 1771 else
AzureIoTClient 23:1111ee8bcba4 1772 {
AzureIoTClient 23:1111ee8bcba4 1773 incoming_locales_amqp_value = amqpvalue_clone(incoming_locales_value);
AzureIoTClient 23:1111ee8bcba4 1774 }
AzureIoTClient 28:add19eb7defa 1775 if (incoming_locales_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1776 {
AzureIoTClient 28:add19eb7defa 1777 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1778 }
AzureIoTClient 28:add19eb7defa 1779 else
AzureIoTClient 28:add19eb7defa 1780 {
AzureIoTClient 28:add19eb7defa 1781 if (amqpvalue_set_composite_item(open_instance->composite_value, 6, incoming_locales_amqp_value) != 0)
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 result = 0;
AzureIoTClient 28:add19eb7defa 1788 }
AzureIoTClient 28:add19eb7defa 1789
AzureIoTClient 28:add19eb7defa 1790 amqpvalue_destroy(incoming_locales_amqp_value);
AzureIoTClient 28:add19eb7defa 1791 }
AzureIoTClient 28:add19eb7defa 1792 }
AzureIoTClient 28:add19eb7defa 1793
AzureIoTClient 28:add19eb7defa 1794 return result;
Azure.IoT Build 0:6ae2f7bca550 1795 }
Azure.IoT Build 0:6ae2f7bca550 1796
Azure.IoT Build 0:6ae2f7bca550 1797 int open_get_offered_capabilities(OPEN_HANDLE open, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1798 {
AzureIoTClient 28:add19eb7defa 1799 int result;
AzureIoTClient 28:add19eb7defa 1800
AzureIoTClient 28:add19eb7defa 1801 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1802 {
AzureIoTClient 28:add19eb7defa 1803 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1804 }
AzureIoTClient 28:add19eb7defa 1805 else
AzureIoTClient 28:add19eb7defa 1806 {
AzureIoTClient 28:add19eb7defa 1807 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1808 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1809 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1810 {
AzureIoTClient 23:1111ee8bcba4 1811 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1812 }
AzureIoTClient 23:1111ee8bcba4 1813 else
AzureIoTClient 23:1111ee8bcba4 1814 {
AzureIoTClient 23:1111ee8bcba4 1815 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 1816 {
AzureIoTClient 28:add19eb7defa 1817 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1818 }
AzureIoTClient 28:add19eb7defa 1819 else
AzureIoTClient 28:add19eb7defa 1820 {
AzureIoTClient 28:add19eb7defa 1821 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 1822 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1823 (amqpvalue_get_type(item_value) == AMQP_TYPE_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 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 1830 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1831 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1832 {
AzureIoTClient 28:add19eb7defa 1833 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 1834 }
AzureIoTClient 28:add19eb7defa 1835 else
AzureIoTClient 28:add19eb7defa 1836 {
AzureIoTClient 28:add19eb7defa 1837 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 1838 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1839 }
AzureIoTClient 28:add19eb7defa 1840
AzureIoTClient 28:add19eb7defa 1841 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1842 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1843 {
AzureIoTClient 28:add19eb7defa 1844 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1845 }
AzureIoTClient 28:add19eb7defa 1846 else
AzureIoTClient 28:add19eb7defa 1847 {
AzureIoTClient 28:add19eb7defa 1848 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1849 {
AzureIoTClient 28:add19eb7defa 1850 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1851 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 1852 {
AzureIoTClient 28:add19eb7defa 1853 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1854 }
AzureIoTClient 28:add19eb7defa 1855 else
AzureIoTClient 28:add19eb7defa 1856 {
AzureIoTClient 28:add19eb7defa 1857 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 1858 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1859 {
AzureIoTClient 28:add19eb7defa 1860 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 1861 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1862 }
AzureIoTClient 28:add19eb7defa 1863 else
AzureIoTClient 28:add19eb7defa 1864 {
AzureIoTClient 28:add19eb7defa 1865 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1866 {
AzureIoTClient 28:add19eb7defa 1867 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 1868 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 1869 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1870 }
AzureIoTClient 28:add19eb7defa 1871 else
AzureIoTClient 28:add19eb7defa 1872 {
AzureIoTClient 28:add19eb7defa 1873 result = 0;
AzureIoTClient 28:add19eb7defa 1874 }
AzureIoTClient 28:add19eb7defa 1875 }
AzureIoTClient 28:add19eb7defa 1876 }
AzureIoTClient 28:add19eb7defa 1877 }
AzureIoTClient 28:add19eb7defa 1878 else
AzureIoTClient 28:add19eb7defa 1879 {
AzureIoTClient 28:add19eb7defa 1880 result = 0;
AzureIoTClient 28:add19eb7defa 1881 }
AzureIoTClient 28:add19eb7defa 1882 }
AzureIoTClient 28:add19eb7defa 1883 }
AzureIoTClient 28:add19eb7defa 1884 }
AzureIoTClient 28:add19eb7defa 1885 }
AzureIoTClient 28:add19eb7defa 1886 }
AzureIoTClient 28:add19eb7defa 1887
AzureIoTClient 28:add19eb7defa 1888 return result;
Azure.IoT Build 0:6ae2f7bca550 1889 }
Azure.IoT Build 0:6ae2f7bca550 1890
Azure.IoT Build 0:6ae2f7bca550 1891 int open_set_offered_capabilities(OPEN_HANDLE open, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1892 {
AzureIoTClient 28:add19eb7defa 1893 int result;
AzureIoTClient 28:add19eb7defa 1894
AzureIoTClient 28:add19eb7defa 1895 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1896 {
AzureIoTClient 28:add19eb7defa 1897 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1898 }
AzureIoTClient 28:add19eb7defa 1899 else
AzureIoTClient 28:add19eb7defa 1900 {
AzureIoTClient 28:add19eb7defa 1901 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 1902 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 1903 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 1904 {
AzureIoTClient 23:1111ee8bcba4 1905 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 1906 }
AzureIoTClient 23:1111ee8bcba4 1907 else
AzureIoTClient 23:1111ee8bcba4 1908 {
AzureIoTClient 23:1111ee8bcba4 1909 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 1910 }
AzureIoTClient 28:add19eb7defa 1911 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1912 {
AzureIoTClient 28:add19eb7defa 1913 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1914 }
AzureIoTClient 28:add19eb7defa 1915 else
AzureIoTClient 28:add19eb7defa 1916 {
AzureIoTClient 28:add19eb7defa 1917 if (amqpvalue_set_composite_item(open_instance->composite_value, 7, offered_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 1918 {
AzureIoTClient 28:add19eb7defa 1919 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1920 }
AzureIoTClient 28:add19eb7defa 1921 else
AzureIoTClient 28:add19eb7defa 1922 {
AzureIoTClient 28:add19eb7defa 1923 result = 0;
AzureIoTClient 28:add19eb7defa 1924 }
AzureIoTClient 28:add19eb7defa 1925
AzureIoTClient 28:add19eb7defa 1926 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 1927 }
AzureIoTClient 28:add19eb7defa 1928 }
AzureIoTClient 28:add19eb7defa 1929
AzureIoTClient 28:add19eb7defa 1930 return result;
Azure.IoT Build 0:6ae2f7bca550 1931 }
Azure.IoT Build 0:6ae2f7bca550 1932
Azure.IoT Build 0:6ae2f7bca550 1933 int open_get_desired_capabilities(OPEN_HANDLE open, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 1934 {
AzureIoTClient 28:add19eb7defa 1935 int result;
AzureIoTClient 28:add19eb7defa 1936
AzureIoTClient 28:add19eb7defa 1937 if (open == NULL)
AzureIoTClient 28:add19eb7defa 1938 {
AzureIoTClient 28:add19eb7defa 1939 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1940 }
AzureIoTClient 28:add19eb7defa 1941 else
AzureIoTClient 28:add19eb7defa 1942 {
AzureIoTClient 28:add19eb7defa 1943 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 1944 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 1945 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 1946 {
AzureIoTClient 23:1111ee8bcba4 1947 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 1948 }
AzureIoTClient 23:1111ee8bcba4 1949 else
AzureIoTClient 23:1111ee8bcba4 1950 {
AzureIoTClient 23:1111ee8bcba4 1951 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 1952 {
AzureIoTClient 28:add19eb7defa 1953 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1954 }
AzureIoTClient 28:add19eb7defa 1955 else
AzureIoTClient 28:add19eb7defa 1956 {
AzureIoTClient 28:add19eb7defa 1957 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 1958 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 1959 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 1960 {
AzureIoTClient 28:add19eb7defa 1961 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1962 }
AzureIoTClient 28:add19eb7defa 1963 else
AzureIoTClient 28:add19eb7defa 1964 {
AzureIoTClient 28:add19eb7defa 1965 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 1966 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 1967 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1968 {
AzureIoTClient 28:add19eb7defa 1969 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 1970 }
AzureIoTClient 28:add19eb7defa 1971 else
AzureIoTClient 28:add19eb7defa 1972 {
AzureIoTClient 28:add19eb7defa 1973 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 1974 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 1975 }
AzureIoTClient 28:add19eb7defa 1976
AzureIoTClient 28:add19eb7defa 1977 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 1978 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 1979 {
AzureIoTClient 28:add19eb7defa 1980 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1981 }
AzureIoTClient 28:add19eb7defa 1982 else
AzureIoTClient 28:add19eb7defa 1983 {
AzureIoTClient 28:add19eb7defa 1984 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 1985 {
AzureIoTClient 28:add19eb7defa 1986 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 1987 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 1988 {
AzureIoTClient 28:add19eb7defa 1989 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1990 }
AzureIoTClient 28:add19eb7defa 1991 else
AzureIoTClient 28:add19eb7defa 1992 {
AzureIoTClient 28:add19eb7defa 1993 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 1994 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 1995 {
AzureIoTClient 28:add19eb7defa 1996 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 1997 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 1998 }
AzureIoTClient 28:add19eb7defa 1999 else
AzureIoTClient 28:add19eb7defa 2000 {
AzureIoTClient 28:add19eb7defa 2001 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2002 {
AzureIoTClient 28:add19eb7defa 2003 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 2004 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 2005 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2006 }
AzureIoTClient 28:add19eb7defa 2007 else
AzureIoTClient 28:add19eb7defa 2008 {
AzureIoTClient 28:add19eb7defa 2009 result = 0;
AzureIoTClient 28:add19eb7defa 2010 }
AzureIoTClient 28:add19eb7defa 2011 }
AzureIoTClient 28:add19eb7defa 2012 }
AzureIoTClient 28:add19eb7defa 2013 }
AzureIoTClient 28:add19eb7defa 2014 else
AzureIoTClient 28:add19eb7defa 2015 {
AzureIoTClient 28:add19eb7defa 2016 result = 0;
AzureIoTClient 28:add19eb7defa 2017 }
AzureIoTClient 28:add19eb7defa 2018 }
AzureIoTClient 28:add19eb7defa 2019 }
AzureIoTClient 28:add19eb7defa 2020 }
AzureIoTClient 28:add19eb7defa 2021 }
AzureIoTClient 28:add19eb7defa 2022 }
AzureIoTClient 28:add19eb7defa 2023
AzureIoTClient 28:add19eb7defa 2024 return result;
Azure.IoT Build 0:6ae2f7bca550 2025 }
Azure.IoT Build 0:6ae2f7bca550 2026
Azure.IoT Build 0:6ae2f7bca550 2027 int open_set_desired_capabilities(OPEN_HANDLE open, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 2028 {
AzureIoTClient 28:add19eb7defa 2029 int result;
AzureIoTClient 28:add19eb7defa 2030
AzureIoTClient 28:add19eb7defa 2031 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2032 {
AzureIoTClient 28:add19eb7defa 2033 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2034 }
AzureIoTClient 28:add19eb7defa 2035 else
AzureIoTClient 28:add19eb7defa 2036 {
AzureIoTClient 28:add19eb7defa 2037 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 2038 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 2039 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 2040 {
AzureIoTClient 23:1111ee8bcba4 2041 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 2042 }
AzureIoTClient 23:1111ee8bcba4 2043 else
AzureIoTClient 23:1111ee8bcba4 2044 {
AzureIoTClient 23:1111ee8bcba4 2045 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 2046 }
AzureIoTClient 28:add19eb7defa 2047 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2048 {
AzureIoTClient 28:add19eb7defa 2049 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2050 }
AzureIoTClient 28:add19eb7defa 2051 else
AzureIoTClient 28:add19eb7defa 2052 {
AzureIoTClient 28:add19eb7defa 2053 if (amqpvalue_set_composite_item(open_instance->composite_value, 8, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2054 {
AzureIoTClient 28:add19eb7defa 2055 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2056 }
AzureIoTClient 28:add19eb7defa 2057 else
AzureIoTClient 28:add19eb7defa 2058 {
AzureIoTClient 28:add19eb7defa 2059 result = 0;
AzureIoTClient 28:add19eb7defa 2060 }
AzureIoTClient 28:add19eb7defa 2061
AzureIoTClient 28:add19eb7defa 2062 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 2063 }
AzureIoTClient 28:add19eb7defa 2064 }
AzureIoTClient 28:add19eb7defa 2065
AzureIoTClient 28:add19eb7defa 2066 return result;
Azure.IoT Build 0:6ae2f7bca550 2067 }
Azure.IoT Build 0:6ae2f7bca550 2068
Azure.IoT Build 0:6ae2f7bca550 2069 int open_get_properties(OPEN_HANDLE open, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 2070 {
AzureIoTClient 28:add19eb7defa 2071 int result;
AzureIoTClient 28:add19eb7defa 2072
AzureIoTClient 28:add19eb7defa 2073 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2074 {
AzureIoTClient 28:add19eb7defa 2075 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2076 }
AzureIoTClient 28:add19eb7defa 2077 else
AzureIoTClient 28:add19eb7defa 2078 {
AzureIoTClient 28:add19eb7defa 2079 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2080 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 23:1111ee8bcba4 2081 if (amqpvalue_get_composite_item_count(open_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2082 {
AzureIoTClient 23:1111ee8bcba4 2083 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2084 }
AzureIoTClient 23:1111ee8bcba4 2085 else
AzureIoTClient 23:1111ee8bcba4 2086 {
AzureIoTClient 23:1111ee8bcba4 2087 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 2088 {
AzureIoTClient 28:add19eb7defa 2089 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2090 }
AzureIoTClient 28:add19eb7defa 2091 else
AzureIoTClient 28:add19eb7defa 2092 {
AzureIoTClient 28:add19eb7defa 2093 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 2094 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2095 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2096 {
AzureIoTClient 28:add19eb7defa 2097 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2098 }
AzureIoTClient 28:add19eb7defa 2099 else
AzureIoTClient 28:add19eb7defa 2100 {
AzureIoTClient 28:add19eb7defa 2101 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2102 if ((get_single_value_result = amqpvalue_get_fields(item_value, properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 2103 {
AzureIoTClient 28:add19eb7defa 2104 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2105 }
AzureIoTClient 28:add19eb7defa 2106 else
AzureIoTClient 28:add19eb7defa 2107 {
AzureIoTClient 28:add19eb7defa 2108 result = 0;
AzureIoTClient 28:add19eb7defa 2109 }
AzureIoTClient 28:add19eb7defa 2110 }
AzureIoTClient 28:add19eb7defa 2111 }
AzureIoTClient 28:add19eb7defa 2112 }
AzureIoTClient 28:add19eb7defa 2113 }
AzureIoTClient 28:add19eb7defa 2114
AzureIoTClient 28:add19eb7defa 2115 return result;
Azure.IoT Build 0:6ae2f7bca550 2116 }
Azure.IoT Build 0:6ae2f7bca550 2117
Azure.IoT Build 0:6ae2f7bca550 2118 int open_set_properties(OPEN_HANDLE open, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 2119 {
AzureIoTClient 28:add19eb7defa 2120 int result;
AzureIoTClient 28:add19eb7defa 2121
AzureIoTClient 28:add19eb7defa 2122 if (open == NULL)
AzureIoTClient 28:add19eb7defa 2123 {
AzureIoTClient 28:add19eb7defa 2124 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2125 }
AzureIoTClient 28:add19eb7defa 2126 else
AzureIoTClient 28:add19eb7defa 2127 {
AzureIoTClient 28:add19eb7defa 2128 OPEN_INSTANCE* open_instance = (OPEN_INSTANCE*)open;
AzureIoTClient 28:add19eb7defa 2129 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 2130 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2131 {
AzureIoTClient 28:add19eb7defa 2132 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2133 }
AzureIoTClient 28:add19eb7defa 2134 else
AzureIoTClient 28:add19eb7defa 2135 {
AzureIoTClient 28:add19eb7defa 2136 if (amqpvalue_set_composite_item(open_instance->composite_value, 9, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2137 {
AzureIoTClient 28:add19eb7defa 2138 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2139 }
AzureIoTClient 28:add19eb7defa 2140 else
AzureIoTClient 28:add19eb7defa 2141 {
AzureIoTClient 28:add19eb7defa 2142 result = 0;
AzureIoTClient 28:add19eb7defa 2143 }
AzureIoTClient 28:add19eb7defa 2144
AzureIoTClient 28:add19eb7defa 2145 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 2146 }
AzureIoTClient 28:add19eb7defa 2147 }
AzureIoTClient 28:add19eb7defa 2148
AzureIoTClient 28:add19eb7defa 2149 return result;
Azure.IoT Build 0:6ae2f7bca550 2150 }
Azure.IoT Build 0:6ae2f7bca550 2151
Azure.IoT Build 0:6ae2f7bca550 2152
Azure.IoT Build 0:6ae2f7bca550 2153 /* begin */
Azure.IoT Build 0:6ae2f7bca550 2154
Azure.IoT Build 0:6ae2f7bca550 2155 typedef struct BEGIN_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 2156 {
AzureIoTClient 28:add19eb7defa 2157 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 2158 } BEGIN_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 2159
Azure.IoT Build 0:6ae2f7bca550 2160 static BEGIN_HANDLE begin_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 2161 {
AzureIoTClient 28:add19eb7defa 2162 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2163 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2164 {
AzureIoTClient 28:add19eb7defa 2165 begin_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 2166 }
AzureIoTClient 28:add19eb7defa 2167
AzureIoTClient 28:add19eb7defa 2168 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2169 }
Azure.IoT Build 0:6ae2f7bca550 2170
Azure.IoT Build 0:6ae2f7bca550 2171 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 2172 {
AzureIoTClient 28:add19eb7defa 2173 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2174 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2175 {
AzureIoTClient 28:add19eb7defa 2176 begin_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(17);
AzureIoTClient 28:add19eb7defa 2177 if (begin_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 2178 {
AzureIoTClient 28:add19eb7defa 2179 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2180 begin_instance = NULL;
AzureIoTClient 28:add19eb7defa 2181 }
AzureIoTClient 28:add19eb7defa 2182 else
AzureIoTClient 28:add19eb7defa 2183 {
AzureIoTClient 28:add19eb7defa 2184 AMQP_VALUE next_outgoing_id_amqp_value;
AzureIoTClient 28:add19eb7defa 2185 AMQP_VALUE incoming_window_amqp_value;
AzureIoTClient 28:add19eb7defa 2186 AMQP_VALUE outgoing_window_amqp_value;
AzureIoTClient 28:add19eb7defa 2187 int result = 0;
AzureIoTClient 28:add19eb7defa 2188
AzureIoTClient 28:add19eb7defa 2189 next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 2190 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 1, next_outgoing_id_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2191 {
AzureIoTClient 28:add19eb7defa 2192 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2193 }
AzureIoTClient 28:add19eb7defa 2194 incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 2195 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 2, incoming_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2196 {
AzureIoTClient 28:add19eb7defa 2197 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2198 }
AzureIoTClient 28:add19eb7defa 2199 outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 2200 if ((result == 0) && (amqpvalue_set_composite_item(begin_instance->composite_value, 3, outgoing_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 2201 {
AzureIoTClient 28:add19eb7defa 2202 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2203 }
AzureIoTClient 28:add19eb7defa 2204
AzureIoTClient 28:add19eb7defa 2205 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 2206 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2207 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2208 }
AzureIoTClient 28:add19eb7defa 2209 }
AzureIoTClient 28:add19eb7defa 2210
AzureIoTClient 28:add19eb7defa 2211 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2212 }
Azure.IoT Build 0:6ae2f7bca550 2213
Azure.IoT Build 0:6ae2f7bca550 2214 BEGIN_HANDLE begin_clone(BEGIN_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 2215 {
AzureIoTClient 28:add19eb7defa 2216 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)malloc(sizeof(BEGIN_INSTANCE));
AzureIoTClient 28:add19eb7defa 2217 if (begin_instance != NULL)
AzureIoTClient 28:add19eb7defa 2218 {
AzureIoTClient 28:add19eb7defa 2219 begin_instance->composite_value = amqpvalue_clone(((BEGIN_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 2220 if (begin_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 2221 {
AzureIoTClient 28:add19eb7defa 2222 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2223 begin_instance = NULL;
AzureIoTClient 28:add19eb7defa 2224 }
AzureIoTClient 28:add19eb7defa 2225 }
AzureIoTClient 28:add19eb7defa 2226
AzureIoTClient 28:add19eb7defa 2227 return begin_instance;
Azure.IoT Build 0:6ae2f7bca550 2228 }
Azure.IoT Build 0:6ae2f7bca550 2229
Azure.IoT Build 0:6ae2f7bca550 2230 void begin_destroy(BEGIN_HANDLE begin)
Azure.IoT Build 0:6ae2f7bca550 2231 {
AzureIoTClient 28:add19eb7defa 2232 if (begin != NULL)
AzureIoTClient 28:add19eb7defa 2233 {
AzureIoTClient 28:add19eb7defa 2234 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2235 amqpvalue_destroy(begin_instance->composite_value);
AzureIoTClient 28:add19eb7defa 2236 free(begin_instance);
AzureIoTClient 28:add19eb7defa 2237 }
Azure.IoT Build 0:6ae2f7bca550 2238 }
Azure.IoT Build 0:6ae2f7bca550 2239
Azure.IoT Build 0:6ae2f7bca550 2240 AMQP_VALUE amqpvalue_create_begin(BEGIN_HANDLE begin)
Azure.IoT Build 0:6ae2f7bca550 2241 {
AzureIoTClient 28:add19eb7defa 2242 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 2243
AzureIoTClient 28:add19eb7defa 2244 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2245 {
AzureIoTClient 28:add19eb7defa 2246 result = NULL;
AzureIoTClient 28:add19eb7defa 2247 }
AzureIoTClient 28:add19eb7defa 2248 else
AzureIoTClient 28:add19eb7defa 2249 {
AzureIoTClient 28:add19eb7defa 2250 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2251 result = amqpvalue_clone(begin_instance->composite_value);
AzureIoTClient 28:add19eb7defa 2252 }
AzureIoTClient 28:add19eb7defa 2253
AzureIoTClient 28:add19eb7defa 2254 return result;
Azure.IoT Build 0:6ae2f7bca550 2255 }
Azure.IoT Build 0:6ae2f7bca550 2256
Azure.IoT Build 0:6ae2f7bca550 2257 bool is_begin_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 2258 {
AzureIoTClient 28:add19eb7defa 2259 bool result;
AzureIoTClient 28:add19eb7defa 2260
AzureIoTClient 28:add19eb7defa 2261 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 2262 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 2263 (descriptor_ulong == 17))
AzureIoTClient 28:add19eb7defa 2264 {
AzureIoTClient 28:add19eb7defa 2265 result = true;
AzureIoTClient 28:add19eb7defa 2266 }
AzureIoTClient 28:add19eb7defa 2267 else
AzureIoTClient 28:add19eb7defa 2268 {
AzureIoTClient 28:add19eb7defa 2269 result = false;
AzureIoTClient 28:add19eb7defa 2270 }
AzureIoTClient 28:add19eb7defa 2271
AzureIoTClient 28:add19eb7defa 2272 return result;
Azure.IoT Build 0:6ae2f7bca550 2273 }
Azure.IoT Build 0:6ae2f7bca550 2274
Azure.IoT Build 0:6ae2f7bca550 2275
Azure.IoT Build 0:6ae2f7bca550 2276 int amqpvalue_get_begin(AMQP_VALUE value, BEGIN_HANDLE* begin_handle)
Azure.IoT Build 0:6ae2f7bca550 2277 {
AzureIoTClient 28:add19eb7defa 2278 int result;
AzureIoTClient 28:add19eb7defa 2279 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin_create_internal();
AzureIoTClient 28:add19eb7defa 2280 *begin_handle = begin_instance;
AzureIoTClient 28:add19eb7defa 2281 if (*begin_handle == NULL)
AzureIoTClient 28:add19eb7defa 2282 {
AzureIoTClient 28:add19eb7defa 2283 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2284 }
AzureIoTClient 28:add19eb7defa 2285 else
AzureIoTClient 28:add19eb7defa 2286 {
AzureIoTClient 28:add19eb7defa 2287 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 2288 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 2289 {
AzureIoTClient 28:add19eb7defa 2290 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2291 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2292 }
AzureIoTClient 28:add19eb7defa 2293 else
AzureIoTClient 28:add19eb7defa 2294 {
AzureIoTClient 23:1111ee8bcba4 2295 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 2296 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2297 {
AzureIoTClient 23:1111ee8bcba4 2298 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2299 }
AzureIoTClient 23:1111ee8bcba4 2300 else
AzureIoTClient 23:1111ee8bcba4 2301 {
AzureIoTClient 28:add19eb7defa 2302 do
AzureIoTClient 28:add19eb7defa 2303 {
AzureIoTClient 28:add19eb7defa 2304 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 2305 /* remote-channel */
AzureIoTClient 28:add19eb7defa 2306 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 2307 {
AzureIoTClient 23:1111ee8bcba4 2308 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 2309 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2310 {
AzureIoTClient 28:add19eb7defa 2311 /* do nothing */
AzureIoTClient 28:add19eb7defa 2312 }
AzureIoTClient 28:add19eb7defa 2313 else
AzureIoTClient 28:add19eb7defa 2314 {
AzureIoTClient 28:add19eb7defa 2315 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2316 {
AzureIoTClient 28:add19eb7defa 2317 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2318 }
AzureIoTClient 28:add19eb7defa 2319 else
AzureIoTClient 28:add19eb7defa 2320 {
AzureIoTClient 28:add19eb7defa 2321 uint16_t remote_channel;
AzureIoTClient 28:add19eb7defa 2322 if (amqpvalue_get_ushort(item_value, &remote_channel) != 0)
AzureIoTClient 28:add19eb7defa 2323 {
AzureIoTClient 28:add19eb7defa 2324 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2325 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2326 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2327 break;
AzureIoTClient 28:add19eb7defa 2328 }
AzureIoTClient 28:add19eb7defa 2329 }
AzureIoTClient 28:add19eb7defa 2330
AzureIoTClient 28:add19eb7defa 2331 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2332 }
AzureIoTClient 28:add19eb7defa 2333 }
AzureIoTClient 28:add19eb7defa 2334 /* next-outgoing-id */
AzureIoTClient 28:add19eb7defa 2335 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 2336 {
AzureIoTClient 23:1111ee8bcba4 2337 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 2338 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2339 {
AzureIoTClient 28:add19eb7defa 2340 {
AzureIoTClient 28:add19eb7defa 2341 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2342 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2343 break;
AzureIoTClient 28:add19eb7defa 2344 }
AzureIoTClient 28:add19eb7defa 2345 }
AzureIoTClient 28:add19eb7defa 2346 else
AzureIoTClient 28:add19eb7defa 2347 {
AzureIoTClient 28:add19eb7defa 2348 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2349 {
AzureIoTClient 28:add19eb7defa 2350 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2351 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2352 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2353 break;
AzureIoTClient 28:add19eb7defa 2354 }
AzureIoTClient 28:add19eb7defa 2355 else
AzureIoTClient 28:add19eb7defa 2356 {
AzureIoTClient 28:add19eb7defa 2357 transfer_number next_outgoing_id;
AzureIoTClient 28:add19eb7defa 2358 if (amqpvalue_get_transfer_number(item_value, &next_outgoing_id) != 0)
AzureIoTClient 28:add19eb7defa 2359 {
AzureIoTClient 28:add19eb7defa 2360 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2361 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2362 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2363 break;
AzureIoTClient 28:add19eb7defa 2364 }
AzureIoTClient 28:add19eb7defa 2365 }
AzureIoTClient 28:add19eb7defa 2366
AzureIoTClient 28:add19eb7defa 2367 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2368 }
AzureIoTClient 28:add19eb7defa 2369 }
AzureIoTClient 28:add19eb7defa 2370 else
AzureIoTClient 28:add19eb7defa 2371 {
AzureIoTClient 28:add19eb7defa 2372 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2373 }
AzureIoTClient 28:add19eb7defa 2374 /* incoming-window */
AzureIoTClient 28:add19eb7defa 2375 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 2376 {
AzureIoTClient 23:1111ee8bcba4 2377 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 2378 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2379 {
AzureIoTClient 28:add19eb7defa 2380 {
AzureIoTClient 28:add19eb7defa 2381 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2382 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2383 break;
AzureIoTClient 28:add19eb7defa 2384 }
AzureIoTClient 28:add19eb7defa 2385 }
AzureIoTClient 28:add19eb7defa 2386 else
AzureIoTClient 28:add19eb7defa 2387 {
AzureIoTClient 28:add19eb7defa 2388 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2389 {
AzureIoTClient 28:add19eb7defa 2390 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2391 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2392 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2393 break;
AzureIoTClient 28:add19eb7defa 2394 }
AzureIoTClient 28:add19eb7defa 2395 else
AzureIoTClient 28:add19eb7defa 2396 {
AzureIoTClient 28:add19eb7defa 2397 uint32_t incoming_window;
AzureIoTClient 28:add19eb7defa 2398 if (amqpvalue_get_uint(item_value, &incoming_window) != 0)
AzureIoTClient 28:add19eb7defa 2399 {
AzureIoTClient 28:add19eb7defa 2400 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2401 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2402 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2403 break;
AzureIoTClient 28:add19eb7defa 2404 }
AzureIoTClient 28:add19eb7defa 2405 }
AzureIoTClient 28:add19eb7defa 2406
AzureIoTClient 28:add19eb7defa 2407 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2408 }
AzureIoTClient 28:add19eb7defa 2409 }
AzureIoTClient 28:add19eb7defa 2410 else
AzureIoTClient 28:add19eb7defa 2411 {
AzureIoTClient 28:add19eb7defa 2412 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2413 }
AzureIoTClient 28:add19eb7defa 2414 /* outgoing-window */
AzureIoTClient 28:add19eb7defa 2415 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 2416 {
AzureIoTClient 23:1111ee8bcba4 2417 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 2418 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2419 {
AzureIoTClient 28:add19eb7defa 2420 {
AzureIoTClient 28:add19eb7defa 2421 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2422 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2423 break;
AzureIoTClient 28:add19eb7defa 2424 }
AzureIoTClient 28:add19eb7defa 2425 }
AzureIoTClient 28:add19eb7defa 2426 else
AzureIoTClient 28:add19eb7defa 2427 {
AzureIoTClient 28:add19eb7defa 2428 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2429 {
AzureIoTClient 28:add19eb7defa 2430 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2431 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2432 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2433 break;
AzureIoTClient 28:add19eb7defa 2434 }
AzureIoTClient 28:add19eb7defa 2435 else
AzureIoTClient 28:add19eb7defa 2436 {
AzureIoTClient 28:add19eb7defa 2437 uint32_t outgoing_window;
AzureIoTClient 28:add19eb7defa 2438 if (amqpvalue_get_uint(item_value, &outgoing_window) != 0)
AzureIoTClient 28:add19eb7defa 2439 {
AzureIoTClient 28:add19eb7defa 2440 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2441 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2443 break;
AzureIoTClient 28:add19eb7defa 2444 }
AzureIoTClient 28:add19eb7defa 2445 }
AzureIoTClient 28:add19eb7defa 2446
AzureIoTClient 28:add19eb7defa 2447 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2448 }
AzureIoTClient 28:add19eb7defa 2449 }
AzureIoTClient 28:add19eb7defa 2450 else
AzureIoTClient 28:add19eb7defa 2451 {
AzureIoTClient 28:add19eb7defa 2452 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2453 }
AzureIoTClient 28:add19eb7defa 2454 /* handle-max */
AzureIoTClient 28:add19eb7defa 2455 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 2456 {
AzureIoTClient 23:1111ee8bcba4 2457 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 2458 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2459 {
AzureIoTClient 28:add19eb7defa 2460 /* do nothing */
AzureIoTClient 28:add19eb7defa 2461 }
AzureIoTClient 28:add19eb7defa 2462 else
AzureIoTClient 28:add19eb7defa 2463 {
AzureIoTClient 28:add19eb7defa 2464 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2465 {
AzureIoTClient 28:add19eb7defa 2466 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2467 }
AzureIoTClient 28:add19eb7defa 2468 else
AzureIoTClient 28:add19eb7defa 2469 {
AzureIoTClient 28:add19eb7defa 2470 handle handle_max;
AzureIoTClient 28:add19eb7defa 2471 if (amqpvalue_get_handle(item_value, &handle_max) != 0)
AzureIoTClient 28:add19eb7defa 2472 {
AzureIoTClient 28:add19eb7defa 2473 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2474 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2475 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2476 break;
AzureIoTClient 28:add19eb7defa 2477 }
AzureIoTClient 28:add19eb7defa 2478 }
AzureIoTClient 28:add19eb7defa 2479
AzureIoTClient 28:add19eb7defa 2480 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2481 }
AzureIoTClient 28:add19eb7defa 2482 }
AzureIoTClient 28:add19eb7defa 2483 /* offered-capabilities */
AzureIoTClient 28:add19eb7defa 2484 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 2485 {
AzureIoTClient 23:1111ee8bcba4 2486 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 2487 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2488 {
AzureIoTClient 28:add19eb7defa 2489 /* do nothing */
AzureIoTClient 28:add19eb7defa 2490 }
AzureIoTClient 28:add19eb7defa 2491 else
AzureIoTClient 28:add19eb7defa 2492 {
AzureIoTClient 28:add19eb7defa 2493 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2494 {
AzureIoTClient 28:add19eb7defa 2495 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2496 }
AzureIoTClient 28:add19eb7defa 2497 else
AzureIoTClient 28:add19eb7defa 2498 {
AzureIoTClient 28:add19eb7defa 2499 const char* offered_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 2500 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 28:add19eb7defa 2501 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &offered_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 2502 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 2503 {
AzureIoTClient 28:add19eb7defa 2504 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2505 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2506 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2507 break;
AzureIoTClient 28:add19eb7defa 2508 }
AzureIoTClient 28:add19eb7defa 2509 }
AzureIoTClient 28:add19eb7defa 2510
AzureIoTClient 28:add19eb7defa 2511 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2512 }
AzureIoTClient 28:add19eb7defa 2513 }
AzureIoTClient 28:add19eb7defa 2514 /* desired-capabilities */
AzureIoTClient 28:add19eb7defa 2515 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 2516 {
AzureIoTClient 23:1111ee8bcba4 2517 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 2518 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2519 {
AzureIoTClient 28:add19eb7defa 2520 /* do nothing */
AzureIoTClient 28:add19eb7defa 2521 }
AzureIoTClient 28:add19eb7defa 2522 else
AzureIoTClient 28:add19eb7defa 2523 {
AzureIoTClient 28:add19eb7defa 2524 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2525 {
AzureIoTClient 28:add19eb7defa 2526 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2527 }
AzureIoTClient 28:add19eb7defa 2528 else
AzureIoTClient 28:add19eb7defa 2529 {
AzureIoTClient 28:add19eb7defa 2530 const char* desired_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 2531 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 28:add19eb7defa 2532 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &desired_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 2533 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 2534 {
AzureIoTClient 28:add19eb7defa 2535 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2536 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2537 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2538 break;
AzureIoTClient 28:add19eb7defa 2539 }
AzureIoTClient 28:add19eb7defa 2540 }
AzureIoTClient 28:add19eb7defa 2541
AzureIoTClient 28:add19eb7defa 2542 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2543 }
AzureIoTClient 28:add19eb7defa 2544 }
AzureIoTClient 28:add19eb7defa 2545 /* properties */
AzureIoTClient 28:add19eb7defa 2546 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 2547 {
AzureIoTClient 23:1111ee8bcba4 2548 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 2549 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 2550 {
AzureIoTClient 28:add19eb7defa 2551 /* do nothing */
AzureIoTClient 28:add19eb7defa 2552 }
AzureIoTClient 28:add19eb7defa 2553 else
AzureIoTClient 28:add19eb7defa 2554 {
AzureIoTClient 28:add19eb7defa 2555 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 2556 {
AzureIoTClient 28:add19eb7defa 2557 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 2558 }
AzureIoTClient 28:add19eb7defa 2559 else
AzureIoTClient 28:add19eb7defa 2560 {
AzureIoTClient 28:add19eb7defa 2561 fields properties;
AzureIoTClient 28:add19eb7defa 2562 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 2563 {
AzureIoTClient 28:add19eb7defa 2564 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2565 begin_destroy(*begin_handle);
AzureIoTClient 28:add19eb7defa 2566 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2567 break;
AzureIoTClient 28:add19eb7defa 2568 }
AzureIoTClient 28:add19eb7defa 2569 }
AzureIoTClient 28:add19eb7defa 2570
AzureIoTClient 28:add19eb7defa 2571 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 2572 }
AzureIoTClient 28:add19eb7defa 2573 }
AzureIoTClient 28:add19eb7defa 2574
AzureIoTClient 28:add19eb7defa 2575 begin_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 2576
AzureIoTClient 28:add19eb7defa 2577 result = 0;
AzureIoTClient 28:add19eb7defa 2578 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 2579 }
AzureIoTClient 28:add19eb7defa 2580 }
AzureIoTClient 28:add19eb7defa 2581 }
AzureIoTClient 28:add19eb7defa 2582
AzureIoTClient 28:add19eb7defa 2583 return result;
Azure.IoT Build 0:6ae2f7bca550 2584 }
Azure.IoT Build 0:6ae2f7bca550 2585
Azure.IoT Build 0:6ae2f7bca550 2586 int begin_get_remote_channel(BEGIN_HANDLE begin, uint16_t* remote_channel_value)
Azure.IoT Build 0:6ae2f7bca550 2587 {
AzureIoTClient 28:add19eb7defa 2588 int result;
AzureIoTClient 28:add19eb7defa 2589
AzureIoTClient 28:add19eb7defa 2590 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2591 {
AzureIoTClient 28:add19eb7defa 2592 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2593 }
AzureIoTClient 28:add19eb7defa 2594 else
AzureIoTClient 28:add19eb7defa 2595 {
AzureIoTClient 28:add19eb7defa 2596 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2597 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2598 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2599 {
AzureIoTClient 23:1111ee8bcba4 2600 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2601 }
AzureIoTClient 23:1111ee8bcba4 2602 else
AzureIoTClient 23:1111ee8bcba4 2603 {
AzureIoTClient 23:1111ee8bcba4 2604 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 2605 {
AzureIoTClient 28:add19eb7defa 2606 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2607 }
AzureIoTClient 28:add19eb7defa 2608 else
AzureIoTClient 28:add19eb7defa 2609 {
AzureIoTClient 28:add19eb7defa 2610 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 2611 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2612 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2613 {
AzureIoTClient 28:add19eb7defa 2614 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2615 }
AzureIoTClient 28:add19eb7defa 2616 else
AzureIoTClient 28:add19eb7defa 2617 {
AzureIoTClient 28:add19eb7defa 2618 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2619 if ((get_single_value_result = amqpvalue_get_ushort(item_value, remote_channel_value)) != 0)
AzureIoTClient 28:add19eb7defa 2620 {
AzureIoTClient 28:add19eb7defa 2621 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2622 }
AzureIoTClient 28:add19eb7defa 2623 else
AzureIoTClient 28:add19eb7defa 2624 {
AzureIoTClient 28:add19eb7defa 2625 result = 0;
AzureIoTClient 28:add19eb7defa 2626 }
AzureIoTClient 28:add19eb7defa 2627 }
AzureIoTClient 28:add19eb7defa 2628 }
AzureIoTClient 28:add19eb7defa 2629 }
AzureIoTClient 28:add19eb7defa 2630 }
AzureIoTClient 28:add19eb7defa 2631
AzureIoTClient 28:add19eb7defa 2632 return result;
Azure.IoT Build 0:6ae2f7bca550 2633 }
Azure.IoT Build 0:6ae2f7bca550 2634
Azure.IoT Build 0:6ae2f7bca550 2635 int begin_set_remote_channel(BEGIN_HANDLE begin, uint16_t remote_channel_value)
Azure.IoT Build 0:6ae2f7bca550 2636 {
AzureIoTClient 28:add19eb7defa 2637 int result;
AzureIoTClient 28:add19eb7defa 2638
AzureIoTClient 28:add19eb7defa 2639 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2640 {
AzureIoTClient 28:add19eb7defa 2641 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2642 }
AzureIoTClient 28:add19eb7defa 2643 else
AzureIoTClient 28:add19eb7defa 2644 {
AzureIoTClient 28:add19eb7defa 2645 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2646 AMQP_VALUE remote_channel_amqp_value = amqpvalue_create_ushort(remote_channel_value);
AzureIoTClient 28:add19eb7defa 2647 if (remote_channel_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2648 {
AzureIoTClient 28:add19eb7defa 2649 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2650 }
AzureIoTClient 28:add19eb7defa 2651 else
AzureIoTClient 28:add19eb7defa 2652 {
AzureIoTClient 28:add19eb7defa 2653 if (amqpvalue_set_composite_item(begin_instance->composite_value, 0, remote_channel_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2654 {
AzureIoTClient 28:add19eb7defa 2655 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2656 }
AzureIoTClient 28:add19eb7defa 2657 else
AzureIoTClient 28:add19eb7defa 2658 {
AzureIoTClient 28:add19eb7defa 2659 result = 0;
AzureIoTClient 28:add19eb7defa 2660 }
AzureIoTClient 28:add19eb7defa 2661
AzureIoTClient 28:add19eb7defa 2662 amqpvalue_destroy(remote_channel_amqp_value);
AzureIoTClient 28:add19eb7defa 2663 }
AzureIoTClient 28:add19eb7defa 2664 }
AzureIoTClient 28:add19eb7defa 2665
AzureIoTClient 28:add19eb7defa 2666 return result;
Azure.IoT Build 0:6ae2f7bca550 2667 }
Azure.IoT Build 0:6ae2f7bca550 2668
Azure.IoT Build 0:6ae2f7bca550 2669 int begin_get_next_outgoing_id(BEGIN_HANDLE begin, transfer_number* next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 2670 {
AzureIoTClient 28:add19eb7defa 2671 int result;
AzureIoTClient 28:add19eb7defa 2672
AzureIoTClient 28:add19eb7defa 2673 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2674 {
AzureIoTClient 28:add19eb7defa 2675 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2676 }
AzureIoTClient 28:add19eb7defa 2677 else
AzureIoTClient 28:add19eb7defa 2678 {
AzureIoTClient 28:add19eb7defa 2679 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2680 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2681 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2682 {
AzureIoTClient 23:1111ee8bcba4 2683 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2684 }
AzureIoTClient 23:1111ee8bcba4 2685 else
AzureIoTClient 23:1111ee8bcba4 2686 {
AzureIoTClient 23:1111ee8bcba4 2687 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 2688 {
AzureIoTClient 28:add19eb7defa 2689 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2690 }
AzureIoTClient 28:add19eb7defa 2691 else
AzureIoTClient 28:add19eb7defa 2692 {
AzureIoTClient 28:add19eb7defa 2693 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 2694 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2695 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2696 {
AzureIoTClient 28:add19eb7defa 2697 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2698 }
AzureIoTClient 28:add19eb7defa 2699 else
AzureIoTClient 28:add19eb7defa 2700 {
AzureIoTClient 28:add19eb7defa 2701 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2702 if ((get_single_value_result = amqpvalue_get_transfer_number(item_value, next_outgoing_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 2703 {
AzureIoTClient 28:add19eb7defa 2704 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2705 }
AzureIoTClient 28:add19eb7defa 2706 else
AzureIoTClient 28:add19eb7defa 2707 {
AzureIoTClient 28:add19eb7defa 2708 result = 0;
AzureIoTClient 28:add19eb7defa 2709 }
AzureIoTClient 28:add19eb7defa 2710 }
AzureIoTClient 28:add19eb7defa 2711 }
AzureIoTClient 28:add19eb7defa 2712 }
AzureIoTClient 28:add19eb7defa 2713 }
AzureIoTClient 28:add19eb7defa 2714
AzureIoTClient 28:add19eb7defa 2715 return result;
Azure.IoT Build 0:6ae2f7bca550 2716 }
Azure.IoT Build 0:6ae2f7bca550 2717
Azure.IoT Build 0:6ae2f7bca550 2718 int begin_set_next_outgoing_id(BEGIN_HANDLE begin, transfer_number next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 2719 {
AzureIoTClient 28:add19eb7defa 2720 int result;
AzureIoTClient 28:add19eb7defa 2721
AzureIoTClient 28:add19eb7defa 2722 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2723 {
AzureIoTClient 28:add19eb7defa 2724 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2725 }
AzureIoTClient 28:add19eb7defa 2726 else
AzureIoTClient 28:add19eb7defa 2727 {
AzureIoTClient 28:add19eb7defa 2728 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2729 AMQP_VALUE next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 2730 if (next_outgoing_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2731 {
AzureIoTClient 28:add19eb7defa 2732 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2733 }
AzureIoTClient 28:add19eb7defa 2734 else
AzureIoTClient 28:add19eb7defa 2735 {
AzureIoTClient 28:add19eb7defa 2736 if (amqpvalue_set_composite_item(begin_instance->composite_value, 1, next_outgoing_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2737 {
AzureIoTClient 28:add19eb7defa 2738 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2739 }
AzureIoTClient 28:add19eb7defa 2740 else
AzureIoTClient 28:add19eb7defa 2741 {
AzureIoTClient 28:add19eb7defa 2742 result = 0;
AzureIoTClient 28:add19eb7defa 2743 }
AzureIoTClient 28:add19eb7defa 2744
AzureIoTClient 28:add19eb7defa 2745 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 2746 }
AzureIoTClient 28:add19eb7defa 2747 }
AzureIoTClient 28:add19eb7defa 2748
AzureIoTClient 28:add19eb7defa 2749 return result;
Azure.IoT Build 0:6ae2f7bca550 2750 }
Azure.IoT Build 0:6ae2f7bca550 2751
Azure.IoT Build 0:6ae2f7bca550 2752 int begin_get_incoming_window(BEGIN_HANDLE begin, uint32_t* incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 2753 {
AzureIoTClient 28:add19eb7defa 2754 int result;
AzureIoTClient 28:add19eb7defa 2755
AzureIoTClient 28:add19eb7defa 2756 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2757 {
AzureIoTClient 28:add19eb7defa 2758 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2759 }
AzureIoTClient 28:add19eb7defa 2760 else
AzureIoTClient 28:add19eb7defa 2761 {
AzureIoTClient 28:add19eb7defa 2762 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2763 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2764 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2765 {
AzureIoTClient 23:1111ee8bcba4 2766 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2767 }
AzureIoTClient 23:1111ee8bcba4 2768 else
AzureIoTClient 23:1111ee8bcba4 2769 {
AzureIoTClient 23:1111ee8bcba4 2770 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 2771 {
AzureIoTClient 28:add19eb7defa 2772 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2773 }
AzureIoTClient 28:add19eb7defa 2774 else
AzureIoTClient 28:add19eb7defa 2775 {
AzureIoTClient 28:add19eb7defa 2776 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 2777 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2778 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2779 {
AzureIoTClient 28:add19eb7defa 2780 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2781 }
AzureIoTClient 28:add19eb7defa 2782 else
AzureIoTClient 28:add19eb7defa 2783 {
AzureIoTClient 28:add19eb7defa 2784 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2785 if ((get_single_value_result = amqpvalue_get_uint(item_value, incoming_window_value)) != 0)
AzureIoTClient 28:add19eb7defa 2786 {
AzureIoTClient 28:add19eb7defa 2787 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2788 }
AzureIoTClient 28:add19eb7defa 2789 else
AzureIoTClient 28:add19eb7defa 2790 {
AzureIoTClient 28:add19eb7defa 2791 result = 0;
AzureIoTClient 28:add19eb7defa 2792 }
AzureIoTClient 28:add19eb7defa 2793 }
AzureIoTClient 28:add19eb7defa 2794 }
AzureIoTClient 28:add19eb7defa 2795 }
AzureIoTClient 28:add19eb7defa 2796 }
AzureIoTClient 28:add19eb7defa 2797
AzureIoTClient 28:add19eb7defa 2798 return result;
Azure.IoT Build 0:6ae2f7bca550 2799 }
Azure.IoT Build 0:6ae2f7bca550 2800
Azure.IoT Build 0:6ae2f7bca550 2801 int begin_set_incoming_window(BEGIN_HANDLE begin, uint32_t incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 2802 {
AzureIoTClient 28:add19eb7defa 2803 int result;
AzureIoTClient 28:add19eb7defa 2804
AzureIoTClient 28:add19eb7defa 2805 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2806 {
AzureIoTClient 28:add19eb7defa 2807 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2808 }
AzureIoTClient 28:add19eb7defa 2809 else
AzureIoTClient 28:add19eb7defa 2810 {
AzureIoTClient 28:add19eb7defa 2811 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2812 AMQP_VALUE incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 2813 if (incoming_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2814 {
AzureIoTClient 28:add19eb7defa 2815 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2816 }
AzureIoTClient 28:add19eb7defa 2817 else
AzureIoTClient 28:add19eb7defa 2818 {
AzureIoTClient 28:add19eb7defa 2819 if (amqpvalue_set_composite_item(begin_instance->composite_value, 2, incoming_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2820 {
AzureIoTClient 28:add19eb7defa 2821 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2822 }
AzureIoTClient 28:add19eb7defa 2823 else
AzureIoTClient 28:add19eb7defa 2824 {
AzureIoTClient 28:add19eb7defa 2825 result = 0;
AzureIoTClient 28:add19eb7defa 2826 }
AzureIoTClient 28:add19eb7defa 2827
AzureIoTClient 28:add19eb7defa 2828 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2829 }
AzureIoTClient 28:add19eb7defa 2830 }
AzureIoTClient 28:add19eb7defa 2831
AzureIoTClient 28:add19eb7defa 2832 return result;
Azure.IoT Build 0:6ae2f7bca550 2833 }
Azure.IoT Build 0:6ae2f7bca550 2834
Azure.IoT Build 0:6ae2f7bca550 2835 int begin_get_outgoing_window(BEGIN_HANDLE begin, uint32_t* outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 2836 {
AzureIoTClient 28:add19eb7defa 2837 int result;
AzureIoTClient 28:add19eb7defa 2838
AzureIoTClient 28:add19eb7defa 2839 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2840 {
AzureIoTClient 28:add19eb7defa 2841 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2842 }
AzureIoTClient 28:add19eb7defa 2843 else
AzureIoTClient 28:add19eb7defa 2844 {
AzureIoTClient 28:add19eb7defa 2845 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2846 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2847 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2848 {
AzureIoTClient 23:1111ee8bcba4 2849 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2850 }
AzureIoTClient 23:1111ee8bcba4 2851 else
AzureIoTClient 23:1111ee8bcba4 2852 {
AzureIoTClient 23:1111ee8bcba4 2853 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 2854 {
AzureIoTClient 28:add19eb7defa 2855 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2856 }
AzureIoTClient 28:add19eb7defa 2857 else
AzureIoTClient 28:add19eb7defa 2858 {
AzureIoTClient 28:add19eb7defa 2859 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 2860 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2861 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2862 {
AzureIoTClient 28:add19eb7defa 2863 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2864 }
AzureIoTClient 28:add19eb7defa 2865 else
AzureIoTClient 28:add19eb7defa 2866 {
AzureIoTClient 28:add19eb7defa 2867 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2868 if ((get_single_value_result = amqpvalue_get_uint(item_value, outgoing_window_value)) != 0)
AzureIoTClient 28:add19eb7defa 2869 {
AzureIoTClient 28:add19eb7defa 2870 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2871 }
AzureIoTClient 28:add19eb7defa 2872 else
AzureIoTClient 28:add19eb7defa 2873 {
AzureIoTClient 28:add19eb7defa 2874 result = 0;
AzureIoTClient 28:add19eb7defa 2875 }
AzureIoTClient 28:add19eb7defa 2876 }
AzureIoTClient 28:add19eb7defa 2877 }
AzureIoTClient 28:add19eb7defa 2878 }
AzureIoTClient 28:add19eb7defa 2879 }
AzureIoTClient 28:add19eb7defa 2880
AzureIoTClient 28:add19eb7defa 2881 return result;
Azure.IoT Build 0:6ae2f7bca550 2882 }
Azure.IoT Build 0:6ae2f7bca550 2883
Azure.IoT Build 0:6ae2f7bca550 2884 int begin_set_outgoing_window(BEGIN_HANDLE begin, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 2885 {
AzureIoTClient 28:add19eb7defa 2886 int result;
AzureIoTClient 28:add19eb7defa 2887
AzureIoTClient 28:add19eb7defa 2888 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2889 {
AzureIoTClient 28:add19eb7defa 2890 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2891 }
AzureIoTClient 28:add19eb7defa 2892 else
AzureIoTClient 28:add19eb7defa 2893 {
AzureIoTClient 28:add19eb7defa 2894 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2895 AMQP_VALUE outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 2896 if (outgoing_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2897 {
AzureIoTClient 28:add19eb7defa 2898 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2899 }
AzureIoTClient 28:add19eb7defa 2900 else
AzureIoTClient 28:add19eb7defa 2901 {
AzureIoTClient 28:add19eb7defa 2902 if (amqpvalue_set_composite_item(begin_instance->composite_value, 3, outgoing_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2903 {
AzureIoTClient 28:add19eb7defa 2904 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2905 }
AzureIoTClient 28:add19eb7defa 2906 else
AzureIoTClient 28:add19eb7defa 2907 {
AzureIoTClient 28:add19eb7defa 2908 result = 0;
AzureIoTClient 28:add19eb7defa 2909 }
AzureIoTClient 28:add19eb7defa 2910
AzureIoTClient 28:add19eb7defa 2911 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 2912 }
AzureIoTClient 28:add19eb7defa 2913 }
AzureIoTClient 28:add19eb7defa 2914
AzureIoTClient 28:add19eb7defa 2915 return result;
Azure.IoT Build 0:6ae2f7bca550 2916 }
Azure.IoT Build 0:6ae2f7bca550 2917
Azure.IoT Build 0:6ae2f7bca550 2918 int begin_get_handle_max(BEGIN_HANDLE begin, handle* handle_max_value)
Azure.IoT Build 0:6ae2f7bca550 2919 {
AzureIoTClient 28:add19eb7defa 2920 int result;
AzureIoTClient 28:add19eb7defa 2921
AzureIoTClient 28:add19eb7defa 2922 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2923 {
AzureIoTClient 28:add19eb7defa 2924 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2925 }
AzureIoTClient 28:add19eb7defa 2926 else
AzureIoTClient 28:add19eb7defa 2927 {
AzureIoTClient 28:add19eb7defa 2928 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 2929 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 2930 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 2931 {
AzureIoTClient 23:1111ee8bcba4 2932 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 2933 }
AzureIoTClient 23:1111ee8bcba4 2934 else
AzureIoTClient 23:1111ee8bcba4 2935 {
AzureIoTClient 23:1111ee8bcba4 2936 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 2937 {
AzureIoTClient 28:add19eb7defa 2938 *handle_max_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 2939 result = 0;
AzureIoTClient 28:add19eb7defa 2940 }
AzureIoTClient 28:add19eb7defa 2941 else
AzureIoTClient 28:add19eb7defa 2942 {
AzureIoTClient 28:add19eb7defa 2943 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 2944 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 2945 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 2946 {
AzureIoTClient 28:add19eb7defa 2947 *handle_max_value = 4294967295u;
AzureIoTClient 28:add19eb7defa 2948 result = 0;
AzureIoTClient 28:add19eb7defa 2949 }
AzureIoTClient 28:add19eb7defa 2950 else
AzureIoTClient 28:add19eb7defa 2951 {
AzureIoTClient 28:add19eb7defa 2952 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 2953 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_max_value)) != 0)
AzureIoTClient 28:add19eb7defa 2954 {
AzureIoTClient 23:1111ee8bcba4 2955 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 2956 {
AzureIoTClient 28:add19eb7defa 2957 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2958 }
AzureIoTClient 28:add19eb7defa 2959 else
AzureIoTClient 28:add19eb7defa 2960 {
AzureIoTClient 28:add19eb7defa 2961 *handle_max_value = 4294967295u;
AzureIoTClient 23:1111ee8bcba4 2962 result = 0;
AzureIoTClient 23:1111ee8bcba4 2963 }
AzureIoTClient 28:add19eb7defa 2964 }
AzureIoTClient 28:add19eb7defa 2965 else
AzureIoTClient 28:add19eb7defa 2966 {
AzureIoTClient 28:add19eb7defa 2967 result = 0;
AzureIoTClient 28:add19eb7defa 2968 }
AzureIoTClient 28:add19eb7defa 2969 }
AzureIoTClient 28:add19eb7defa 2970 }
AzureIoTClient 28:add19eb7defa 2971 }
AzureIoTClient 28:add19eb7defa 2972 }
AzureIoTClient 28:add19eb7defa 2973
AzureIoTClient 28:add19eb7defa 2974 return result;
Azure.IoT Build 0:6ae2f7bca550 2975 }
Azure.IoT Build 0:6ae2f7bca550 2976
Azure.IoT Build 0:6ae2f7bca550 2977 int begin_set_handle_max(BEGIN_HANDLE begin, handle handle_max_value)
Azure.IoT Build 0:6ae2f7bca550 2978 {
AzureIoTClient 28:add19eb7defa 2979 int result;
AzureIoTClient 28:add19eb7defa 2980
AzureIoTClient 28:add19eb7defa 2981 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 2982 {
AzureIoTClient 28:add19eb7defa 2983 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2984 }
AzureIoTClient 28:add19eb7defa 2985 else
AzureIoTClient 28:add19eb7defa 2986 {
AzureIoTClient 28:add19eb7defa 2987 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 2988 AMQP_VALUE handle_max_amqp_value = amqpvalue_create_handle(handle_max_value);
AzureIoTClient 28:add19eb7defa 2989 if (handle_max_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 2990 {
AzureIoTClient 28:add19eb7defa 2991 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2992 }
AzureIoTClient 28:add19eb7defa 2993 else
AzureIoTClient 28:add19eb7defa 2994 {
AzureIoTClient 28:add19eb7defa 2995 if (amqpvalue_set_composite_item(begin_instance->composite_value, 4, handle_max_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 2996 {
AzureIoTClient 28:add19eb7defa 2997 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 2998 }
AzureIoTClient 28:add19eb7defa 2999 else
AzureIoTClient 28:add19eb7defa 3000 {
AzureIoTClient 28:add19eb7defa 3001 result = 0;
AzureIoTClient 28:add19eb7defa 3002 }
AzureIoTClient 28:add19eb7defa 3003
AzureIoTClient 28:add19eb7defa 3004 amqpvalue_destroy(handle_max_amqp_value);
AzureIoTClient 28:add19eb7defa 3005 }
AzureIoTClient 28:add19eb7defa 3006 }
AzureIoTClient 28:add19eb7defa 3007
AzureIoTClient 28:add19eb7defa 3008 return result;
Azure.IoT Build 0:6ae2f7bca550 3009 }
Azure.IoT Build 0:6ae2f7bca550 3010
Azure.IoT Build 0:6ae2f7bca550 3011 int begin_get_offered_capabilities(BEGIN_HANDLE begin, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3012 {
AzureIoTClient 28:add19eb7defa 3013 int result;
AzureIoTClient 28:add19eb7defa 3014
AzureIoTClient 28:add19eb7defa 3015 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3016 {
AzureIoTClient 28:add19eb7defa 3017 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3018 }
AzureIoTClient 28:add19eb7defa 3019 else
AzureIoTClient 28:add19eb7defa 3020 {
AzureIoTClient 28:add19eb7defa 3021 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3022 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3023 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3024 {
AzureIoTClient 23:1111ee8bcba4 3025 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3026 }
AzureIoTClient 23:1111ee8bcba4 3027 else
AzureIoTClient 23:1111ee8bcba4 3028 {
AzureIoTClient 23:1111ee8bcba4 3029 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 3030 {
AzureIoTClient 28:add19eb7defa 3031 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3032 }
AzureIoTClient 28:add19eb7defa 3033 else
AzureIoTClient 28:add19eb7defa 3034 {
AzureIoTClient 28:add19eb7defa 3035 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 3036 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3037 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3038 {
AzureIoTClient 28:add19eb7defa 3039 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3040 }
AzureIoTClient 28:add19eb7defa 3041 else
AzureIoTClient 28:add19eb7defa 3042 {
AzureIoTClient 28:add19eb7defa 3043 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 3044 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3045 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3046 {
AzureIoTClient 28:add19eb7defa 3047 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3048 }
AzureIoTClient 28:add19eb7defa 3049 else
AzureIoTClient 28:add19eb7defa 3050 {
AzureIoTClient 28:add19eb7defa 3051 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 3052 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 3053 }
AzureIoTClient 28:add19eb7defa 3054
AzureIoTClient 28:add19eb7defa 3055 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 3056 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 3057 {
AzureIoTClient 28:add19eb7defa 3058 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3059 }
AzureIoTClient 28:add19eb7defa 3060 else
AzureIoTClient 28:add19eb7defa 3061 {
AzureIoTClient 28:add19eb7defa 3062 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3063 {
AzureIoTClient 28:add19eb7defa 3064 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 3065 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 3066 {
AzureIoTClient 28:add19eb7defa 3067 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3068 }
AzureIoTClient 28:add19eb7defa 3069 else
AzureIoTClient 28:add19eb7defa 3070 {
AzureIoTClient 28:add19eb7defa 3071 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3072 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3073 {
AzureIoTClient 28:add19eb7defa 3074 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 3075 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3076 }
AzureIoTClient 28:add19eb7defa 3077 else
AzureIoTClient 28:add19eb7defa 3078 {
AzureIoTClient 28:add19eb7defa 3079 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3080 {
AzureIoTClient 28:add19eb7defa 3081 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 3082 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 3083 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3084 }
AzureIoTClient 28:add19eb7defa 3085 else
AzureIoTClient 28:add19eb7defa 3086 {
AzureIoTClient 28:add19eb7defa 3087 result = 0;
AzureIoTClient 28:add19eb7defa 3088 }
AzureIoTClient 28:add19eb7defa 3089 }
AzureIoTClient 28:add19eb7defa 3090 }
AzureIoTClient 28:add19eb7defa 3091 }
AzureIoTClient 28:add19eb7defa 3092 else
AzureIoTClient 28:add19eb7defa 3093 {
AzureIoTClient 28:add19eb7defa 3094 result = 0;
AzureIoTClient 28:add19eb7defa 3095 }
AzureIoTClient 28:add19eb7defa 3096 }
AzureIoTClient 28:add19eb7defa 3097 }
AzureIoTClient 28:add19eb7defa 3098 }
AzureIoTClient 28:add19eb7defa 3099 }
AzureIoTClient 28:add19eb7defa 3100 }
AzureIoTClient 28:add19eb7defa 3101
AzureIoTClient 28:add19eb7defa 3102 return result;
Azure.IoT Build 0:6ae2f7bca550 3103 }
Azure.IoT Build 0:6ae2f7bca550 3104
Azure.IoT Build 0:6ae2f7bca550 3105 int begin_set_offered_capabilities(BEGIN_HANDLE begin, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3106 {
AzureIoTClient 28:add19eb7defa 3107 int result;
AzureIoTClient 28:add19eb7defa 3108
AzureIoTClient 28:add19eb7defa 3109 if (begin == 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 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3116 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 3117 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3118 {
AzureIoTClient 23:1111ee8bcba4 3119 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 3120 }
AzureIoTClient 23:1111ee8bcba4 3121 else
AzureIoTClient 23:1111ee8bcba4 3122 {
AzureIoTClient 23:1111ee8bcba4 3123 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 3124 }
AzureIoTClient 28:add19eb7defa 3125 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3126 {
AzureIoTClient 28:add19eb7defa 3127 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3128 }
AzureIoTClient 28:add19eb7defa 3129 else
AzureIoTClient 28:add19eb7defa 3130 {
AzureIoTClient 28:add19eb7defa 3131 if (amqpvalue_set_composite_item(begin_instance->composite_value, 5, offered_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3132 {
AzureIoTClient 28:add19eb7defa 3133 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3134 }
AzureIoTClient 28:add19eb7defa 3135 else
AzureIoTClient 28:add19eb7defa 3136 {
AzureIoTClient 28:add19eb7defa 3137 result = 0;
AzureIoTClient 28:add19eb7defa 3138 }
AzureIoTClient 28:add19eb7defa 3139
AzureIoTClient 28:add19eb7defa 3140 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 3141 }
AzureIoTClient 28:add19eb7defa 3142 }
AzureIoTClient 28:add19eb7defa 3143
AzureIoTClient 28:add19eb7defa 3144 return result;
Azure.IoT Build 0:6ae2f7bca550 3145 }
Azure.IoT Build 0:6ae2f7bca550 3146
Azure.IoT Build 0:6ae2f7bca550 3147 int begin_get_desired_capabilities(BEGIN_HANDLE begin, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3148 {
AzureIoTClient 28:add19eb7defa 3149 int result;
AzureIoTClient 28:add19eb7defa 3150
AzureIoTClient 28:add19eb7defa 3151 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3152 {
AzureIoTClient 28:add19eb7defa 3153 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3154 }
AzureIoTClient 28:add19eb7defa 3155 else
AzureIoTClient 28:add19eb7defa 3156 {
AzureIoTClient 28:add19eb7defa 3157 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3158 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3159 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3160 {
AzureIoTClient 23:1111ee8bcba4 3161 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3162 }
AzureIoTClient 23:1111ee8bcba4 3163 else
AzureIoTClient 23:1111ee8bcba4 3164 {
AzureIoTClient 23:1111ee8bcba4 3165 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 3166 {
AzureIoTClient 28:add19eb7defa 3167 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3168 }
AzureIoTClient 28:add19eb7defa 3169 else
AzureIoTClient 28:add19eb7defa 3170 {
AzureIoTClient 28:add19eb7defa 3171 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 3172 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3173 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3174 {
AzureIoTClient 28:add19eb7defa 3175 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3176 }
AzureIoTClient 28:add19eb7defa 3177 else
AzureIoTClient 28:add19eb7defa 3178 {
AzureIoTClient 28:add19eb7defa 3179 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 3180 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3181 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3182 {
AzureIoTClient 28:add19eb7defa 3183 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3184 }
AzureIoTClient 28:add19eb7defa 3185 else
AzureIoTClient 28:add19eb7defa 3186 {
AzureIoTClient 28:add19eb7defa 3187 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 3188 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 3189 }
AzureIoTClient 28:add19eb7defa 3190
AzureIoTClient 28:add19eb7defa 3191 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 3192 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 3193 {
AzureIoTClient 28:add19eb7defa 3194 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3195 }
AzureIoTClient 28:add19eb7defa 3196 else
AzureIoTClient 28:add19eb7defa 3197 {
AzureIoTClient 28:add19eb7defa 3198 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 3199 {
AzureIoTClient 28:add19eb7defa 3200 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 3201 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 3202 {
AzureIoTClient 28:add19eb7defa 3203 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3204 }
AzureIoTClient 28:add19eb7defa 3205 else
AzureIoTClient 28:add19eb7defa 3206 {
AzureIoTClient 28:add19eb7defa 3207 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 3208 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3209 {
AzureIoTClient 28:add19eb7defa 3210 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 3211 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3212 }
AzureIoTClient 28:add19eb7defa 3213 else
AzureIoTClient 28:add19eb7defa 3214 {
AzureIoTClient 28:add19eb7defa 3215 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3216 {
AzureIoTClient 28:add19eb7defa 3217 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 3218 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 3219 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3220 }
AzureIoTClient 28:add19eb7defa 3221 else
AzureIoTClient 28:add19eb7defa 3222 {
AzureIoTClient 28:add19eb7defa 3223 result = 0;
AzureIoTClient 28:add19eb7defa 3224 }
AzureIoTClient 28:add19eb7defa 3225 }
AzureIoTClient 28:add19eb7defa 3226 }
AzureIoTClient 28:add19eb7defa 3227 }
AzureIoTClient 28:add19eb7defa 3228 else
AzureIoTClient 28:add19eb7defa 3229 {
AzureIoTClient 28:add19eb7defa 3230 result = 0;
AzureIoTClient 28:add19eb7defa 3231 }
AzureIoTClient 28:add19eb7defa 3232 }
AzureIoTClient 28:add19eb7defa 3233 }
AzureIoTClient 28:add19eb7defa 3234 }
AzureIoTClient 28:add19eb7defa 3235 }
AzureIoTClient 28:add19eb7defa 3236 }
AzureIoTClient 28:add19eb7defa 3237
AzureIoTClient 28:add19eb7defa 3238 return result;
Azure.IoT Build 0:6ae2f7bca550 3239 }
Azure.IoT Build 0:6ae2f7bca550 3240
Azure.IoT Build 0:6ae2f7bca550 3241 int begin_set_desired_capabilities(BEGIN_HANDLE begin, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 3242 {
AzureIoTClient 28:add19eb7defa 3243 int result;
AzureIoTClient 28:add19eb7defa 3244
AzureIoTClient 28:add19eb7defa 3245 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3246 {
AzureIoTClient 28:add19eb7defa 3247 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3248 }
AzureIoTClient 28:add19eb7defa 3249 else
AzureIoTClient 28:add19eb7defa 3250 {
AzureIoTClient 28:add19eb7defa 3251 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3252 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 3253 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 3254 {
AzureIoTClient 23:1111ee8bcba4 3255 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 3256 }
AzureIoTClient 23:1111ee8bcba4 3257 else
AzureIoTClient 23:1111ee8bcba4 3258 {
AzureIoTClient 23:1111ee8bcba4 3259 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 3260 }
AzureIoTClient 28:add19eb7defa 3261 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3262 {
AzureIoTClient 28:add19eb7defa 3263 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3264 }
AzureIoTClient 28:add19eb7defa 3265 else
AzureIoTClient 28:add19eb7defa 3266 {
AzureIoTClient 28:add19eb7defa 3267 if (amqpvalue_set_composite_item(begin_instance->composite_value, 6, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3268 {
AzureIoTClient 28:add19eb7defa 3269 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3270 }
AzureIoTClient 28:add19eb7defa 3271 else
AzureIoTClient 28:add19eb7defa 3272 {
AzureIoTClient 28:add19eb7defa 3273 result = 0;
AzureIoTClient 28:add19eb7defa 3274 }
AzureIoTClient 28:add19eb7defa 3275
AzureIoTClient 28:add19eb7defa 3276 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 3277 }
AzureIoTClient 28:add19eb7defa 3278 }
AzureIoTClient 28:add19eb7defa 3279
AzureIoTClient 28:add19eb7defa 3280 return result;
Azure.IoT Build 0:6ae2f7bca550 3281 }
Azure.IoT Build 0:6ae2f7bca550 3282
Azure.IoT Build 0:6ae2f7bca550 3283 int begin_get_properties(BEGIN_HANDLE begin, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 3284 {
AzureIoTClient 28:add19eb7defa 3285 int result;
AzureIoTClient 28:add19eb7defa 3286
AzureIoTClient 28:add19eb7defa 3287 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3288 {
AzureIoTClient 28:add19eb7defa 3289 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3290 }
AzureIoTClient 28:add19eb7defa 3291 else
AzureIoTClient 28:add19eb7defa 3292 {
AzureIoTClient 28:add19eb7defa 3293 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3294 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 23:1111ee8bcba4 3295 if (amqpvalue_get_composite_item_count(begin_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3296 {
AzureIoTClient 23:1111ee8bcba4 3297 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3298 }
AzureIoTClient 23:1111ee8bcba4 3299 else
AzureIoTClient 23:1111ee8bcba4 3300 {
AzureIoTClient 23:1111ee8bcba4 3301 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 3302 {
AzureIoTClient 28:add19eb7defa 3303 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3304 }
AzureIoTClient 28:add19eb7defa 3305 else
AzureIoTClient 28:add19eb7defa 3306 {
AzureIoTClient 28:add19eb7defa 3307 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 3308 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3309 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3310 {
AzureIoTClient 28:add19eb7defa 3311 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3312 }
AzureIoTClient 28:add19eb7defa 3313 else
AzureIoTClient 28:add19eb7defa 3314 {
AzureIoTClient 28:add19eb7defa 3315 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3316 if ((get_single_value_result = amqpvalue_get_fields(item_value, properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 3317 {
AzureIoTClient 28:add19eb7defa 3318 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3319 }
AzureIoTClient 28:add19eb7defa 3320 else
AzureIoTClient 28:add19eb7defa 3321 {
AzureIoTClient 28:add19eb7defa 3322 result = 0;
AzureIoTClient 28:add19eb7defa 3323 }
AzureIoTClient 28:add19eb7defa 3324 }
AzureIoTClient 28:add19eb7defa 3325 }
AzureIoTClient 28:add19eb7defa 3326 }
AzureIoTClient 28:add19eb7defa 3327 }
AzureIoTClient 28:add19eb7defa 3328
AzureIoTClient 28:add19eb7defa 3329 return result;
Azure.IoT Build 0:6ae2f7bca550 3330 }
Azure.IoT Build 0:6ae2f7bca550 3331
Azure.IoT Build 0:6ae2f7bca550 3332 int begin_set_properties(BEGIN_HANDLE begin, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 3333 {
AzureIoTClient 28:add19eb7defa 3334 int result;
AzureIoTClient 28:add19eb7defa 3335
AzureIoTClient 28:add19eb7defa 3336 if (begin == NULL)
AzureIoTClient 28:add19eb7defa 3337 {
AzureIoTClient 28:add19eb7defa 3338 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3339 }
AzureIoTClient 28:add19eb7defa 3340 else
AzureIoTClient 28:add19eb7defa 3341 {
AzureIoTClient 28:add19eb7defa 3342 BEGIN_INSTANCE* begin_instance = (BEGIN_INSTANCE*)begin;
AzureIoTClient 28:add19eb7defa 3343 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 3344 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 3345 {
AzureIoTClient 28:add19eb7defa 3346 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3347 }
AzureIoTClient 28:add19eb7defa 3348 else
AzureIoTClient 28:add19eb7defa 3349 {
AzureIoTClient 28:add19eb7defa 3350 if (amqpvalue_set_composite_item(begin_instance->composite_value, 7, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 3351 {
AzureIoTClient 28:add19eb7defa 3352 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3353 }
AzureIoTClient 28:add19eb7defa 3354 else
AzureIoTClient 28:add19eb7defa 3355 {
AzureIoTClient 28:add19eb7defa 3356 result = 0;
AzureIoTClient 28:add19eb7defa 3357 }
AzureIoTClient 28:add19eb7defa 3358
AzureIoTClient 28:add19eb7defa 3359 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 3360 }
AzureIoTClient 28:add19eb7defa 3361 }
AzureIoTClient 28:add19eb7defa 3362
AzureIoTClient 28:add19eb7defa 3363 return result;
Azure.IoT Build 0:6ae2f7bca550 3364 }
Azure.IoT Build 0:6ae2f7bca550 3365
Azure.IoT Build 0:6ae2f7bca550 3366
Azure.IoT Build 0:6ae2f7bca550 3367 /* attach */
Azure.IoT Build 0:6ae2f7bca550 3368
Azure.IoT Build 0:6ae2f7bca550 3369 typedef struct ATTACH_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 3370 {
AzureIoTClient 28:add19eb7defa 3371 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 3372 } ATTACH_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 3373
Azure.IoT Build 0:6ae2f7bca550 3374 static ATTACH_HANDLE attach_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 3375 {
AzureIoTClient 28:add19eb7defa 3376 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3377 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3378 {
AzureIoTClient 28:add19eb7defa 3379 attach_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 3380 }
AzureIoTClient 28:add19eb7defa 3381
AzureIoTClient 28:add19eb7defa 3382 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3383 }
Azure.IoT Build 0:6ae2f7bca550 3384
Azure.IoT Build 0:6ae2f7bca550 3385 ATTACH_HANDLE attach_create(const char* name_value, handle handle_value, role role_value)
Azure.IoT Build 0:6ae2f7bca550 3386 {
AzureIoTClient 28:add19eb7defa 3387 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3388 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3389 {
AzureIoTClient 28:add19eb7defa 3390 attach_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(18);
AzureIoTClient 28:add19eb7defa 3391 if (attach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 3392 {
AzureIoTClient 28:add19eb7defa 3393 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3394 attach_instance = NULL;
AzureIoTClient 28:add19eb7defa 3395 }
AzureIoTClient 28:add19eb7defa 3396 else
AzureIoTClient 28:add19eb7defa 3397 {
AzureIoTClient 28:add19eb7defa 3398 AMQP_VALUE name_amqp_value;
AzureIoTClient 28:add19eb7defa 3399 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 3400 AMQP_VALUE role_amqp_value;
AzureIoTClient 28:add19eb7defa 3401 int result = 0;
AzureIoTClient 28:add19eb7defa 3402
AzureIoTClient 28:add19eb7defa 3403 name_amqp_value = amqpvalue_create_string(name_value);
AzureIoTClient 28:add19eb7defa 3404 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 0, name_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3405 {
AzureIoTClient 28:add19eb7defa 3406 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3407 }
AzureIoTClient 28:add19eb7defa 3408 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 3409 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 1, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3410 {
AzureIoTClient 28:add19eb7defa 3411 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3412 }
AzureIoTClient 28:add19eb7defa 3413 role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 3414 if ((result == 0) && (amqpvalue_set_composite_item(attach_instance->composite_value, 2, role_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 3415 {
AzureIoTClient 28:add19eb7defa 3416 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3417 }
AzureIoTClient 28:add19eb7defa 3418
AzureIoTClient 28:add19eb7defa 3419 amqpvalue_destroy(name_amqp_value);
AzureIoTClient 28:add19eb7defa 3420 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 3421 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 3422 }
AzureIoTClient 28:add19eb7defa 3423 }
AzureIoTClient 28:add19eb7defa 3424
AzureIoTClient 28:add19eb7defa 3425 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3426 }
Azure.IoT Build 0:6ae2f7bca550 3427
Azure.IoT Build 0:6ae2f7bca550 3428 ATTACH_HANDLE attach_clone(ATTACH_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 3429 {
AzureIoTClient 28:add19eb7defa 3430 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)malloc(sizeof(ATTACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 3431 if (attach_instance != NULL)
AzureIoTClient 28:add19eb7defa 3432 {
AzureIoTClient 28:add19eb7defa 3433 attach_instance->composite_value = amqpvalue_clone(((ATTACH_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 3434 if (attach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 3435 {
AzureIoTClient 28:add19eb7defa 3436 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3437 attach_instance = NULL;
AzureIoTClient 28:add19eb7defa 3438 }
AzureIoTClient 28:add19eb7defa 3439 }
AzureIoTClient 28:add19eb7defa 3440
AzureIoTClient 28:add19eb7defa 3441 return attach_instance;
Azure.IoT Build 0:6ae2f7bca550 3442 }
Azure.IoT Build 0:6ae2f7bca550 3443
Azure.IoT Build 0:6ae2f7bca550 3444 void attach_destroy(ATTACH_HANDLE attach)
Azure.IoT Build 0:6ae2f7bca550 3445 {
AzureIoTClient 28:add19eb7defa 3446 if (attach != NULL)
AzureIoTClient 28:add19eb7defa 3447 {
AzureIoTClient 28:add19eb7defa 3448 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 3449 amqpvalue_destroy(attach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 3450 free(attach_instance);
AzureIoTClient 28:add19eb7defa 3451 }
Azure.IoT Build 0:6ae2f7bca550 3452 }
Azure.IoT Build 0:6ae2f7bca550 3453
Azure.IoT Build 0:6ae2f7bca550 3454 AMQP_VALUE amqpvalue_create_attach(ATTACH_HANDLE attach)
Azure.IoT Build 0:6ae2f7bca550 3455 {
AzureIoTClient 28:add19eb7defa 3456 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 3457
AzureIoTClient 28:add19eb7defa 3458 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 3459 {
AzureIoTClient 28:add19eb7defa 3460 result = NULL;
AzureIoTClient 28:add19eb7defa 3461 }
AzureIoTClient 28:add19eb7defa 3462 else
AzureIoTClient 28:add19eb7defa 3463 {
AzureIoTClient 28:add19eb7defa 3464 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 3465 result = amqpvalue_clone(attach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 3466 }
AzureIoTClient 28:add19eb7defa 3467
AzureIoTClient 28:add19eb7defa 3468 return result;
Azure.IoT Build 0:6ae2f7bca550 3469 }
Azure.IoT Build 0:6ae2f7bca550 3470
Azure.IoT Build 0:6ae2f7bca550 3471 bool is_attach_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 3472 {
AzureIoTClient 28:add19eb7defa 3473 bool result;
AzureIoTClient 28:add19eb7defa 3474
AzureIoTClient 28:add19eb7defa 3475 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 3476 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 3477 (descriptor_ulong == 18))
AzureIoTClient 28:add19eb7defa 3478 {
AzureIoTClient 28:add19eb7defa 3479 result = true;
AzureIoTClient 28:add19eb7defa 3480 }
AzureIoTClient 28:add19eb7defa 3481 else
AzureIoTClient 28:add19eb7defa 3482 {
AzureIoTClient 28:add19eb7defa 3483 result = false;
AzureIoTClient 28:add19eb7defa 3484 }
AzureIoTClient 28:add19eb7defa 3485
AzureIoTClient 28:add19eb7defa 3486 return result;
Azure.IoT Build 0:6ae2f7bca550 3487 }
Azure.IoT Build 0:6ae2f7bca550 3488
Azure.IoT Build 0:6ae2f7bca550 3489
Azure.IoT Build 0:6ae2f7bca550 3490 int amqpvalue_get_attach(AMQP_VALUE value, ATTACH_HANDLE* attach_handle)
Azure.IoT Build 0:6ae2f7bca550 3491 {
AzureIoTClient 28:add19eb7defa 3492 int result;
AzureIoTClient 28:add19eb7defa 3493 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach_create_internal();
AzureIoTClient 28:add19eb7defa 3494 *attach_handle = attach_instance;
AzureIoTClient 28:add19eb7defa 3495 if (*attach_handle == NULL)
AzureIoTClient 28:add19eb7defa 3496 {
AzureIoTClient 28:add19eb7defa 3497 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3498 }
AzureIoTClient 28:add19eb7defa 3499 else
AzureIoTClient 28:add19eb7defa 3500 {
AzureIoTClient 28:add19eb7defa 3501 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 3502 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 3503 {
AzureIoTClient 28:add19eb7defa 3504 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3505 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3506 }
AzureIoTClient 28:add19eb7defa 3507 else
AzureIoTClient 28:add19eb7defa 3508 {
AzureIoTClient 23:1111ee8bcba4 3509 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 3510 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3511 {
AzureIoTClient 23:1111ee8bcba4 3512 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3513 }
AzureIoTClient 23:1111ee8bcba4 3514 else
AzureIoTClient 23:1111ee8bcba4 3515 {
AzureIoTClient 28:add19eb7defa 3516 do
AzureIoTClient 28:add19eb7defa 3517 {
AzureIoTClient 28:add19eb7defa 3518 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 3519 /* name */
AzureIoTClient 28:add19eb7defa 3520 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 3521 {
AzureIoTClient 23:1111ee8bcba4 3522 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 3523 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3524 {
AzureIoTClient 28:add19eb7defa 3525 {
AzureIoTClient 28:add19eb7defa 3526 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3527 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3528 break;
AzureIoTClient 28:add19eb7defa 3529 }
AzureIoTClient 28:add19eb7defa 3530 }
AzureIoTClient 28:add19eb7defa 3531 else
AzureIoTClient 28:add19eb7defa 3532 {
AzureIoTClient 28:add19eb7defa 3533 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3534 {
AzureIoTClient 28:add19eb7defa 3535 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3536 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3537 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3538 break;
AzureIoTClient 28:add19eb7defa 3539 }
AzureIoTClient 28:add19eb7defa 3540 else
AzureIoTClient 28:add19eb7defa 3541 {
AzureIoTClient 28:add19eb7defa 3542 const char* name;
AzureIoTClient 28:add19eb7defa 3543 if (amqpvalue_get_string(item_value, &name) != 0)
AzureIoTClient 28:add19eb7defa 3544 {
AzureIoTClient 28:add19eb7defa 3545 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3546 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3547 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3548 break;
AzureIoTClient 28:add19eb7defa 3549 }
AzureIoTClient 28:add19eb7defa 3550 }
AzureIoTClient 28:add19eb7defa 3551
AzureIoTClient 28:add19eb7defa 3552 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3553 }
AzureIoTClient 28:add19eb7defa 3554 }
AzureIoTClient 28:add19eb7defa 3555 else
AzureIoTClient 28:add19eb7defa 3556 {
AzureIoTClient 28:add19eb7defa 3557 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3558 }
AzureIoTClient 28:add19eb7defa 3559 /* handle */
AzureIoTClient 28:add19eb7defa 3560 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 3561 {
AzureIoTClient 23:1111ee8bcba4 3562 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 3563 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3564 {
AzureIoTClient 28:add19eb7defa 3565 {
AzureIoTClient 28:add19eb7defa 3566 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3567 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3568 break;
AzureIoTClient 28:add19eb7defa 3569 }
AzureIoTClient 28:add19eb7defa 3570 }
AzureIoTClient 28:add19eb7defa 3571 else
AzureIoTClient 28:add19eb7defa 3572 {
AzureIoTClient 28:add19eb7defa 3573 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3574 {
AzureIoTClient 28:add19eb7defa 3575 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3576 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3577 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3578 break;
AzureIoTClient 28:add19eb7defa 3579 }
AzureIoTClient 28:add19eb7defa 3580 else
AzureIoTClient 28:add19eb7defa 3581 {
AzureIoTClient 28:add19eb7defa 3582 handle handle;
AzureIoTClient 28:add19eb7defa 3583 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 3584 {
AzureIoTClient 28:add19eb7defa 3585 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3586 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3587 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3588 break;
AzureIoTClient 28:add19eb7defa 3589 }
AzureIoTClient 28:add19eb7defa 3590 }
AzureIoTClient 28:add19eb7defa 3591
AzureIoTClient 28:add19eb7defa 3592 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3593 }
AzureIoTClient 28:add19eb7defa 3594 }
AzureIoTClient 28:add19eb7defa 3595 else
AzureIoTClient 28:add19eb7defa 3596 {
AzureIoTClient 28:add19eb7defa 3597 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3598 }
AzureIoTClient 28:add19eb7defa 3599 /* role */
AzureIoTClient 28:add19eb7defa 3600 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 3601 {
AzureIoTClient 23:1111ee8bcba4 3602 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 3603 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3604 {
AzureIoTClient 28:add19eb7defa 3605 {
AzureIoTClient 28:add19eb7defa 3606 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3607 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3608 break;
AzureIoTClient 28:add19eb7defa 3609 }
AzureIoTClient 28:add19eb7defa 3610 }
AzureIoTClient 28:add19eb7defa 3611 else
AzureIoTClient 28:add19eb7defa 3612 {
AzureIoTClient 28:add19eb7defa 3613 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3614 {
AzureIoTClient 28:add19eb7defa 3615 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3616 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3617 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3618 break;
AzureIoTClient 28:add19eb7defa 3619 }
AzureIoTClient 28:add19eb7defa 3620 else
AzureIoTClient 28:add19eb7defa 3621 {
AzureIoTClient 28:add19eb7defa 3622 role role;
AzureIoTClient 28:add19eb7defa 3623 if (amqpvalue_get_role(item_value, &role) != 0)
AzureIoTClient 28:add19eb7defa 3624 {
AzureIoTClient 28:add19eb7defa 3625 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3626 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3627 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3628 break;
AzureIoTClient 28:add19eb7defa 3629 }
AzureIoTClient 28:add19eb7defa 3630 }
AzureIoTClient 28:add19eb7defa 3631
AzureIoTClient 28:add19eb7defa 3632 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3633 }
AzureIoTClient 28:add19eb7defa 3634 }
AzureIoTClient 28:add19eb7defa 3635 else
AzureIoTClient 28:add19eb7defa 3636 {
AzureIoTClient 28:add19eb7defa 3637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3638 }
AzureIoTClient 28:add19eb7defa 3639 /* snd-settle-mode */
AzureIoTClient 28:add19eb7defa 3640 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 3641 {
AzureIoTClient 23:1111ee8bcba4 3642 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 3643 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3644 {
AzureIoTClient 28:add19eb7defa 3645 /* do nothing */
AzureIoTClient 28:add19eb7defa 3646 }
AzureIoTClient 28:add19eb7defa 3647 else
AzureIoTClient 28:add19eb7defa 3648 {
AzureIoTClient 28:add19eb7defa 3649 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3650 {
AzureIoTClient 28:add19eb7defa 3651 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3652 }
AzureIoTClient 28:add19eb7defa 3653 else
AzureIoTClient 28:add19eb7defa 3654 {
AzureIoTClient 28:add19eb7defa 3655 sender_settle_mode snd_settle_mode;
AzureIoTClient 28:add19eb7defa 3656 if (amqpvalue_get_sender_settle_mode(item_value, &snd_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 3657 {
AzureIoTClient 28:add19eb7defa 3658 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3659 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3660 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3661 break;
AzureIoTClient 28:add19eb7defa 3662 }
AzureIoTClient 28:add19eb7defa 3663 }
AzureIoTClient 28:add19eb7defa 3664
AzureIoTClient 28:add19eb7defa 3665 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3666 }
AzureIoTClient 28:add19eb7defa 3667 }
AzureIoTClient 28:add19eb7defa 3668 /* rcv-settle-mode */
AzureIoTClient 28:add19eb7defa 3669 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 3670 {
AzureIoTClient 23:1111ee8bcba4 3671 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 3672 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3673 {
AzureIoTClient 28:add19eb7defa 3674 /* do nothing */
AzureIoTClient 28:add19eb7defa 3675 }
AzureIoTClient 28:add19eb7defa 3676 else
AzureIoTClient 28:add19eb7defa 3677 {
AzureIoTClient 28:add19eb7defa 3678 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3679 {
AzureIoTClient 28:add19eb7defa 3680 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3681 }
AzureIoTClient 28:add19eb7defa 3682 else
AzureIoTClient 28:add19eb7defa 3683 {
AzureIoTClient 28:add19eb7defa 3684 receiver_settle_mode rcv_settle_mode;
AzureIoTClient 28:add19eb7defa 3685 if (amqpvalue_get_receiver_settle_mode(item_value, &rcv_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 3686 {
AzureIoTClient 28:add19eb7defa 3687 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3688 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3689 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3690 break;
AzureIoTClient 28:add19eb7defa 3691 }
AzureIoTClient 28:add19eb7defa 3692 }
AzureIoTClient 28:add19eb7defa 3693
AzureIoTClient 28:add19eb7defa 3694 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3695 }
AzureIoTClient 28:add19eb7defa 3696 }
AzureIoTClient 28:add19eb7defa 3697 /* source */
AzureIoTClient 28:add19eb7defa 3698 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 3699 {
AzureIoTClient 23:1111ee8bcba4 3700 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 3701 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3702 {
AzureIoTClient 28:add19eb7defa 3703 /* do nothing */
AzureIoTClient 28:add19eb7defa 3704 }
AzureIoTClient 28:add19eb7defa 3705 else
AzureIoTClient 28:add19eb7defa 3706 {
AzureIoTClient 28:add19eb7defa 3707 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3708 }
AzureIoTClient 28:add19eb7defa 3709 }
AzureIoTClient 28:add19eb7defa 3710 /* target */
AzureIoTClient 28:add19eb7defa 3711 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 3712 {
AzureIoTClient 23:1111ee8bcba4 3713 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 3714 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3715 {
AzureIoTClient 28:add19eb7defa 3716 /* do nothing */
AzureIoTClient 28:add19eb7defa 3717 }
AzureIoTClient 28:add19eb7defa 3718 else
AzureIoTClient 28:add19eb7defa 3719 {
AzureIoTClient 28:add19eb7defa 3720 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3721 }
AzureIoTClient 28:add19eb7defa 3722 }
AzureIoTClient 28:add19eb7defa 3723 /* unsettled */
AzureIoTClient 28:add19eb7defa 3724 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 3725 {
AzureIoTClient 23:1111ee8bcba4 3726 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 3727 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3728 {
AzureIoTClient 28:add19eb7defa 3729 /* do nothing */
AzureIoTClient 28:add19eb7defa 3730 }
AzureIoTClient 28:add19eb7defa 3731 else
AzureIoTClient 28:add19eb7defa 3732 {
AzureIoTClient 28:add19eb7defa 3733 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3734 {
AzureIoTClient 28:add19eb7defa 3735 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3736 }
AzureIoTClient 28:add19eb7defa 3737 else
AzureIoTClient 28:add19eb7defa 3738 {
AzureIoTClient 28:add19eb7defa 3739 AMQP_VALUE unsettled;
AzureIoTClient 28:add19eb7defa 3740 if (amqpvalue_get_map(item_value, &unsettled) != 0)
AzureIoTClient 28:add19eb7defa 3741 {
AzureIoTClient 28:add19eb7defa 3742 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3743 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3744 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3745 break;
AzureIoTClient 28:add19eb7defa 3746 }
AzureIoTClient 28:add19eb7defa 3747 }
AzureIoTClient 28:add19eb7defa 3748
AzureIoTClient 28:add19eb7defa 3749 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3750 }
AzureIoTClient 28:add19eb7defa 3751 }
AzureIoTClient 28:add19eb7defa 3752 /* incomplete-unsettled */
AzureIoTClient 28:add19eb7defa 3753 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 3754 {
AzureIoTClient 23:1111ee8bcba4 3755 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 3756 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3757 {
AzureIoTClient 28:add19eb7defa 3758 /* do nothing */
AzureIoTClient 28:add19eb7defa 3759 }
AzureIoTClient 28:add19eb7defa 3760 else
AzureIoTClient 28:add19eb7defa 3761 {
AzureIoTClient 28:add19eb7defa 3762 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3763 {
AzureIoTClient 28:add19eb7defa 3764 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3765 }
AzureIoTClient 28:add19eb7defa 3766 else
AzureIoTClient 28:add19eb7defa 3767 {
AzureIoTClient 28:add19eb7defa 3768 bool incomplete_unsettled;
AzureIoTClient 28:add19eb7defa 3769 if (amqpvalue_get_boolean(item_value, &incomplete_unsettled) != 0)
AzureIoTClient 28:add19eb7defa 3770 {
AzureIoTClient 28:add19eb7defa 3771 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3772 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3773 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3774 break;
AzureIoTClient 28:add19eb7defa 3775 }
AzureIoTClient 28:add19eb7defa 3776 }
AzureIoTClient 28:add19eb7defa 3777
AzureIoTClient 28:add19eb7defa 3778 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3779 }
AzureIoTClient 28:add19eb7defa 3780 }
AzureIoTClient 28:add19eb7defa 3781 /* initial-delivery-count */
AzureIoTClient 28:add19eb7defa 3782 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 3783 {
AzureIoTClient 23:1111ee8bcba4 3784 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 3785 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3786 {
AzureIoTClient 28:add19eb7defa 3787 /* do nothing */
AzureIoTClient 28:add19eb7defa 3788 }
AzureIoTClient 28:add19eb7defa 3789 else
AzureIoTClient 28:add19eb7defa 3790 {
AzureIoTClient 28:add19eb7defa 3791 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3792 {
AzureIoTClient 28:add19eb7defa 3793 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3794 }
AzureIoTClient 28:add19eb7defa 3795 else
AzureIoTClient 28:add19eb7defa 3796 {
AzureIoTClient 28:add19eb7defa 3797 sequence_no initial_delivery_count;
AzureIoTClient 28:add19eb7defa 3798 if (amqpvalue_get_sequence_no(item_value, &initial_delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 3799 {
AzureIoTClient 28:add19eb7defa 3800 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3801 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3802 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3803 break;
AzureIoTClient 28:add19eb7defa 3804 }
AzureIoTClient 28:add19eb7defa 3805 }
AzureIoTClient 28:add19eb7defa 3806
AzureIoTClient 28:add19eb7defa 3807 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3808 }
AzureIoTClient 28:add19eb7defa 3809 }
AzureIoTClient 28:add19eb7defa 3810 /* max-message-size */
AzureIoTClient 28:add19eb7defa 3811 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 3812 {
AzureIoTClient 23:1111ee8bcba4 3813 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 3814 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3815 {
AzureIoTClient 28:add19eb7defa 3816 /* do nothing */
AzureIoTClient 28:add19eb7defa 3817 }
AzureIoTClient 28:add19eb7defa 3818 else
AzureIoTClient 28:add19eb7defa 3819 {
AzureIoTClient 28:add19eb7defa 3820 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3821 {
AzureIoTClient 28:add19eb7defa 3822 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3823 }
AzureIoTClient 28:add19eb7defa 3824 else
AzureIoTClient 28:add19eb7defa 3825 {
AzureIoTClient 28:add19eb7defa 3826 uint64_t max_message_size;
AzureIoTClient 28:add19eb7defa 3827 if (amqpvalue_get_ulong(item_value, &max_message_size) != 0)
AzureIoTClient 28:add19eb7defa 3828 {
AzureIoTClient 28:add19eb7defa 3829 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3830 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3831 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3832 break;
AzureIoTClient 28:add19eb7defa 3833 }
AzureIoTClient 28:add19eb7defa 3834 }
AzureIoTClient 28:add19eb7defa 3835
AzureIoTClient 28:add19eb7defa 3836 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3837 }
AzureIoTClient 28:add19eb7defa 3838 }
AzureIoTClient 28:add19eb7defa 3839 /* offered-capabilities */
AzureIoTClient 28:add19eb7defa 3840 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 3841 {
AzureIoTClient 23:1111ee8bcba4 3842 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 28:add19eb7defa 3843 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3844 {
AzureIoTClient 28:add19eb7defa 3845 /* do nothing */
AzureIoTClient 28:add19eb7defa 3846 }
AzureIoTClient 28:add19eb7defa 3847 else
AzureIoTClient 28:add19eb7defa 3848 {
AzureIoTClient 28:add19eb7defa 3849 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3850 {
AzureIoTClient 28:add19eb7defa 3851 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3852 }
AzureIoTClient 28:add19eb7defa 3853 else
AzureIoTClient 28:add19eb7defa 3854 {
AzureIoTClient 28:add19eb7defa 3855 const char* offered_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 3856 AMQP_VALUE offered_capabilities_array;
AzureIoTClient 28:add19eb7defa 3857 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &offered_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 3858 (amqpvalue_get_symbol(item_value, &offered_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 3859 {
AzureIoTClient 28:add19eb7defa 3860 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3861 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3862 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3863 break;
AzureIoTClient 28:add19eb7defa 3864 }
AzureIoTClient 28:add19eb7defa 3865 }
AzureIoTClient 28:add19eb7defa 3866
AzureIoTClient 28:add19eb7defa 3867 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3868 }
AzureIoTClient 28:add19eb7defa 3869 }
AzureIoTClient 28:add19eb7defa 3870 /* desired-capabilities */
AzureIoTClient 28:add19eb7defa 3871 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 3872 {
AzureIoTClient 23:1111ee8bcba4 3873 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 28:add19eb7defa 3874 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3875 {
AzureIoTClient 28:add19eb7defa 3876 /* do nothing */
AzureIoTClient 28:add19eb7defa 3877 }
AzureIoTClient 28:add19eb7defa 3878 else
AzureIoTClient 28:add19eb7defa 3879 {
AzureIoTClient 28:add19eb7defa 3880 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3881 {
AzureIoTClient 28:add19eb7defa 3882 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3883 }
AzureIoTClient 28:add19eb7defa 3884 else
AzureIoTClient 28:add19eb7defa 3885 {
AzureIoTClient 28:add19eb7defa 3886 const char* desired_capabilities = NULL;
AzureIoTClient 28:add19eb7defa 3887 AMQP_VALUE desired_capabilities_array;
AzureIoTClient 28:add19eb7defa 3888 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &desired_capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 3889 (amqpvalue_get_symbol(item_value, &desired_capabilities) != 0))
AzureIoTClient 28:add19eb7defa 3890 {
AzureIoTClient 28:add19eb7defa 3891 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3892 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3893 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3894 break;
AzureIoTClient 28:add19eb7defa 3895 }
AzureIoTClient 28:add19eb7defa 3896 }
AzureIoTClient 28:add19eb7defa 3897
AzureIoTClient 28:add19eb7defa 3898 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3899 }
AzureIoTClient 28:add19eb7defa 3900 }
AzureIoTClient 28:add19eb7defa 3901 /* properties */
AzureIoTClient 28:add19eb7defa 3902 if (list_item_count > 13)
AzureIoTClient 23:1111ee8bcba4 3903 {
AzureIoTClient 23:1111ee8bcba4 3904 item_value = amqpvalue_get_list_item(list_value, 13);
AzureIoTClient 28:add19eb7defa 3905 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 3906 {
AzureIoTClient 28:add19eb7defa 3907 /* do nothing */
AzureIoTClient 28:add19eb7defa 3908 }
AzureIoTClient 28:add19eb7defa 3909 else
AzureIoTClient 28:add19eb7defa 3910 {
AzureIoTClient 28:add19eb7defa 3911 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 3912 {
AzureIoTClient 28:add19eb7defa 3913 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 3914 }
AzureIoTClient 28:add19eb7defa 3915 else
AzureIoTClient 28:add19eb7defa 3916 {
AzureIoTClient 28:add19eb7defa 3917 fields properties;
AzureIoTClient 28:add19eb7defa 3918 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 3919 {
AzureIoTClient 28:add19eb7defa 3920 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3921 attach_destroy(*attach_handle);
AzureIoTClient 28:add19eb7defa 3922 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3923 break;
AzureIoTClient 28:add19eb7defa 3924 }
AzureIoTClient 28:add19eb7defa 3925 }
AzureIoTClient 28:add19eb7defa 3926
AzureIoTClient 28:add19eb7defa 3927 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 3928 }
AzureIoTClient 28:add19eb7defa 3929 }
AzureIoTClient 28:add19eb7defa 3930
AzureIoTClient 28:add19eb7defa 3931 attach_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 3932
AzureIoTClient 28:add19eb7defa 3933 result = 0;
AzureIoTClient 28:add19eb7defa 3934 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 3935 }
AzureIoTClient 28:add19eb7defa 3936 }
AzureIoTClient 28:add19eb7defa 3937 }
AzureIoTClient 28:add19eb7defa 3938
AzureIoTClient 28:add19eb7defa 3939 return result;
Azure.IoT Build 0:6ae2f7bca550 3940 }
Azure.IoT Build 0:6ae2f7bca550 3941
Azure.IoT Build 0:6ae2f7bca550 3942 int attach_get_name(ATTACH_HANDLE attach, const char** name_value)
Azure.IoT Build 0:6ae2f7bca550 3943 {
AzureIoTClient 28:add19eb7defa 3944 int result;
AzureIoTClient 28:add19eb7defa 3945
AzureIoTClient 28:add19eb7defa 3946 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 3947 {
AzureIoTClient 28:add19eb7defa 3948 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3949 }
AzureIoTClient 28:add19eb7defa 3950 else
AzureIoTClient 28:add19eb7defa 3951 {
AzureIoTClient 28:add19eb7defa 3952 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 3953 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 3954 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 3955 {
AzureIoTClient 23:1111ee8bcba4 3956 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 3957 }
AzureIoTClient 23:1111ee8bcba4 3958 else
AzureIoTClient 23:1111ee8bcba4 3959 {
AzureIoTClient 23:1111ee8bcba4 3960 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 3961 {
AzureIoTClient 28:add19eb7defa 3962 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3963 }
AzureIoTClient 28:add19eb7defa 3964 else
AzureIoTClient 28:add19eb7defa 3965 {
AzureIoTClient 28:add19eb7defa 3966 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 3967 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 3968 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 3969 {
AzureIoTClient 28:add19eb7defa 3970 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3971 }
AzureIoTClient 28:add19eb7defa 3972 else
AzureIoTClient 28:add19eb7defa 3973 {
AzureIoTClient 28:add19eb7defa 3974 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 3975 if ((get_single_value_result = amqpvalue_get_string(item_value, name_value)) != 0)
AzureIoTClient 28:add19eb7defa 3976 {
AzureIoTClient 28:add19eb7defa 3977 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3978 }
AzureIoTClient 28:add19eb7defa 3979 else
AzureIoTClient 28:add19eb7defa 3980 {
AzureIoTClient 28:add19eb7defa 3981 result = 0;
AzureIoTClient 28:add19eb7defa 3982 }
AzureIoTClient 28:add19eb7defa 3983 }
AzureIoTClient 28:add19eb7defa 3984 }
AzureIoTClient 28:add19eb7defa 3985 }
AzureIoTClient 28:add19eb7defa 3986 }
AzureIoTClient 28:add19eb7defa 3987
AzureIoTClient 28:add19eb7defa 3988 return result;
Azure.IoT Build 0:6ae2f7bca550 3989 }
Azure.IoT Build 0:6ae2f7bca550 3990
Azure.IoT Build 0:6ae2f7bca550 3991 int attach_set_name(ATTACH_HANDLE attach, const char* name_value)
Azure.IoT Build 0:6ae2f7bca550 3992 {
AzureIoTClient 28:add19eb7defa 3993 int result;
AzureIoTClient 28:add19eb7defa 3994
AzureIoTClient 28:add19eb7defa 3995 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 3996 {
AzureIoTClient 28:add19eb7defa 3997 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 3998 }
AzureIoTClient 28:add19eb7defa 3999 else
AzureIoTClient 28:add19eb7defa 4000 {
AzureIoTClient 28:add19eb7defa 4001 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4002 AMQP_VALUE name_amqp_value = amqpvalue_create_string(name_value);
AzureIoTClient 28:add19eb7defa 4003 if (name_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4004 {
AzureIoTClient 28:add19eb7defa 4005 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4006 }
AzureIoTClient 28:add19eb7defa 4007 else
AzureIoTClient 28:add19eb7defa 4008 {
AzureIoTClient 28:add19eb7defa 4009 if (amqpvalue_set_composite_item(attach_instance->composite_value, 0, name_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4010 {
AzureIoTClient 28:add19eb7defa 4011 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4012 }
AzureIoTClient 28:add19eb7defa 4013 else
AzureIoTClient 28:add19eb7defa 4014 {
AzureIoTClient 28:add19eb7defa 4015 result = 0;
AzureIoTClient 28:add19eb7defa 4016 }
AzureIoTClient 28:add19eb7defa 4017
AzureIoTClient 28:add19eb7defa 4018 amqpvalue_destroy(name_amqp_value);
AzureIoTClient 28:add19eb7defa 4019 }
AzureIoTClient 28:add19eb7defa 4020 }
AzureIoTClient 28:add19eb7defa 4021
AzureIoTClient 28:add19eb7defa 4022 return result;
Azure.IoT Build 0:6ae2f7bca550 4023 }
Azure.IoT Build 0:6ae2f7bca550 4024
Azure.IoT Build 0:6ae2f7bca550 4025 int attach_get_handle(ATTACH_HANDLE attach, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 4026 {
AzureIoTClient 28:add19eb7defa 4027 int result;
AzureIoTClient 28:add19eb7defa 4028
AzureIoTClient 28:add19eb7defa 4029 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4030 {
AzureIoTClient 28:add19eb7defa 4031 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4032 }
AzureIoTClient 28:add19eb7defa 4033 else
AzureIoTClient 28:add19eb7defa 4034 {
AzureIoTClient 28:add19eb7defa 4035 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4036 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4037 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4038 {
AzureIoTClient 23:1111ee8bcba4 4039 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4040 }
AzureIoTClient 23:1111ee8bcba4 4041 else
AzureIoTClient 23:1111ee8bcba4 4042 {
AzureIoTClient 23:1111ee8bcba4 4043 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 4044 {
AzureIoTClient 28:add19eb7defa 4045 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4046 }
AzureIoTClient 28:add19eb7defa 4047 else
AzureIoTClient 28:add19eb7defa 4048 {
AzureIoTClient 28:add19eb7defa 4049 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 4050 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4051 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4052 {
AzureIoTClient 28:add19eb7defa 4053 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4054 }
AzureIoTClient 28:add19eb7defa 4055 else
AzureIoTClient 28:add19eb7defa 4056 {
AzureIoTClient 28:add19eb7defa 4057 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4058 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_value)) != 0)
AzureIoTClient 28:add19eb7defa 4059 {
AzureIoTClient 28:add19eb7defa 4060 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4061 }
AzureIoTClient 28:add19eb7defa 4062 else
AzureIoTClient 28:add19eb7defa 4063 {
AzureIoTClient 28:add19eb7defa 4064 result = 0;
AzureIoTClient 28:add19eb7defa 4065 }
AzureIoTClient 28:add19eb7defa 4066 }
AzureIoTClient 28:add19eb7defa 4067 }
AzureIoTClient 28:add19eb7defa 4068 }
AzureIoTClient 28:add19eb7defa 4069 }
AzureIoTClient 28:add19eb7defa 4070
AzureIoTClient 28:add19eb7defa 4071 return result;
Azure.IoT Build 0:6ae2f7bca550 4072 }
Azure.IoT Build 0:6ae2f7bca550 4073
Azure.IoT Build 0:6ae2f7bca550 4074 int attach_set_handle(ATTACH_HANDLE attach, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 4075 {
AzureIoTClient 28:add19eb7defa 4076 int result;
AzureIoTClient 28:add19eb7defa 4077
AzureIoTClient 28:add19eb7defa 4078 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4079 {
AzureIoTClient 28:add19eb7defa 4080 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4081 }
AzureIoTClient 28:add19eb7defa 4082 else
AzureIoTClient 28:add19eb7defa 4083 {
AzureIoTClient 28:add19eb7defa 4084 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4085 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 4086 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4087 {
AzureIoTClient 28:add19eb7defa 4088 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4089 }
AzureIoTClient 28:add19eb7defa 4090 else
AzureIoTClient 28:add19eb7defa 4091 {
AzureIoTClient 28:add19eb7defa 4092 if (amqpvalue_set_composite_item(attach_instance->composite_value, 1, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4093 {
AzureIoTClient 28:add19eb7defa 4094 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4095 }
AzureIoTClient 28:add19eb7defa 4096 else
AzureIoTClient 28:add19eb7defa 4097 {
AzureIoTClient 28:add19eb7defa 4098 result = 0;
AzureIoTClient 28:add19eb7defa 4099 }
AzureIoTClient 28:add19eb7defa 4100
AzureIoTClient 28:add19eb7defa 4101 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 4102 }
AzureIoTClient 28:add19eb7defa 4103 }
AzureIoTClient 28:add19eb7defa 4104
AzureIoTClient 28:add19eb7defa 4105 return result;
Azure.IoT Build 0:6ae2f7bca550 4106 }
Azure.IoT Build 0:6ae2f7bca550 4107
Azure.IoT Build 0:6ae2f7bca550 4108 int attach_get_role(ATTACH_HANDLE attach, role* role_value)
Azure.IoT Build 0:6ae2f7bca550 4109 {
AzureIoTClient 28:add19eb7defa 4110 int result;
AzureIoTClient 28:add19eb7defa 4111
AzureIoTClient 28:add19eb7defa 4112 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4113 {
AzureIoTClient 28:add19eb7defa 4114 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4115 }
AzureIoTClient 28:add19eb7defa 4116 else
AzureIoTClient 28:add19eb7defa 4117 {
AzureIoTClient 28:add19eb7defa 4118 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4119 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4120 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4121 {
AzureIoTClient 23:1111ee8bcba4 4122 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4123 }
AzureIoTClient 23:1111ee8bcba4 4124 else
AzureIoTClient 23:1111ee8bcba4 4125 {
AzureIoTClient 23:1111ee8bcba4 4126 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 4127 {
AzureIoTClient 28:add19eb7defa 4128 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4129 }
AzureIoTClient 28:add19eb7defa 4130 else
AzureIoTClient 28:add19eb7defa 4131 {
AzureIoTClient 28:add19eb7defa 4132 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 4133 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4134 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4135 {
AzureIoTClient 28:add19eb7defa 4136 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4137 }
AzureIoTClient 28:add19eb7defa 4138 else
AzureIoTClient 28:add19eb7defa 4139 {
AzureIoTClient 28:add19eb7defa 4140 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4141 if ((get_single_value_result = amqpvalue_get_role(item_value, role_value)) != 0)
AzureIoTClient 28:add19eb7defa 4142 {
AzureIoTClient 28:add19eb7defa 4143 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4144 }
AzureIoTClient 28:add19eb7defa 4145 else
AzureIoTClient 28:add19eb7defa 4146 {
AzureIoTClient 28:add19eb7defa 4147 result = 0;
AzureIoTClient 28:add19eb7defa 4148 }
AzureIoTClient 28:add19eb7defa 4149 }
AzureIoTClient 28:add19eb7defa 4150 }
AzureIoTClient 28:add19eb7defa 4151 }
AzureIoTClient 28:add19eb7defa 4152 }
AzureIoTClient 28:add19eb7defa 4153
AzureIoTClient 28:add19eb7defa 4154 return result;
Azure.IoT Build 0:6ae2f7bca550 4155 }
Azure.IoT Build 0:6ae2f7bca550 4156
Azure.IoT Build 0:6ae2f7bca550 4157 int attach_set_role(ATTACH_HANDLE attach, role role_value)
Azure.IoT Build 0:6ae2f7bca550 4158 {
AzureIoTClient 28:add19eb7defa 4159 int result;
AzureIoTClient 28:add19eb7defa 4160
AzureIoTClient 28:add19eb7defa 4161 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4162 {
AzureIoTClient 28:add19eb7defa 4163 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4164 }
AzureIoTClient 28:add19eb7defa 4165 else
AzureIoTClient 28:add19eb7defa 4166 {
AzureIoTClient 28:add19eb7defa 4167 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4168 AMQP_VALUE role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 4169 if (role_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4170 {
AzureIoTClient 28:add19eb7defa 4171 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4172 }
AzureIoTClient 28:add19eb7defa 4173 else
AzureIoTClient 28:add19eb7defa 4174 {
AzureIoTClient 28:add19eb7defa 4175 if (amqpvalue_set_composite_item(attach_instance->composite_value, 2, role_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4176 {
AzureIoTClient 28:add19eb7defa 4177 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4178 }
AzureIoTClient 28:add19eb7defa 4179 else
AzureIoTClient 28:add19eb7defa 4180 {
AzureIoTClient 28:add19eb7defa 4181 result = 0;
AzureIoTClient 28:add19eb7defa 4182 }
AzureIoTClient 28:add19eb7defa 4183
AzureIoTClient 28:add19eb7defa 4184 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 4185 }
AzureIoTClient 28:add19eb7defa 4186 }
AzureIoTClient 28:add19eb7defa 4187
AzureIoTClient 28:add19eb7defa 4188 return result;
Azure.IoT Build 0:6ae2f7bca550 4189 }
Azure.IoT Build 0:6ae2f7bca550 4190
Azure.IoT Build 0:6ae2f7bca550 4191 int attach_get_snd_settle_mode(ATTACH_HANDLE attach, sender_settle_mode* snd_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4192 {
AzureIoTClient 28:add19eb7defa 4193 int result;
AzureIoTClient 28:add19eb7defa 4194
AzureIoTClient 28:add19eb7defa 4195 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4196 {
AzureIoTClient 28:add19eb7defa 4197 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4198 }
AzureIoTClient 28:add19eb7defa 4199 else
AzureIoTClient 28:add19eb7defa 4200 {
AzureIoTClient 28:add19eb7defa 4201 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4202 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4203 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4204 {
AzureIoTClient 23:1111ee8bcba4 4205 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4206 }
AzureIoTClient 23:1111ee8bcba4 4207 else
AzureIoTClient 23:1111ee8bcba4 4208 {
AzureIoTClient 23:1111ee8bcba4 4209 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 4210 {
AzureIoTClient 23:1111ee8bcba4 4211 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 23:1111ee8bcba4 4212 result = 0;
AzureIoTClient 23:1111ee8bcba4 4213 }
AzureIoTClient 23:1111ee8bcba4 4214 else
AzureIoTClient 23:1111ee8bcba4 4215 {
AzureIoTClient 28:add19eb7defa 4216 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 4217 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4218 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4219 {
AzureIoTClient 16:22a72cf8e416 4220 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 16:22a72cf8e416 4221 result = 0;
AzureIoTClient 28:add19eb7defa 4222 }
AzureIoTClient 28:add19eb7defa 4223 else
AzureIoTClient 28:add19eb7defa 4224 {
AzureIoTClient 28:add19eb7defa 4225 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4226 if ((get_single_value_result = amqpvalue_get_sender_settle_mode(item_value, snd_settle_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 4227 {
AzureIoTClient 23:1111ee8bcba4 4228 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4229 {
AzureIoTClient 28:add19eb7defa 4230 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4231 }
AzureIoTClient 23:1111ee8bcba4 4232 else
AzureIoTClient 23:1111ee8bcba4 4233 {
AzureIoTClient 23:1111ee8bcba4 4234 *snd_settle_mode_value = sender_settle_mode_mixed;
AzureIoTClient 23:1111ee8bcba4 4235 result = 0;
AzureIoTClient 23:1111ee8bcba4 4236 }
AzureIoTClient 28:add19eb7defa 4237 }
AzureIoTClient 28:add19eb7defa 4238 else
AzureIoTClient 28:add19eb7defa 4239 {
AzureIoTClient 28:add19eb7defa 4240 result = 0;
AzureIoTClient 28:add19eb7defa 4241 }
AzureIoTClient 28:add19eb7defa 4242 }
AzureIoTClient 28:add19eb7defa 4243 }
AzureIoTClient 28:add19eb7defa 4244 }
AzureIoTClient 28:add19eb7defa 4245 }
AzureIoTClient 28:add19eb7defa 4246
AzureIoTClient 28:add19eb7defa 4247 return result;
Azure.IoT Build 0:6ae2f7bca550 4248 }
Azure.IoT Build 0:6ae2f7bca550 4249
Azure.IoT Build 0:6ae2f7bca550 4250 int attach_set_snd_settle_mode(ATTACH_HANDLE attach, sender_settle_mode snd_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4251 {
AzureIoTClient 28:add19eb7defa 4252 int result;
AzureIoTClient 28:add19eb7defa 4253
AzureIoTClient 28:add19eb7defa 4254 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4255 {
AzureIoTClient 28:add19eb7defa 4256 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4257 }
AzureIoTClient 28:add19eb7defa 4258 else
AzureIoTClient 28:add19eb7defa 4259 {
AzureIoTClient 28:add19eb7defa 4260 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4261 AMQP_VALUE snd_settle_mode_amqp_value = amqpvalue_create_sender_settle_mode(snd_settle_mode_value);
AzureIoTClient 28:add19eb7defa 4262 if (snd_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4263 {
AzureIoTClient 28:add19eb7defa 4264 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4265 }
AzureIoTClient 28:add19eb7defa 4266 else
AzureIoTClient 28:add19eb7defa 4267 {
AzureIoTClient 28:add19eb7defa 4268 if (amqpvalue_set_composite_item(attach_instance->composite_value, 3, snd_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4269 {
AzureIoTClient 28:add19eb7defa 4270 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4271 }
AzureIoTClient 28:add19eb7defa 4272 else
AzureIoTClient 28:add19eb7defa 4273 {
AzureIoTClient 28:add19eb7defa 4274 result = 0;
AzureIoTClient 28:add19eb7defa 4275 }
AzureIoTClient 28:add19eb7defa 4276
AzureIoTClient 28:add19eb7defa 4277 amqpvalue_destroy(snd_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 4278 }
AzureIoTClient 28:add19eb7defa 4279 }
AzureIoTClient 28:add19eb7defa 4280
AzureIoTClient 28:add19eb7defa 4281 return result;
Azure.IoT Build 0:6ae2f7bca550 4282 }
Azure.IoT Build 0:6ae2f7bca550 4283
Azure.IoT Build 0:6ae2f7bca550 4284 int attach_get_rcv_settle_mode(ATTACH_HANDLE attach, receiver_settle_mode* rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4285 {
AzureIoTClient 28:add19eb7defa 4286 int result;
AzureIoTClient 28:add19eb7defa 4287
AzureIoTClient 28:add19eb7defa 4288 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4289 {
AzureIoTClient 28:add19eb7defa 4290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4291 }
AzureIoTClient 28:add19eb7defa 4292 else
AzureIoTClient 28:add19eb7defa 4293 {
AzureIoTClient 28:add19eb7defa 4294 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4295 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4296 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4297 {
AzureIoTClient 23:1111ee8bcba4 4298 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4299 }
AzureIoTClient 23:1111ee8bcba4 4300 else
AzureIoTClient 23:1111ee8bcba4 4301 {
AzureIoTClient 23:1111ee8bcba4 4302 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 4303 {
AzureIoTClient 23:1111ee8bcba4 4304 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 23:1111ee8bcba4 4305 result = 0;
AzureIoTClient 23:1111ee8bcba4 4306 }
AzureIoTClient 23:1111ee8bcba4 4307 else
AzureIoTClient 23:1111ee8bcba4 4308 {
AzureIoTClient 28:add19eb7defa 4309 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 4310 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4311 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4312 {
AzureIoTClient 16:22a72cf8e416 4313 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 16:22a72cf8e416 4314 result = 0;
AzureIoTClient 28:add19eb7defa 4315 }
AzureIoTClient 28:add19eb7defa 4316 else
AzureIoTClient 28:add19eb7defa 4317 {
AzureIoTClient 28:add19eb7defa 4318 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4319 if ((get_single_value_result = amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 4320 {
AzureIoTClient 23:1111ee8bcba4 4321 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4322 {
AzureIoTClient 28:add19eb7defa 4323 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4324 }
AzureIoTClient 23:1111ee8bcba4 4325 else
AzureIoTClient 23:1111ee8bcba4 4326 {
AzureIoTClient 23:1111ee8bcba4 4327 *rcv_settle_mode_value = receiver_settle_mode_first;
AzureIoTClient 23:1111ee8bcba4 4328 result = 0;
AzureIoTClient 23:1111ee8bcba4 4329 }
AzureIoTClient 28:add19eb7defa 4330 }
AzureIoTClient 28:add19eb7defa 4331 else
AzureIoTClient 28:add19eb7defa 4332 {
AzureIoTClient 28:add19eb7defa 4333 result = 0;
AzureIoTClient 28:add19eb7defa 4334 }
AzureIoTClient 28:add19eb7defa 4335 }
AzureIoTClient 28:add19eb7defa 4336 }
AzureIoTClient 28:add19eb7defa 4337 }
AzureIoTClient 28:add19eb7defa 4338 }
AzureIoTClient 28:add19eb7defa 4339
AzureIoTClient 28:add19eb7defa 4340 return result;
Azure.IoT Build 0:6ae2f7bca550 4341 }
Azure.IoT Build 0:6ae2f7bca550 4342
Azure.IoT Build 0:6ae2f7bca550 4343 int attach_set_rcv_settle_mode(ATTACH_HANDLE attach, receiver_settle_mode rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 4344 {
AzureIoTClient 28:add19eb7defa 4345 int result;
AzureIoTClient 28:add19eb7defa 4346
AzureIoTClient 28:add19eb7defa 4347 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4348 {
AzureIoTClient 28:add19eb7defa 4349 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4350 }
AzureIoTClient 28:add19eb7defa 4351 else
AzureIoTClient 28:add19eb7defa 4352 {
AzureIoTClient 28:add19eb7defa 4353 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4354 AMQP_VALUE rcv_settle_mode_amqp_value = amqpvalue_create_receiver_settle_mode(rcv_settle_mode_value);
AzureIoTClient 28:add19eb7defa 4355 if (rcv_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4356 {
AzureIoTClient 28:add19eb7defa 4357 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4358 }
AzureIoTClient 28:add19eb7defa 4359 else
AzureIoTClient 28:add19eb7defa 4360 {
AzureIoTClient 28:add19eb7defa 4361 if (amqpvalue_set_composite_item(attach_instance->composite_value, 4, rcv_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4362 {
AzureIoTClient 28:add19eb7defa 4363 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4364 }
AzureIoTClient 28:add19eb7defa 4365 else
AzureIoTClient 28:add19eb7defa 4366 {
AzureIoTClient 28:add19eb7defa 4367 result = 0;
AzureIoTClient 28:add19eb7defa 4368 }
AzureIoTClient 28:add19eb7defa 4369
AzureIoTClient 28:add19eb7defa 4370 amqpvalue_destroy(rcv_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 4371 }
AzureIoTClient 28:add19eb7defa 4372 }
AzureIoTClient 28:add19eb7defa 4373
AzureIoTClient 28:add19eb7defa 4374 return result;
Azure.IoT Build 0:6ae2f7bca550 4375 }
Azure.IoT Build 0:6ae2f7bca550 4376
Azure.IoT Build 0:6ae2f7bca550 4377 int attach_get_source(ATTACH_HANDLE attach, AMQP_VALUE* source_value)
Azure.IoT Build 0:6ae2f7bca550 4378 {
AzureIoTClient 28:add19eb7defa 4379 int result;
AzureIoTClient 28:add19eb7defa 4380
AzureIoTClient 28:add19eb7defa 4381 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4382 {
AzureIoTClient 28:add19eb7defa 4383 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4384 }
AzureIoTClient 28:add19eb7defa 4385 else
AzureIoTClient 28:add19eb7defa 4386 {
AzureIoTClient 28:add19eb7defa 4387 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4388 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4389 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4390 {
AzureIoTClient 23:1111ee8bcba4 4391 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4392 }
AzureIoTClient 23:1111ee8bcba4 4393 else
AzureIoTClient 23:1111ee8bcba4 4394 {
AzureIoTClient 23:1111ee8bcba4 4395 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 4396 {
AzureIoTClient 28:add19eb7defa 4397 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4398 }
AzureIoTClient 28:add19eb7defa 4399 else
AzureIoTClient 28:add19eb7defa 4400 {
AzureIoTClient 28:add19eb7defa 4401 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 4402 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4403 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4404 {
AzureIoTClient 28:add19eb7defa 4405 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4406 }
AzureIoTClient 28:add19eb7defa 4407 else
AzureIoTClient 28:add19eb7defa 4408 {
AzureIoTClient 28:add19eb7defa 4409 *source_value = item_value;
AzureIoTClient 28:add19eb7defa 4410 result = 0;
AzureIoTClient 28:add19eb7defa 4411 }
AzureIoTClient 28:add19eb7defa 4412 }
AzureIoTClient 28:add19eb7defa 4413 }
AzureIoTClient 28:add19eb7defa 4414 }
AzureIoTClient 28:add19eb7defa 4415
AzureIoTClient 28:add19eb7defa 4416 return result;
Azure.IoT Build 0:6ae2f7bca550 4417 }
Azure.IoT Build 0:6ae2f7bca550 4418
Azure.IoT Build 0:6ae2f7bca550 4419 int attach_set_source(ATTACH_HANDLE attach, AMQP_VALUE source_value)
Azure.IoT Build 0:6ae2f7bca550 4420 {
AzureIoTClient 28:add19eb7defa 4421 int result;
AzureIoTClient 28:add19eb7defa 4422
AzureIoTClient 28:add19eb7defa 4423 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4424 {
AzureIoTClient 28:add19eb7defa 4425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4426 }
AzureIoTClient 28:add19eb7defa 4427 else
AzureIoTClient 28:add19eb7defa 4428 {
AzureIoTClient 28:add19eb7defa 4429 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4430 AMQP_VALUE source_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4431 if (source_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4432 {
AzureIoTClient 23:1111ee8bcba4 4433 source_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4434 }
AzureIoTClient 23:1111ee8bcba4 4435 else
AzureIoTClient 23:1111ee8bcba4 4436 {
AzureIoTClient 23:1111ee8bcba4 4437 source_amqp_value = amqpvalue_clone(source_value);
AzureIoTClient 23:1111ee8bcba4 4438 }
AzureIoTClient 28:add19eb7defa 4439 if (source_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4440 {
AzureIoTClient 28:add19eb7defa 4441 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4442 }
AzureIoTClient 28:add19eb7defa 4443 else
AzureIoTClient 28:add19eb7defa 4444 {
AzureIoTClient 28:add19eb7defa 4445 if (amqpvalue_set_composite_item(attach_instance->composite_value, 5, source_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4446 {
AzureIoTClient 28:add19eb7defa 4447 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4448 }
AzureIoTClient 28:add19eb7defa 4449 else
AzureIoTClient 28:add19eb7defa 4450 {
AzureIoTClient 28:add19eb7defa 4451 result = 0;
AzureIoTClient 28:add19eb7defa 4452 }
AzureIoTClient 28:add19eb7defa 4453
AzureIoTClient 28:add19eb7defa 4454 amqpvalue_destroy(source_amqp_value);
AzureIoTClient 28:add19eb7defa 4455 }
AzureIoTClient 28:add19eb7defa 4456 }
AzureIoTClient 28:add19eb7defa 4457
AzureIoTClient 28:add19eb7defa 4458 return result;
Azure.IoT Build 0:6ae2f7bca550 4459 }
Azure.IoT Build 0:6ae2f7bca550 4460
Azure.IoT Build 0:6ae2f7bca550 4461 int attach_get_target(ATTACH_HANDLE attach, AMQP_VALUE* target_value)
Azure.IoT Build 0:6ae2f7bca550 4462 {
AzureIoTClient 28:add19eb7defa 4463 int result;
AzureIoTClient 28:add19eb7defa 4464
AzureIoTClient 28:add19eb7defa 4465 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4466 {
AzureIoTClient 28:add19eb7defa 4467 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4468 }
AzureIoTClient 28:add19eb7defa 4469 else
AzureIoTClient 28:add19eb7defa 4470 {
AzureIoTClient 28:add19eb7defa 4471 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4472 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4473 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4474 {
AzureIoTClient 23:1111ee8bcba4 4475 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4476 }
AzureIoTClient 23:1111ee8bcba4 4477 else
AzureIoTClient 23:1111ee8bcba4 4478 {
AzureIoTClient 23:1111ee8bcba4 4479 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 4480 {
AzureIoTClient 28:add19eb7defa 4481 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4482 }
AzureIoTClient 28:add19eb7defa 4483 else
AzureIoTClient 28:add19eb7defa 4484 {
AzureIoTClient 28:add19eb7defa 4485 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 4486 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4487 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4488 {
AzureIoTClient 28:add19eb7defa 4489 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4490 }
AzureIoTClient 28:add19eb7defa 4491 else
AzureIoTClient 28:add19eb7defa 4492 {
AzureIoTClient 28:add19eb7defa 4493 *target_value = item_value;
AzureIoTClient 28:add19eb7defa 4494 result = 0;
AzureIoTClient 28:add19eb7defa 4495 }
AzureIoTClient 28:add19eb7defa 4496 }
AzureIoTClient 28:add19eb7defa 4497 }
AzureIoTClient 28:add19eb7defa 4498 }
AzureIoTClient 28:add19eb7defa 4499
AzureIoTClient 28:add19eb7defa 4500 return result;
Azure.IoT Build 0:6ae2f7bca550 4501 }
Azure.IoT Build 0:6ae2f7bca550 4502
Azure.IoT Build 0:6ae2f7bca550 4503 int attach_set_target(ATTACH_HANDLE attach, AMQP_VALUE target_value)
Azure.IoT Build 0:6ae2f7bca550 4504 {
AzureIoTClient 28:add19eb7defa 4505 int result;
AzureIoTClient 28:add19eb7defa 4506
AzureIoTClient 28:add19eb7defa 4507 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4508 {
AzureIoTClient 28:add19eb7defa 4509 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4510 }
AzureIoTClient 28:add19eb7defa 4511 else
AzureIoTClient 28:add19eb7defa 4512 {
AzureIoTClient 28:add19eb7defa 4513 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4514 AMQP_VALUE target_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4515 if (target_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4516 {
AzureIoTClient 23:1111ee8bcba4 4517 target_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4518 }
AzureIoTClient 23:1111ee8bcba4 4519 else
AzureIoTClient 23:1111ee8bcba4 4520 {
AzureIoTClient 23:1111ee8bcba4 4521 target_amqp_value = amqpvalue_clone(target_value);
AzureIoTClient 23:1111ee8bcba4 4522 }
AzureIoTClient 28:add19eb7defa 4523 if (target_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4524 {
AzureIoTClient 28:add19eb7defa 4525 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4526 }
AzureIoTClient 28:add19eb7defa 4527 else
AzureIoTClient 28:add19eb7defa 4528 {
AzureIoTClient 28:add19eb7defa 4529 if (amqpvalue_set_composite_item(attach_instance->composite_value, 6, target_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4530 {
AzureIoTClient 28:add19eb7defa 4531 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4532 }
AzureIoTClient 28:add19eb7defa 4533 else
AzureIoTClient 28:add19eb7defa 4534 {
AzureIoTClient 28:add19eb7defa 4535 result = 0;
AzureIoTClient 28:add19eb7defa 4536 }
AzureIoTClient 28:add19eb7defa 4537
AzureIoTClient 28:add19eb7defa 4538 amqpvalue_destroy(target_amqp_value);
AzureIoTClient 28:add19eb7defa 4539 }
AzureIoTClient 28:add19eb7defa 4540 }
AzureIoTClient 28:add19eb7defa 4541
AzureIoTClient 28:add19eb7defa 4542 return result;
Azure.IoT Build 0:6ae2f7bca550 4543 }
Azure.IoT Build 0:6ae2f7bca550 4544
Azure.IoT Build 0:6ae2f7bca550 4545 int attach_get_unsettled(ATTACH_HANDLE attach, AMQP_VALUE* unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4546 {
AzureIoTClient 28:add19eb7defa 4547 int result;
AzureIoTClient 28:add19eb7defa 4548
AzureIoTClient 28:add19eb7defa 4549 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4550 {
AzureIoTClient 28:add19eb7defa 4551 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4552 }
AzureIoTClient 28:add19eb7defa 4553 else
AzureIoTClient 28:add19eb7defa 4554 {
AzureIoTClient 28:add19eb7defa 4555 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4556 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4557 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4558 {
AzureIoTClient 23:1111ee8bcba4 4559 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4560 }
AzureIoTClient 23:1111ee8bcba4 4561 else
AzureIoTClient 23:1111ee8bcba4 4562 {
AzureIoTClient 23:1111ee8bcba4 4563 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 4564 {
AzureIoTClient 28:add19eb7defa 4565 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4566 }
AzureIoTClient 28:add19eb7defa 4567 else
AzureIoTClient 28:add19eb7defa 4568 {
AzureIoTClient 28:add19eb7defa 4569 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 4570 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4571 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4572 {
AzureIoTClient 28:add19eb7defa 4573 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4574 }
AzureIoTClient 28:add19eb7defa 4575 else
AzureIoTClient 28:add19eb7defa 4576 {
AzureIoTClient 28:add19eb7defa 4577 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4578 if ((get_single_value_result = amqpvalue_get_map(item_value, unsettled_value)) != 0)
AzureIoTClient 28:add19eb7defa 4579 {
AzureIoTClient 28:add19eb7defa 4580 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4581 }
AzureIoTClient 28:add19eb7defa 4582 else
AzureIoTClient 28:add19eb7defa 4583 {
AzureIoTClient 28:add19eb7defa 4584 result = 0;
AzureIoTClient 28:add19eb7defa 4585 }
AzureIoTClient 28:add19eb7defa 4586 }
AzureIoTClient 28:add19eb7defa 4587 }
AzureIoTClient 28:add19eb7defa 4588 }
AzureIoTClient 28:add19eb7defa 4589 }
AzureIoTClient 28:add19eb7defa 4590
AzureIoTClient 28:add19eb7defa 4591 return result;
Azure.IoT Build 0:6ae2f7bca550 4592 }
Azure.IoT Build 0:6ae2f7bca550 4593
Azure.IoT Build 0:6ae2f7bca550 4594 int attach_set_unsettled(ATTACH_HANDLE attach, AMQP_VALUE unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4595 {
AzureIoTClient 28:add19eb7defa 4596 int result;
AzureIoTClient 28:add19eb7defa 4597
AzureIoTClient 28:add19eb7defa 4598 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4599 {
AzureIoTClient 28:add19eb7defa 4600 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4601 }
AzureIoTClient 28:add19eb7defa 4602 else
AzureIoTClient 28:add19eb7defa 4603 {
AzureIoTClient 28:add19eb7defa 4604 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4605 AMQP_VALUE unsettled_amqp_value;
AzureIoTClient 23:1111ee8bcba4 4606 if (unsettled_value == NULL)
AzureIoTClient 23:1111ee8bcba4 4607 {
AzureIoTClient 23:1111ee8bcba4 4608 unsettled_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 4609 }
AzureIoTClient 23:1111ee8bcba4 4610 else
AzureIoTClient 23:1111ee8bcba4 4611 {
AzureIoTClient 23:1111ee8bcba4 4612 unsettled_amqp_value = amqpvalue_clone(unsettled_value);
AzureIoTClient 23:1111ee8bcba4 4613 }
AzureIoTClient 28:add19eb7defa 4614 if (unsettled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4615 {
AzureIoTClient 28:add19eb7defa 4616 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4617 }
AzureIoTClient 28:add19eb7defa 4618 else
AzureIoTClient 28:add19eb7defa 4619 {
AzureIoTClient 28:add19eb7defa 4620 if (amqpvalue_set_composite_item(attach_instance->composite_value, 7, unsettled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4621 {
AzureIoTClient 28:add19eb7defa 4622 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4623 }
AzureIoTClient 28:add19eb7defa 4624 else
AzureIoTClient 28:add19eb7defa 4625 {
AzureIoTClient 28:add19eb7defa 4626 result = 0;
AzureIoTClient 28:add19eb7defa 4627 }
AzureIoTClient 28:add19eb7defa 4628
AzureIoTClient 28:add19eb7defa 4629 amqpvalue_destroy(unsettled_amqp_value);
AzureIoTClient 28:add19eb7defa 4630 }
AzureIoTClient 28:add19eb7defa 4631 }
AzureIoTClient 28:add19eb7defa 4632
AzureIoTClient 28:add19eb7defa 4633 return result;
Azure.IoT Build 0:6ae2f7bca550 4634 }
Azure.IoT Build 0:6ae2f7bca550 4635
Azure.IoT Build 0:6ae2f7bca550 4636 int attach_get_incomplete_unsettled(ATTACH_HANDLE attach, bool* incomplete_unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4637 {
AzureIoTClient 28:add19eb7defa 4638 int result;
AzureIoTClient 28:add19eb7defa 4639
AzureIoTClient 28:add19eb7defa 4640 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4641 {
AzureIoTClient 28:add19eb7defa 4642 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4643 }
AzureIoTClient 28:add19eb7defa 4644 else
AzureIoTClient 28:add19eb7defa 4645 {
AzureIoTClient 28:add19eb7defa 4646 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4647 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4648 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4649 {
AzureIoTClient 23:1111ee8bcba4 4650 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4651 }
AzureIoTClient 23:1111ee8bcba4 4652 else
AzureIoTClient 23:1111ee8bcba4 4653 {
AzureIoTClient 23:1111ee8bcba4 4654 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 4655 {
AzureIoTClient 28:add19eb7defa 4656 *incomplete_unsettled_value = false;
AzureIoTClient 28:add19eb7defa 4657 result = 0;
AzureIoTClient 28:add19eb7defa 4658 }
AzureIoTClient 28:add19eb7defa 4659 else
AzureIoTClient 28:add19eb7defa 4660 {
AzureIoTClient 28:add19eb7defa 4661 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 4662 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4663 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4664 {
AzureIoTClient 28:add19eb7defa 4665 *incomplete_unsettled_value = false;
AzureIoTClient 28:add19eb7defa 4666 result = 0;
AzureIoTClient 28:add19eb7defa 4667 }
AzureIoTClient 28:add19eb7defa 4668 else
AzureIoTClient 28:add19eb7defa 4669 {
AzureIoTClient 28:add19eb7defa 4670 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4671 if ((get_single_value_result = amqpvalue_get_boolean(item_value, incomplete_unsettled_value)) != 0)
AzureIoTClient 28:add19eb7defa 4672 {
AzureIoTClient 23:1111ee8bcba4 4673 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 4674 {
AzureIoTClient 28:add19eb7defa 4675 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4676 }
AzureIoTClient 28:add19eb7defa 4677 else
AzureIoTClient 28:add19eb7defa 4678 {
AzureIoTClient 28:add19eb7defa 4679 *incomplete_unsettled_value = false;
AzureIoTClient 23:1111ee8bcba4 4680 result = 0;
AzureIoTClient 23:1111ee8bcba4 4681 }
AzureIoTClient 28:add19eb7defa 4682 }
AzureIoTClient 28:add19eb7defa 4683 else
AzureIoTClient 28:add19eb7defa 4684 {
AzureIoTClient 28:add19eb7defa 4685 result = 0;
AzureIoTClient 28:add19eb7defa 4686 }
AzureIoTClient 28:add19eb7defa 4687 }
AzureIoTClient 28:add19eb7defa 4688 }
AzureIoTClient 28:add19eb7defa 4689 }
AzureIoTClient 28:add19eb7defa 4690 }
AzureIoTClient 28:add19eb7defa 4691
AzureIoTClient 28:add19eb7defa 4692 return result;
Azure.IoT Build 0:6ae2f7bca550 4693 }
Azure.IoT Build 0:6ae2f7bca550 4694
Azure.IoT Build 0:6ae2f7bca550 4695 int attach_set_incomplete_unsettled(ATTACH_HANDLE attach, bool incomplete_unsettled_value)
Azure.IoT Build 0:6ae2f7bca550 4696 {
AzureIoTClient 28:add19eb7defa 4697 int result;
AzureIoTClient 28:add19eb7defa 4698
AzureIoTClient 28:add19eb7defa 4699 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4700 {
AzureIoTClient 28:add19eb7defa 4701 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4702 }
AzureIoTClient 28:add19eb7defa 4703 else
AzureIoTClient 28:add19eb7defa 4704 {
AzureIoTClient 28:add19eb7defa 4705 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4706 AMQP_VALUE incomplete_unsettled_amqp_value = amqpvalue_create_boolean(incomplete_unsettled_value);
AzureIoTClient 28:add19eb7defa 4707 if (incomplete_unsettled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4708 {
AzureIoTClient 28:add19eb7defa 4709 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4710 }
AzureIoTClient 28:add19eb7defa 4711 else
AzureIoTClient 28:add19eb7defa 4712 {
AzureIoTClient 28:add19eb7defa 4713 if (amqpvalue_set_composite_item(attach_instance->composite_value, 8, incomplete_unsettled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4714 {
AzureIoTClient 28:add19eb7defa 4715 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4716 }
AzureIoTClient 28:add19eb7defa 4717 else
AzureIoTClient 28:add19eb7defa 4718 {
AzureIoTClient 28:add19eb7defa 4719 result = 0;
AzureIoTClient 28:add19eb7defa 4720 }
AzureIoTClient 28:add19eb7defa 4721
AzureIoTClient 28:add19eb7defa 4722 amqpvalue_destroy(incomplete_unsettled_amqp_value);
AzureIoTClient 28:add19eb7defa 4723 }
AzureIoTClient 28:add19eb7defa 4724 }
AzureIoTClient 28:add19eb7defa 4725
AzureIoTClient 28:add19eb7defa 4726 return result;
Azure.IoT Build 0:6ae2f7bca550 4727 }
Azure.IoT Build 0:6ae2f7bca550 4728
Azure.IoT Build 0:6ae2f7bca550 4729 int attach_get_initial_delivery_count(ATTACH_HANDLE attach, sequence_no* initial_delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 4730 {
AzureIoTClient 28:add19eb7defa 4731 int result;
AzureIoTClient 28:add19eb7defa 4732
AzureIoTClient 28:add19eb7defa 4733 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4734 {
AzureIoTClient 28:add19eb7defa 4735 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4736 }
AzureIoTClient 28:add19eb7defa 4737 else
AzureIoTClient 28:add19eb7defa 4738 {
AzureIoTClient 28:add19eb7defa 4739 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4740 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4741 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4742 {
AzureIoTClient 23:1111ee8bcba4 4743 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4744 }
AzureIoTClient 23:1111ee8bcba4 4745 else
AzureIoTClient 23:1111ee8bcba4 4746 {
AzureIoTClient 23:1111ee8bcba4 4747 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 4748 {
AzureIoTClient 28:add19eb7defa 4749 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4750 }
AzureIoTClient 28:add19eb7defa 4751 else
AzureIoTClient 28:add19eb7defa 4752 {
AzureIoTClient 28:add19eb7defa 4753 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 4754 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4755 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4756 {
AzureIoTClient 28:add19eb7defa 4757 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4758 }
AzureIoTClient 28:add19eb7defa 4759 else
AzureIoTClient 28:add19eb7defa 4760 {
AzureIoTClient 28:add19eb7defa 4761 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4762 if ((get_single_value_result = amqpvalue_get_sequence_no(item_value, initial_delivery_count_value)) != 0)
AzureIoTClient 28:add19eb7defa 4763 {
AzureIoTClient 28:add19eb7defa 4764 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4765 }
AzureIoTClient 28:add19eb7defa 4766 else
AzureIoTClient 28:add19eb7defa 4767 {
AzureIoTClient 28:add19eb7defa 4768 result = 0;
AzureIoTClient 28:add19eb7defa 4769 }
AzureIoTClient 28:add19eb7defa 4770 }
AzureIoTClient 28:add19eb7defa 4771 }
AzureIoTClient 28:add19eb7defa 4772 }
AzureIoTClient 28:add19eb7defa 4773 }
AzureIoTClient 28:add19eb7defa 4774
AzureIoTClient 28:add19eb7defa 4775 return result;
Azure.IoT Build 0:6ae2f7bca550 4776 }
Azure.IoT Build 0:6ae2f7bca550 4777
Azure.IoT Build 0:6ae2f7bca550 4778 int attach_set_initial_delivery_count(ATTACH_HANDLE attach, sequence_no initial_delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 4779 {
AzureIoTClient 28:add19eb7defa 4780 int result;
AzureIoTClient 28:add19eb7defa 4781
AzureIoTClient 28:add19eb7defa 4782 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4783 {
AzureIoTClient 28:add19eb7defa 4784 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4785 }
AzureIoTClient 28:add19eb7defa 4786 else
AzureIoTClient 28:add19eb7defa 4787 {
AzureIoTClient 28:add19eb7defa 4788 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4789 AMQP_VALUE initial_delivery_count_amqp_value = amqpvalue_create_sequence_no(initial_delivery_count_value);
AzureIoTClient 28:add19eb7defa 4790 if (initial_delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4791 {
AzureIoTClient 28:add19eb7defa 4792 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4793 }
AzureIoTClient 28:add19eb7defa 4794 else
AzureIoTClient 28:add19eb7defa 4795 {
AzureIoTClient 28:add19eb7defa 4796 if (amqpvalue_set_composite_item(attach_instance->composite_value, 9, initial_delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4797 {
AzureIoTClient 28:add19eb7defa 4798 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4799 }
AzureIoTClient 28:add19eb7defa 4800 else
AzureIoTClient 28:add19eb7defa 4801 {
AzureIoTClient 28:add19eb7defa 4802 result = 0;
AzureIoTClient 28:add19eb7defa 4803 }
AzureIoTClient 28:add19eb7defa 4804
AzureIoTClient 28:add19eb7defa 4805 amqpvalue_destroy(initial_delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 4806 }
AzureIoTClient 28:add19eb7defa 4807 }
AzureIoTClient 28:add19eb7defa 4808
AzureIoTClient 28:add19eb7defa 4809 return result;
Azure.IoT Build 0:6ae2f7bca550 4810 }
Azure.IoT Build 0:6ae2f7bca550 4811
Azure.IoT Build 0:6ae2f7bca550 4812 int attach_get_max_message_size(ATTACH_HANDLE attach, uint64_t* max_message_size_value)
Azure.IoT Build 0:6ae2f7bca550 4813 {
AzureIoTClient 28:add19eb7defa 4814 int result;
AzureIoTClient 28:add19eb7defa 4815
AzureIoTClient 28:add19eb7defa 4816 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4817 {
AzureIoTClient 28:add19eb7defa 4818 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4819 }
AzureIoTClient 28:add19eb7defa 4820 else
AzureIoTClient 28:add19eb7defa 4821 {
AzureIoTClient 28:add19eb7defa 4822 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4823 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4824 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4825 {
AzureIoTClient 23:1111ee8bcba4 4826 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4827 }
AzureIoTClient 23:1111ee8bcba4 4828 else
AzureIoTClient 23:1111ee8bcba4 4829 {
AzureIoTClient 23:1111ee8bcba4 4830 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 4831 {
AzureIoTClient 28:add19eb7defa 4832 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4833 }
AzureIoTClient 28:add19eb7defa 4834 else
AzureIoTClient 28:add19eb7defa 4835 {
AzureIoTClient 28:add19eb7defa 4836 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 4837 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4838 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4839 {
AzureIoTClient 28:add19eb7defa 4840 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4841 }
AzureIoTClient 28:add19eb7defa 4842 else
AzureIoTClient 28:add19eb7defa 4843 {
AzureIoTClient 28:add19eb7defa 4844 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4845 if ((get_single_value_result = amqpvalue_get_ulong(item_value, max_message_size_value)) != 0)
AzureIoTClient 28:add19eb7defa 4846 {
AzureIoTClient 28:add19eb7defa 4847 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4848 }
AzureIoTClient 28:add19eb7defa 4849 else
AzureIoTClient 28:add19eb7defa 4850 {
AzureIoTClient 28:add19eb7defa 4851 result = 0;
AzureIoTClient 28:add19eb7defa 4852 }
AzureIoTClient 28:add19eb7defa 4853 }
AzureIoTClient 28:add19eb7defa 4854 }
AzureIoTClient 28:add19eb7defa 4855 }
AzureIoTClient 28:add19eb7defa 4856 }
AzureIoTClient 28:add19eb7defa 4857
AzureIoTClient 28:add19eb7defa 4858 return result;
Azure.IoT Build 0:6ae2f7bca550 4859 }
Azure.IoT Build 0:6ae2f7bca550 4860
Azure.IoT Build 0:6ae2f7bca550 4861 int attach_set_max_message_size(ATTACH_HANDLE attach, uint64_t max_message_size_value)
Azure.IoT Build 0:6ae2f7bca550 4862 {
AzureIoTClient 28:add19eb7defa 4863 int result;
AzureIoTClient 28:add19eb7defa 4864
AzureIoTClient 28:add19eb7defa 4865 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4866 {
AzureIoTClient 28:add19eb7defa 4867 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4868 }
AzureIoTClient 28:add19eb7defa 4869 else
AzureIoTClient 28:add19eb7defa 4870 {
AzureIoTClient 28:add19eb7defa 4871 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 4872 AMQP_VALUE max_message_size_amqp_value = amqpvalue_create_ulong(max_message_size_value);
AzureIoTClient 28:add19eb7defa 4873 if (max_message_size_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4874 {
AzureIoTClient 28:add19eb7defa 4875 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4876 }
AzureIoTClient 28:add19eb7defa 4877 else
AzureIoTClient 28:add19eb7defa 4878 {
AzureIoTClient 28:add19eb7defa 4879 if (amqpvalue_set_composite_item(attach_instance->composite_value, 10, max_message_size_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4880 {
AzureIoTClient 28:add19eb7defa 4881 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4882 }
AzureIoTClient 28:add19eb7defa 4883 else
AzureIoTClient 28:add19eb7defa 4884 {
AzureIoTClient 28:add19eb7defa 4885 result = 0;
AzureIoTClient 28:add19eb7defa 4886 }
AzureIoTClient 28:add19eb7defa 4887
AzureIoTClient 28:add19eb7defa 4888 amqpvalue_destroy(max_message_size_amqp_value);
AzureIoTClient 28:add19eb7defa 4889 }
AzureIoTClient 28:add19eb7defa 4890 }
AzureIoTClient 28:add19eb7defa 4891
AzureIoTClient 28:add19eb7defa 4892 return result;
Azure.IoT Build 0:6ae2f7bca550 4893 }
Azure.IoT Build 0:6ae2f7bca550 4894
Azure.IoT Build 0:6ae2f7bca550 4895 int attach_get_offered_capabilities(ATTACH_HANDLE attach, AMQP_VALUE* offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 4896 {
AzureIoTClient 28:add19eb7defa 4897 int result;
AzureIoTClient 28:add19eb7defa 4898
AzureIoTClient 28:add19eb7defa 4899 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4900 {
AzureIoTClient 28:add19eb7defa 4901 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4902 }
AzureIoTClient 28:add19eb7defa 4903 else
AzureIoTClient 28:add19eb7defa 4904 {
AzureIoTClient 28:add19eb7defa 4905 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 4906 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 4907 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 4908 {
AzureIoTClient 23:1111ee8bcba4 4909 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 4910 }
AzureIoTClient 23:1111ee8bcba4 4911 else
AzureIoTClient 23:1111ee8bcba4 4912 {
AzureIoTClient 23:1111ee8bcba4 4913 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 4914 {
AzureIoTClient 28:add19eb7defa 4915 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4916 }
AzureIoTClient 28:add19eb7defa 4917 else
AzureIoTClient 28:add19eb7defa 4918 {
AzureIoTClient 28:add19eb7defa 4919 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 11);
AzureIoTClient 28:add19eb7defa 4920 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 4921 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 4922 {
AzureIoTClient 28:add19eb7defa 4923 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4924 }
AzureIoTClient 28:add19eb7defa 4925 else
AzureIoTClient 28:add19eb7defa 4926 {
AzureIoTClient 28:add19eb7defa 4927 const char* offered_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 4928 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 4929 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 4930 {
AzureIoTClient 28:add19eb7defa 4931 get_single_value_result = amqpvalue_get_symbol(item_value, &offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 4932 }
AzureIoTClient 28:add19eb7defa 4933 else
AzureIoTClient 28:add19eb7defa 4934 {
AzureIoTClient 28:add19eb7defa 4935 (void)memset((void*)&offered_capabilities_single_value, 0, sizeof(offered_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 4936 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 4937 }
AzureIoTClient 28:add19eb7defa 4938
AzureIoTClient 28:add19eb7defa 4939 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 4940 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 4941 {
AzureIoTClient 28:add19eb7defa 4942 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4943 }
AzureIoTClient 28:add19eb7defa 4944 else
AzureIoTClient 28:add19eb7defa 4945 {
AzureIoTClient 28:add19eb7defa 4946 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 4947 {
AzureIoTClient 28:add19eb7defa 4948 *offered_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 4949 if (*offered_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 4950 {
AzureIoTClient 28:add19eb7defa 4951 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4952 }
AzureIoTClient 28:add19eb7defa 4953 else
AzureIoTClient 28:add19eb7defa 4954 {
AzureIoTClient 28:add19eb7defa 4955 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(offered_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 4956 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 4957 {
AzureIoTClient 28:add19eb7defa 4958 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 4959 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4960 }
AzureIoTClient 28:add19eb7defa 4961 else
AzureIoTClient 28:add19eb7defa 4962 {
AzureIoTClient 28:add19eb7defa 4963 if (amqpvalue_add_array_item(*offered_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 4964 {
AzureIoTClient 28:add19eb7defa 4965 amqpvalue_destroy(*offered_capabilities_value);
AzureIoTClient 28:add19eb7defa 4966 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 4967 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4968 }
AzureIoTClient 28:add19eb7defa 4969 else
AzureIoTClient 28:add19eb7defa 4970 {
AzureIoTClient 28:add19eb7defa 4971 result = 0;
AzureIoTClient 28:add19eb7defa 4972 }
AzureIoTClient 28:add19eb7defa 4973 }
AzureIoTClient 28:add19eb7defa 4974 }
AzureIoTClient 28:add19eb7defa 4975 }
AzureIoTClient 28:add19eb7defa 4976 else
AzureIoTClient 28:add19eb7defa 4977 {
AzureIoTClient 28:add19eb7defa 4978 result = 0;
AzureIoTClient 28:add19eb7defa 4979 }
AzureIoTClient 28:add19eb7defa 4980 }
AzureIoTClient 28:add19eb7defa 4981 }
AzureIoTClient 28:add19eb7defa 4982 }
AzureIoTClient 28:add19eb7defa 4983 }
AzureIoTClient 28:add19eb7defa 4984 }
AzureIoTClient 28:add19eb7defa 4985
AzureIoTClient 28:add19eb7defa 4986 return result;
Azure.IoT Build 0:6ae2f7bca550 4987 }
Azure.IoT Build 0:6ae2f7bca550 4988
Azure.IoT Build 0:6ae2f7bca550 4989 int attach_set_offered_capabilities(ATTACH_HANDLE attach, AMQP_VALUE offered_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 4990 {
AzureIoTClient 28:add19eb7defa 4991 int result;
AzureIoTClient 28:add19eb7defa 4992
AzureIoTClient 28:add19eb7defa 4993 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 4994 {
AzureIoTClient 28:add19eb7defa 4995 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 4996 }
AzureIoTClient 28:add19eb7defa 4997 else
AzureIoTClient 28:add19eb7defa 4998 {
AzureIoTClient 28:add19eb7defa 4999 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5000 AMQP_VALUE offered_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 5001 if (offered_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5002 {
AzureIoTClient 23:1111ee8bcba4 5003 offered_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 5004 }
AzureIoTClient 23:1111ee8bcba4 5005 else
AzureIoTClient 23:1111ee8bcba4 5006 {
AzureIoTClient 23:1111ee8bcba4 5007 offered_capabilities_amqp_value = amqpvalue_clone(offered_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 5008 }
AzureIoTClient 28:add19eb7defa 5009 if (offered_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5010 {
AzureIoTClient 28:add19eb7defa 5011 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5012 }
AzureIoTClient 28:add19eb7defa 5013 else
AzureIoTClient 28:add19eb7defa 5014 {
AzureIoTClient 28:add19eb7defa 5015 if (amqpvalue_set_composite_item(attach_instance->composite_value, 11, offered_capabilities_amqp_value) != 0)
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 result = 0;
AzureIoTClient 28:add19eb7defa 5022 }
AzureIoTClient 28:add19eb7defa 5023
AzureIoTClient 28:add19eb7defa 5024 amqpvalue_destroy(offered_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 5025 }
AzureIoTClient 28:add19eb7defa 5026 }
AzureIoTClient 28:add19eb7defa 5027
AzureIoTClient 28:add19eb7defa 5028 return result;
Azure.IoT Build 0:6ae2f7bca550 5029 }
Azure.IoT Build 0:6ae2f7bca550 5030
Azure.IoT Build 0:6ae2f7bca550 5031 int attach_get_desired_capabilities(ATTACH_HANDLE attach, AMQP_VALUE* desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 5032 {
AzureIoTClient 28:add19eb7defa 5033 int result;
AzureIoTClient 28:add19eb7defa 5034
AzureIoTClient 28:add19eb7defa 5035 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5036 {
AzureIoTClient 28:add19eb7defa 5037 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5038 }
AzureIoTClient 28:add19eb7defa 5039 else
AzureIoTClient 28:add19eb7defa 5040 {
AzureIoTClient 28:add19eb7defa 5041 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5042 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 5043 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5044 {
AzureIoTClient 23:1111ee8bcba4 5045 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5046 }
AzureIoTClient 23:1111ee8bcba4 5047 else
AzureIoTClient 23:1111ee8bcba4 5048 {
AzureIoTClient 23:1111ee8bcba4 5049 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 5050 {
AzureIoTClient 28:add19eb7defa 5051 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5052 }
AzureIoTClient 28:add19eb7defa 5053 else
AzureIoTClient 28:add19eb7defa 5054 {
AzureIoTClient 28:add19eb7defa 5055 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 12);
AzureIoTClient 28:add19eb7defa 5056 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5057 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5058 {
AzureIoTClient 28:add19eb7defa 5059 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5060 }
AzureIoTClient 28:add19eb7defa 5061 else
AzureIoTClient 28:add19eb7defa 5062 {
AzureIoTClient 28:add19eb7defa 5063 const char* desired_capabilities_single_value;
AzureIoTClient 28:add19eb7defa 5064 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5065 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 5066 {
AzureIoTClient 28:add19eb7defa 5067 get_single_value_result = amqpvalue_get_symbol(item_value, &desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5068 }
AzureIoTClient 28:add19eb7defa 5069 else
AzureIoTClient 28:add19eb7defa 5070 {
AzureIoTClient 28:add19eb7defa 5071 (void)memset((void*)&desired_capabilities_single_value, 0, sizeof(desired_capabilities_single_value));
AzureIoTClient 28:add19eb7defa 5072 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 5073 }
AzureIoTClient 28:add19eb7defa 5074
AzureIoTClient 28:add19eb7defa 5075 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 5076 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 5077 {
AzureIoTClient 28:add19eb7defa 5078 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5079 }
AzureIoTClient 28:add19eb7defa 5080 else
AzureIoTClient 28:add19eb7defa 5081 {
AzureIoTClient 28:add19eb7defa 5082 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 5083 {
AzureIoTClient 28:add19eb7defa 5084 *desired_capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 5085 if (*desired_capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 5086 {
AzureIoTClient 28:add19eb7defa 5087 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5088 }
AzureIoTClient 28:add19eb7defa 5089 else
AzureIoTClient 28:add19eb7defa 5090 {
AzureIoTClient 28:add19eb7defa 5091 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(desired_capabilities_single_value);
AzureIoTClient 28:add19eb7defa 5092 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5093 {
AzureIoTClient 28:add19eb7defa 5094 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 5095 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5096 }
AzureIoTClient 28:add19eb7defa 5097 else
AzureIoTClient 28:add19eb7defa 5098 {
AzureIoTClient 28:add19eb7defa 5099 if (amqpvalue_add_array_item(*desired_capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5100 {
AzureIoTClient 28:add19eb7defa 5101 amqpvalue_destroy(*desired_capabilities_value);
AzureIoTClient 28:add19eb7defa 5102 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 5103 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5104 }
AzureIoTClient 28:add19eb7defa 5105 else
AzureIoTClient 28:add19eb7defa 5106 {
AzureIoTClient 28:add19eb7defa 5107 result = 0;
AzureIoTClient 28:add19eb7defa 5108 }
AzureIoTClient 28:add19eb7defa 5109 }
AzureIoTClient 28:add19eb7defa 5110 }
AzureIoTClient 28:add19eb7defa 5111 }
AzureIoTClient 28:add19eb7defa 5112 else
AzureIoTClient 28:add19eb7defa 5113 {
AzureIoTClient 28:add19eb7defa 5114 result = 0;
AzureIoTClient 28:add19eb7defa 5115 }
AzureIoTClient 28:add19eb7defa 5116 }
AzureIoTClient 28:add19eb7defa 5117 }
AzureIoTClient 28:add19eb7defa 5118 }
AzureIoTClient 28:add19eb7defa 5119 }
AzureIoTClient 28:add19eb7defa 5120 }
AzureIoTClient 28:add19eb7defa 5121
AzureIoTClient 28:add19eb7defa 5122 return result;
Azure.IoT Build 0:6ae2f7bca550 5123 }
Azure.IoT Build 0:6ae2f7bca550 5124
Azure.IoT Build 0:6ae2f7bca550 5125 int attach_set_desired_capabilities(ATTACH_HANDLE attach, AMQP_VALUE desired_capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 5126 {
AzureIoTClient 28:add19eb7defa 5127 int result;
AzureIoTClient 28:add19eb7defa 5128
AzureIoTClient 28:add19eb7defa 5129 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5130 {
AzureIoTClient 28:add19eb7defa 5131 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5132 }
AzureIoTClient 28:add19eb7defa 5133 else
AzureIoTClient 28:add19eb7defa 5134 {
AzureIoTClient 28:add19eb7defa 5135 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5136 AMQP_VALUE desired_capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 5137 if (desired_capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 5138 {
AzureIoTClient 23:1111ee8bcba4 5139 desired_capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 5140 }
AzureIoTClient 23:1111ee8bcba4 5141 else
AzureIoTClient 23:1111ee8bcba4 5142 {
AzureIoTClient 23:1111ee8bcba4 5143 desired_capabilities_amqp_value = amqpvalue_clone(desired_capabilities_value);
AzureIoTClient 23:1111ee8bcba4 5144 }
AzureIoTClient 28:add19eb7defa 5145 if (desired_capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5146 {
AzureIoTClient 28:add19eb7defa 5147 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5148 }
AzureIoTClient 28:add19eb7defa 5149 else
AzureIoTClient 28:add19eb7defa 5150 {
AzureIoTClient 28:add19eb7defa 5151 if (amqpvalue_set_composite_item(attach_instance->composite_value, 12, desired_capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5152 {
AzureIoTClient 28:add19eb7defa 5153 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5154 }
AzureIoTClient 28:add19eb7defa 5155 else
AzureIoTClient 28:add19eb7defa 5156 {
AzureIoTClient 28:add19eb7defa 5157 result = 0;
AzureIoTClient 28:add19eb7defa 5158 }
AzureIoTClient 28:add19eb7defa 5159
AzureIoTClient 28:add19eb7defa 5160 amqpvalue_destroy(desired_capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 5161 }
AzureIoTClient 28:add19eb7defa 5162 }
AzureIoTClient 28:add19eb7defa 5163
AzureIoTClient 28:add19eb7defa 5164 return result;
Azure.IoT Build 0:6ae2f7bca550 5165 }
Azure.IoT Build 0:6ae2f7bca550 5166
Azure.IoT Build 0:6ae2f7bca550 5167 int attach_get_properties(ATTACH_HANDLE attach, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 5168 {
AzureIoTClient 28:add19eb7defa 5169 int result;
AzureIoTClient 28:add19eb7defa 5170
AzureIoTClient 28:add19eb7defa 5171 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5172 {
AzureIoTClient 28:add19eb7defa 5173 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5174 }
AzureIoTClient 28:add19eb7defa 5175 else
AzureIoTClient 28:add19eb7defa 5176 {
AzureIoTClient 28:add19eb7defa 5177 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5178 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 23:1111ee8bcba4 5179 if (amqpvalue_get_composite_item_count(attach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5180 {
AzureIoTClient 23:1111ee8bcba4 5181 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5182 }
AzureIoTClient 23:1111ee8bcba4 5183 else
AzureIoTClient 23:1111ee8bcba4 5184 {
AzureIoTClient 23:1111ee8bcba4 5185 if (item_count <= 13)
AzureIoTClient 23:1111ee8bcba4 5186 {
AzureIoTClient 28:add19eb7defa 5187 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5188 }
AzureIoTClient 28:add19eb7defa 5189 else
AzureIoTClient 28:add19eb7defa 5190 {
AzureIoTClient 28:add19eb7defa 5191 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 13);
AzureIoTClient 28:add19eb7defa 5192 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5193 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5194 {
AzureIoTClient 28:add19eb7defa 5195 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5196 }
AzureIoTClient 28:add19eb7defa 5197 else
AzureIoTClient 28:add19eb7defa 5198 {
AzureIoTClient 28:add19eb7defa 5199 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5200 if ((get_single_value_result = amqpvalue_get_fields(item_value, properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 5201 {
AzureIoTClient 28:add19eb7defa 5202 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5203 }
AzureIoTClient 28:add19eb7defa 5204 else
AzureIoTClient 28:add19eb7defa 5205 {
AzureIoTClient 28:add19eb7defa 5206 result = 0;
AzureIoTClient 28:add19eb7defa 5207 }
AzureIoTClient 28:add19eb7defa 5208 }
AzureIoTClient 28:add19eb7defa 5209 }
AzureIoTClient 28:add19eb7defa 5210 }
AzureIoTClient 28:add19eb7defa 5211 }
AzureIoTClient 28:add19eb7defa 5212
AzureIoTClient 28:add19eb7defa 5213 return result;
Azure.IoT Build 0:6ae2f7bca550 5214 }
Azure.IoT Build 0:6ae2f7bca550 5215
Azure.IoT Build 0:6ae2f7bca550 5216 int attach_set_properties(ATTACH_HANDLE attach, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 5217 {
AzureIoTClient 28:add19eb7defa 5218 int result;
AzureIoTClient 28:add19eb7defa 5219
AzureIoTClient 28:add19eb7defa 5220 if (attach == NULL)
AzureIoTClient 28:add19eb7defa 5221 {
AzureIoTClient 28:add19eb7defa 5222 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5223 }
AzureIoTClient 28:add19eb7defa 5224 else
AzureIoTClient 28:add19eb7defa 5225 {
AzureIoTClient 28:add19eb7defa 5226 ATTACH_INSTANCE* attach_instance = (ATTACH_INSTANCE*)attach;
AzureIoTClient 28:add19eb7defa 5227 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 5228 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5229 {
AzureIoTClient 28:add19eb7defa 5230 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5231 }
AzureIoTClient 28:add19eb7defa 5232 else
AzureIoTClient 28:add19eb7defa 5233 {
AzureIoTClient 28:add19eb7defa 5234 if (amqpvalue_set_composite_item(attach_instance->composite_value, 13, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5235 {
AzureIoTClient 28:add19eb7defa 5236 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5237 }
AzureIoTClient 28:add19eb7defa 5238 else
AzureIoTClient 28:add19eb7defa 5239 {
AzureIoTClient 28:add19eb7defa 5240 result = 0;
AzureIoTClient 28:add19eb7defa 5241 }
AzureIoTClient 28:add19eb7defa 5242
AzureIoTClient 28:add19eb7defa 5243 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 5244 }
AzureIoTClient 28:add19eb7defa 5245 }
AzureIoTClient 28:add19eb7defa 5246
AzureIoTClient 28:add19eb7defa 5247 return result;
Azure.IoT Build 0:6ae2f7bca550 5248 }
Azure.IoT Build 0:6ae2f7bca550 5249
Azure.IoT Build 0:6ae2f7bca550 5250
Azure.IoT Build 0:6ae2f7bca550 5251 /* flow */
Azure.IoT Build 0:6ae2f7bca550 5252
Azure.IoT Build 0:6ae2f7bca550 5253 typedef struct FLOW_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 5254 {
AzureIoTClient 28:add19eb7defa 5255 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 5256 } FLOW_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 5257
Azure.IoT Build 0:6ae2f7bca550 5258 static FLOW_HANDLE flow_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 5259 {
AzureIoTClient 28:add19eb7defa 5260 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5261 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5262 {
AzureIoTClient 28:add19eb7defa 5263 flow_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 5264 }
AzureIoTClient 28:add19eb7defa 5265
AzureIoTClient 28:add19eb7defa 5266 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5267 }
Azure.IoT Build 0:6ae2f7bca550 5268
Azure.IoT Build 0:6ae2f7bca550 5269 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 5270 {
AzureIoTClient 28:add19eb7defa 5271 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5272 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5273 {
AzureIoTClient 28:add19eb7defa 5274 flow_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(19);
AzureIoTClient 28:add19eb7defa 5275 if (flow_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 5276 {
AzureIoTClient 28:add19eb7defa 5277 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5278 flow_instance = NULL;
AzureIoTClient 28:add19eb7defa 5279 }
AzureIoTClient 28:add19eb7defa 5280 else
AzureIoTClient 28:add19eb7defa 5281 {
AzureIoTClient 28:add19eb7defa 5282 AMQP_VALUE incoming_window_amqp_value;
AzureIoTClient 28:add19eb7defa 5283 AMQP_VALUE next_outgoing_id_amqp_value;
AzureIoTClient 28:add19eb7defa 5284 AMQP_VALUE outgoing_window_amqp_value;
AzureIoTClient 28:add19eb7defa 5285 int result = 0;
AzureIoTClient 28:add19eb7defa 5286
AzureIoTClient 28:add19eb7defa 5287 incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 5288 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 1, incoming_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5289 {
AzureIoTClient 28:add19eb7defa 5290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5291 }
AzureIoTClient 28:add19eb7defa 5292 next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 5293 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 2, next_outgoing_id_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5294 {
AzureIoTClient 28:add19eb7defa 5295 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5296 }
AzureIoTClient 28:add19eb7defa 5297 outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 5298 if ((result == 0) && (amqpvalue_set_composite_item(flow_instance->composite_value, 3, outgoing_window_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 5299 {
AzureIoTClient 28:add19eb7defa 5300 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5301 }
AzureIoTClient 28:add19eb7defa 5302
AzureIoTClient 28:add19eb7defa 5303 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 5304 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 5305 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 5306 }
AzureIoTClient 28:add19eb7defa 5307 }
AzureIoTClient 28:add19eb7defa 5308
AzureIoTClient 28:add19eb7defa 5309 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5310 }
Azure.IoT Build 0:6ae2f7bca550 5311
Azure.IoT Build 0:6ae2f7bca550 5312 FLOW_HANDLE flow_clone(FLOW_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 5313 {
AzureIoTClient 28:add19eb7defa 5314 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)malloc(sizeof(FLOW_INSTANCE));
AzureIoTClient 28:add19eb7defa 5315 if (flow_instance != NULL)
AzureIoTClient 28:add19eb7defa 5316 {
AzureIoTClient 28:add19eb7defa 5317 flow_instance->composite_value = amqpvalue_clone(((FLOW_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 5318 if (flow_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 5319 {
AzureIoTClient 28:add19eb7defa 5320 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5321 flow_instance = NULL;
AzureIoTClient 28:add19eb7defa 5322 }
AzureIoTClient 28:add19eb7defa 5323 }
AzureIoTClient 28:add19eb7defa 5324
AzureIoTClient 28:add19eb7defa 5325 return flow_instance;
Azure.IoT Build 0:6ae2f7bca550 5326 }
Azure.IoT Build 0:6ae2f7bca550 5327
Azure.IoT Build 0:6ae2f7bca550 5328 void flow_destroy(FLOW_HANDLE flow)
Azure.IoT Build 0:6ae2f7bca550 5329 {
AzureIoTClient 28:add19eb7defa 5330 if (flow != NULL)
AzureIoTClient 28:add19eb7defa 5331 {
AzureIoTClient 28:add19eb7defa 5332 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5333 amqpvalue_destroy(flow_instance->composite_value);
AzureIoTClient 28:add19eb7defa 5334 free(flow_instance);
AzureIoTClient 28:add19eb7defa 5335 }
Azure.IoT Build 0:6ae2f7bca550 5336 }
Azure.IoT Build 0:6ae2f7bca550 5337
Azure.IoT Build 0:6ae2f7bca550 5338 AMQP_VALUE amqpvalue_create_flow(FLOW_HANDLE flow)
Azure.IoT Build 0:6ae2f7bca550 5339 {
AzureIoTClient 28:add19eb7defa 5340 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 5341
AzureIoTClient 28:add19eb7defa 5342 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5343 {
AzureIoTClient 28:add19eb7defa 5344 result = NULL;
AzureIoTClient 28:add19eb7defa 5345 }
AzureIoTClient 28:add19eb7defa 5346 else
AzureIoTClient 28:add19eb7defa 5347 {
AzureIoTClient 28:add19eb7defa 5348 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5349 result = amqpvalue_clone(flow_instance->composite_value);
AzureIoTClient 28:add19eb7defa 5350 }
AzureIoTClient 28:add19eb7defa 5351
AzureIoTClient 28:add19eb7defa 5352 return result;
Azure.IoT Build 0:6ae2f7bca550 5353 }
Azure.IoT Build 0:6ae2f7bca550 5354
Azure.IoT Build 0:6ae2f7bca550 5355 bool is_flow_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 5356 {
AzureIoTClient 28:add19eb7defa 5357 bool result;
AzureIoTClient 28:add19eb7defa 5358
AzureIoTClient 28:add19eb7defa 5359 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 5360 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 5361 (descriptor_ulong == 19))
AzureIoTClient 28:add19eb7defa 5362 {
AzureIoTClient 28:add19eb7defa 5363 result = true;
AzureIoTClient 28:add19eb7defa 5364 }
AzureIoTClient 28:add19eb7defa 5365 else
AzureIoTClient 28:add19eb7defa 5366 {
AzureIoTClient 28:add19eb7defa 5367 result = false;
AzureIoTClient 28:add19eb7defa 5368 }
AzureIoTClient 28:add19eb7defa 5369
AzureIoTClient 28:add19eb7defa 5370 return result;
Azure.IoT Build 0:6ae2f7bca550 5371 }
Azure.IoT Build 0:6ae2f7bca550 5372
Azure.IoT Build 0:6ae2f7bca550 5373
Azure.IoT Build 0:6ae2f7bca550 5374 int amqpvalue_get_flow(AMQP_VALUE value, FLOW_HANDLE* flow_handle)
Azure.IoT Build 0:6ae2f7bca550 5375 {
AzureIoTClient 28:add19eb7defa 5376 int result;
AzureIoTClient 28:add19eb7defa 5377 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow_create_internal();
AzureIoTClient 28:add19eb7defa 5378 *flow_handle = flow_instance;
AzureIoTClient 28:add19eb7defa 5379 if (*flow_handle == NULL)
AzureIoTClient 28:add19eb7defa 5380 {
AzureIoTClient 28:add19eb7defa 5381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5382 }
AzureIoTClient 28:add19eb7defa 5383 else
AzureIoTClient 28:add19eb7defa 5384 {
AzureIoTClient 28:add19eb7defa 5385 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 5386 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 5387 {
AzureIoTClient 28:add19eb7defa 5388 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5389 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5390 }
AzureIoTClient 28:add19eb7defa 5391 else
AzureIoTClient 28:add19eb7defa 5392 {
AzureIoTClient 23:1111ee8bcba4 5393 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 5394 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5395 {
AzureIoTClient 23:1111ee8bcba4 5396 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5397 }
AzureIoTClient 23:1111ee8bcba4 5398 else
AzureIoTClient 23:1111ee8bcba4 5399 {
AzureIoTClient 28:add19eb7defa 5400 do
AzureIoTClient 28:add19eb7defa 5401 {
AzureIoTClient 28:add19eb7defa 5402 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 5403 /* next-incoming-id */
AzureIoTClient 28:add19eb7defa 5404 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 5405 {
AzureIoTClient 23:1111ee8bcba4 5406 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 5407 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5408 {
AzureIoTClient 28:add19eb7defa 5409 /* do nothing */
AzureIoTClient 28:add19eb7defa 5410 }
AzureIoTClient 28:add19eb7defa 5411 else
AzureIoTClient 28:add19eb7defa 5412 {
AzureIoTClient 28:add19eb7defa 5413 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5414 {
AzureIoTClient 28:add19eb7defa 5415 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5416 }
AzureIoTClient 28:add19eb7defa 5417 else
AzureIoTClient 28:add19eb7defa 5418 {
AzureIoTClient 28:add19eb7defa 5419 transfer_number next_incoming_id;
AzureIoTClient 28:add19eb7defa 5420 if (amqpvalue_get_transfer_number(item_value, &next_incoming_id) != 0)
AzureIoTClient 28:add19eb7defa 5421 {
AzureIoTClient 28:add19eb7defa 5422 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5423 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5424 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5425 break;
AzureIoTClient 28:add19eb7defa 5426 }
AzureIoTClient 28:add19eb7defa 5427 }
AzureIoTClient 28:add19eb7defa 5428
AzureIoTClient 28:add19eb7defa 5429 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5430 }
AzureIoTClient 28:add19eb7defa 5431 }
AzureIoTClient 28:add19eb7defa 5432 /* incoming-window */
AzureIoTClient 28:add19eb7defa 5433 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 5434 {
AzureIoTClient 23:1111ee8bcba4 5435 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 5436 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5437 {
AzureIoTClient 28:add19eb7defa 5438 {
AzureIoTClient 28:add19eb7defa 5439 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5440 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5441 break;
AzureIoTClient 28:add19eb7defa 5442 }
AzureIoTClient 28:add19eb7defa 5443 }
AzureIoTClient 28:add19eb7defa 5444 else
AzureIoTClient 28:add19eb7defa 5445 {
AzureIoTClient 28:add19eb7defa 5446 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5447 {
AzureIoTClient 28:add19eb7defa 5448 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5449 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5450 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5451 break;
AzureIoTClient 28:add19eb7defa 5452 }
AzureIoTClient 28:add19eb7defa 5453 else
AzureIoTClient 28:add19eb7defa 5454 {
AzureIoTClient 28:add19eb7defa 5455 uint32_t incoming_window;
AzureIoTClient 28:add19eb7defa 5456 if (amqpvalue_get_uint(item_value, &incoming_window) != 0)
AzureIoTClient 28:add19eb7defa 5457 {
AzureIoTClient 28:add19eb7defa 5458 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5459 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5460 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5461 break;
AzureIoTClient 28:add19eb7defa 5462 }
AzureIoTClient 28:add19eb7defa 5463 }
AzureIoTClient 28:add19eb7defa 5464
AzureIoTClient 28:add19eb7defa 5465 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5466 }
AzureIoTClient 28:add19eb7defa 5467 }
AzureIoTClient 28:add19eb7defa 5468 else
AzureIoTClient 28:add19eb7defa 5469 {
AzureIoTClient 28:add19eb7defa 5470 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5471 }
AzureIoTClient 28:add19eb7defa 5472 /* next-outgoing-id */
AzureIoTClient 28:add19eb7defa 5473 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 5474 {
AzureIoTClient 23:1111ee8bcba4 5475 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 5476 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5477 {
AzureIoTClient 28:add19eb7defa 5478 {
AzureIoTClient 28:add19eb7defa 5479 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5480 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5481 break;
AzureIoTClient 28:add19eb7defa 5482 }
AzureIoTClient 28:add19eb7defa 5483 }
AzureIoTClient 28:add19eb7defa 5484 else
AzureIoTClient 28:add19eb7defa 5485 {
AzureIoTClient 28:add19eb7defa 5486 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5487 {
AzureIoTClient 28:add19eb7defa 5488 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5489 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5490 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5491 break;
AzureIoTClient 28:add19eb7defa 5492 }
AzureIoTClient 28:add19eb7defa 5493 else
AzureIoTClient 28:add19eb7defa 5494 {
AzureIoTClient 28:add19eb7defa 5495 transfer_number next_outgoing_id;
AzureIoTClient 28:add19eb7defa 5496 if (amqpvalue_get_transfer_number(item_value, &next_outgoing_id) != 0)
AzureIoTClient 28:add19eb7defa 5497 {
AzureIoTClient 28:add19eb7defa 5498 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5499 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5500 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5501 break;
AzureIoTClient 28:add19eb7defa 5502 }
AzureIoTClient 28:add19eb7defa 5503 }
AzureIoTClient 28:add19eb7defa 5504
AzureIoTClient 28:add19eb7defa 5505 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5506 }
AzureIoTClient 28:add19eb7defa 5507 }
AzureIoTClient 28:add19eb7defa 5508 else
AzureIoTClient 28:add19eb7defa 5509 {
AzureIoTClient 28:add19eb7defa 5510 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5511 }
AzureIoTClient 28:add19eb7defa 5512 /* outgoing-window */
AzureIoTClient 28:add19eb7defa 5513 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 5514 {
AzureIoTClient 23:1111ee8bcba4 5515 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 5516 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5517 {
AzureIoTClient 28:add19eb7defa 5518 {
AzureIoTClient 28:add19eb7defa 5519 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5520 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5521 break;
AzureIoTClient 28:add19eb7defa 5522 }
AzureIoTClient 28:add19eb7defa 5523 }
AzureIoTClient 28:add19eb7defa 5524 else
AzureIoTClient 28:add19eb7defa 5525 {
AzureIoTClient 28:add19eb7defa 5526 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5527 {
AzureIoTClient 28:add19eb7defa 5528 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5529 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5530 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5531 break;
AzureIoTClient 28:add19eb7defa 5532 }
AzureIoTClient 28:add19eb7defa 5533 else
AzureIoTClient 28:add19eb7defa 5534 {
AzureIoTClient 28:add19eb7defa 5535 uint32_t outgoing_window;
AzureIoTClient 28:add19eb7defa 5536 if (amqpvalue_get_uint(item_value, &outgoing_window) != 0)
AzureIoTClient 28:add19eb7defa 5537 {
AzureIoTClient 28:add19eb7defa 5538 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5539 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5540 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5541 break;
AzureIoTClient 28:add19eb7defa 5542 }
AzureIoTClient 28:add19eb7defa 5543 }
AzureIoTClient 28:add19eb7defa 5544
AzureIoTClient 28:add19eb7defa 5545 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5546 }
AzureIoTClient 28:add19eb7defa 5547 }
AzureIoTClient 28:add19eb7defa 5548 else
AzureIoTClient 28:add19eb7defa 5549 {
AzureIoTClient 28:add19eb7defa 5550 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5551 }
AzureIoTClient 28:add19eb7defa 5552 /* handle */
AzureIoTClient 28:add19eb7defa 5553 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 5554 {
AzureIoTClient 23:1111ee8bcba4 5555 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 5556 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5557 {
AzureIoTClient 28:add19eb7defa 5558 /* do nothing */
AzureIoTClient 28:add19eb7defa 5559 }
AzureIoTClient 28:add19eb7defa 5560 else
AzureIoTClient 28:add19eb7defa 5561 {
AzureIoTClient 28:add19eb7defa 5562 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5563 {
AzureIoTClient 28:add19eb7defa 5564 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5565 }
AzureIoTClient 28:add19eb7defa 5566 else
AzureIoTClient 28:add19eb7defa 5567 {
AzureIoTClient 28:add19eb7defa 5568 handle handle;
AzureIoTClient 28:add19eb7defa 5569 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 5570 {
AzureIoTClient 28:add19eb7defa 5571 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5572 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5573 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5574 break;
AzureIoTClient 28:add19eb7defa 5575 }
AzureIoTClient 28:add19eb7defa 5576 }
AzureIoTClient 28:add19eb7defa 5577
AzureIoTClient 28:add19eb7defa 5578 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5579 }
AzureIoTClient 28:add19eb7defa 5580 }
AzureIoTClient 28:add19eb7defa 5581 /* delivery-count */
AzureIoTClient 28:add19eb7defa 5582 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 5583 {
AzureIoTClient 23:1111ee8bcba4 5584 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 5585 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5586 {
AzureIoTClient 28:add19eb7defa 5587 /* do nothing */
AzureIoTClient 28:add19eb7defa 5588 }
AzureIoTClient 28:add19eb7defa 5589 else
AzureIoTClient 28:add19eb7defa 5590 {
AzureIoTClient 28:add19eb7defa 5591 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5592 {
AzureIoTClient 28:add19eb7defa 5593 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5594 }
AzureIoTClient 28:add19eb7defa 5595 else
AzureIoTClient 28:add19eb7defa 5596 {
AzureIoTClient 28:add19eb7defa 5597 sequence_no delivery_count;
AzureIoTClient 28:add19eb7defa 5598 if (amqpvalue_get_sequence_no(item_value, &delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 5599 {
AzureIoTClient 28:add19eb7defa 5600 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5601 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5602 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5603 break;
AzureIoTClient 28:add19eb7defa 5604 }
AzureIoTClient 28:add19eb7defa 5605 }
AzureIoTClient 28:add19eb7defa 5606
AzureIoTClient 28:add19eb7defa 5607 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5608 }
AzureIoTClient 28:add19eb7defa 5609 }
AzureIoTClient 28:add19eb7defa 5610 /* link-credit */
AzureIoTClient 28:add19eb7defa 5611 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 5612 {
AzureIoTClient 23:1111ee8bcba4 5613 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 5614 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5615 {
AzureIoTClient 28:add19eb7defa 5616 /* do nothing */
AzureIoTClient 28:add19eb7defa 5617 }
AzureIoTClient 28:add19eb7defa 5618 else
AzureIoTClient 28:add19eb7defa 5619 {
AzureIoTClient 28:add19eb7defa 5620 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5621 {
AzureIoTClient 28:add19eb7defa 5622 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5623 }
AzureIoTClient 28:add19eb7defa 5624 else
AzureIoTClient 28:add19eb7defa 5625 {
AzureIoTClient 28:add19eb7defa 5626 uint32_t link_credit;
AzureIoTClient 28:add19eb7defa 5627 if (amqpvalue_get_uint(item_value, &link_credit) != 0)
AzureIoTClient 28:add19eb7defa 5628 {
AzureIoTClient 28:add19eb7defa 5629 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5630 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5631 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5632 break;
AzureIoTClient 28:add19eb7defa 5633 }
AzureIoTClient 28:add19eb7defa 5634 }
AzureIoTClient 28:add19eb7defa 5635
AzureIoTClient 28:add19eb7defa 5636 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5637 }
AzureIoTClient 28:add19eb7defa 5638 }
AzureIoTClient 28:add19eb7defa 5639 /* available */
AzureIoTClient 28:add19eb7defa 5640 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 5641 {
AzureIoTClient 23:1111ee8bcba4 5642 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 5643 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5644 {
AzureIoTClient 28:add19eb7defa 5645 /* do nothing */
AzureIoTClient 28:add19eb7defa 5646 }
AzureIoTClient 28:add19eb7defa 5647 else
AzureIoTClient 28:add19eb7defa 5648 {
AzureIoTClient 28:add19eb7defa 5649 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5650 {
AzureIoTClient 28:add19eb7defa 5651 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5652 }
AzureIoTClient 28:add19eb7defa 5653 else
AzureIoTClient 28:add19eb7defa 5654 {
AzureIoTClient 28:add19eb7defa 5655 uint32_t available;
AzureIoTClient 28:add19eb7defa 5656 if (amqpvalue_get_uint(item_value, &available) != 0)
AzureIoTClient 28:add19eb7defa 5657 {
AzureIoTClient 28:add19eb7defa 5658 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5659 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5660 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5661 break;
AzureIoTClient 28:add19eb7defa 5662 }
AzureIoTClient 28:add19eb7defa 5663 }
AzureIoTClient 28:add19eb7defa 5664
AzureIoTClient 28:add19eb7defa 5665 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5666 }
AzureIoTClient 28:add19eb7defa 5667 }
AzureIoTClient 28:add19eb7defa 5668 /* drain */
AzureIoTClient 28:add19eb7defa 5669 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 5670 {
AzureIoTClient 23:1111ee8bcba4 5671 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 5672 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5673 {
AzureIoTClient 28:add19eb7defa 5674 /* do nothing */
AzureIoTClient 28:add19eb7defa 5675 }
AzureIoTClient 28:add19eb7defa 5676 else
AzureIoTClient 28:add19eb7defa 5677 {
AzureIoTClient 28:add19eb7defa 5678 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5679 {
AzureIoTClient 28:add19eb7defa 5680 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5681 }
AzureIoTClient 28:add19eb7defa 5682 else
AzureIoTClient 28:add19eb7defa 5683 {
AzureIoTClient 28:add19eb7defa 5684 bool drain;
AzureIoTClient 28:add19eb7defa 5685 if (amqpvalue_get_boolean(item_value, &drain) != 0)
AzureIoTClient 28:add19eb7defa 5686 {
AzureIoTClient 28:add19eb7defa 5687 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5688 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5689 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5690 break;
AzureIoTClient 28:add19eb7defa 5691 }
AzureIoTClient 28:add19eb7defa 5692 }
AzureIoTClient 28:add19eb7defa 5693
AzureIoTClient 28:add19eb7defa 5694 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5695 }
AzureIoTClient 28:add19eb7defa 5696 }
AzureIoTClient 28:add19eb7defa 5697 /* echo */
AzureIoTClient 28:add19eb7defa 5698 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 5699 {
AzureIoTClient 23:1111ee8bcba4 5700 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 5701 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5702 {
AzureIoTClient 28:add19eb7defa 5703 /* do nothing */
AzureIoTClient 28:add19eb7defa 5704 }
AzureIoTClient 28:add19eb7defa 5705 else
AzureIoTClient 28:add19eb7defa 5706 {
AzureIoTClient 28:add19eb7defa 5707 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5708 {
AzureIoTClient 28:add19eb7defa 5709 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5710 }
AzureIoTClient 28:add19eb7defa 5711 else
AzureIoTClient 28:add19eb7defa 5712 {
AzureIoTClient 28:add19eb7defa 5713 bool echo;
AzureIoTClient 28:add19eb7defa 5714 if (amqpvalue_get_boolean(item_value, &echo) != 0)
AzureIoTClient 28:add19eb7defa 5715 {
AzureIoTClient 28:add19eb7defa 5716 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5717 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5718 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5719 break;
AzureIoTClient 28:add19eb7defa 5720 }
AzureIoTClient 28:add19eb7defa 5721 }
AzureIoTClient 28:add19eb7defa 5722
AzureIoTClient 28:add19eb7defa 5723 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5724 }
AzureIoTClient 28:add19eb7defa 5725 }
AzureIoTClient 28:add19eb7defa 5726 /* properties */
AzureIoTClient 28:add19eb7defa 5727 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 5728 {
AzureIoTClient 23:1111ee8bcba4 5729 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 5730 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 5731 {
AzureIoTClient 28:add19eb7defa 5732 /* do nothing */
AzureIoTClient 28:add19eb7defa 5733 }
AzureIoTClient 28:add19eb7defa 5734 else
AzureIoTClient 28:add19eb7defa 5735 {
AzureIoTClient 28:add19eb7defa 5736 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 5737 {
AzureIoTClient 28:add19eb7defa 5738 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 5739 }
AzureIoTClient 28:add19eb7defa 5740 else
AzureIoTClient 28:add19eb7defa 5741 {
AzureIoTClient 28:add19eb7defa 5742 fields properties;
AzureIoTClient 28:add19eb7defa 5743 if (amqpvalue_get_fields(item_value, &properties) != 0)
AzureIoTClient 28:add19eb7defa 5744 {
AzureIoTClient 28:add19eb7defa 5745 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5746 flow_destroy(*flow_handle);
AzureIoTClient 28:add19eb7defa 5747 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5748 break;
AzureIoTClient 28:add19eb7defa 5749 }
AzureIoTClient 28:add19eb7defa 5750 }
AzureIoTClient 28:add19eb7defa 5751
AzureIoTClient 28:add19eb7defa 5752 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 5753 }
AzureIoTClient 28:add19eb7defa 5754 }
AzureIoTClient 28:add19eb7defa 5755
AzureIoTClient 28:add19eb7defa 5756 flow_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 5757
AzureIoTClient 28:add19eb7defa 5758 result = 0;
AzureIoTClient 28:add19eb7defa 5759 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 5760 }
AzureIoTClient 28:add19eb7defa 5761 }
AzureIoTClient 28:add19eb7defa 5762 }
AzureIoTClient 28:add19eb7defa 5763
AzureIoTClient 28:add19eb7defa 5764 return result;
Azure.IoT Build 0:6ae2f7bca550 5765 }
Azure.IoT Build 0:6ae2f7bca550 5766
Azure.IoT Build 0:6ae2f7bca550 5767 int flow_get_next_incoming_id(FLOW_HANDLE flow, transfer_number* next_incoming_id_value)
Azure.IoT Build 0:6ae2f7bca550 5768 {
AzureIoTClient 28:add19eb7defa 5769 int result;
AzureIoTClient 28:add19eb7defa 5770
AzureIoTClient 28:add19eb7defa 5771 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5772 {
AzureIoTClient 28:add19eb7defa 5773 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5774 }
AzureIoTClient 28:add19eb7defa 5775 else
AzureIoTClient 28:add19eb7defa 5776 {
AzureIoTClient 28:add19eb7defa 5777 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5778 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5779 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5780 {
AzureIoTClient 23:1111ee8bcba4 5781 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5782 }
AzureIoTClient 23:1111ee8bcba4 5783 else
AzureIoTClient 23:1111ee8bcba4 5784 {
AzureIoTClient 23:1111ee8bcba4 5785 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 5786 {
AzureIoTClient 28:add19eb7defa 5787 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5788 }
AzureIoTClient 28:add19eb7defa 5789 else
AzureIoTClient 28:add19eb7defa 5790 {
AzureIoTClient 28:add19eb7defa 5791 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 5792 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5793 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5794 {
AzureIoTClient 28:add19eb7defa 5795 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5796 }
AzureIoTClient 28:add19eb7defa 5797 else
AzureIoTClient 28:add19eb7defa 5798 {
AzureIoTClient 28:add19eb7defa 5799 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5800 if ((get_single_value_result = amqpvalue_get_transfer_number(item_value, next_incoming_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 5801 {
AzureIoTClient 28:add19eb7defa 5802 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5803 }
AzureIoTClient 28:add19eb7defa 5804 else
AzureIoTClient 28:add19eb7defa 5805 {
AzureIoTClient 28:add19eb7defa 5806 result = 0;
AzureIoTClient 28:add19eb7defa 5807 }
AzureIoTClient 28:add19eb7defa 5808 }
AzureIoTClient 28:add19eb7defa 5809 }
AzureIoTClient 28:add19eb7defa 5810 }
AzureIoTClient 28:add19eb7defa 5811 }
AzureIoTClient 28:add19eb7defa 5812
AzureIoTClient 28:add19eb7defa 5813 return result;
Azure.IoT Build 0:6ae2f7bca550 5814 }
Azure.IoT Build 0:6ae2f7bca550 5815
Azure.IoT Build 0:6ae2f7bca550 5816 int flow_set_next_incoming_id(FLOW_HANDLE flow, transfer_number next_incoming_id_value)
Azure.IoT Build 0:6ae2f7bca550 5817 {
AzureIoTClient 28:add19eb7defa 5818 int result;
AzureIoTClient 28:add19eb7defa 5819
AzureIoTClient 28:add19eb7defa 5820 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5821 {
AzureIoTClient 28:add19eb7defa 5822 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5823 }
AzureIoTClient 28:add19eb7defa 5824 else
AzureIoTClient 28:add19eb7defa 5825 {
AzureIoTClient 28:add19eb7defa 5826 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5827 AMQP_VALUE next_incoming_id_amqp_value = amqpvalue_create_transfer_number(next_incoming_id_value);
AzureIoTClient 28:add19eb7defa 5828 if (next_incoming_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5829 {
AzureIoTClient 28:add19eb7defa 5830 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5831 }
AzureIoTClient 28:add19eb7defa 5832 else
AzureIoTClient 28:add19eb7defa 5833 {
AzureIoTClient 28:add19eb7defa 5834 if (amqpvalue_set_composite_item(flow_instance->composite_value, 0, next_incoming_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5835 {
AzureIoTClient 28:add19eb7defa 5836 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5837 }
AzureIoTClient 28:add19eb7defa 5838 else
AzureIoTClient 28:add19eb7defa 5839 {
AzureIoTClient 28:add19eb7defa 5840 result = 0;
AzureIoTClient 28:add19eb7defa 5841 }
AzureIoTClient 28:add19eb7defa 5842
AzureIoTClient 28:add19eb7defa 5843 amqpvalue_destroy(next_incoming_id_amqp_value);
AzureIoTClient 28:add19eb7defa 5844 }
AzureIoTClient 28:add19eb7defa 5845 }
AzureIoTClient 28:add19eb7defa 5846
AzureIoTClient 28:add19eb7defa 5847 return result;
Azure.IoT Build 0:6ae2f7bca550 5848 }
Azure.IoT Build 0:6ae2f7bca550 5849
Azure.IoT Build 0:6ae2f7bca550 5850 int flow_get_incoming_window(FLOW_HANDLE flow, uint32_t* incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 5851 {
AzureIoTClient 28:add19eb7defa 5852 int result;
AzureIoTClient 28:add19eb7defa 5853
AzureIoTClient 28:add19eb7defa 5854 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5855 {
AzureIoTClient 28:add19eb7defa 5856 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5857 }
AzureIoTClient 28:add19eb7defa 5858 else
AzureIoTClient 28:add19eb7defa 5859 {
AzureIoTClient 28:add19eb7defa 5860 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5861 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5862 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5863 {
AzureIoTClient 23:1111ee8bcba4 5864 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5865 }
AzureIoTClient 23:1111ee8bcba4 5866 else
AzureIoTClient 23:1111ee8bcba4 5867 {
AzureIoTClient 23:1111ee8bcba4 5868 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 5869 {
AzureIoTClient 28:add19eb7defa 5870 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5871 }
AzureIoTClient 28:add19eb7defa 5872 else
AzureIoTClient 28:add19eb7defa 5873 {
AzureIoTClient 28:add19eb7defa 5874 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 5875 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5876 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5877 {
AzureIoTClient 28:add19eb7defa 5878 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5879 }
AzureIoTClient 28:add19eb7defa 5880 else
AzureIoTClient 28:add19eb7defa 5881 {
AzureIoTClient 28:add19eb7defa 5882 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5883 if ((get_single_value_result = amqpvalue_get_uint(item_value, incoming_window_value)) != 0)
AzureIoTClient 28:add19eb7defa 5884 {
AzureIoTClient 28:add19eb7defa 5885 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5886 }
AzureIoTClient 28:add19eb7defa 5887 else
AzureIoTClient 28:add19eb7defa 5888 {
AzureIoTClient 28:add19eb7defa 5889 result = 0;
AzureIoTClient 28:add19eb7defa 5890 }
AzureIoTClient 28:add19eb7defa 5891 }
AzureIoTClient 28:add19eb7defa 5892 }
AzureIoTClient 28:add19eb7defa 5893 }
AzureIoTClient 28:add19eb7defa 5894 }
AzureIoTClient 28:add19eb7defa 5895
AzureIoTClient 28:add19eb7defa 5896 return result;
Azure.IoT Build 0:6ae2f7bca550 5897 }
Azure.IoT Build 0:6ae2f7bca550 5898
Azure.IoT Build 0:6ae2f7bca550 5899 int flow_set_incoming_window(FLOW_HANDLE flow, uint32_t incoming_window_value)
Azure.IoT Build 0:6ae2f7bca550 5900 {
AzureIoTClient 28:add19eb7defa 5901 int result;
AzureIoTClient 28:add19eb7defa 5902
AzureIoTClient 28:add19eb7defa 5903 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5904 {
AzureIoTClient 28:add19eb7defa 5905 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5906 }
AzureIoTClient 28:add19eb7defa 5907 else
AzureIoTClient 28:add19eb7defa 5908 {
AzureIoTClient 28:add19eb7defa 5909 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5910 AMQP_VALUE incoming_window_amqp_value = amqpvalue_create_uint(incoming_window_value);
AzureIoTClient 28:add19eb7defa 5911 if (incoming_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5912 {
AzureIoTClient 28:add19eb7defa 5913 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5914 }
AzureIoTClient 28:add19eb7defa 5915 else
AzureIoTClient 28:add19eb7defa 5916 {
AzureIoTClient 28:add19eb7defa 5917 if (amqpvalue_set_composite_item(flow_instance->composite_value, 1, incoming_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 5918 {
AzureIoTClient 28:add19eb7defa 5919 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5920 }
AzureIoTClient 28:add19eb7defa 5921 else
AzureIoTClient 28:add19eb7defa 5922 {
AzureIoTClient 28:add19eb7defa 5923 result = 0;
AzureIoTClient 28:add19eb7defa 5924 }
AzureIoTClient 28:add19eb7defa 5925
AzureIoTClient 28:add19eb7defa 5926 amqpvalue_destroy(incoming_window_amqp_value);
AzureIoTClient 28:add19eb7defa 5927 }
AzureIoTClient 28:add19eb7defa 5928 }
AzureIoTClient 28:add19eb7defa 5929
AzureIoTClient 28:add19eb7defa 5930 return result;
Azure.IoT Build 0:6ae2f7bca550 5931 }
Azure.IoT Build 0:6ae2f7bca550 5932
Azure.IoT Build 0:6ae2f7bca550 5933 int flow_get_next_outgoing_id(FLOW_HANDLE flow, transfer_number* next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 5934 {
AzureIoTClient 28:add19eb7defa 5935 int result;
AzureIoTClient 28:add19eb7defa 5936
AzureIoTClient 28:add19eb7defa 5937 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5938 {
AzureIoTClient 28:add19eb7defa 5939 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5940 }
AzureIoTClient 28:add19eb7defa 5941 else
AzureIoTClient 28:add19eb7defa 5942 {
AzureIoTClient 28:add19eb7defa 5943 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 5944 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 5945 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 5946 {
AzureIoTClient 23:1111ee8bcba4 5947 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 5948 }
AzureIoTClient 23:1111ee8bcba4 5949 else
AzureIoTClient 23:1111ee8bcba4 5950 {
AzureIoTClient 23:1111ee8bcba4 5951 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 5952 {
AzureIoTClient 28:add19eb7defa 5953 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5954 }
AzureIoTClient 28:add19eb7defa 5955 else
AzureIoTClient 28:add19eb7defa 5956 {
AzureIoTClient 28:add19eb7defa 5957 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 5958 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 5959 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 5960 {
AzureIoTClient 28:add19eb7defa 5961 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5962 }
AzureIoTClient 28:add19eb7defa 5963 else
AzureIoTClient 28:add19eb7defa 5964 {
AzureIoTClient 28:add19eb7defa 5965 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 5966 if ((get_single_value_result = amqpvalue_get_transfer_number(item_value, next_outgoing_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 5967 {
AzureIoTClient 28:add19eb7defa 5968 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5969 }
AzureIoTClient 28:add19eb7defa 5970 else
AzureIoTClient 28:add19eb7defa 5971 {
AzureIoTClient 28:add19eb7defa 5972 result = 0;
AzureIoTClient 28:add19eb7defa 5973 }
AzureIoTClient 28:add19eb7defa 5974 }
AzureIoTClient 28:add19eb7defa 5975 }
AzureIoTClient 28:add19eb7defa 5976 }
AzureIoTClient 28:add19eb7defa 5977 }
AzureIoTClient 28:add19eb7defa 5978
AzureIoTClient 28:add19eb7defa 5979 return result;
Azure.IoT Build 0:6ae2f7bca550 5980 }
Azure.IoT Build 0:6ae2f7bca550 5981
Azure.IoT Build 0:6ae2f7bca550 5982 int flow_set_next_outgoing_id(FLOW_HANDLE flow, transfer_number next_outgoing_id_value)
Azure.IoT Build 0:6ae2f7bca550 5983 {
AzureIoTClient 28:add19eb7defa 5984 int result;
AzureIoTClient 28:add19eb7defa 5985
AzureIoTClient 28:add19eb7defa 5986 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 5987 {
AzureIoTClient 28:add19eb7defa 5988 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5989 }
AzureIoTClient 28:add19eb7defa 5990 else
AzureIoTClient 28:add19eb7defa 5991 {
AzureIoTClient 28:add19eb7defa 5992 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 5993 AMQP_VALUE next_outgoing_id_amqp_value = amqpvalue_create_transfer_number(next_outgoing_id_value);
AzureIoTClient 28:add19eb7defa 5994 if (next_outgoing_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 5995 {
AzureIoTClient 28:add19eb7defa 5996 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 5997 }
AzureIoTClient 28:add19eb7defa 5998 else
AzureIoTClient 28:add19eb7defa 5999 {
AzureIoTClient 28:add19eb7defa 6000 if (amqpvalue_set_composite_item(flow_instance->composite_value, 2, next_outgoing_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6001 {
AzureIoTClient 28:add19eb7defa 6002 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6003 }
AzureIoTClient 28:add19eb7defa 6004 else
AzureIoTClient 28:add19eb7defa 6005 {
AzureIoTClient 28:add19eb7defa 6006 result = 0;
AzureIoTClient 28:add19eb7defa 6007 }
AzureIoTClient 28:add19eb7defa 6008
AzureIoTClient 28:add19eb7defa 6009 amqpvalue_destroy(next_outgoing_id_amqp_value);
AzureIoTClient 28:add19eb7defa 6010 }
AzureIoTClient 28:add19eb7defa 6011 }
AzureIoTClient 28:add19eb7defa 6012
AzureIoTClient 28:add19eb7defa 6013 return result;
Azure.IoT Build 0:6ae2f7bca550 6014 }
Azure.IoT Build 0:6ae2f7bca550 6015
Azure.IoT Build 0:6ae2f7bca550 6016 int flow_get_outgoing_window(FLOW_HANDLE flow, uint32_t* outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 6017 {
AzureIoTClient 28:add19eb7defa 6018 int result;
AzureIoTClient 28:add19eb7defa 6019
AzureIoTClient 28:add19eb7defa 6020 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6021 {
AzureIoTClient 28:add19eb7defa 6022 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6023 }
AzureIoTClient 28:add19eb7defa 6024 else
AzureIoTClient 28:add19eb7defa 6025 {
AzureIoTClient 28:add19eb7defa 6026 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6027 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6028 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6029 {
AzureIoTClient 23:1111ee8bcba4 6030 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6031 }
AzureIoTClient 23:1111ee8bcba4 6032 else
AzureIoTClient 23:1111ee8bcba4 6033 {
AzureIoTClient 23:1111ee8bcba4 6034 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 6035 {
AzureIoTClient 28:add19eb7defa 6036 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6037 }
AzureIoTClient 28:add19eb7defa 6038 else
AzureIoTClient 28:add19eb7defa 6039 {
AzureIoTClient 28:add19eb7defa 6040 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 6041 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6042 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6043 {
AzureIoTClient 28:add19eb7defa 6044 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6045 }
AzureIoTClient 28:add19eb7defa 6046 else
AzureIoTClient 28:add19eb7defa 6047 {
AzureIoTClient 28:add19eb7defa 6048 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6049 if ((get_single_value_result = amqpvalue_get_uint(item_value, outgoing_window_value)) != 0)
AzureIoTClient 28:add19eb7defa 6050 {
AzureIoTClient 28:add19eb7defa 6051 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6052 }
AzureIoTClient 28:add19eb7defa 6053 else
AzureIoTClient 28:add19eb7defa 6054 {
AzureIoTClient 28:add19eb7defa 6055 result = 0;
AzureIoTClient 28:add19eb7defa 6056 }
AzureIoTClient 28:add19eb7defa 6057 }
AzureIoTClient 28:add19eb7defa 6058 }
AzureIoTClient 28:add19eb7defa 6059 }
AzureIoTClient 28:add19eb7defa 6060 }
AzureIoTClient 28:add19eb7defa 6061
AzureIoTClient 28:add19eb7defa 6062 return result;
Azure.IoT Build 0:6ae2f7bca550 6063 }
Azure.IoT Build 0:6ae2f7bca550 6064
Azure.IoT Build 0:6ae2f7bca550 6065 int flow_set_outgoing_window(FLOW_HANDLE flow, uint32_t outgoing_window_value)
Azure.IoT Build 0:6ae2f7bca550 6066 {
AzureIoTClient 28:add19eb7defa 6067 int result;
AzureIoTClient 28:add19eb7defa 6068
AzureIoTClient 28:add19eb7defa 6069 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6070 {
AzureIoTClient 28:add19eb7defa 6071 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6072 }
AzureIoTClient 28:add19eb7defa 6073 else
AzureIoTClient 28:add19eb7defa 6074 {
AzureIoTClient 28:add19eb7defa 6075 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6076 AMQP_VALUE outgoing_window_amqp_value = amqpvalue_create_uint(outgoing_window_value);
AzureIoTClient 28:add19eb7defa 6077 if (outgoing_window_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6078 {
AzureIoTClient 28:add19eb7defa 6079 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6080 }
AzureIoTClient 28:add19eb7defa 6081 else
AzureIoTClient 28:add19eb7defa 6082 {
AzureIoTClient 28:add19eb7defa 6083 if (amqpvalue_set_composite_item(flow_instance->composite_value, 3, outgoing_window_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6084 {
AzureIoTClient 28:add19eb7defa 6085 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6086 }
AzureIoTClient 28:add19eb7defa 6087 else
AzureIoTClient 28:add19eb7defa 6088 {
AzureIoTClient 28:add19eb7defa 6089 result = 0;
AzureIoTClient 28:add19eb7defa 6090 }
AzureIoTClient 28:add19eb7defa 6091
AzureIoTClient 28:add19eb7defa 6092 amqpvalue_destroy(outgoing_window_amqp_value);
AzureIoTClient 28:add19eb7defa 6093 }
AzureIoTClient 28:add19eb7defa 6094 }
AzureIoTClient 28:add19eb7defa 6095
AzureIoTClient 28:add19eb7defa 6096 return result;
Azure.IoT Build 0:6ae2f7bca550 6097 }
Azure.IoT Build 0:6ae2f7bca550 6098
Azure.IoT Build 0:6ae2f7bca550 6099 int flow_get_handle(FLOW_HANDLE flow, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 6100 {
AzureIoTClient 28:add19eb7defa 6101 int result;
AzureIoTClient 28:add19eb7defa 6102
AzureIoTClient 28:add19eb7defa 6103 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6104 {
AzureIoTClient 28:add19eb7defa 6105 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6106 }
AzureIoTClient 28:add19eb7defa 6107 else
AzureIoTClient 28:add19eb7defa 6108 {
AzureIoTClient 28:add19eb7defa 6109 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6110 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6111 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6112 {
AzureIoTClient 23:1111ee8bcba4 6113 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6114 }
AzureIoTClient 23:1111ee8bcba4 6115 else
AzureIoTClient 23:1111ee8bcba4 6116 {
AzureIoTClient 23:1111ee8bcba4 6117 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 6118 {
AzureIoTClient 28:add19eb7defa 6119 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6120 }
AzureIoTClient 28:add19eb7defa 6121 else
AzureIoTClient 28:add19eb7defa 6122 {
AzureIoTClient 28:add19eb7defa 6123 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 6124 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6125 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6126 {
AzureIoTClient 28:add19eb7defa 6127 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6128 }
AzureIoTClient 28:add19eb7defa 6129 else
AzureIoTClient 28:add19eb7defa 6130 {
AzureIoTClient 28:add19eb7defa 6131 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6132 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_value)) != 0)
AzureIoTClient 28:add19eb7defa 6133 {
AzureIoTClient 28:add19eb7defa 6134 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6135 }
AzureIoTClient 28:add19eb7defa 6136 else
AzureIoTClient 28:add19eb7defa 6137 {
AzureIoTClient 28:add19eb7defa 6138 result = 0;
AzureIoTClient 28:add19eb7defa 6139 }
AzureIoTClient 28:add19eb7defa 6140 }
AzureIoTClient 28:add19eb7defa 6141 }
AzureIoTClient 28:add19eb7defa 6142 }
AzureIoTClient 28:add19eb7defa 6143 }
AzureIoTClient 28:add19eb7defa 6144
AzureIoTClient 28:add19eb7defa 6145 return result;
Azure.IoT Build 0:6ae2f7bca550 6146 }
Azure.IoT Build 0:6ae2f7bca550 6147
Azure.IoT Build 0:6ae2f7bca550 6148 int flow_set_handle(FLOW_HANDLE flow, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 6149 {
AzureIoTClient 28:add19eb7defa 6150 int result;
AzureIoTClient 28:add19eb7defa 6151
AzureIoTClient 28:add19eb7defa 6152 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6153 {
AzureIoTClient 28:add19eb7defa 6154 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6155 }
AzureIoTClient 28:add19eb7defa 6156 else
AzureIoTClient 28:add19eb7defa 6157 {
AzureIoTClient 28:add19eb7defa 6158 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6159 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 6160 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6161 {
AzureIoTClient 28:add19eb7defa 6162 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6163 }
AzureIoTClient 28:add19eb7defa 6164 else
AzureIoTClient 28:add19eb7defa 6165 {
AzureIoTClient 28:add19eb7defa 6166 if (amqpvalue_set_composite_item(flow_instance->composite_value, 4, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6167 {
AzureIoTClient 28:add19eb7defa 6168 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6169 }
AzureIoTClient 28:add19eb7defa 6170 else
AzureIoTClient 28:add19eb7defa 6171 {
AzureIoTClient 28:add19eb7defa 6172 result = 0;
AzureIoTClient 28:add19eb7defa 6173 }
AzureIoTClient 28:add19eb7defa 6174
AzureIoTClient 28:add19eb7defa 6175 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 6176 }
AzureIoTClient 28:add19eb7defa 6177 }
AzureIoTClient 28:add19eb7defa 6178
AzureIoTClient 28:add19eb7defa 6179 return result;
Azure.IoT Build 0:6ae2f7bca550 6180 }
Azure.IoT Build 0:6ae2f7bca550 6181
Azure.IoT Build 0:6ae2f7bca550 6182 int flow_get_delivery_count(FLOW_HANDLE flow, sequence_no* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 6183 {
AzureIoTClient 28:add19eb7defa 6184 int result;
AzureIoTClient 28:add19eb7defa 6185
AzureIoTClient 28:add19eb7defa 6186 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6187 {
AzureIoTClient 28:add19eb7defa 6188 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6189 }
AzureIoTClient 28:add19eb7defa 6190 else
AzureIoTClient 28:add19eb7defa 6191 {
AzureIoTClient 28:add19eb7defa 6192 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6193 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6194 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6195 {
AzureIoTClient 23:1111ee8bcba4 6196 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6197 }
AzureIoTClient 23:1111ee8bcba4 6198 else
AzureIoTClient 23:1111ee8bcba4 6199 {
AzureIoTClient 23:1111ee8bcba4 6200 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 6201 {
AzureIoTClient 28:add19eb7defa 6202 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6203 }
AzureIoTClient 28:add19eb7defa 6204 else
AzureIoTClient 28:add19eb7defa 6205 {
AzureIoTClient 28:add19eb7defa 6206 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 6207 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6208 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6209 {
AzureIoTClient 28:add19eb7defa 6210 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6211 }
AzureIoTClient 28:add19eb7defa 6212 else
AzureIoTClient 28:add19eb7defa 6213 {
AzureIoTClient 28:add19eb7defa 6214 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6215 if ((get_single_value_result = amqpvalue_get_sequence_no(item_value, delivery_count_value)) != 0)
AzureIoTClient 28:add19eb7defa 6216 {
AzureIoTClient 28:add19eb7defa 6217 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6218 }
AzureIoTClient 28:add19eb7defa 6219 else
AzureIoTClient 28:add19eb7defa 6220 {
AzureIoTClient 28:add19eb7defa 6221 result = 0;
AzureIoTClient 28:add19eb7defa 6222 }
AzureIoTClient 28:add19eb7defa 6223 }
AzureIoTClient 28:add19eb7defa 6224 }
AzureIoTClient 28:add19eb7defa 6225 }
AzureIoTClient 28:add19eb7defa 6226 }
AzureIoTClient 28:add19eb7defa 6227
AzureIoTClient 28:add19eb7defa 6228 return result;
Azure.IoT Build 0:6ae2f7bca550 6229 }
Azure.IoT Build 0:6ae2f7bca550 6230
Azure.IoT Build 0:6ae2f7bca550 6231 int flow_set_delivery_count(FLOW_HANDLE flow, sequence_no delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 6232 {
AzureIoTClient 28:add19eb7defa 6233 int result;
AzureIoTClient 28:add19eb7defa 6234
AzureIoTClient 28:add19eb7defa 6235 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6236 {
AzureIoTClient 28:add19eb7defa 6237 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6238 }
AzureIoTClient 28:add19eb7defa 6239 else
AzureIoTClient 28:add19eb7defa 6240 {
AzureIoTClient 28:add19eb7defa 6241 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6242 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_sequence_no(delivery_count_value);
AzureIoTClient 28:add19eb7defa 6243 if (delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6244 {
AzureIoTClient 28:add19eb7defa 6245 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6246 }
AzureIoTClient 28:add19eb7defa 6247 else
AzureIoTClient 28:add19eb7defa 6248 {
AzureIoTClient 28:add19eb7defa 6249 if (amqpvalue_set_composite_item(flow_instance->composite_value, 5, delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6250 {
AzureIoTClient 28:add19eb7defa 6251 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6252 }
AzureIoTClient 28:add19eb7defa 6253 else
AzureIoTClient 28:add19eb7defa 6254 {
AzureIoTClient 28:add19eb7defa 6255 result = 0;
AzureIoTClient 28:add19eb7defa 6256 }
AzureIoTClient 28:add19eb7defa 6257
AzureIoTClient 28:add19eb7defa 6258 amqpvalue_destroy(delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 6259 }
AzureIoTClient 28:add19eb7defa 6260 }
AzureIoTClient 28:add19eb7defa 6261
AzureIoTClient 28:add19eb7defa 6262 return result;
Azure.IoT Build 0:6ae2f7bca550 6263 }
Azure.IoT Build 0:6ae2f7bca550 6264
Azure.IoT Build 0:6ae2f7bca550 6265 int flow_get_link_credit(FLOW_HANDLE flow, uint32_t* link_credit_value)
Azure.IoT Build 0:6ae2f7bca550 6266 {
AzureIoTClient 28:add19eb7defa 6267 int result;
AzureIoTClient 28:add19eb7defa 6268
AzureIoTClient 28:add19eb7defa 6269 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6270 {
AzureIoTClient 28:add19eb7defa 6271 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6272 }
AzureIoTClient 28:add19eb7defa 6273 else
AzureIoTClient 28:add19eb7defa 6274 {
AzureIoTClient 28:add19eb7defa 6275 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6276 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6277 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6278 {
AzureIoTClient 23:1111ee8bcba4 6279 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6280 }
AzureIoTClient 23:1111ee8bcba4 6281 else
AzureIoTClient 23:1111ee8bcba4 6282 {
AzureIoTClient 23:1111ee8bcba4 6283 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 6284 {
AzureIoTClient 28:add19eb7defa 6285 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6286 }
AzureIoTClient 28:add19eb7defa 6287 else
AzureIoTClient 28:add19eb7defa 6288 {
AzureIoTClient 28:add19eb7defa 6289 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 6290 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6291 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6292 {
AzureIoTClient 28:add19eb7defa 6293 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6294 }
AzureIoTClient 28:add19eb7defa 6295 else
AzureIoTClient 28:add19eb7defa 6296 {
AzureIoTClient 28:add19eb7defa 6297 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6298 if ((get_single_value_result = amqpvalue_get_uint(item_value, link_credit_value)) != 0)
AzureIoTClient 28:add19eb7defa 6299 {
AzureIoTClient 28:add19eb7defa 6300 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6301 }
AzureIoTClient 28:add19eb7defa 6302 else
AzureIoTClient 28:add19eb7defa 6303 {
AzureIoTClient 28:add19eb7defa 6304 result = 0;
AzureIoTClient 28:add19eb7defa 6305 }
AzureIoTClient 28:add19eb7defa 6306 }
AzureIoTClient 28:add19eb7defa 6307 }
AzureIoTClient 28:add19eb7defa 6308 }
AzureIoTClient 28:add19eb7defa 6309 }
AzureIoTClient 28:add19eb7defa 6310
AzureIoTClient 28:add19eb7defa 6311 return result;
Azure.IoT Build 0:6ae2f7bca550 6312 }
Azure.IoT Build 0:6ae2f7bca550 6313
Azure.IoT Build 0:6ae2f7bca550 6314 int flow_set_link_credit(FLOW_HANDLE flow, uint32_t link_credit_value)
Azure.IoT Build 0:6ae2f7bca550 6315 {
AzureIoTClient 28:add19eb7defa 6316 int result;
AzureIoTClient 28:add19eb7defa 6317
AzureIoTClient 28:add19eb7defa 6318 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6319 {
AzureIoTClient 28:add19eb7defa 6320 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6321 }
AzureIoTClient 28:add19eb7defa 6322 else
AzureIoTClient 28:add19eb7defa 6323 {
AzureIoTClient 28:add19eb7defa 6324 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6325 AMQP_VALUE link_credit_amqp_value = amqpvalue_create_uint(link_credit_value);
AzureIoTClient 28:add19eb7defa 6326 if (link_credit_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6327 {
AzureIoTClient 28:add19eb7defa 6328 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6329 }
AzureIoTClient 28:add19eb7defa 6330 else
AzureIoTClient 28:add19eb7defa 6331 {
AzureIoTClient 28:add19eb7defa 6332 if (amqpvalue_set_composite_item(flow_instance->composite_value, 6, link_credit_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6333 {
AzureIoTClient 28:add19eb7defa 6334 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6335 }
AzureIoTClient 28:add19eb7defa 6336 else
AzureIoTClient 28:add19eb7defa 6337 {
AzureIoTClient 28:add19eb7defa 6338 result = 0;
AzureIoTClient 28:add19eb7defa 6339 }
AzureIoTClient 28:add19eb7defa 6340
AzureIoTClient 28:add19eb7defa 6341 amqpvalue_destroy(link_credit_amqp_value);
AzureIoTClient 28:add19eb7defa 6342 }
AzureIoTClient 28:add19eb7defa 6343 }
AzureIoTClient 28:add19eb7defa 6344
AzureIoTClient 28:add19eb7defa 6345 return result;
Azure.IoT Build 0:6ae2f7bca550 6346 }
Azure.IoT Build 0:6ae2f7bca550 6347
Azure.IoT Build 0:6ae2f7bca550 6348 int flow_get_available(FLOW_HANDLE flow, uint32_t* available_value)
Azure.IoT Build 0:6ae2f7bca550 6349 {
AzureIoTClient 28:add19eb7defa 6350 int result;
AzureIoTClient 28:add19eb7defa 6351
AzureIoTClient 28:add19eb7defa 6352 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6353 {
AzureIoTClient 28:add19eb7defa 6354 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6355 }
AzureIoTClient 28:add19eb7defa 6356 else
AzureIoTClient 28:add19eb7defa 6357 {
AzureIoTClient 28:add19eb7defa 6358 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6359 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6360 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6361 {
AzureIoTClient 23:1111ee8bcba4 6362 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6363 }
AzureIoTClient 23:1111ee8bcba4 6364 else
AzureIoTClient 23:1111ee8bcba4 6365 {
AzureIoTClient 23:1111ee8bcba4 6366 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 6367 {
AzureIoTClient 28:add19eb7defa 6368 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6369 }
AzureIoTClient 28:add19eb7defa 6370 else
AzureIoTClient 28:add19eb7defa 6371 {
AzureIoTClient 28:add19eb7defa 6372 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 6373 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6374 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6375 {
AzureIoTClient 28:add19eb7defa 6376 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6377 }
AzureIoTClient 28:add19eb7defa 6378 else
AzureIoTClient 28:add19eb7defa 6379 {
AzureIoTClient 28:add19eb7defa 6380 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6381 if ((get_single_value_result = amqpvalue_get_uint(item_value, available_value)) != 0)
AzureIoTClient 28:add19eb7defa 6382 {
AzureIoTClient 28:add19eb7defa 6383 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6384 }
AzureIoTClient 28:add19eb7defa 6385 else
AzureIoTClient 28:add19eb7defa 6386 {
AzureIoTClient 28:add19eb7defa 6387 result = 0;
AzureIoTClient 28:add19eb7defa 6388 }
AzureIoTClient 28:add19eb7defa 6389 }
AzureIoTClient 28:add19eb7defa 6390 }
AzureIoTClient 28:add19eb7defa 6391 }
AzureIoTClient 28:add19eb7defa 6392 }
AzureIoTClient 28:add19eb7defa 6393
AzureIoTClient 28:add19eb7defa 6394 return result;
Azure.IoT Build 0:6ae2f7bca550 6395 }
Azure.IoT Build 0:6ae2f7bca550 6396
Azure.IoT Build 0:6ae2f7bca550 6397 int flow_set_available(FLOW_HANDLE flow, uint32_t available_value)
Azure.IoT Build 0:6ae2f7bca550 6398 {
AzureIoTClient 28:add19eb7defa 6399 int result;
AzureIoTClient 28:add19eb7defa 6400
AzureIoTClient 28:add19eb7defa 6401 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6402 {
AzureIoTClient 28:add19eb7defa 6403 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6404 }
AzureIoTClient 28:add19eb7defa 6405 else
AzureIoTClient 28:add19eb7defa 6406 {
AzureIoTClient 28:add19eb7defa 6407 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6408 AMQP_VALUE available_amqp_value = amqpvalue_create_uint(available_value);
AzureIoTClient 28:add19eb7defa 6409 if (available_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6410 {
AzureIoTClient 28:add19eb7defa 6411 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6412 }
AzureIoTClient 28:add19eb7defa 6413 else
AzureIoTClient 28:add19eb7defa 6414 {
AzureIoTClient 28:add19eb7defa 6415 if (amqpvalue_set_composite_item(flow_instance->composite_value, 7, available_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6416 {
AzureIoTClient 28:add19eb7defa 6417 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6418 }
AzureIoTClient 28:add19eb7defa 6419 else
AzureIoTClient 28:add19eb7defa 6420 {
AzureIoTClient 28:add19eb7defa 6421 result = 0;
AzureIoTClient 28:add19eb7defa 6422 }
AzureIoTClient 28:add19eb7defa 6423
AzureIoTClient 28:add19eb7defa 6424 amqpvalue_destroy(available_amqp_value);
AzureIoTClient 28:add19eb7defa 6425 }
AzureIoTClient 28:add19eb7defa 6426 }
AzureIoTClient 28:add19eb7defa 6427
AzureIoTClient 28:add19eb7defa 6428 return result;
Azure.IoT Build 0:6ae2f7bca550 6429 }
Azure.IoT Build 0:6ae2f7bca550 6430
Azure.IoT Build 0:6ae2f7bca550 6431 int flow_get_drain(FLOW_HANDLE flow, bool* drain_value)
Azure.IoT Build 0:6ae2f7bca550 6432 {
AzureIoTClient 28:add19eb7defa 6433 int result;
AzureIoTClient 28:add19eb7defa 6434
AzureIoTClient 28:add19eb7defa 6435 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6436 {
AzureIoTClient 28:add19eb7defa 6437 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6438 }
AzureIoTClient 28:add19eb7defa 6439 else
AzureIoTClient 28:add19eb7defa 6440 {
AzureIoTClient 28:add19eb7defa 6441 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6442 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6443 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6444 {
AzureIoTClient 23:1111ee8bcba4 6445 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6446 }
AzureIoTClient 23:1111ee8bcba4 6447 else
AzureIoTClient 23:1111ee8bcba4 6448 {
AzureIoTClient 23:1111ee8bcba4 6449 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 6450 {
AzureIoTClient 28:add19eb7defa 6451 *drain_value = false;
AzureIoTClient 28:add19eb7defa 6452 result = 0;
AzureIoTClient 28:add19eb7defa 6453 }
AzureIoTClient 28:add19eb7defa 6454 else
AzureIoTClient 28:add19eb7defa 6455 {
AzureIoTClient 28:add19eb7defa 6456 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 6457 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6458 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6459 {
AzureIoTClient 28:add19eb7defa 6460 *drain_value = false;
AzureIoTClient 28:add19eb7defa 6461 result = 0;
AzureIoTClient 28:add19eb7defa 6462 }
AzureIoTClient 28:add19eb7defa 6463 else
AzureIoTClient 28:add19eb7defa 6464 {
AzureIoTClient 28:add19eb7defa 6465 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6466 if ((get_single_value_result = amqpvalue_get_boolean(item_value, drain_value)) != 0)
AzureIoTClient 28:add19eb7defa 6467 {
AzureIoTClient 23:1111ee8bcba4 6468 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 6469 {
AzureIoTClient 28:add19eb7defa 6470 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6471 }
AzureIoTClient 28:add19eb7defa 6472 else
AzureIoTClient 28:add19eb7defa 6473 {
AzureIoTClient 28:add19eb7defa 6474 *drain_value = false;
AzureIoTClient 23:1111ee8bcba4 6475 result = 0;
AzureIoTClient 23:1111ee8bcba4 6476 }
AzureIoTClient 28:add19eb7defa 6477 }
AzureIoTClient 28:add19eb7defa 6478 else
AzureIoTClient 28:add19eb7defa 6479 {
AzureIoTClient 28:add19eb7defa 6480 result = 0;
AzureIoTClient 28:add19eb7defa 6481 }
AzureIoTClient 28:add19eb7defa 6482 }
AzureIoTClient 28:add19eb7defa 6483 }
AzureIoTClient 28:add19eb7defa 6484 }
AzureIoTClient 28:add19eb7defa 6485 }
AzureIoTClient 28:add19eb7defa 6486
AzureIoTClient 28:add19eb7defa 6487 return result;
Azure.IoT Build 0:6ae2f7bca550 6488 }
Azure.IoT Build 0:6ae2f7bca550 6489
Azure.IoT Build 0:6ae2f7bca550 6490 int flow_set_drain(FLOW_HANDLE flow, bool drain_value)
Azure.IoT Build 0:6ae2f7bca550 6491 {
AzureIoTClient 28:add19eb7defa 6492 int result;
AzureIoTClient 28:add19eb7defa 6493
AzureIoTClient 28:add19eb7defa 6494 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6495 {
AzureIoTClient 28:add19eb7defa 6496 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6497 }
AzureIoTClient 28:add19eb7defa 6498 else
AzureIoTClient 28:add19eb7defa 6499 {
AzureIoTClient 28:add19eb7defa 6500 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6501 AMQP_VALUE drain_amqp_value = amqpvalue_create_boolean(drain_value);
AzureIoTClient 28:add19eb7defa 6502 if (drain_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6503 {
AzureIoTClient 28:add19eb7defa 6504 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6505 }
AzureIoTClient 28:add19eb7defa 6506 else
AzureIoTClient 28:add19eb7defa 6507 {
AzureIoTClient 28:add19eb7defa 6508 if (amqpvalue_set_composite_item(flow_instance->composite_value, 8, drain_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6509 {
AzureIoTClient 28:add19eb7defa 6510 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6511 }
AzureIoTClient 28:add19eb7defa 6512 else
AzureIoTClient 28:add19eb7defa 6513 {
AzureIoTClient 28:add19eb7defa 6514 result = 0;
AzureIoTClient 28:add19eb7defa 6515 }
AzureIoTClient 28:add19eb7defa 6516
AzureIoTClient 28:add19eb7defa 6517 amqpvalue_destroy(drain_amqp_value);
AzureIoTClient 28:add19eb7defa 6518 }
AzureIoTClient 28:add19eb7defa 6519 }
AzureIoTClient 28:add19eb7defa 6520
AzureIoTClient 28:add19eb7defa 6521 return result;
Azure.IoT Build 0:6ae2f7bca550 6522 }
Azure.IoT Build 0:6ae2f7bca550 6523
Azure.IoT Build 0:6ae2f7bca550 6524 int flow_get_echo(FLOW_HANDLE flow, bool* echo_value)
Azure.IoT Build 0:6ae2f7bca550 6525 {
AzureIoTClient 28:add19eb7defa 6526 int result;
AzureIoTClient 28:add19eb7defa 6527
AzureIoTClient 28:add19eb7defa 6528 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6529 {
AzureIoTClient 28:add19eb7defa 6530 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6531 }
AzureIoTClient 28:add19eb7defa 6532 else
AzureIoTClient 28:add19eb7defa 6533 {
AzureIoTClient 28:add19eb7defa 6534 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6535 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6536 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6537 {
AzureIoTClient 23:1111ee8bcba4 6538 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6539 }
AzureIoTClient 23:1111ee8bcba4 6540 else
AzureIoTClient 23:1111ee8bcba4 6541 {
AzureIoTClient 23:1111ee8bcba4 6542 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 6543 {
AzureIoTClient 28:add19eb7defa 6544 *echo_value = false;
AzureIoTClient 28:add19eb7defa 6545 result = 0;
AzureIoTClient 28:add19eb7defa 6546 }
AzureIoTClient 28:add19eb7defa 6547 else
AzureIoTClient 28:add19eb7defa 6548 {
AzureIoTClient 28:add19eb7defa 6549 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 6550 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6551 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6552 {
AzureIoTClient 28:add19eb7defa 6553 *echo_value = false;
AzureIoTClient 28:add19eb7defa 6554 result = 0;
AzureIoTClient 28:add19eb7defa 6555 }
AzureIoTClient 28:add19eb7defa 6556 else
AzureIoTClient 28:add19eb7defa 6557 {
AzureIoTClient 28:add19eb7defa 6558 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6559 if ((get_single_value_result = amqpvalue_get_boolean(item_value, echo_value)) != 0)
AzureIoTClient 28:add19eb7defa 6560 {
AzureIoTClient 23:1111ee8bcba4 6561 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 6562 {
AzureIoTClient 28:add19eb7defa 6563 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6564 }
AzureIoTClient 28:add19eb7defa 6565 else
AzureIoTClient 28:add19eb7defa 6566 {
AzureIoTClient 28:add19eb7defa 6567 *echo_value = false;
AzureIoTClient 23:1111ee8bcba4 6568 result = 0;
AzureIoTClient 23:1111ee8bcba4 6569 }
AzureIoTClient 28:add19eb7defa 6570 }
AzureIoTClient 28:add19eb7defa 6571 else
AzureIoTClient 28:add19eb7defa 6572 {
AzureIoTClient 28:add19eb7defa 6573 result = 0;
AzureIoTClient 28:add19eb7defa 6574 }
AzureIoTClient 28:add19eb7defa 6575 }
AzureIoTClient 28:add19eb7defa 6576 }
AzureIoTClient 28:add19eb7defa 6577 }
AzureIoTClient 28:add19eb7defa 6578 }
AzureIoTClient 28:add19eb7defa 6579
AzureIoTClient 28:add19eb7defa 6580 return result;
Azure.IoT Build 0:6ae2f7bca550 6581 }
Azure.IoT Build 0:6ae2f7bca550 6582
Azure.IoT Build 0:6ae2f7bca550 6583 int flow_set_echo(FLOW_HANDLE flow, bool echo_value)
Azure.IoT Build 0:6ae2f7bca550 6584 {
AzureIoTClient 28:add19eb7defa 6585 int result;
AzureIoTClient 28:add19eb7defa 6586
AzureIoTClient 28:add19eb7defa 6587 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6588 {
AzureIoTClient 28:add19eb7defa 6589 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6590 }
AzureIoTClient 28:add19eb7defa 6591 else
AzureIoTClient 28:add19eb7defa 6592 {
AzureIoTClient 28:add19eb7defa 6593 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6594 AMQP_VALUE echo_amqp_value = amqpvalue_create_boolean(echo_value);
AzureIoTClient 28:add19eb7defa 6595 if (echo_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6596 {
AzureIoTClient 28:add19eb7defa 6597 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6598 }
AzureIoTClient 28:add19eb7defa 6599 else
AzureIoTClient 28:add19eb7defa 6600 {
AzureIoTClient 28:add19eb7defa 6601 if (amqpvalue_set_composite_item(flow_instance->composite_value, 9, echo_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6602 {
AzureIoTClient 28:add19eb7defa 6603 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6604 }
AzureIoTClient 28:add19eb7defa 6605 else
AzureIoTClient 28:add19eb7defa 6606 {
AzureIoTClient 28:add19eb7defa 6607 result = 0;
AzureIoTClient 28:add19eb7defa 6608 }
AzureIoTClient 28:add19eb7defa 6609
AzureIoTClient 28:add19eb7defa 6610 amqpvalue_destroy(echo_amqp_value);
AzureIoTClient 28:add19eb7defa 6611 }
AzureIoTClient 28:add19eb7defa 6612 }
AzureIoTClient 28:add19eb7defa 6613
AzureIoTClient 28:add19eb7defa 6614 return result;
Azure.IoT Build 0:6ae2f7bca550 6615 }
Azure.IoT Build 0:6ae2f7bca550 6616
Azure.IoT Build 0:6ae2f7bca550 6617 int flow_get_properties(FLOW_HANDLE flow, fields* properties_value)
Azure.IoT Build 0:6ae2f7bca550 6618 {
AzureIoTClient 28:add19eb7defa 6619 int result;
AzureIoTClient 28:add19eb7defa 6620
AzureIoTClient 28:add19eb7defa 6621 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6622 {
AzureIoTClient 28:add19eb7defa 6623 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6624 }
AzureIoTClient 28:add19eb7defa 6625 else
AzureIoTClient 28:add19eb7defa 6626 {
AzureIoTClient 28:add19eb7defa 6627 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 6628 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 23:1111ee8bcba4 6629 if (amqpvalue_get_composite_item_count(flow_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6630 {
AzureIoTClient 23:1111ee8bcba4 6631 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6632 }
AzureIoTClient 23:1111ee8bcba4 6633 else
AzureIoTClient 23:1111ee8bcba4 6634 {
AzureIoTClient 23:1111ee8bcba4 6635 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 6636 {
AzureIoTClient 28:add19eb7defa 6637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6638 }
AzureIoTClient 28:add19eb7defa 6639 else
AzureIoTClient 28:add19eb7defa 6640 {
AzureIoTClient 28:add19eb7defa 6641 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 6642 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 6643 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 6644 {
AzureIoTClient 28:add19eb7defa 6645 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6646 }
AzureIoTClient 28:add19eb7defa 6647 else
AzureIoTClient 28:add19eb7defa 6648 {
AzureIoTClient 28:add19eb7defa 6649 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 6650 if ((get_single_value_result = amqpvalue_get_fields(item_value, properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 6651 {
AzureIoTClient 28:add19eb7defa 6652 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6653 }
AzureIoTClient 28:add19eb7defa 6654 else
AzureIoTClient 28:add19eb7defa 6655 {
AzureIoTClient 28:add19eb7defa 6656 result = 0;
AzureIoTClient 28:add19eb7defa 6657 }
AzureIoTClient 28:add19eb7defa 6658 }
AzureIoTClient 28:add19eb7defa 6659 }
AzureIoTClient 28:add19eb7defa 6660 }
AzureIoTClient 28:add19eb7defa 6661 }
AzureIoTClient 28:add19eb7defa 6662
AzureIoTClient 28:add19eb7defa 6663 return result;
Azure.IoT Build 0:6ae2f7bca550 6664 }
Azure.IoT Build 0:6ae2f7bca550 6665
Azure.IoT Build 0:6ae2f7bca550 6666 int flow_set_properties(FLOW_HANDLE flow, fields properties_value)
Azure.IoT Build 0:6ae2f7bca550 6667 {
AzureIoTClient 28:add19eb7defa 6668 int result;
AzureIoTClient 28:add19eb7defa 6669
AzureIoTClient 28:add19eb7defa 6670 if (flow == NULL)
AzureIoTClient 28:add19eb7defa 6671 {
AzureIoTClient 28:add19eb7defa 6672 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6673 }
AzureIoTClient 28:add19eb7defa 6674 else
AzureIoTClient 28:add19eb7defa 6675 {
AzureIoTClient 28:add19eb7defa 6676 FLOW_INSTANCE* flow_instance = (FLOW_INSTANCE*)flow;
AzureIoTClient 28:add19eb7defa 6677 AMQP_VALUE properties_amqp_value = amqpvalue_create_fields(properties_value);
AzureIoTClient 28:add19eb7defa 6678 if (properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 6679 {
AzureIoTClient 28:add19eb7defa 6680 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6681 }
AzureIoTClient 28:add19eb7defa 6682 else
AzureIoTClient 28:add19eb7defa 6683 {
AzureIoTClient 28:add19eb7defa 6684 if (amqpvalue_set_composite_item(flow_instance->composite_value, 10, properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 6685 {
AzureIoTClient 28:add19eb7defa 6686 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6687 }
AzureIoTClient 28:add19eb7defa 6688 else
AzureIoTClient 28:add19eb7defa 6689 {
AzureIoTClient 28:add19eb7defa 6690 result = 0;
AzureIoTClient 28:add19eb7defa 6691 }
AzureIoTClient 28:add19eb7defa 6692
AzureIoTClient 28:add19eb7defa 6693 amqpvalue_destroy(properties_amqp_value);
AzureIoTClient 28:add19eb7defa 6694 }
AzureIoTClient 28:add19eb7defa 6695 }
AzureIoTClient 28:add19eb7defa 6696
AzureIoTClient 28:add19eb7defa 6697 return result;
Azure.IoT Build 0:6ae2f7bca550 6698 }
Azure.IoT Build 0:6ae2f7bca550 6699
Azure.IoT Build 0:6ae2f7bca550 6700
Azure.IoT Build 0:6ae2f7bca550 6701 /* transfer */
Azure.IoT Build 0:6ae2f7bca550 6702
Azure.IoT Build 0:6ae2f7bca550 6703 typedef struct TRANSFER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 6704 {
AzureIoTClient 28:add19eb7defa 6705 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 6706 } TRANSFER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 6707
Azure.IoT Build 0:6ae2f7bca550 6708 static TRANSFER_HANDLE transfer_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 6709 {
AzureIoTClient 28:add19eb7defa 6710 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6711 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6712 {
AzureIoTClient 28:add19eb7defa 6713 transfer_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 6714 }
AzureIoTClient 28:add19eb7defa 6715
AzureIoTClient 28:add19eb7defa 6716 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6717 }
Azure.IoT Build 0:6ae2f7bca550 6718
Azure.IoT Build 0:6ae2f7bca550 6719 TRANSFER_HANDLE transfer_create(handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 6720 {
AzureIoTClient 28:add19eb7defa 6721 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6722 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6723 {
AzureIoTClient 28:add19eb7defa 6724 transfer_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(20);
AzureIoTClient 28:add19eb7defa 6725 if (transfer_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 6726 {
AzureIoTClient 28:add19eb7defa 6727 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6728 transfer_instance = NULL;
AzureIoTClient 28:add19eb7defa 6729 }
AzureIoTClient 28:add19eb7defa 6730 else
AzureIoTClient 28:add19eb7defa 6731 {
AzureIoTClient 28:add19eb7defa 6732 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 6733 int result = 0;
AzureIoTClient 28:add19eb7defa 6734
AzureIoTClient 28:add19eb7defa 6735 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 6736 if ((result == 0) && (amqpvalue_set_composite_item(transfer_instance->composite_value, 0, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 6737 {
AzureIoTClient 28:add19eb7defa 6738 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6739 }
AzureIoTClient 28:add19eb7defa 6740
AzureIoTClient 28:add19eb7defa 6741 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 6742 }
AzureIoTClient 28:add19eb7defa 6743 }
AzureIoTClient 28:add19eb7defa 6744
AzureIoTClient 28:add19eb7defa 6745 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6746 }
Azure.IoT Build 0:6ae2f7bca550 6747
Azure.IoT Build 0:6ae2f7bca550 6748 TRANSFER_HANDLE transfer_clone(TRANSFER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 6749 {
AzureIoTClient 28:add19eb7defa 6750 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)malloc(sizeof(TRANSFER_INSTANCE));
AzureIoTClient 28:add19eb7defa 6751 if (transfer_instance != NULL)
AzureIoTClient 28:add19eb7defa 6752 {
AzureIoTClient 28:add19eb7defa 6753 transfer_instance->composite_value = amqpvalue_clone(((TRANSFER_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 6754 if (transfer_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 6755 {
AzureIoTClient 28:add19eb7defa 6756 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6757 transfer_instance = NULL;
AzureIoTClient 28:add19eb7defa 6758 }
AzureIoTClient 28:add19eb7defa 6759 }
AzureIoTClient 28:add19eb7defa 6760
AzureIoTClient 28:add19eb7defa 6761 return transfer_instance;
Azure.IoT Build 0:6ae2f7bca550 6762 }
Azure.IoT Build 0:6ae2f7bca550 6763
Azure.IoT Build 0:6ae2f7bca550 6764 void transfer_destroy(TRANSFER_HANDLE transfer)
Azure.IoT Build 0:6ae2f7bca550 6765 {
AzureIoTClient 28:add19eb7defa 6766 if (transfer != NULL)
AzureIoTClient 28:add19eb7defa 6767 {
AzureIoTClient 28:add19eb7defa 6768 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 6769 amqpvalue_destroy(transfer_instance->composite_value);
AzureIoTClient 28:add19eb7defa 6770 free(transfer_instance);
AzureIoTClient 28:add19eb7defa 6771 }
Azure.IoT Build 0:6ae2f7bca550 6772 }
Azure.IoT Build 0:6ae2f7bca550 6773
Azure.IoT Build 0:6ae2f7bca550 6774 AMQP_VALUE amqpvalue_create_transfer(TRANSFER_HANDLE transfer)
Azure.IoT Build 0:6ae2f7bca550 6775 {
AzureIoTClient 28:add19eb7defa 6776 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 6777
AzureIoTClient 28:add19eb7defa 6778 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 6779 {
AzureIoTClient 28:add19eb7defa 6780 result = NULL;
AzureIoTClient 28:add19eb7defa 6781 }
AzureIoTClient 28:add19eb7defa 6782 else
AzureIoTClient 28:add19eb7defa 6783 {
AzureIoTClient 28:add19eb7defa 6784 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 6785 result = amqpvalue_clone(transfer_instance->composite_value);
AzureIoTClient 28:add19eb7defa 6786 }
AzureIoTClient 28:add19eb7defa 6787
AzureIoTClient 28:add19eb7defa 6788 return result;
Azure.IoT Build 0:6ae2f7bca550 6789 }
Azure.IoT Build 0:6ae2f7bca550 6790
Azure.IoT Build 0:6ae2f7bca550 6791 bool is_transfer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 6792 {
AzureIoTClient 28:add19eb7defa 6793 bool result;
AzureIoTClient 28:add19eb7defa 6794
AzureIoTClient 28:add19eb7defa 6795 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 6796 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 6797 (descriptor_ulong == 20))
AzureIoTClient 28:add19eb7defa 6798 {
AzureIoTClient 28:add19eb7defa 6799 result = true;
AzureIoTClient 28:add19eb7defa 6800 }
AzureIoTClient 28:add19eb7defa 6801 else
AzureIoTClient 28:add19eb7defa 6802 {
AzureIoTClient 28:add19eb7defa 6803 result = false;
AzureIoTClient 28:add19eb7defa 6804 }
AzureIoTClient 28:add19eb7defa 6805
AzureIoTClient 28:add19eb7defa 6806 return result;
Azure.IoT Build 0:6ae2f7bca550 6807 }
Azure.IoT Build 0:6ae2f7bca550 6808
Azure.IoT Build 0:6ae2f7bca550 6809
Azure.IoT Build 0:6ae2f7bca550 6810 int amqpvalue_get_transfer(AMQP_VALUE value, TRANSFER_HANDLE* transfer_handle)
Azure.IoT Build 0:6ae2f7bca550 6811 {
AzureIoTClient 28:add19eb7defa 6812 int result;
AzureIoTClient 28:add19eb7defa 6813 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer_create_internal();
AzureIoTClient 28:add19eb7defa 6814 *transfer_handle = transfer_instance;
AzureIoTClient 28:add19eb7defa 6815 if (*transfer_handle == NULL)
AzureIoTClient 28:add19eb7defa 6816 {
AzureIoTClient 28:add19eb7defa 6817 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6818 }
AzureIoTClient 28:add19eb7defa 6819 else
AzureIoTClient 28:add19eb7defa 6820 {
AzureIoTClient 28:add19eb7defa 6821 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 6822 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 6823 {
AzureIoTClient 28:add19eb7defa 6824 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6825 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6826 }
AzureIoTClient 28:add19eb7defa 6827 else
AzureIoTClient 28:add19eb7defa 6828 {
AzureIoTClient 23:1111ee8bcba4 6829 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 6830 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 6831 {
AzureIoTClient 23:1111ee8bcba4 6832 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 6833 }
AzureIoTClient 23:1111ee8bcba4 6834 else
AzureIoTClient 23:1111ee8bcba4 6835 {
AzureIoTClient 28:add19eb7defa 6836 do
AzureIoTClient 28:add19eb7defa 6837 {
AzureIoTClient 28:add19eb7defa 6838 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 6839 /* handle */
AzureIoTClient 28:add19eb7defa 6840 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 6841 {
AzureIoTClient 23:1111ee8bcba4 6842 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 6843 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6844 {
AzureIoTClient 28:add19eb7defa 6845 {
AzureIoTClient 28:add19eb7defa 6846 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6847 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6848 break;
AzureIoTClient 28:add19eb7defa 6849 }
AzureIoTClient 28:add19eb7defa 6850 }
AzureIoTClient 28:add19eb7defa 6851 else
AzureIoTClient 28:add19eb7defa 6852 {
AzureIoTClient 28:add19eb7defa 6853 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6854 {
AzureIoTClient 28:add19eb7defa 6855 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6856 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6857 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6858 break;
AzureIoTClient 28:add19eb7defa 6859 }
AzureIoTClient 28:add19eb7defa 6860 else
AzureIoTClient 28:add19eb7defa 6861 {
AzureIoTClient 28:add19eb7defa 6862 handle handle;
AzureIoTClient 28:add19eb7defa 6863 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 6864 {
AzureIoTClient 28:add19eb7defa 6865 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6866 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6867 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6868 break;
AzureIoTClient 28:add19eb7defa 6869 }
AzureIoTClient 28:add19eb7defa 6870 }
AzureIoTClient 28:add19eb7defa 6871
AzureIoTClient 28:add19eb7defa 6872 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6873 }
AzureIoTClient 28:add19eb7defa 6874 }
AzureIoTClient 28:add19eb7defa 6875 else
AzureIoTClient 28:add19eb7defa 6876 {
AzureIoTClient 28:add19eb7defa 6877 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6878 }
AzureIoTClient 28:add19eb7defa 6879 /* delivery-id */
AzureIoTClient 28:add19eb7defa 6880 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 6881 {
AzureIoTClient 23:1111ee8bcba4 6882 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 6883 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6884 {
AzureIoTClient 28:add19eb7defa 6885 /* do nothing */
AzureIoTClient 28:add19eb7defa 6886 }
AzureIoTClient 28:add19eb7defa 6887 else
AzureIoTClient 28:add19eb7defa 6888 {
AzureIoTClient 28:add19eb7defa 6889 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6890 {
AzureIoTClient 28:add19eb7defa 6891 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 6892 }
AzureIoTClient 28:add19eb7defa 6893 else
AzureIoTClient 28:add19eb7defa 6894 {
AzureIoTClient 28:add19eb7defa 6895 delivery_number delivery_id;
AzureIoTClient 28:add19eb7defa 6896 if (amqpvalue_get_delivery_number(item_value, &delivery_id) != 0)
AzureIoTClient 28:add19eb7defa 6897 {
AzureIoTClient 28:add19eb7defa 6898 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6899 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6900 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6901 break;
AzureIoTClient 28:add19eb7defa 6902 }
AzureIoTClient 28:add19eb7defa 6903 }
AzureIoTClient 28:add19eb7defa 6904
AzureIoTClient 28:add19eb7defa 6905 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6906 }
AzureIoTClient 28:add19eb7defa 6907 }
AzureIoTClient 28:add19eb7defa 6908 /* delivery-tag */
AzureIoTClient 28:add19eb7defa 6909 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 6910 {
AzureIoTClient 23:1111ee8bcba4 6911 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 6912 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6913 {
AzureIoTClient 28:add19eb7defa 6914 /* do nothing */
AzureIoTClient 28:add19eb7defa 6915 }
AzureIoTClient 28:add19eb7defa 6916 else
AzureIoTClient 28:add19eb7defa 6917 {
AzureIoTClient 28:add19eb7defa 6918 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6919 {
AzureIoTClient 28:add19eb7defa 6920 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 6921 }
AzureIoTClient 28:add19eb7defa 6922 else
AzureIoTClient 28:add19eb7defa 6923 {
AzureIoTClient 28:add19eb7defa 6924 delivery_tag delivery_tag;
AzureIoTClient 28:add19eb7defa 6925 if (amqpvalue_get_delivery_tag(item_value, &delivery_tag) != 0)
AzureIoTClient 28:add19eb7defa 6926 {
AzureIoTClient 28:add19eb7defa 6927 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6928 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6929 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6930 break;
AzureIoTClient 28:add19eb7defa 6931 }
AzureIoTClient 28:add19eb7defa 6932 }
AzureIoTClient 28:add19eb7defa 6933
AzureIoTClient 28:add19eb7defa 6934 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6935 }
AzureIoTClient 28:add19eb7defa 6936 }
AzureIoTClient 28:add19eb7defa 6937 /* message-format */
AzureIoTClient 28:add19eb7defa 6938 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 6939 {
AzureIoTClient 23:1111ee8bcba4 6940 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 6941 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6942 {
AzureIoTClient 28:add19eb7defa 6943 /* do nothing */
AzureIoTClient 28:add19eb7defa 6944 }
AzureIoTClient 28:add19eb7defa 6945 else
AzureIoTClient 28:add19eb7defa 6946 {
AzureIoTClient 28:add19eb7defa 6947 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6948 {
AzureIoTClient 28:add19eb7defa 6949 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 6950 }
AzureIoTClient 28:add19eb7defa 6951 else
AzureIoTClient 28:add19eb7defa 6952 {
AzureIoTClient 28:add19eb7defa 6953 message_format message_format;
AzureIoTClient 28:add19eb7defa 6954 if (amqpvalue_get_message_format(item_value, &message_format) != 0)
AzureIoTClient 28:add19eb7defa 6955 {
AzureIoTClient 28:add19eb7defa 6956 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6957 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6958 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6959 break;
AzureIoTClient 28:add19eb7defa 6960 }
AzureIoTClient 28:add19eb7defa 6961 }
AzureIoTClient 28:add19eb7defa 6962
AzureIoTClient 28:add19eb7defa 6963 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6964 }
AzureIoTClient 28:add19eb7defa 6965 }
AzureIoTClient 28:add19eb7defa 6966 /* settled */
AzureIoTClient 28:add19eb7defa 6967 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 6968 {
AzureIoTClient 23:1111ee8bcba4 6969 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 6970 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 6971 {
AzureIoTClient 28:add19eb7defa 6972 /* do nothing */
AzureIoTClient 28:add19eb7defa 6973 }
AzureIoTClient 28:add19eb7defa 6974 else
AzureIoTClient 28:add19eb7defa 6975 {
AzureIoTClient 28:add19eb7defa 6976 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 6977 {
AzureIoTClient 28:add19eb7defa 6978 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 6979 }
AzureIoTClient 28:add19eb7defa 6980 else
AzureIoTClient 28:add19eb7defa 6981 {
AzureIoTClient 28:add19eb7defa 6982 bool settled;
AzureIoTClient 28:add19eb7defa 6983 if (amqpvalue_get_boolean(item_value, &settled) != 0)
AzureIoTClient 28:add19eb7defa 6984 {
AzureIoTClient 28:add19eb7defa 6985 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6986 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 6987 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 6988 break;
AzureIoTClient 28:add19eb7defa 6989 }
AzureIoTClient 28:add19eb7defa 6990 }
AzureIoTClient 28:add19eb7defa 6991
AzureIoTClient 28:add19eb7defa 6992 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 6993 }
AzureIoTClient 28:add19eb7defa 6994 }
AzureIoTClient 28:add19eb7defa 6995 /* more */
AzureIoTClient 28:add19eb7defa 6996 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 6997 {
AzureIoTClient 23:1111ee8bcba4 6998 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 6999 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7000 {
AzureIoTClient 28:add19eb7defa 7001 /* do nothing */
AzureIoTClient 28:add19eb7defa 7002 }
AzureIoTClient 28:add19eb7defa 7003 else
AzureIoTClient 28:add19eb7defa 7004 {
AzureIoTClient 28:add19eb7defa 7005 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7006 {
AzureIoTClient 28:add19eb7defa 7007 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7008 }
AzureIoTClient 28:add19eb7defa 7009 else
AzureIoTClient 28:add19eb7defa 7010 {
AzureIoTClient 28:add19eb7defa 7011 bool more;
AzureIoTClient 28:add19eb7defa 7012 if (amqpvalue_get_boolean(item_value, &more) != 0)
AzureIoTClient 28:add19eb7defa 7013 {
AzureIoTClient 28:add19eb7defa 7014 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7015 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7016 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7017 break;
AzureIoTClient 28:add19eb7defa 7018 }
AzureIoTClient 28:add19eb7defa 7019 }
AzureIoTClient 28:add19eb7defa 7020
AzureIoTClient 28:add19eb7defa 7021 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7022 }
AzureIoTClient 28:add19eb7defa 7023 }
AzureIoTClient 28:add19eb7defa 7024 /* rcv-settle-mode */
AzureIoTClient 28:add19eb7defa 7025 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 7026 {
AzureIoTClient 23:1111ee8bcba4 7027 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 7028 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7029 {
AzureIoTClient 28:add19eb7defa 7030 /* do nothing */
AzureIoTClient 28:add19eb7defa 7031 }
AzureIoTClient 28:add19eb7defa 7032 else
AzureIoTClient 28:add19eb7defa 7033 {
AzureIoTClient 28:add19eb7defa 7034 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7035 {
AzureIoTClient 28:add19eb7defa 7036 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7037 }
AzureIoTClient 28:add19eb7defa 7038 else
AzureIoTClient 28:add19eb7defa 7039 {
AzureIoTClient 28:add19eb7defa 7040 receiver_settle_mode rcv_settle_mode;
AzureIoTClient 28:add19eb7defa 7041 if (amqpvalue_get_receiver_settle_mode(item_value, &rcv_settle_mode) != 0)
AzureIoTClient 28:add19eb7defa 7042 {
AzureIoTClient 28:add19eb7defa 7043 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7044 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7045 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7046 break;
AzureIoTClient 28:add19eb7defa 7047 }
AzureIoTClient 28:add19eb7defa 7048 }
AzureIoTClient 28:add19eb7defa 7049
AzureIoTClient 28:add19eb7defa 7050 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7051 }
AzureIoTClient 28:add19eb7defa 7052 }
AzureIoTClient 28:add19eb7defa 7053 /* state */
AzureIoTClient 28:add19eb7defa 7054 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 7055 {
AzureIoTClient 23:1111ee8bcba4 7056 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 7057 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7058 {
AzureIoTClient 28:add19eb7defa 7059 /* do nothing */
AzureIoTClient 28:add19eb7defa 7060 }
AzureIoTClient 28:add19eb7defa 7061 else
AzureIoTClient 28:add19eb7defa 7062 {
AzureIoTClient 28:add19eb7defa 7063 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7064 }
AzureIoTClient 28:add19eb7defa 7065 }
AzureIoTClient 28:add19eb7defa 7066 /* resume */
AzureIoTClient 28:add19eb7defa 7067 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 7068 {
AzureIoTClient 23:1111ee8bcba4 7069 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 7070 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7071 {
AzureIoTClient 28:add19eb7defa 7072 /* do nothing */
AzureIoTClient 28:add19eb7defa 7073 }
AzureIoTClient 28:add19eb7defa 7074 else
AzureIoTClient 28:add19eb7defa 7075 {
AzureIoTClient 28:add19eb7defa 7076 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7077 {
AzureIoTClient 28:add19eb7defa 7078 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7079 }
AzureIoTClient 28:add19eb7defa 7080 else
AzureIoTClient 28:add19eb7defa 7081 {
AzureIoTClient 28:add19eb7defa 7082 bool resume;
AzureIoTClient 28:add19eb7defa 7083 if (amqpvalue_get_boolean(item_value, &resume) != 0)
AzureIoTClient 28:add19eb7defa 7084 {
AzureIoTClient 28:add19eb7defa 7085 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7086 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7087 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7088 break;
AzureIoTClient 28:add19eb7defa 7089 }
AzureIoTClient 28:add19eb7defa 7090 }
AzureIoTClient 28:add19eb7defa 7091
AzureIoTClient 28:add19eb7defa 7092 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7093 }
AzureIoTClient 28:add19eb7defa 7094 }
AzureIoTClient 28:add19eb7defa 7095 /* aborted */
AzureIoTClient 28:add19eb7defa 7096 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 7097 {
AzureIoTClient 23:1111ee8bcba4 7098 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 7099 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7100 {
AzureIoTClient 28:add19eb7defa 7101 /* do nothing */
AzureIoTClient 28:add19eb7defa 7102 }
AzureIoTClient 28:add19eb7defa 7103 else
AzureIoTClient 28:add19eb7defa 7104 {
AzureIoTClient 28:add19eb7defa 7105 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7106 {
AzureIoTClient 28:add19eb7defa 7107 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7108 }
AzureIoTClient 28:add19eb7defa 7109 else
AzureIoTClient 28:add19eb7defa 7110 {
AzureIoTClient 28:add19eb7defa 7111 bool aborted;
AzureIoTClient 28:add19eb7defa 7112 if (amqpvalue_get_boolean(item_value, &aborted) != 0)
AzureIoTClient 28:add19eb7defa 7113 {
AzureIoTClient 28:add19eb7defa 7114 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7115 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7116 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7117 break;
AzureIoTClient 28:add19eb7defa 7118 }
AzureIoTClient 28:add19eb7defa 7119 }
AzureIoTClient 28:add19eb7defa 7120
AzureIoTClient 28:add19eb7defa 7121 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7122 }
AzureIoTClient 28:add19eb7defa 7123 }
AzureIoTClient 28:add19eb7defa 7124 /* batchable */
AzureIoTClient 28:add19eb7defa 7125 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 7126 {
AzureIoTClient 23:1111ee8bcba4 7127 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 7128 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 7129 {
AzureIoTClient 28:add19eb7defa 7130 /* do nothing */
AzureIoTClient 28:add19eb7defa 7131 }
AzureIoTClient 28:add19eb7defa 7132 else
AzureIoTClient 28:add19eb7defa 7133 {
AzureIoTClient 28:add19eb7defa 7134 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 7135 {
AzureIoTClient 28:add19eb7defa 7136 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 7137 }
AzureIoTClient 28:add19eb7defa 7138 else
AzureIoTClient 28:add19eb7defa 7139 {
AzureIoTClient 28:add19eb7defa 7140 bool batchable;
AzureIoTClient 28:add19eb7defa 7141 if (amqpvalue_get_boolean(item_value, &batchable) != 0)
AzureIoTClient 28:add19eb7defa 7142 {
AzureIoTClient 28:add19eb7defa 7143 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7144 transfer_destroy(*transfer_handle);
AzureIoTClient 28:add19eb7defa 7145 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7146 break;
AzureIoTClient 28:add19eb7defa 7147 }
AzureIoTClient 28:add19eb7defa 7148 }
AzureIoTClient 28:add19eb7defa 7149
AzureIoTClient 28:add19eb7defa 7150 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 7151 }
AzureIoTClient 28:add19eb7defa 7152 }
AzureIoTClient 28:add19eb7defa 7153
AzureIoTClient 28:add19eb7defa 7154 transfer_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 7155
AzureIoTClient 28:add19eb7defa 7156 result = 0;
AzureIoTClient 28:add19eb7defa 7157 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 7158 }
AzureIoTClient 28:add19eb7defa 7159 }
AzureIoTClient 28:add19eb7defa 7160 }
AzureIoTClient 28:add19eb7defa 7161
AzureIoTClient 28:add19eb7defa 7162 return result;
Azure.IoT Build 0:6ae2f7bca550 7163 }
Azure.IoT Build 0:6ae2f7bca550 7164
Azure.IoT Build 0:6ae2f7bca550 7165 int transfer_get_handle(TRANSFER_HANDLE transfer, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 7166 {
AzureIoTClient 28:add19eb7defa 7167 int result;
AzureIoTClient 28:add19eb7defa 7168
AzureIoTClient 28:add19eb7defa 7169 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7170 {
AzureIoTClient 28:add19eb7defa 7171 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7172 }
AzureIoTClient 28:add19eb7defa 7173 else
AzureIoTClient 28:add19eb7defa 7174 {
AzureIoTClient 28:add19eb7defa 7175 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7176 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7177 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7178 {
AzureIoTClient 23:1111ee8bcba4 7179 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7180 }
AzureIoTClient 23:1111ee8bcba4 7181 else
AzureIoTClient 23:1111ee8bcba4 7182 {
AzureIoTClient 23:1111ee8bcba4 7183 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 7184 {
AzureIoTClient 28:add19eb7defa 7185 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7186 }
AzureIoTClient 28:add19eb7defa 7187 else
AzureIoTClient 28:add19eb7defa 7188 {
AzureIoTClient 28:add19eb7defa 7189 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 7190 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7191 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7192 {
AzureIoTClient 28:add19eb7defa 7193 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7194 }
AzureIoTClient 28:add19eb7defa 7195 else
AzureIoTClient 28:add19eb7defa 7196 {
AzureIoTClient 28:add19eb7defa 7197 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7198 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_value)) != 0)
AzureIoTClient 28:add19eb7defa 7199 {
AzureIoTClient 28:add19eb7defa 7200 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7201 }
AzureIoTClient 28:add19eb7defa 7202 else
AzureIoTClient 28:add19eb7defa 7203 {
AzureIoTClient 28:add19eb7defa 7204 result = 0;
AzureIoTClient 28:add19eb7defa 7205 }
AzureIoTClient 28:add19eb7defa 7206 }
AzureIoTClient 28:add19eb7defa 7207 }
AzureIoTClient 28:add19eb7defa 7208 }
AzureIoTClient 28:add19eb7defa 7209 }
AzureIoTClient 28:add19eb7defa 7210
AzureIoTClient 28:add19eb7defa 7211 return result;
Azure.IoT Build 0:6ae2f7bca550 7212 }
Azure.IoT Build 0:6ae2f7bca550 7213
Azure.IoT Build 0:6ae2f7bca550 7214 int transfer_set_handle(TRANSFER_HANDLE transfer, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 7215 {
AzureIoTClient 28:add19eb7defa 7216 int result;
AzureIoTClient 28:add19eb7defa 7217
AzureIoTClient 28:add19eb7defa 7218 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7219 {
AzureIoTClient 28:add19eb7defa 7220 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7221 }
AzureIoTClient 28:add19eb7defa 7222 else
AzureIoTClient 28:add19eb7defa 7223 {
AzureIoTClient 28:add19eb7defa 7224 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7225 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 7226 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7227 {
AzureIoTClient 28:add19eb7defa 7228 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7229 }
AzureIoTClient 28:add19eb7defa 7230 else
AzureIoTClient 28:add19eb7defa 7231 {
AzureIoTClient 28:add19eb7defa 7232 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 0, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7233 {
AzureIoTClient 28:add19eb7defa 7234 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7235 }
AzureIoTClient 28:add19eb7defa 7236 else
AzureIoTClient 28:add19eb7defa 7237 {
AzureIoTClient 28:add19eb7defa 7238 result = 0;
AzureIoTClient 28:add19eb7defa 7239 }
AzureIoTClient 28:add19eb7defa 7240
AzureIoTClient 28:add19eb7defa 7241 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 7242 }
AzureIoTClient 28:add19eb7defa 7243 }
AzureIoTClient 28:add19eb7defa 7244
AzureIoTClient 28:add19eb7defa 7245 return result;
Azure.IoT Build 0:6ae2f7bca550 7246 }
Azure.IoT Build 0:6ae2f7bca550 7247
Azure.IoT Build 0:6ae2f7bca550 7248 int transfer_get_delivery_id(TRANSFER_HANDLE transfer, delivery_number* delivery_id_value)
Azure.IoT Build 0:6ae2f7bca550 7249 {
AzureIoTClient 28:add19eb7defa 7250 int result;
AzureIoTClient 28:add19eb7defa 7251
AzureIoTClient 28:add19eb7defa 7252 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7253 {
AzureIoTClient 28:add19eb7defa 7254 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7255 }
AzureIoTClient 28:add19eb7defa 7256 else
AzureIoTClient 28:add19eb7defa 7257 {
AzureIoTClient 28:add19eb7defa 7258 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7259 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7260 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7261 {
AzureIoTClient 23:1111ee8bcba4 7262 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7263 }
AzureIoTClient 23:1111ee8bcba4 7264 else
AzureIoTClient 23:1111ee8bcba4 7265 {
AzureIoTClient 23:1111ee8bcba4 7266 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 7267 {
AzureIoTClient 28:add19eb7defa 7268 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7269 }
AzureIoTClient 28:add19eb7defa 7270 else
AzureIoTClient 28:add19eb7defa 7271 {
AzureIoTClient 28:add19eb7defa 7272 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 7273 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7274 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7275 {
AzureIoTClient 28:add19eb7defa 7276 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7277 }
AzureIoTClient 28:add19eb7defa 7278 else
AzureIoTClient 28:add19eb7defa 7279 {
AzureIoTClient 28:add19eb7defa 7280 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7281 if ((get_single_value_result = amqpvalue_get_delivery_number(item_value, delivery_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 7282 {
AzureIoTClient 28:add19eb7defa 7283 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7284 }
AzureIoTClient 28:add19eb7defa 7285 else
AzureIoTClient 28:add19eb7defa 7286 {
AzureIoTClient 28:add19eb7defa 7287 result = 0;
AzureIoTClient 28:add19eb7defa 7288 }
AzureIoTClient 28:add19eb7defa 7289 }
AzureIoTClient 28:add19eb7defa 7290 }
AzureIoTClient 28:add19eb7defa 7291 }
AzureIoTClient 28:add19eb7defa 7292 }
AzureIoTClient 28:add19eb7defa 7293
AzureIoTClient 28:add19eb7defa 7294 return result;
Azure.IoT Build 0:6ae2f7bca550 7295 }
Azure.IoT Build 0:6ae2f7bca550 7296
Azure.IoT Build 0:6ae2f7bca550 7297 int transfer_set_delivery_id(TRANSFER_HANDLE transfer, delivery_number delivery_id_value)
Azure.IoT Build 0:6ae2f7bca550 7298 {
AzureIoTClient 28:add19eb7defa 7299 int result;
AzureIoTClient 28:add19eb7defa 7300
AzureIoTClient 28:add19eb7defa 7301 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7302 {
AzureIoTClient 28:add19eb7defa 7303 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7304 }
AzureIoTClient 28:add19eb7defa 7305 else
AzureIoTClient 28:add19eb7defa 7306 {
AzureIoTClient 28:add19eb7defa 7307 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7308 AMQP_VALUE delivery_id_amqp_value = amqpvalue_create_delivery_number(delivery_id_value);
AzureIoTClient 28:add19eb7defa 7309 if (delivery_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7310 {
AzureIoTClient 28:add19eb7defa 7311 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7312 }
AzureIoTClient 28:add19eb7defa 7313 else
AzureIoTClient 28:add19eb7defa 7314 {
AzureIoTClient 28:add19eb7defa 7315 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 1, delivery_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7316 {
AzureIoTClient 28:add19eb7defa 7317 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7318 }
AzureIoTClient 28:add19eb7defa 7319 else
AzureIoTClient 28:add19eb7defa 7320 {
AzureIoTClient 28:add19eb7defa 7321 result = 0;
AzureIoTClient 28:add19eb7defa 7322 }
AzureIoTClient 28:add19eb7defa 7323
AzureIoTClient 28:add19eb7defa 7324 amqpvalue_destroy(delivery_id_amqp_value);
AzureIoTClient 28:add19eb7defa 7325 }
AzureIoTClient 28:add19eb7defa 7326 }
AzureIoTClient 28:add19eb7defa 7327
AzureIoTClient 28:add19eb7defa 7328 return result;
Azure.IoT Build 0:6ae2f7bca550 7329 }
Azure.IoT Build 0:6ae2f7bca550 7330
Azure.IoT Build 0:6ae2f7bca550 7331 int transfer_get_delivery_tag(TRANSFER_HANDLE transfer, delivery_tag* delivery_tag_value)
Azure.IoT Build 0:6ae2f7bca550 7332 {
AzureIoTClient 28:add19eb7defa 7333 int result;
AzureIoTClient 28:add19eb7defa 7334
AzureIoTClient 28:add19eb7defa 7335 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7336 {
AzureIoTClient 28:add19eb7defa 7337 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7338 }
AzureIoTClient 28:add19eb7defa 7339 else
AzureIoTClient 28:add19eb7defa 7340 {
AzureIoTClient 28:add19eb7defa 7341 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7342 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7343 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7344 {
AzureIoTClient 23:1111ee8bcba4 7345 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7346 }
AzureIoTClient 23:1111ee8bcba4 7347 else
AzureIoTClient 23:1111ee8bcba4 7348 {
AzureIoTClient 23:1111ee8bcba4 7349 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 7350 {
AzureIoTClient 28:add19eb7defa 7351 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7352 }
AzureIoTClient 28:add19eb7defa 7353 else
AzureIoTClient 28:add19eb7defa 7354 {
AzureIoTClient 28:add19eb7defa 7355 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 7356 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7357 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7358 {
AzureIoTClient 28:add19eb7defa 7359 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7360 }
AzureIoTClient 28:add19eb7defa 7361 else
AzureIoTClient 28:add19eb7defa 7362 {
AzureIoTClient 28:add19eb7defa 7363 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7364 if ((get_single_value_result = amqpvalue_get_delivery_tag(item_value, delivery_tag_value)) != 0)
AzureIoTClient 28:add19eb7defa 7365 {
AzureIoTClient 28:add19eb7defa 7366 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7367 }
AzureIoTClient 28:add19eb7defa 7368 else
AzureIoTClient 28:add19eb7defa 7369 {
AzureIoTClient 28:add19eb7defa 7370 result = 0;
AzureIoTClient 28:add19eb7defa 7371 }
AzureIoTClient 28:add19eb7defa 7372 }
AzureIoTClient 28:add19eb7defa 7373 }
AzureIoTClient 28:add19eb7defa 7374 }
AzureIoTClient 28:add19eb7defa 7375 }
AzureIoTClient 28:add19eb7defa 7376
AzureIoTClient 28:add19eb7defa 7377 return result;
Azure.IoT Build 0:6ae2f7bca550 7378 }
Azure.IoT Build 0:6ae2f7bca550 7379
Azure.IoT Build 0:6ae2f7bca550 7380 int transfer_set_delivery_tag(TRANSFER_HANDLE transfer, delivery_tag delivery_tag_value)
Azure.IoT Build 0:6ae2f7bca550 7381 {
AzureIoTClient 28:add19eb7defa 7382 int result;
AzureIoTClient 28:add19eb7defa 7383
AzureIoTClient 28:add19eb7defa 7384 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7385 {
AzureIoTClient 28:add19eb7defa 7386 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7387 }
AzureIoTClient 28:add19eb7defa 7388 else
AzureIoTClient 28:add19eb7defa 7389 {
AzureIoTClient 28:add19eb7defa 7390 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7391 AMQP_VALUE delivery_tag_amqp_value = amqpvalue_create_delivery_tag(delivery_tag_value);
AzureIoTClient 28:add19eb7defa 7392 if (delivery_tag_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7393 {
AzureIoTClient 28:add19eb7defa 7394 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7395 }
AzureIoTClient 28:add19eb7defa 7396 else
AzureIoTClient 28:add19eb7defa 7397 {
AzureIoTClient 28:add19eb7defa 7398 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 2, delivery_tag_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7399 {
AzureIoTClient 28:add19eb7defa 7400 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7401 }
AzureIoTClient 28:add19eb7defa 7402 else
AzureIoTClient 28:add19eb7defa 7403 {
AzureIoTClient 28:add19eb7defa 7404 result = 0;
AzureIoTClient 28:add19eb7defa 7405 }
AzureIoTClient 28:add19eb7defa 7406
AzureIoTClient 28:add19eb7defa 7407 amqpvalue_destroy(delivery_tag_amqp_value);
AzureIoTClient 28:add19eb7defa 7408 }
AzureIoTClient 28:add19eb7defa 7409 }
AzureIoTClient 28:add19eb7defa 7410
AzureIoTClient 28:add19eb7defa 7411 return result;
Azure.IoT Build 0:6ae2f7bca550 7412 }
Azure.IoT Build 0:6ae2f7bca550 7413
Azure.IoT Build 0:6ae2f7bca550 7414 int transfer_get_message_format(TRANSFER_HANDLE transfer, message_format* message_format_value)
Azure.IoT Build 0:6ae2f7bca550 7415 {
AzureIoTClient 28:add19eb7defa 7416 int result;
AzureIoTClient 28:add19eb7defa 7417
AzureIoTClient 28:add19eb7defa 7418 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7419 {
AzureIoTClient 28:add19eb7defa 7420 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7421 }
AzureIoTClient 28:add19eb7defa 7422 else
AzureIoTClient 28:add19eb7defa 7423 {
AzureIoTClient 28:add19eb7defa 7424 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7425 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7426 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7427 {
AzureIoTClient 23:1111ee8bcba4 7428 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7429 }
AzureIoTClient 23:1111ee8bcba4 7430 else
AzureIoTClient 23:1111ee8bcba4 7431 {
AzureIoTClient 23:1111ee8bcba4 7432 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 7433 {
AzureIoTClient 28:add19eb7defa 7434 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7435 }
AzureIoTClient 28:add19eb7defa 7436 else
AzureIoTClient 28:add19eb7defa 7437 {
AzureIoTClient 28:add19eb7defa 7438 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 7439 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7440 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7441 {
AzureIoTClient 28:add19eb7defa 7442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7443 }
AzureIoTClient 28:add19eb7defa 7444 else
AzureIoTClient 28:add19eb7defa 7445 {
AzureIoTClient 28:add19eb7defa 7446 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7447 if ((get_single_value_result = amqpvalue_get_message_format(item_value, message_format_value)) != 0)
AzureIoTClient 28:add19eb7defa 7448 {
AzureIoTClient 28:add19eb7defa 7449 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7450 }
AzureIoTClient 28:add19eb7defa 7451 else
AzureIoTClient 28:add19eb7defa 7452 {
AzureIoTClient 28:add19eb7defa 7453 result = 0;
AzureIoTClient 28:add19eb7defa 7454 }
AzureIoTClient 28:add19eb7defa 7455 }
AzureIoTClient 28:add19eb7defa 7456 }
AzureIoTClient 28:add19eb7defa 7457 }
AzureIoTClient 28:add19eb7defa 7458 }
AzureIoTClient 28:add19eb7defa 7459
AzureIoTClient 28:add19eb7defa 7460 return result;
Azure.IoT Build 0:6ae2f7bca550 7461 }
Azure.IoT Build 0:6ae2f7bca550 7462
Azure.IoT Build 0:6ae2f7bca550 7463 int transfer_set_message_format(TRANSFER_HANDLE transfer, message_format message_format_value)
Azure.IoT Build 0:6ae2f7bca550 7464 {
AzureIoTClient 28:add19eb7defa 7465 int result;
AzureIoTClient 28:add19eb7defa 7466
AzureIoTClient 28:add19eb7defa 7467 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7468 {
AzureIoTClient 28:add19eb7defa 7469 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7470 }
AzureIoTClient 28:add19eb7defa 7471 else
AzureIoTClient 28:add19eb7defa 7472 {
AzureIoTClient 28:add19eb7defa 7473 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7474 AMQP_VALUE message_format_amqp_value = amqpvalue_create_message_format(message_format_value);
AzureIoTClient 28:add19eb7defa 7475 if (message_format_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7476 {
AzureIoTClient 28:add19eb7defa 7477 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7478 }
AzureIoTClient 28:add19eb7defa 7479 else
AzureIoTClient 28:add19eb7defa 7480 {
AzureIoTClient 28:add19eb7defa 7481 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 3, message_format_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7482 {
AzureIoTClient 28:add19eb7defa 7483 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7484 }
AzureIoTClient 28:add19eb7defa 7485 else
AzureIoTClient 28:add19eb7defa 7486 {
AzureIoTClient 28:add19eb7defa 7487 result = 0;
AzureIoTClient 28:add19eb7defa 7488 }
AzureIoTClient 28:add19eb7defa 7489
AzureIoTClient 28:add19eb7defa 7490 amqpvalue_destroy(message_format_amqp_value);
AzureIoTClient 28:add19eb7defa 7491 }
AzureIoTClient 28:add19eb7defa 7492 }
AzureIoTClient 28:add19eb7defa 7493
AzureIoTClient 28:add19eb7defa 7494 return result;
Azure.IoT Build 0:6ae2f7bca550 7495 }
Azure.IoT Build 0:6ae2f7bca550 7496
Azure.IoT Build 0:6ae2f7bca550 7497 int transfer_get_settled(TRANSFER_HANDLE transfer, bool* settled_value)
Azure.IoT Build 0:6ae2f7bca550 7498 {
AzureIoTClient 28:add19eb7defa 7499 int result;
AzureIoTClient 28:add19eb7defa 7500
AzureIoTClient 28:add19eb7defa 7501 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7502 {
AzureIoTClient 28:add19eb7defa 7503 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7504 }
AzureIoTClient 28:add19eb7defa 7505 else
AzureIoTClient 28:add19eb7defa 7506 {
AzureIoTClient 28:add19eb7defa 7507 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7508 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7509 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7510 {
AzureIoTClient 23:1111ee8bcba4 7511 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7512 }
AzureIoTClient 23:1111ee8bcba4 7513 else
AzureIoTClient 23:1111ee8bcba4 7514 {
AzureIoTClient 23:1111ee8bcba4 7515 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 7516 {
AzureIoTClient 28:add19eb7defa 7517 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7518 }
AzureIoTClient 28:add19eb7defa 7519 else
AzureIoTClient 28:add19eb7defa 7520 {
AzureIoTClient 28:add19eb7defa 7521 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 7522 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7523 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7524 {
AzureIoTClient 28:add19eb7defa 7525 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7526 }
AzureIoTClient 28:add19eb7defa 7527 else
AzureIoTClient 28:add19eb7defa 7528 {
AzureIoTClient 28:add19eb7defa 7529 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7530 if ((get_single_value_result = amqpvalue_get_boolean(item_value, settled_value)) != 0)
AzureIoTClient 28:add19eb7defa 7531 {
AzureIoTClient 28:add19eb7defa 7532 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7533 }
AzureIoTClient 28:add19eb7defa 7534 else
AzureIoTClient 28:add19eb7defa 7535 {
AzureIoTClient 28:add19eb7defa 7536 result = 0;
AzureIoTClient 28:add19eb7defa 7537 }
AzureIoTClient 28:add19eb7defa 7538 }
AzureIoTClient 28:add19eb7defa 7539 }
AzureIoTClient 28:add19eb7defa 7540 }
AzureIoTClient 28:add19eb7defa 7541 }
AzureIoTClient 28:add19eb7defa 7542
AzureIoTClient 28:add19eb7defa 7543 return result;
Azure.IoT Build 0:6ae2f7bca550 7544 }
Azure.IoT Build 0:6ae2f7bca550 7545
Azure.IoT Build 0:6ae2f7bca550 7546 int transfer_set_settled(TRANSFER_HANDLE transfer, bool settled_value)
Azure.IoT Build 0:6ae2f7bca550 7547 {
AzureIoTClient 28:add19eb7defa 7548 int result;
AzureIoTClient 28:add19eb7defa 7549
AzureIoTClient 28:add19eb7defa 7550 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7551 {
AzureIoTClient 28:add19eb7defa 7552 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7553 }
AzureIoTClient 28:add19eb7defa 7554 else
AzureIoTClient 28:add19eb7defa 7555 {
AzureIoTClient 28:add19eb7defa 7556 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7557 AMQP_VALUE settled_amqp_value = amqpvalue_create_boolean(settled_value);
AzureIoTClient 28:add19eb7defa 7558 if (settled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7559 {
AzureIoTClient 28:add19eb7defa 7560 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7561 }
AzureIoTClient 28:add19eb7defa 7562 else
AzureIoTClient 28:add19eb7defa 7563 {
AzureIoTClient 28:add19eb7defa 7564 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 4, settled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7565 {
AzureIoTClient 28:add19eb7defa 7566 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7567 }
AzureIoTClient 28:add19eb7defa 7568 else
AzureIoTClient 28:add19eb7defa 7569 {
AzureIoTClient 28:add19eb7defa 7570 result = 0;
AzureIoTClient 28:add19eb7defa 7571 }
AzureIoTClient 28:add19eb7defa 7572
AzureIoTClient 28:add19eb7defa 7573 amqpvalue_destroy(settled_amqp_value);
AzureIoTClient 28:add19eb7defa 7574 }
AzureIoTClient 28:add19eb7defa 7575 }
AzureIoTClient 28:add19eb7defa 7576
AzureIoTClient 28:add19eb7defa 7577 return result;
Azure.IoT Build 0:6ae2f7bca550 7578 }
Azure.IoT Build 0:6ae2f7bca550 7579
Azure.IoT Build 0:6ae2f7bca550 7580 int transfer_get_more(TRANSFER_HANDLE transfer, bool* more_value)
Azure.IoT Build 0:6ae2f7bca550 7581 {
AzureIoTClient 28:add19eb7defa 7582 int result;
AzureIoTClient 28:add19eb7defa 7583
AzureIoTClient 28:add19eb7defa 7584 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7585 {
AzureIoTClient 28:add19eb7defa 7586 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7587 }
AzureIoTClient 28:add19eb7defa 7588 else
AzureIoTClient 28:add19eb7defa 7589 {
AzureIoTClient 28:add19eb7defa 7590 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7591 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7592 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7593 {
AzureIoTClient 23:1111ee8bcba4 7594 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7595 }
AzureIoTClient 23:1111ee8bcba4 7596 else
AzureIoTClient 23:1111ee8bcba4 7597 {
AzureIoTClient 23:1111ee8bcba4 7598 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 7599 {
AzureIoTClient 28:add19eb7defa 7600 *more_value = false;
AzureIoTClient 28:add19eb7defa 7601 result = 0;
AzureIoTClient 28:add19eb7defa 7602 }
AzureIoTClient 28:add19eb7defa 7603 else
AzureIoTClient 28:add19eb7defa 7604 {
AzureIoTClient 28:add19eb7defa 7605 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 7606 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7607 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7608 {
AzureIoTClient 28:add19eb7defa 7609 *more_value = false;
AzureIoTClient 28:add19eb7defa 7610 result = 0;
AzureIoTClient 28:add19eb7defa 7611 }
AzureIoTClient 28:add19eb7defa 7612 else
AzureIoTClient 28:add19eb7defa 7613 {
AzureIoTClient 28:add19eb7defa 7614 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7615 if ((get_single_value_result = amqpvalue_get_boolean(item_value, more_value)) != 0)
AzureIoTClient 28:add19eb7defa 7616 {
AzureIoTClient 23:1111ee8bcba4 7617 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7618 {
AzureIoTClient 28:add19eb7defa 7619 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7620 }
AzureIoTClient 28:add19eb7defa 7621 else
AzureIoTClient 28:add19eb7defa 7622 {
AzureIoTClient 28:add19eb7defa 7623 *more_value = false;
AzureIoTClient 23:1111ee8bcba4 7624 result = 0;
AzureIoTClient 23:1111ee8bcba4 7625 }
AzureIoTClient 28:add19eb7defa 7626 }
AzureIoTClient 28:add19eb7defa 7627 else
AzureIoTClient 28:add19eb7defa 7628 {
AzureIoTClient 28:add19eb7defa 7629 result = 0;
AzureIoTClient 28:add19eb7defa 7630 }
AzureIoTClient 28:add19eb7defa 7631 }
AzureIoTClient 28:add19eb7defa 7632 }
AzureIoTClient 28:add19eb7defa 7633 }
AzureIoTClient 28:add19eb7defa 7634 }
AzureIoTClient 28:add19eb7defa 7635
AzureIoTClient 28:add19eb7defa 7636 return result;
Azure.IoT Build 0:6ae2f7bca550 7637 }
Azure.IoT Build 0:6ae2f7bca550 7638
Azure.IoT Build 0:6ae2f7bca550 7639 int transfer_set_more(TRANSFER_HANDLE transfer, bool more_value)
Azure.IoT Build 0:6ae2f7bca550 7640 {
AzureIoTClient 28:add19eb7defa 7641 int result;
AzureIoTClient 28:add19eb7defa 7642
AzureIoTClient 28:add19eb7defa 7643 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7644 {
AzureIoTClient 28:add19eb7defa 7645 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7646 }
AzureIoTClient 28:add19eb7defa 7647 else
AzureIoTClient 28:add19eb7defa 7648 {
AzureIoTClient 28:add19eb7defa 7649 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7650 AMQP_VALUE more_amqp_value = amqpvalue_create_boolean(more_value);
AzureIoTClient 28:add19eb7defa 7651 if (more_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7652 {
AzureIoTClient 28:add19eb7defa 7653 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7654 }
AzureIoTClient 28:add19eb7defa 7655 else
AzureIoTClient 28:add19eb7defa 7656 {
AzureIoTClient 28:add19eb7defa 7657 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 5, more_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7658 {
AzureIoTClient 28:add19eb7defa 7659 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7660 }
AzureIoTClient 28:add19eb7defa 7661 else
AzureIoTClient 28:add19eb7defa 7662 {
AzureIoTClient 28:add19eb7defa 7663 result = 0;
AzureIoTClient 28:add19eb7defa 7664 }
AzureIoTClient 28:add19eb7defa 7665
AzureIoTClient 28:add19eb7defa 7666 amqpvalue_destroy(more_amqp_value);
AzureIoTClient 28:add19eb7defa 7667 }
AzureIoTClient 28:add19eb7defa 7668 }
AzureIoTClient 28:add19eb7defa 7669
AzureIoTClient 28:add19eb7defa 7670 return result;
Azure.IoT Build 0:6ae2f7bca550 7671 }
Azure.IoT Build 0:6ae2f7bca550 7672
Azure.IoT Build 0:6ae2f7bca550 7673 int transfer_get_rcv_settle_mode(TRANSFER_HANDLE transfer, receiver_settle_mode* rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 7674 {
AzureIoTClient 28:add19eb7defa 7675 int result;
AzureIoTClient 28:add19eb7defa 7676
AzureIoTClient 28:add19eb7defa 7677 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7678 {
AzureIoTClient 28:add19eb7defa 7679 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7680 }
AzureIoTClient 28:add19eb7defa 7681 else
AzureIoTClient 28:add19eb7defa 7682 {
AzureIoTClient 28:add19eb7defa 7683 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7684 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7685 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7686 {
AzureIoTClient 23:1111ee8bcba4 7687 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7688 }
AzureIoTClient 23:1111ee8bcba4 7689 else
AzureIoTClient 23:1111ee8bcba4 7690 {
AzureIoTClient 23:1111ee8bcba4 7691 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 7692 {
AzureIoTClient 28:add19eb7defa 7693 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7694 }
AzureIoTClient 28:add19eb7defa 7695 else
AzureIoTClient 28:add19eb7defa 7696 {
AzureIoTClient 28:add19eb7defa 7697 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 7698 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7699 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7700 {
AzureIoTClient 28:add19eb7defa 7701 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7702 }
AzureIoTClient 28:add19eb7defa 7703 else
AzureIoTClient 28:add19eb7defa 7704 {
AzureIoTClient 28:add19eb7defa 7705 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7706 if ((get_single_value_result = amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 7707 {
AzureIoTClient 28:add19eb7defa 7708 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7709 }
AzureIoTClient 28:add19eb7defa 7710 else
AzureIoTClient 28:add19eb7defa 7711 {
AzureIoTClient 28:add19eb7defa 7712 result = 0;
AzureIoTClient 28:add19eb7defa 7713 }
AzureIoTClient 28:add19eb7defa 7714 }
AzureIoTClient 28:add19eb7defa 7715 }
AzureIoTClient 28:add19eb7defa 7716 }
AzureIoTClient 28:add19eb7defa 7717 }
AzureIoTClient 28:add19eb7defa 7718
AzureIoTClient 28:add19eb7defa 7719 return result;
Azure.IoT Build 0:6ae2f7bca550 7720 }
Azure.IoT Build 0:6ae2f7bca550 7721
Azure.IoT Build 0:6ae2f7bca550 7722 int transfer_set_rcv_settle_mode(TRANSFER_HANDLE transfer, receiver_settle_mode rcv_settle_mode_value)
Azure.IoT Build 0:6ae2f7bca550 7723 {
AzureIoTClient 28:add19eb7defa 7724 int result;
AzureIoTClient 28:add19eb7defa 7725
AzureIoTClient 28:add19eb7defa 7726 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7727 {
AzureIoTClient 28:add19eb7defa 7728 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7729 }
AzureIoTClient 28:add19eb7defa 7730 else
AzureIoTClient 28:add19eb7defa 7731 {
AzureIoTClient 28:add19eb7defa 7732 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7733 AMQP_VALUE rcv_settle_mode_amqp_value = amqpvalue_create_receiver_settle_mode(rcv_settle_mode_value);
AzureIoTClient 28:add19eb7defa 7734 if (rcv_settle_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7735 {
AzureIoTClient 28:add19eb7defa 7736 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7737 }
AzureIoTClient 28:add19eb7defa 7738 else
AzureIoTClient 28:add19eb7defa 7739 {
AzureIoTClient 28:add19eb7defa 7740 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 6, rcv_settle_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7741 {
AzureIoTClient 28:add19eb7defa 7742 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7743 }
AzureIoTClient 28:add19eb7defa 7744 else
AzureIoTClient 28:add19eb7defa 7745 {
AzureIoTClient 28:add19eb7defa 7746 result = 0;
AzureIoTClient 28:add19eb7defa 7747 }
AzureIoTClient 28:add19eb7defa 7748
AzureIoTClient 28:add19eb7defa 7749 amqpvalue_destroy(rcv_settle_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 7750 }
AzureIoTClient 28:add19eb7defa 7751 }
AzureIoTClient 28:add19eb7defa 7752
AzureIoTClient 28:add19eb7defa 7753 return result;
Azure.IoT Build 0:6ae2f7bca550 7754 }
Azure.IoT Build 0:6ae2f7bca550 7755
Azure.IoT Build 0:6ae2f7bca550 7756 int transfer_get_state(TRANSFER_HANDLE transfer, AMQP_VALUE* state_value)
Azure.IoT Build 0:6ae2f7bca550 7757 {
AzureIoTClient 28:add19eb7defa 7758 int result;
AzureIoTClient 28:add19eb7defa 7759
AzureIoTClient 28:add19eb7defa 7760 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7761 {
AzureIoTClient 28:add19eb7defa 7762 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7763 }
AzureIoTClient 28:add19eb7defa 7764 else
AzureIoTClient 28:add19eb7defa 7765 {
AzureIoTClient 28:add19eb7defa 7766 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7767 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7768 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7769 {
AzureIoTClient 23:1111ee8bcba4 7770 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7771 }
AzureIoTClient 23:1111ee8bcba4 7772 else
AzureIoTClient 23:1111ee8bcba4 7773 {
AzureIoTClient 23:1111ee8bcba4 7774 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 7775 {
AzureIoTClient 28:add19eb7defa 7776 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7777 }
AzureIoTClient 28:add19eb7defa 7778 else
AzureIoTClient 28:add19eb7defa 7779 {
AzureIoTClient 28:add19eb7defa 7780 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 7781 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7782 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7783 {
AzureIoTClient 28:add19eb7defa 7784 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7785 }
AzureIoTClient 28:add19eb7defa 7786 else
AzureIoTClient 28:add19eb7defa 7787 {
AzureIoTClient 28:add19eb7defa 7788 *state_value = item_value;
AzureIoTClient 28:add19eb7defa 7789 result = 0;
AzureIoTClient 28:add19eb7defa 7790 }
AzureIoTClient 28:add19eb7defa 7791 }
AzureIoTClient 28:add19eb7defa 7792 }
AzureIoTClient 28:add19eb7defa 7793 }
AzureIoTClient 28:add19eb7defa 7794
AzureIoTClient 28:add19eb7defa 7795 return result;
Azure.IoT Build 0:6ae2f7bca550 7796 }
Azure.IoT Build 0:6ae2f7bca550 7797
Azure.IoT Build 0:6ae2f7bca550 7798 int transfer_set_state(TRANSFER_HANDLE transfer, AMQP_VALUE state_value)
Azure.IoT Build 0:6ae2f7bca550 7799 {
AzureIoTClient 28:add19eb7defa 7800 int result;
AzureIoTClient 28:add19eb7defa 7801
AzureIoTClient 28:add19eb7defa 7802 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7803 {
AzureIoTClient 28:add19eb7defa 7804 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7805 }
AzureIoTClient 28:add19eb7defa 7806 else
AzureIoTClient 28:add19eb7defa 7807 {
AzureIoTClient 28:add19eb7defa 7808 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7809 AMQP_VALUE state_amqp_value;
AzureIoTClient 23:1111ee8bcba4 7810 if (state_value == NULL)
AzureIoTClient 23:1111ee8bcba4 7811 {
AzureIoTClient 23:1111ee8bcba4 7812 state_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 7813 }
AzureIoTClient 23:1111ee8bcba4 7814 else
AzureIoTClient 23:1111ee8bcba4 7815 {
AzureIoTClient 23:1111ee8bcba4 7816 state_amqp_value = amqpvalue_clone(state_value);
AzureIoTClient 23:1111ee8bcba4 7817 }
AzureIoTClient 28:add19eb7defa 7818 if (state_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7819 {
AzureIoTClient 28:add19eb7defa 7820 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7821 }
AzureIoTClient 28:add19eb7defa 7822 else
AzureIoTClient 28:add19eb7defa 7823 {
AzureIoTClient 28:add19eb7defa 7824 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 7, state_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7825 {
AzureIoTClient 28:add19eb7defa 7826 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7827 }
AzureIoTClient 28:add19eb7defa 7828 else
AzureIoTClient 28:add19eb7defa 7829 {
AzureIoTClient 28:add19eb7defa 7830 result = 0;
AzureIoTClient 28:add19eb7defa 7831 }
AzureIoTClient 28:add19eb7defa 7832
AzureIoTClient 28:add19eb7defa 7833 amqpvalue_destroy(state_amqp_value);
AzureIoTClient 28:add19eb7defa 7834 }
AzureIoTClient 28:add19eb7defa 7835 }
AzureIoTClient 28:add19eb7defa 7836
AzureIoTClient 28:add19eb7defa 7837 return result;
Azure.IoT Build 0:6ae2f7bca550 7838 }
Azure.IoT Build 0:6ae2f7bca550 7839
Azure.IoT Build 0:6ae2f7bca550 7840 int transfer_get_resume(TRANSFER_HANDLE transfer, bool* resume_value)
Azure.IoT Build 0:6ae2f7bca550 7841 {
AzureIoTClient 28:add19eb7defa 7842 int result;
AzureIoTClient 28:add19eb7defa 7843
AzureIoTClient 28:add19eb7defa 7844 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7845 {
AzureIoTClient 28:add19eb7defa 7846 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7847 }
AzureIoTClient 28:add19eb7defa 7848 else
AzureIoTClient 28:add19eb7defa 7849 {
AzureIoTClient 28:add19eb7defa 7850 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7851 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7852 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7853 {
AzureIoTClient 23:1111ee8bcba4 7854 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7855 }
AzureIoTClient 23:1111ee8bcba4 7856 else
AzureIoTClient 23:1111ee8bcba4 7857 {
AzureIoTClient 23:1111ee8bcba4 7858 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 7859 {
AzureIoTClient 28:add19eb7defa 7860 *resume_value = false;
AzureIoTClient 28:add19eb7defa 7861 result = 0;
AzureIoTClient 28:add19eb7defa 7862 }
AzureIoTClient 28:add19eb7defa 7863 else
AzureIoTClient 28:add19eb7defa 7864 {
AzureIoTClient 28:add19eb7defa 7865 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 7866 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7867 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7868 {
AzureIoTClient 28:add19eb7defa 7869 *resume_value = false;
AzureIoTClient 28:add19eb7defa 7870 result = 0;
AzureIoTClient 28:add19eb7defa 7871 }
AzureIoTClient 28:add19eb7defa 7872 else
AzureIoTClient 28:add19eb7defa 7873 {
AzureIoTClient 28:add19eb7defa 7874 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7875 if ((get_single_value_result = amqpvalue_get_boolean(item_value, resume_value)) != 0)
AzureIoTClient 28:add19eb7defa 7876 {
AzureIoTClient 23:1111ee8bcba4 7877 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7878 {
AzureIoTClient 28:add19eb7defa 7879 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7880 }
AzureIoTClient 28:add19eb7defa 7881 else
AzureIoTClient 28:add19eb7defa 7882 {
AzureIoTClient 28:add19eb7defa 7883 *resume_value = false;
AzureIoTClient 23:1111ee8bcba4 7884 result = 0;
AzureIoTClient 23:1111ee8bcba4 7885 }
AzureIoTClient 28:add19eb7defa 7886 }
AzureIoTClient 28:add19eb7defa 7887 else
AzureIoTClient 28:add19eb7defa 7888 {
AzureIoTClient 28:add19eb7defa 7889 result = 0;
AzureIoTClient 28:add19eb7defa 7890 }
AzureIoTClient 28:add19eb7defa 7891 }
AzureIoTClient 28:add19eb7defa 7892 }
AzureIoTClient 28:add19eb7defa 7893 }
AzureIoTClient 28:add19eb7defa 7894 }
AzureIoTClient 28:add19eb7defa 7895
AzureIoTClient 28:add19eb7defa 7896 return result;
Azure.IoT Build 0:6ae2f7bca550 7897 }
Azure.IoT Build 0:6ae2f7bca550 7898
Azure.IoT Build 0:6ae2f7bca550 7899 int transfer_set_resume(TRANSFER_HANDLE transfer, bool resume_value)
Azure.IoT Build 0:6ae2f7bca550 7900 {
AzureIoTClient 28:add19eb7defa 7901 int result;
AzureIoTClient 28:add19eb7defa 7902
AzureIoTClient 28:add19eb7defa 7903 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7904 {
AzureIoTClient 28:add19eb7defa 7905 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7906 }
AzureIoTClient 28:add19eb7defa 7907 else
AzureIoTClient 28:add19eb7defa 7908 {
AzureIoTClient 28:add19eb7defa 7909 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 7910 AMQP_VALUE resume_amqp_value = amqpvalue_create_boolean(resume_value);
AzureIoTClient 28:add19eb7defa 7911 if (resume_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 7912 {
AzureIoTClient 28:add19eb7defa 7913 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7914 }
AzureIoTClient 28:add19eb7defa 7915 else
AzureIoTClient 28:add19eb7defa 7916 {
AzureIoTClient 28:add19eb7defa 7917 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 8, resume_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 7918 {
AzureIoTClient 28:add19eb7defa 7919 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7920 }
AzureIoTClient 28:add19eb7defa 7921 else
AzureIoTClient 28:add19eb7defa 7922 {
AzureIoTClient 28:add19eb7defa 7923 result = 0;
AzureIoTClient 28:add19eb7defa 7924 }
AzureIoTClient 28:add19eb7defa 7925
AzureIoTClient 28:add19eb7defa 7926 amqpvalue_destroy(resume_amqp_value);
AzureIoTClient 28:add19eb7defa 7927 }
AzureIoTClient 28:add19eb7defa 7928 }
AzureIoTClient 28:add19eb7defa 7929
AzureIoTClient 28:add19eb7defa 7930 return result;
Azure.IoT Build 0:6ae2f7bca550 7931 }
Azure.IoT Build 0:6ae2f7bca550 7932
Azure.IoT Build 0:6ae2f7bca550 7933 int transfer_get_aborted(TRANSFER_HANDLE transfer, bool* aborted_value)
Azure.IoT Build 0:6ae2f7bca550 7934 {
AzureIoTClient 28:add19eb7defa 7935 int result;
AzureIoTClient 28:add19eb7defa 7936
AzureIoTClient 28:add19eb7defa 7937 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7938 {
AzureIoTClient 28:add19eb7defa 7939 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7940 }
AzureIoTClient 28:add19eb7defa 7941 else
AzureIoTClient 28:add19eb7defa 7942 {
AzureIoTClient 28:add19eb7defa 7943 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 7944 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 7945 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 7946 {
AzureIoTClient 23:1111ee8bcba4 7947 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 7948 }
AzureIoTClient 23:1111ee8bcba4 7949 else
AzureIoTClient 23:1111ee8bcba4 7950 {
AzureIoTClient 23:1111ee8bcba4 7951 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 7952 {
AzureIoTClient 28:add19eb7defa 7953 *aborted_value = false;
AzureIoTClient 28:add19eb7defa 7954 result = 0;
AzureIoTClient 28:add19eb7defa 7955 }
AzureIoTClient 28:add19eb7defa 7956 else
AzureIoTClient 28:add19eb7defa 7957 {
AzureIoTClient 28:add19eb7defa 7958 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 7959 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 7960 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 7961 {
AzureIoTClient 28:add19eb7defa 7962 *aborted_value = false;
AzureIoTClient 28:add19eb7defa 7963 result = 0;
AzureIoTClient 28:add19eb7defa 7964 }
AzureIoTClient 28:add19eb7defa 7965 else
AzureIoTClient 28:add19eb7defa 7966 {
AzureIoTClient 28:add19eb7defa 7967 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 7968 if ((get_single_value_result = amqpvalue_get_boolean(item_value, aborted_value)) != 0)
AzureIoTClient 28:add19eb7defa 7969 {
AzureIoTClient 23:1111ee8bcba4 7970 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 7971 {
AzureIoTClient 28:add19eb7defa 7972 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7973 }
AzureIoTClient 28:add19eb7defa 7974 else
AzureIoTClient 28:add19eb7defa 7975 {
AzureIoTClient 28:add19eb7defa 7976 *aborted_value = false;
AzureIoTClient 23:1111ee8bcba4 7977 result = 0;
AzureIoTClient 23:1111ee8bcba4 7978 }
AzureIoTClient 28:add19eb7defa 7979 }
AzureIoTClient 28:add19eb7defa 7980 else
AzureIoTClient 28:add19eb7defa 7981 {
AzureIoTClient 28:add19eb7defa 7982 result = 0;
AzureIoTClient 28:add19eb7defa 7983 }
AzureIoTClient 28:add19eb7defa 7984 }
AzureIoTClient 28:add19eb7defa 7985 }
AzureIoTClient 28:add19eb7defa 7986 }
AzureIoTClient 28:add19eb7defa 7987 }
AzureIoTClient 28:add19eb7defa 7988
AzureIoTClient 28:add19eb7defa 7989 return result;
Azure.IoT Build 0:6ae2f7bca550 7990 }
Azure.IoT Build 0:6ae2f7bca550 7991
Azure.IoT Build 0:6ae2f7bca550 7992 int transfer_set_aborted(TRANSFER_HANDLE transfer, bool aborted_value)
Azure.IoT Build 0:6ae2f7bca550 7993 {
AzureIoTClient 28:add19eb7defa 7994 int result;
AzureIoTClient 28:add19eb7defa 7995
AzureIoTClient 28:add19eb7defa 7996 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 7997 {
AzureIoTClient 28:add19eb7defa 7998 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 7999 }
AzureIoTClient 28:add19eb7defa 8000 else
AzureIoTClient 28:add19eb7defa 8001 {
AzureIoTClient 28:add19eb7defa 8002 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 8003 AMQP_VALUE aborted_amqp_value = amqpvalue_create_boolean(aborted_value);
AzureIoTClient 28:add19eb7defa 8004 if (aborted_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8005 {
AzureIoTClient 28:add19eb7defa 8006 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8007 }
AzureIoTClient 28:add19eb7defa 8008 else
AzureIoTClient 28:add19eb7defa 8009 {
AzureIoTClient 28:add19eb7defa 8010 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 9, aborted_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8011 {
AzureIoTClient 28:add19eb7defa 8012 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8013 }
AzureIoTClient 28:add19eb7defa 8014 else
AzureIoTClient 28:add19eb7defa 8015 {
AzureIoTClient 28:add19eb7defa 8016 result = 0;
AzureIoTClient 28:add19eb7defa 8017 }
AzureIoTClient 28:add19eb7defa 8018
AzureIoTClient 28:add19eb7defa 8019 amqpvalue_destroy(aborted_amqp_value);
AzureIoTClient 28:add19eb7defa 8020 }
AzureIoTClient 28:add19eb7defa 8021 }
AzureIoTClient 28:add19eb7defa 8022
AzureIoTClient 28:add19eb7defa 8023 return result;
Azure.IoT Build 0:6ae2f7bca550 8024 }
Azure.IoT Build 0:6ae2f7bca550 8025
Azure.IoT Build 0:6ae2f7bca550 8026 int transfer_get_batchable(TRANSFER_HANDLE transfer, bool* batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8027 {
AzureIoTClient 28:add19eb7defa 8028 int result;
AzureIoTClient 28:add19eb7defa 8029
AzureIoTClient 28:add19eb7defa 8030 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8031 {
AzureIoTClient 28:add19eb7defa 8032 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8033 }
AzureIoTClient 28:add19eb7defa 8034 else
AzureIoTClient 28:add19eb7defa 8035 {
AzureIoTClient 28:add19eb7defa 8036 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8037 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 23:1111ee8bcba4 8038 if (amqpvalue_get_composite_item_count(transfer_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8039 {
AzureIoTClient 23:1111ee8bcba4 8040 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8041 }
AzureIoTClient 23:1111ee8bcba4 8042 else
AzureIoTClient 23:1111ee8bcba4 8043 {
AzureIoTClient 23:1111ee8bcba4 8044 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 8045 {
AzureIoTClient 28:add19eb7defa 8046 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8047 result = 0;
AzureIoTClient 28:add19eb7defa 8048 }
AzureIoTClient 28:add19eb7defa 8049 else
AzureIoTClient 28:add19eb7defa 8050 {
AzureIoTClient 28:add19eb7defa 8051 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 8052 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8053 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8054 {
AzureIoTClient 28:add19eb7defa 8055 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8056 result = 0;
AzureIoTClient 28:add19eb7defa 8057 }
AzureIoTClient 28:add19eb7defa 8058 else
AzureIoTClient 28:add19eb7defa 8059 {
AzureIoTClient 28:add19eb7defa 8060 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8061 if ((get_single_value_result = amqpvalue_get_boolean(item_value, batchable_value)) != 0)
AzureIoTClient 28:add19eb7defa 8062 {
AzureIoTClient 23:1111ee8bcba4 8063 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8064 {
AzureIoTClient 28:add19eb7defa 8065 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8066 }
AzureIoTClient 28:add19eb7defa 8067 else
AzureIoTClient 28:add19eb7defa 8068 {
AzureIoTClient 28:add19eb7defa 8069 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 8070 result = 0;
AzureIoTClient 23:1111ee8bcba4 8071 }
AzureIoTClient 28:add19eb7defa 8072 }
AzureIoTClient 28:add19eb7defa 8073 else
AzureIoTClient 28:add19eb7defa 8074 {
AzureIoTClient 28:add19eb7defa 8075 result = 0;
AzureIoTClient 28:add19eb7defa 8076 }
AzureIoTClient 28:add19eb7defa 8077 }
AzureIoTClient 28:add19eb7defa 8078 }
AzureIoTClient 28:add19eb7defa 8079 }
AzureIoTClient 28:add19eb7defa 8080 }
AzureIoTClient 28:add19eb7defa 8081
AzureIoTClient 28:add19eb7defa 8082 return result;
Azure.IoT Build 0:6ae2f7bca550 8083 }
Azure.IoT Build 0:6ae2f7bca550 8084
Azure.IoT Build 0:6ae2f7bca550 8085 int transfer_set_batchable(TRANSFER_HANDLE transfer, bool batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8086 {
AzureIoTClient 28:add19eb7defa 8087 int result;
AzureIoTClient 28:add19eb7defa 8088
AzureIoTClient 28:add19eb7defa 8089 if (transfer == NULL)
AzureIoTClient 28:add19eb7defa 8090 {
AzureIoTClient 28:add19eb7defa 8091 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8092 }
AzureIoTClient 28:add19eb7defa 8093 else
AzureIoTClient 28:add19eb7defa 8094 {
AzureIoTClient 28:add19eb7defa 8095 TRANSFER_INSTANCE* transfer_instance = (TRANSFER_INSTANCE*)transfer;
AzureIoTClient 28:add19eb7defa 8096 AMQP_VALUE batchable_amqp_value = amqpvalue_create_boolean(batchable_value);
AzureIoTClient 28:add19eb7defa 8097 if (batchable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8098 {
AzureIoTClient 28:add19eb7defa 8099 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8100 }
AzureIoTClient 28:add19eb7defa 8101 else
AzureIoTClient 28:add19eb7defa 8102 {
AzureIoTClient 28:add19eb7defa 8103 if (amqpvalue_set_composite_item(transfer_instance->composite_value, 10, batchable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8104 {
AzureIoTClient 28:add19eb7defa 8105 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8106 }
AzureIoTClient 28:add19eb7defa 8107 else
AzureIoTClient 28:add19eb7defa 8108 {
AzureIoTClient 28:add19eb7defa 8109 result = 0;
AzureIoTClient 28:add19eb7defa 8110 }
AzureIoTClient 28:add19eb7defa 8111
AzureIoTClient 28:add19eb7defa 8112 amqpvalue_destroy(batchable_amqp_value);
AzureIoTClient 28:add19eb7defa 8113 }
AzureIoTClient 28:add19eb7defa 8114 }
AzureIoTClient 28:add19eb7defa 8115
AzureIoTClient 28:add19eb7defa 8116 return result;
Azure.IoT Build 0:6ae2f7bca550 8117 }
Azure.IoT Build 0:6ae2f7bca550 8118
Azure.IoT Build 0:6ae2f7bca550 8119
Azure.IoT Build 0:6ae2f7bca550 8120 /* disposition */
Azure.IoT Build 0:6ae2f7bca550 8121
Azure.IoT Build 0:6ae2f7bca550 8122 typedef struct DISPOSITION_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 8123 {
AzureIoTClient 28:add19eb7defa 8124 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 8125 } DISPOSITION_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 8126
Azure.IoT Build 0:6ae2f7bca550 8127 static DISPOSITION_HANDLE disposition_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 8128 {
AzureIoTClient 28:add19eb7defa 8129 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8130 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8131 {
AzureIoTClient 28:add19eb7defa 8132 disposition_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 8133 }
AzureIoTClient 28:add19eb7defa 8134
AzureIoTClient 28:add19eb7defa 8135 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8136 }
Azure.IoT Build 0:6ae2f7bca550 8137
Azure.IoT Build 0:6ae2f7bca550 8138 DISPOSITION_HANDLE disposition_create(role role_value, delivery_number first_value)
Azure.IoT Build 0:6ae2f7bca550 8139 {
AzureIoTClient 28:add19eb7defa 8140 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8141 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8142 {
AzureIoTClient 28:add19eb7defa 8143 disposition_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(21);
AzureIoTClient 28:add19eb7defa 8144 if (disposition_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 8145 {
AzureIoTClient 28:add19eb7defa 8146 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8147 disposition_instance = NULL;
AzureIoTClient 28:add19eb7defa 8148 }
AzureIoTClient 28:add19eb7defa 8149 else
AzureIoTClient 28:add19eb7defa 8150 {
AzureIoTClient 28:add19eb7defa 8151 AMQP_VALUE role_amqp_value;
AzureIoTClient 28:add19eb7defa 8152 AMQP_VALUE first_amqp_value;
AzureIoTClient 28:add19eb7defa 8153 int result = 0;
AzureIoTClient 28:add19eb7defa 8154
AzureIoTClient 28:add19eb7defa 8155 role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 8156 if ((result == 0) && (amqpvalue_set_composite_item(disposition_instance->composite_value, 0, role_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 8157 {
AzureIoTClient 28:add19eb7defa 8158 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8159 }
AzureIoTClient 28:add19eb7defa 8160 first_amqp_value = amqpvalue_create_delivery_number(first_value);
AzureIoTClient 28:add19eb7defa 8161 if ((result == 0) && (amqpvalue_set_composite_item(disposition_instance->composite_value, 1, first_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 8162 {
AzureIoTClient 28:add19eb7defa 8163 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8164 }
AzureIoTClient 28:add19eb7defa 8165
AzureIoTClient 28:add19eb7defa 8166 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 8167 amqpvalue_destroy(first_amqp_value);
AzureIoTClient 28:add19eb7defa 8168 }
AzureIoTClient 28:add19eb7defa 8169 }
AzureIoTClient 28:add19eb7defa 8170
AzureIoTClient 28:add19eb7defa 8171 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8172 }
Azure.IoT Build 0:6ae2f7bca550 8173
Azure.IoT Build 0:6ae2f7bca550 8174 DISPOSITION_HANDLE disposition_clone(DISPOSITION_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 8175 {
AzureIoTClient 28:add19eb7defa 8176 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)malloc(sizeof(DISPOSITION_INSTANCE));
AzureIoTClient 28:add19eb7defa 8177 if (disposition_instance != NULL)
AzureIoTClient 28:add19eb7defa 8178 {
AzureIoTClient 28:add19eb7defa 8179 disposition_instance->composite_value = amqpvalue_clone(((DISPOSITION_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 8180 if (disposition_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 8181 {
AzureIoTClient 28:add19eb7defa 8182 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8183 disposition_instance = NULL;
AzureIoTClient 28:add19eb7defa 8184 }
AzureIoTClient 28:add19eb7defa 8185 }
AzureIoTClient 28:add19eb7defa 8186
AzureIoTClient 28:add19eb7defa 8187 return disposition_instance;
Azure.IoT Build 0:6ae2f7bca550 8188 }
Azure.IoT Build 0:6ae2f7bca550 8189
Azure.IoT Build 0:6ae2f7bca550 8190 void disposition_destroy(DISPOSITION_HANDLE disposition)
Azure.IoT Build 0:6ae2f7bca550 8191 {
AzureIoTClient 28:add19eb7defa 8192 if (disposition != NULL)
AzureIoTClient 28:add19eb7defa 8193 {
AzureIoTClient 28:add19eb7defa 8194 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8195 amqpvalue_destroy(disposition_instance->composite_value);
AzureIoTClient 28:add19eb7defa 8196 free(disposition_instance);
AzureIoTClient 28:add19eb7defa 8197 }
Azure.IoT Build 0:6ae2f7bca550 8198 }
Azure.IoT Build 0:6ae2f7bca550 8199
Azure.IoT Build 0:6ae2f7bca550 8200 AMQP_VALUE amqpvalue_create_disposition(DISPOSITION_HANDLE disposition)
Azure.IoT Build 0:6ae2f7bca550 8201 {
AzureIoTClient 28:add19eb7defa 8202 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 8203
AzureIoTClient 28:add19eb7defa 8204 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8205 {
AzureIoTClient 28:add19eb7defa 8206 result = NULL;
AzureIoTClient 28:add19eb7defa 8207 }
AzureIoTClient 28:add19eb7defa 8208 else
AzureIoTClient 28:add19eb7defa 8209 {
AzureIoTClient 28:add19eb7defa 8210 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8211 result = amqpvalue_clone(disposition_instance->composite_value);
AzureIoTClient 28:add19eb7defa 8212 }
AzureIoTClient 28:add19eb7defa 8213
AzureIoTClient 28:add19eb7defa 8214 return result;
Azure.IoT Build 0:6ae2f7bca550 8215 }
Azure.IoT Build 0:6ae2f7bca550 8216
Azure.IoT Build 0:6ae2f7bca550 8217 bool is_disposition_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 8218 {
AzureIoTClient 28:add19eb7defa 8219 bool result;
AzureIoTClient 28:add19eb7defa 8220
AzureIoTClient 28:add19eb7defa 8221 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 8222 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 8223 (descriptor_ulong == 21))
AzureIoTClient 28:add19eb7defa 8224 {
AzureIoTClient 28:add19eb7defa 8225 result = true;
AzureIoTClient 28:add19eb7defa 8226 }
AzureIoTClient 28:add19eb7defa 8227 else
AzureIoTClient 28:add19eb7defa 8228 {
AzureIoTClient 28:add19eb7defa 8229 result = false;
AzureIoTClient 28:add19eb7defa 8230 }
AzureIoTClient 28:add19eb7defa 8231
AzureIoTClient 28:add19eb7defa 8232 return result;
Azure.IoT Build 0:6ae2f7bca550 8233 }
Azure.IoT Build 0:6ae2f7bca550 8234
Azure.IoT Build 0:6ae2f7bca550 8235
Azure.IoT Build 0:6ae2f7bca550 8236 int amqpvalue_get_disposition(AMQP_VALUE value, DISPOSITION_HANDLE* disposition_handle)
Azure.IoT Build 0:6ae2f7bca550 8237 {
AzureIoTClient 28:add19eb7defa 8238 int result;
AzureIoTClient 28:add19eb7defa 8239 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition_create_internal();
AzureIoTClient 28:add19eb7defa 8240 *disposition_handle = disposition_instance;
AzureIoTClient 28:add19eb7defa 8241 if (*disposition_handle == NULL)
AzureIoTClient 28:add19eb7defa 8242 {
AzureIoTClient 28:add19eb7defa 8243 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8244 }
AzureIoTClient 28:add19eb7defa 8245 else
AzureIoTClient 28:add19eb7defa 8246 {
AzureIoTClient 28:add19eb7defa 8247 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 8248 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 8249 {
AzureIoTClient 28:add19eb7defa 8250 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8251 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8252 }
AzureIoTClient 28:add19eb7defa 8253 else
AzureIoTClient 28:add19eb7defa 8254 {
AzureIoTClient 23:1111ee8bcba4 8255 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 8256 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8257 {
AzureIoTClient 23:1111ee8bcba4 8258 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8259 }
AzureIoTClient 23:1111ee8bcba4 8260 else
AzureIoTClient 23:1111ee8bcba4 8261 {
AzureIoTClient 28:add19eb7defa 8262 do
AzureIoTClient 28:add19eb7defa 8263 {
AzureIoTClient 28:add19eb7defa 8264 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 8265 /* role */
AzureIoTClient 28:add19eb7defa 8266 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 8267 {
AzureIoTClient 23:1111ee8bcba4 8268 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 8269 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8270 {
AzureIoTClient 28:add19eb7defa 8271 {
AzureIoTClient 28:add19eb7defa 8272 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8273 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8274 break;
AzureIoTClient 28:add19eb7defa 8275 }
AzureIoTClient 28:add19eb7defa 8276 }
AzureIoTClient 28:add19eb7defa 8277 else
AzureIoTClient 28:add19eb7defa 8278 {
AzureIoTClient 28:add19eb7defa 8279 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8280 {
AzureIoTClient 28:add19eb7defa 8281 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8282 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8283 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8284 break;
AzureIoTClient 28:add19eb7defa 8285 }
AzureIoTClient 28:add19eb7defa 8286 else
AzureIoTClient 28:add19eb7defa 8287 {
AzureIoTClient 28:add19eb7defa 8288 role role;
AzureIoTClient 28:add19eb7defa 8289 if (amqpvalue_get_role(item_value, &role) != 0)
AzureIoTClient 28:add19eb7defa 8290 {
AzureIoTClient 28:add19eb7defa 8291 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8292 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8293 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8294 break;
AzureIoTClient 28:add19eb7defa 8295 }
AzureIoTClient 28:add19eb7defa 8296 }
AzureIoTClient 28:add19eb7defa 8297
AzureIoTClient 28:add19eb7defa 8298 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8299 }
AzureIoTClient 28:add19eb7defa 8300 }
AzureIoTClient 28:add19eb7defa 8301 else
AzureIoTClient 28:add19eb7defa 8302 {
AzureIoTClient 28:add19eb7defa 8303 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8304 }
AzureIoTClient 28:add19eb7defa 8305 /* first */
AzureIoTClient 28:add19eb7defa 8306 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 8307 {
AzureIoTClient 23:1111ee8bcba4 8308 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 8309 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8310 {
AzureIoTClient 28:add19eb7defa 8311 {
AzureIoTClient 28:add19eb7defa 8312 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8313 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8314 break;
AzureIoTClient 28:add19eb7defa 8315 }
AzureIoTClient 28:add19eb7defa 8316 }
AzureIoTClient 28:add19eb7defa 8317 else
AzureIoTClient 28:add19eb7defa 8318 {
AzureIoTClient 28:add19eb7defa 8319 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8320 {
AzureIoTClient 28:add19eb7defa 8321 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8322 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8323 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8324 break;
AzureIoTClient 28:add19eb7defa 8325 }
AzureIoTClient 28:add19eb7defa 8326 else
AzureIoTClient 28:add19eb7defa 8327 {
AzureIoTClient 28:add19eb7defa 8328 delivery_number first;
AzureIoTClient 28:add19eb7defa 8329 if (amqpvalue_get_delivery_number(item_value, &first) != 0)
AzureIoTClient 28:add19eb7defa 8330 {
AzureIoTClient 28:add19eb7defa 8331 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8332 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8333 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8334 break;
AzureIoTClient 28:add19eb7defa 8335 }
AzureIoTClient 28:add19eb7defa 8336 }
AzureIoTClient 28:add19eb7defa 8337
AzureIoTClient 28:add19eb7defa 8338 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8339 }
AzureIoTClient 28:add19eb7defa 8340 }
AzureIoTClient 28:add19eb7defa 8341 else
AzureIoTClient 28:add19eb7defa 8342 {
AzureIoTClient 28:add19eb7defa 8343 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8344 }
AzureIoTClient 28:add19eb7defa 8345 /* last */
AzureIoTClient 28:add19eb7defa 8346 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 8347 {
AzureIoTClient 23:1111ee8bcba4 8348 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 8349 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8350 {
AzureIoTClient 28:add19eb7defa 8351 /* do nothing */
AzureIoTClient 28:add19eb7defa 8352 }
AzureIoTClient 28:add19eb7defa 8353 else
AzureIoTClient 28:add19eb7defa 8354 {
AzureIoTClient 28:add19eb7defa 8355 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8356 {
AzureIoTClient 28:add19eb7defa 8357 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8358 }
AzureIoTClient 28:add19eb7defa 8359 else
AzureIoTClient 28:add19eb7defa 8360 {
AzureIoTClient 28:add19eb7defa 8361 delivery_number last;
AzureIoTClient 28:add19eb7defa 8362 if (amqpvalue_get_delivery_number(item_value, &last) != 0)
AzureIoTClient 28:add19eb7defa 8363 {
AzureIoTClient 28:add19eb7defa 8364 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8365 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8366 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8367 break;
AzureIoTClient 28:add19eb7defa 8368 }
AzureIoTClient 28:add19eb7defa 8369 }
AzureIoTClient 28:add19eb7defa 8370
AzureIoTClient 28:add19eb7defa 8371 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8372 }
AzureIoTClient 28:add19eb7defa 8373 }
AzureIoTClient 28:add19eb7defa 8374 /* settled */
AzureIoTClient 28:add19eb7defa 8375 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 8376 {
AzureIoTClient 23:1111ee8bcba4 8377 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 8378 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8379 {
AzureIoTClient 28:add19eb7defa 8380 /* do nothing */
AzureIoTClient 28:add19eb7defa 8381 }
AzureIoTClient 28:add19eb7defa 8382 else
AzureIoTClient 28:add19eb7defa 8383 {
AzureIoTClient 28:add19eb7defa 8384 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8385 {
AzureIoTClient 28:add19eb7defa 8386 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8387 }
AzureIoTClient 28:add19eb7defa 8388 else
AzureIoTClient 28:add19eb7defa 8389 {
AzureIoTClient 28:add19eb7defa 8390 bool settled;
AzureIoTClient 28:add19eb7defa 8391 if (amqpvalue_get_boolean(item_value, &settled) != 0)
AzureIoTClient 28:add19eb7defa 8392 {
AzureIoTClient 28:add19eb7defa 8393 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8394 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8395 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8396 break;
AzureIoTClient 28:add19eb7defa 8397 }
AzureIoTClient 28:add19eb7defa 8398 }
AzureIoTClient 28:add19eb7defa 8399
AzureIoTClient 28:add19eb7defa 8400 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8401 }
AzureIoTClient 28:add19eb7defa 8402 }
AzureIoTClient 28:add19eb7defa 8403 /* state */
AzureIoTClient 28:add19eb7defa 8404 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 8405 {
AzureIoTClient 23:1111ee8bcba4 8406 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 8407 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8408 {
AzureIoTClient 28:add19eb7defa 8409 /* do nothing */
AzureIoTClient 28:add19eb7defa 8410 }
AzureIoTClient 28:add19eb7defa 8411 else
AzureIoTClient 28:add19eb7defa 8412 {
AzureIoTClient 28:add19eb7defa 8413 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8414 }
AzureIoTClient 28:add19eb7defa 8415 }
AzureIoTClient 28:add19eb7defa 8416 /* batchable */
AzureIoTClient 28:add19eb7defa 8417 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 8418 {
AzureIoTClient 23:1111ee8bcba4 8419 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 8420 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 8421 {
AzureIoTClient 28:add19eb7defa 8422 /* do nothing */
AzureIoTClient 28:add19eb7defa 8423 }
AzureIoTClient 28:add19eb7defa 8424 else
AzureIoTClient 28:add19eb7defa 8425 {
AzureIoTClient 28:add19eb7defa 8426 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 8427 {
AzureIoTClient 28:add19eb7defa 8428 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 8429 }
AzureIoTClient 28:add19eb7defa 8430 else
AzureIoTClient 28:add19eb7defa 8431 {
AzureIoTClient 28:add19eb7defa 8432 bool batchable;
AzureIoTClient 28:add19eb7defa 8433 if (amqpvalue_get_boolean(item_value, &batchable) != 0)
AzureIoTClient 28:add19eb7defa 8434 {
AzureIoTClient 28:add19eb7defa 8435 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8436 disposition_destroy(*disposition_handle);
AzureIoTClient 28:add19eb7defa 8437 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8438 break;
AzureIoTClient 28:add19eb7defa 8439 }
AzureIoTClient 28:add19eb7defa 8440 }
AzureIoTClient 28:add19eb7defa 8441
AzureIoTClient 28:add19eb7defa 8442 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 8443 }
AzureIoTClient 28:add19eb7defa 8444 }
AzureIoTClient 28:add19eb7defa 8445
AzureIoTClient 28:add19eb7defa 8446 disposition_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 8447
AzureIoTClient 28:add19eb7defa 8448 result = 0;
AzureIoTClient 28:add19eb7defa 8449 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 8450 }
AzureIoTClient 28:add19eb7defa 8451 }
AzureIoTClient 28:add19eb7defa 8452 }
AzureIoTClient 28:add19eb7defa 8453
AzureIoTClient 28:add19eb7defa 8454 return result;
Azure.IoT Build 0:6ae2f7bca550 8455 }
Azure.IoT Build 0:6ae2f7bca550 8456
Azure.IoT Build 0:6ae2f7bca550 8457 int disposition_get_role(DISPOSITION_HANDLE disposition, role* role_value)
Azure.IoT Build 0:6ae2f7bca550 8458 {
AzureIoTClient 28:add19eb7defa 8459 int result;
AzureIoTClient 28:add19eb7defa 8460
AzureIoTClient 28:add19eb7defa 8461 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8462 {
AzureIoTClient 28:add19eb7defa 8463 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8464 }
AzureIoTClient 28:add19eb7defa 8465 else
AzureIoTClient 28:add19eb7defa 8466 {
AzureIoTClient 28:add19eb7defa 8467 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8468 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8469 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8470 {
AzureIoTClient 23:1111ee8bcba4 8471 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8472 }
AzureIoTClient 23:1111ee8bcba4 8473 else
AzureIoTClient 23:1111ee8bcba4 8474 {
AzureIoTClient 23:1111ee8bcba4 8475 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 8476 {
AzureIoTClient 28:add19eb7defa 8477 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8478 }
AzureIoTClient 28:add19eb7defa 8479 else
AzureIoTClient 28:add19eb7defa 8480 {
AzureIoTClient 28:add19eb7defa 8481 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 8482 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8483 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8484 {
AzureIoTClient 28:add19eb7defa 8485 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8486 }
AzureIoTClient 28:add19eb7defa 8487 else
AzureIoTClient 28:add19eb7defa 8488 {
AzureIoTClient 28:add19eb7defa 8489 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8490 if ((get_single_value_result = amqpvalue_get_role(item_value, role_value)) != 0)
AzureIoTClient 28:add19eb7defa 8491 {
AzureIoTClient 28:add19eb7defa 8492 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8493 }
AzureIoTClient 28:add19eb7defa 8494 else
AzureIoTClient 28:add19eb7defa 8495 {
AzureIoTClient 28:add19eb7defa 8496 result = 0;
AzureIoTClient 28:add19eb7defa 8497 }
AzureIoTClient 28:add19eb7defa 8498 }
AzureIoTClient 28:add19eb7defa 8499 }
AzureIoTClient 28:add19eb7defa 8500 }
AzureIoTClient 28:add19eb7defa 8501 }
AzureIoTClient 28:add19eb7defa 8502
AzureIoTClient 28:add19eb7defa 8503 return result;
Azure.IoT Build 0:6ae2f7bca550 8504 }
Azure.IoT Build 0:6ae2f7bca550 8505
Azure.IoT Build 0:6ae2f7bca550 8506 int disposition_set_role(DISPOSITION_HANDLE disposition, role role_value)
Azure.IoT Build 0:6ae2f7bca550 8507 {
AzureIoTClient 28:add19eb7defa 8508 int result;
AzureIoTClient 28:add19eb7defa 8509
AzureIoTClient 28:add19eb7defa 8510 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8511 {
AzureIoTClient 28:add19eb7defa 8512 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8513 }
AzureIoTClient 28:add19eb7defa 8514 else
AzureIoTClient 28:add19eb7defa 8515 {
AzureIoTClient 28:add19eb7defa 8516 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8517 AMQP_VALUE role_amqp_value = amqpvalue_create_role(role_value);
AzureIoTClient 28:add19eb7defa 8518 if (role_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8519 {
AzureIoTClient 28:add19eb7defa 8520 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8521 }
AzureIoTClient 28:add19eb7defa 8522 else
AzureIoTClient 28:add19eb7defa 8523 {
AzureIoTClient 28:add19eb7defa 8524 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 0, role_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8525 {
AzureIoTClient 28:add19eb7defa 8526 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8527 }
AzureIoTClient 28:add19eb7defa 8528 else
AzureIoTClient 28:add19eb7defa 8529 {
AzureIoTClient 28:add19eb7defa 8530 result = 0;
AzureIoTClient 28:add19eb7defa 8531 }
AzureIoTClient 28:add19eb7defa 8532
AzureIoTClient 28:add19eb7defa 8533 amqpvalue_destroy(role_amqp_value);
AzureIoTClient 28:add19eb7defa 8534 }
AzureIoTClient 28:add19eb7defa 8535 }
AzureIoTClient 28:add19eb7defa 8536
AzureIoTClient 28:add19eb7defa 8537 return result;
Azure.IoT Build 0:6ae2f7bca550 8538 }
Azure.IoT Build 0:6ae2f7bca550 8539
Azure.IoT Build 0:6ae2f7bca550 8540 int disposition_get_first(DISPOSITION_HANDLE disposition, delivery_number* first_value)
Azure.IoT Build 0:6ae2f7bca550 8541 {
AzureIoTClient 28:add19eb7defa 8542 int result;
AzureIoTClient 28:add19eb7defa 8543
AzureIoTClient 28:add19eb7defa 8544 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8545 {
AzureIoTClient 28:add19eb7defa 8546 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8547 }
AzureIoTClient 28:add19eb7defa 8548 else
AzureIoTClient 28:add19eb7defa 8549 {
AzureIoTClient 28:add19eb7defa 8550 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8551 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8552 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8553 {
AzureIoTClient 23:1111ee8bcba4 8554 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8555 }
AzureIoTClient 23:1111ee8bcba4 8556 else
AzureIoTClient 23:1111ee8bcba4 8557 {
AzureIoTClient 23:1111ee8bcba4 8558 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 8559 {
AzureIoTClient 28:add19eb7defa 8560 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8561 }
AzureIoTClient 28:add19eb7defa 8562 else
AzureIoTClient 28:add19eb7defa 8563 {
AzureIoTClient 28:add19eb7defa 8564 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 8565 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8566 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8567 {
AzureIoTClient 28:add19eb7defa 8568 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8569 }
AzureIoTClient 28:add19eb7defa 8570 else
AzureIoTClient 28:add19eb7defa 8571 {
AzureIoTClient 28:add19eb7defa 8572 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8573 if ((get_single_value_result = amqpvalue_get_delivery_number(item_value, first_value)) != 0)
AzureIoTClient 28:add19eb7defa 8574 {
AzureIoTClient 28:add19eb7defa 8575 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8576 }
AzureIoTClient 28:add19eb7defa 8577 else
AzureIoTClient 28:add19eb7defa 8578 {
AzureIoTClient 28:add19eb7defa 8579 result = 0;
AzureIoTClient 28:add19eb7defa 8580 }
AzureIoTClient 28:add19eb7defa 8581 }
AzureIoTClient 28:add19eb7defa 8582 }
AzureIoTClient 28:add19eb7defa 8583 }
AzureIoTClient 28:add19eb7defa 8584 }
AzureIoTClient 28:add19eb7defa 8585
AzureIoTClient 28:add19eb7defa 8586 return result;
Azure.IoT Build 0:6ae2f7bca550 8587 }
Azure.IoT Build 0:6ae2f7bca550 8588
Azure.IoT Build 0:6ae2f7bca550 8589 int disposition_set_first(DISPOSITION_HANDLE disposition, delivery_number first_value)
Azure.IoT Build 0:6ae2f7bca550 8590 {
AzureIoTClient 28:add19eb7defa 8591 int result;
AzureIoTClient 28:add19eb7defa 8592
AzureIoTClient 28:add19eb7defa 8593 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8594 {
AzureIoTClient 28:add19eb7defa 8595 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8596 }
AzureIoTClient 28:add19eb7defa 8597 else
AzureIoTClient 28:add19eb7defa 8598 {
AzureIoTClient 28:add19eb7defa 8599 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8600 AMQP_VALUE first_amqp_value = amqpvalue_create_delivery_number(first_value);
AzureIoTClient 28:add19eb7defa 8601 if (first_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8602 {
AzureIoTClient 28:add19eb7defa 8603 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8604 }
AzureIoTClient 28:add19eb7defa 8605 else
AzureIoTClient 28:add19eb7defa 8606 {
AzureIoTClient 28:add19eb7defa 8607 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 1, first_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8608 {
AzureIoTClient 28:add19eb7defa 8609 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8610 }
AzureIoTClient 28:add19eb7defa 8611 else
AzureIoTClient 28:add19eb7defa 8612 {
AzureIoTClient 28:add19eb7defa 8613 result = 0;
AzureIoTClient 28:add19eb7defa 8614 }
AzureIoTClient 28:add19eb7defa 8615
AzureIoTClient 28:add19eb7defa 8616 amqpvalue_destroy(first_amqp_value);
AzureIoTClient 28:add19eb7defa 8617 }
AzureIoTClient 28:add19eb7defa 8618 }
AzureIoTClient 28:add19eb7defa 8619
AzureIoTClient 28:add19eb7defa 8620 return result;
Azure.IoT Build 0:6ae2f7bca550 8621 }
Azure.IoT Build 0:6ae2f7bca550 8622
Azure.IoT Build 0:6ae2f7bca550 8623 int disposition_get_last(DISPOSITION_HANDLE disposition, delivery_number* last_value)
Azure.IoT Build 0:6ae2f7bca550 8624 {
AzureIoTClient 28:add19eb7defa 8625 int result;
AzureIoTClient 28:add19eb7defa 8626
AzureIoTClient 28:add19eb7defa 8627 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8628 {
AzureIoTClient 28:add19eb7defa 8629 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8630 }
AzureIoTClient 28:add19eb7defa 8631 else
AzureIoTClient 28:add19eb7defa 8632 {
AzureIoTClient 28:add19eb7defa 8633 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8634 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8635 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8636 {
AzureIoTClient 23:1111ee8bcba4 8637 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8638 }
AzureIoTClient 23:1111ee8bcba4 8639 else
AzureIoTClient 23:1111ee8bcba4 8640 {
AzureIoTClient 23:1111ee8bcba4 8641 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 8642 {
AzureIoTClient 28:add19eb7defa 8643 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8644 }
AzureIoTClient 28:add19eb7defa 8645 else
AzureIoTClient 28:add19eb7defa 8646 {
AzureIoTClient 28:add19eb7defa 8647 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 8648 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8649 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8650 {
AzureIoTClient 28:add19eb7defa 8651 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8652 }
AzureIoTClient 28:add19eb7defa 8653 else
AzureIoTClient 28:add19eb7defa 8654 {
AzureIoTClient 28:add19eb7defa 8655 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8656 if ((get_single_value_result = amqpvalue_get_delivery_number(item_value, last_value)) != 0)
AzureIoTClient 28:add19eb7defa 8657 {
AzureIoTClient 28:add19eb7defa 8658 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8659 }
AzureIoTClient 28:add19eb7defa 8660 else
AzureIoTClient 28:add19eb7defa 8661 {
AzureIoTClient 28:add19eb7defa 8662 result = 0;
AzureIoTClient 28:add19eb7defa 8663 }
AzureIoTClient 28:add19eb7defa 8664 }
AzureIoTClient 28:add19eb7defa 8665 }
AzureIoTClient 28:add19eb7defa 8666 }
AzureIoTClient 28:add19eb7defa 8667 }
AzureIoTClient 28:add19eb7defa 8668
AzureIoTClient 28:add19eb7defa 8669 return result;
Azure.IoT Build 0:6ae2f7bca550 8670 }
Azure.IoT Build 0:6ae2f7bca550 8671
Azure.IoT Build 0:6ae2f7bca550 8672 int disposition_set_last(DISPOSITION_HANDLE disposition, delivery_number last_value)
Azure.IoT Build 0:6ae2f7bca550 8673 {
AzureIoTClient 28:add19eb7defa 8674 int result;
AzureIoTClient 28:add19eb7defa 8675
AzureIoTClient 28:add19eb7defa 8676 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8677 {
AzureIoTClient 28:add19eb7defa 8678 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8679 }
AzureIoTClient 28:add19eb7defa 8680 else
AzureIoTClient 28:add19eb7defa 8681 {
AzureIoTClient 28:add19eb7defa 8682 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8683 AMQP_VALUE last_amqp_value = amqpvalue_create_delivery_number(last_value);
AzureIoTClient 28:add19eb7defa 8684 if (last_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8685 {
AzureIoTClient 28:add19eb7defa 8686 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8687 }
AzureIoTClient 28:add19eb7defa 8688 else
AzureIoTClient 28:add19eb7defa 8689 {
AzureIoTClient 28:add19eb7defa 8690 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 2, last_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8691 {
AzureIoTClient 28:add19eb7defa 8692 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8693 }
AzureIoTClient 28:add19eb7defa 8694 else
AzureIoTClient 28:add19eb7defa 8695 {
AzureIoTClient 28:add19eb7defa 8696 result = 0;
AzureIoTClient 28:add19eb7defa 8697 }
AzureIoTClient 28:add19eb7defa 8698
AzureIoTClient 28:add19eb7defa 8699 amqpvalue_destroy(last_amqp_value);
AzureIoTClient 28:add19eb7defa 8700 }
AzureIoTClient 28:add19eb7defa 8701 }
AzureIoTClient 28:add19eb7defa 8702
AzureIoTClient 28:add19eb7defa 8703 return result;
Azure.IoT Build 0:6ae2f7bca550 8704 }
Azure.IoT Build 0:6ae2f7bca550 8705
Azure.IoT Build 0:6ae2f7bca550 8706 int disposition_get_settled(DISPOSITION_HANDLE disposition, bool* settled_value)
Azure.IoT Build 0:6ae2f7bca550 8707 {
AzureIoTClient 28:add19eb7defa 8708 int result;
AzureIoTClient 28:add19eb7defa 8709
AzureIoTClient 28:add19eb7defa 8710 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8711 {
AzureIoTClient 28:add19eb7defa 8712 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8713 }
AzureIoTClient 28:add19eb7defa 8714 else
AzureIoTClient 28:add19eb7defa 8715 {
AzureIoTClient 28:add19eb7defa 8716 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8717 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8718 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8719 {
AzureIoTClient 23:1111ee8bcba4 8720 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8721 }
AzureIoTClient 23:1111ee8bcba4 8722 else
AzureIoTClient 23:1111ee8bcba4 8723 {
AzureIoTClient 23:1111ee8bcba4 8724 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 8725 {
AzureIoTClient 28:add19eb7defa 8726 *settled_value = false;
AzureIoTClient 28:add19eb7defa 8727 result = 0;
AzureIoTClient 28:add19eb7defa 8728 }
AzureIoTClient 28:add19eb7defa 8729 else
AzureIoTClient 28:add19eb7defa 8730 {
AzureIoTClient 28:add19eb7defa 8731 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 8732 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8733 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8734 {
AzureIoTClient 28:add19eb7defa 8735 *settled_value = false;
AzureIoTClient 28:add19eb7defa 8736 result = 0;
AzureIoTClient 28:add19eb7defa 8737 }
AzureIoTClient 28:add19eb7defa 8738 else
AzureIoTClient 28:add19eb7defa 8739 {
AzureIoTClient 28:add19eb7defa 8740 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8741 if ((get_single_value_result = amqpvalue_get_boolean(item_value, settled_value)) != 0)
AzureIoTClient 28:add19eb7defa 8742 {
AzureIoTClient 23:1111ee8bcba4 8743 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8744 {
AzureIoTClient 28:add19eb7defa 8745 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8746 }
AzureIoTClient 28:add19eb7defa 8747 else
AzureIoTClient 28:add19eb7defa 8748 {
AzureIoTClient 28:add19eb7defa 8749 *settled_value = false;
AzureIoTClient 23:1111ee8bcba4 8750 result = 0;
AzureIoTClient 23:1111ee8bcba4 8751 }
AzureIoTClient 28:add19eb7defa 8752 }
AzureIoTClient 28:add19eb7defa 8753 else
AzureIoTClient 28:add19eb7defa 8754 {
AzureIoTClient 28:add19eb7defa 8755 result = 0;
AzureIoTClient 28:add19eb7defa 8756 }
AzureIoTClient 28:add19eb7defa 8757 }
AzureIoTClient 28:add19eb7defa 8758 }
AzureIoTClient 28:add19eb7defa 8759 }
AzureIoTClient 28:add19eb7defa 8760 }
AzureIoTClient 28:add19eb7defa 8761
AzureIoTClient 28:add19eb7defa 8762 return result;
Azure.IoT Build 0:6ae2f7bca550 8763 }
Azure.IoT Build 0:6ae2f7bca550 8764
Azure.IoT Build 0:6ae2f7bca550 8765 int disposition_set_settled(DISPOSITION_HANDLE disposition, bool settled_value)
Azure.IoT Build 0:6ae2f7bca550 8766 {
AzureIoTClient 28:add19eb7defa 8767 int result;
AzureIoTClient 28:add19eb7defa 8768
AzureIoTClient 28:add19eb7defa 8769 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8770 {
AzureIoTClient 28:add19eb7defa 8771 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8772 }
AzureIoTClient 28:add19eb7defa 8773 else
AzureIoTClient 28:add19eb7defa 8774 {
AzureIoTClient 28:add19eb7defa 8775 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8776 AMQP_VALUE settled_amqp_value = amqpvalue_create_boolean(settled_value);
AzureIoTClient 28:add19eb7defa 8777 if (settled_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8778 {
AzureIoTClient 28:add19eb7defa 8779 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8780 }
AzureIoTClient 28:add19eb7defa 8781 else
AzureIoTClient 28:add19eb7defa 8782 {
AzureIoTClient 28:add19eb7defa 8783 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 3, settled_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8784 {
AzureIoTClient 28:add19eb7defa 8785 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8786 }
AzureIoTClient 28:add19eb7defa 8787 else
AzureIoTClient 28:add19eb7defa 8788 {
AzureIoTClient 28:add19eb7defa 8789 result = 0;
AzureIoTClient 28:add19eb7defa 8790 }
AzureIoTClient 28:add19eb7defa 8791
AzureIoTClient 28:add19eb7defa 8792 amqpvalue_destroy(settled_amqp_value);
AzureIoTClient 28:add19eb7defa 8793 }
AzureIoTClient 28:add19eb7defa 8794 }
AzureIoTClient 28:add19eb7defa 8795
AzureIoTClient 28:add19eb7defa 8796 return result;
Azure.IoT Build 0:6ae2f7bca550 8797 }
Azure.IoT Build 0:6ae2f7bca550 8798
Azure.IoT Build 0:6ae2f7bca550 8799 int disposition_get_state(DISPOSITION_HANDLE disposition, AMQP_VALUE* state_value)
Azure.IoT Build 0:6ae2f7bca550 8800 {
AzureIoTClient 28:add19eb7defa 8801 int result;
AzureIoTClient 28:add19eb7defa 8802
AzureIoTClient 28:add19eb7defa 8803 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8804 {
AzureIoTClient 28:add19eb7defa 8805 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8806 }
AzureIoTClient 28:add19eb7defa 8807 else
AzureIoTClient 28:add19eb7defa 8808 {
AzureIoTClient 28:add19eb7defa 8809 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8810 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8811 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8812 {
AzureIoTClient 23:1111ee8bcba4 8813 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8814 }
AzureIoTClient 23:1111ee8bcba4 8815 else
AzureIoTClient 23:1111ee8bcba4 8816 {
AzureIoTClient 23:1111ee8bcba4 8817 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 8818 {
AzureIoTClient 28:add19eb7defa 8819 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8820 }
AzureIoTClient 28:add19eb7defa 8821 else
AzureIoTClient 28:add19eb7defa 8822 {
AzureIoTClient 28:add19eb7defa 8823 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 8824 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8825 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8826 {
AzureIoTClient 28:add19eb7defa 8827 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8828 }
AzureIoTClient 28:add19eb7defa 8829 else
AzureIoTClient 28:add19eb7defa 8830 {
AzureIoTClient 28:add19eb7defa 8831 *state_value = item_value;
AzureIoTClient 28:add19eb7defa 8832 result = 0;
AzureIoTClient 28:add19eb7defa 8833 }
AzureIoTClient 28:add19eb7defa 8834 }
AzureIoTClient 28:add19eb7defa 8835 }
AzureIoTClient 28:add19eb7defa 8836 }
AzureIoTClient 28:add19eb7defa 8837
AzureIoTClient 28:add19eb7defa 8838 return result;
Azure.IoT Build 0:6ae2f7bca550 8839 }
Azure.IoT Build 0:6ae2f7bca550 8840
Azure.IoT Build 0:6ae2f7bca550 8841 int disposition_set_state(DISPOSITION_HANDLE disposition, AMQP_VALUE state_value)
Azure.IoT Build 0:6ae2f7bca550 8842 {
AzureIoTClient 28:add19eb7defa 8843 int result;
AzureIoTClient 28:add19eb7defa 8844
AzureIoTClient 28:add19eb7defa 8845 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8846 {
AzureIoTClient 28:add19eb7defa 8847 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8848 }
AzureIoTClient 28:add19eb7defa 8849 else
AzureIoTClient 28:add19eb7defa 8850 {
AzureIoTClient 28:add19eb7defa 8851 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8852 AMQP_VALUE state_amqp_value;
AzureIoTClient 23:1111ee8bcba4 8853 if (state_value == NULL)
AzureIoTClient 23:1111ee8bcba4 8854 {
AzureIoTClient 23:1111ee8bcba4 8855 state_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 8856 }
AzureIoTClient 23:1111ee8bcba4 8857 else
AzureIoTClient 23:1111ee8bcba4 8858 {
AzureIoTClient 23:1111ee8bcba4 8859 state_amqp_value = amqpvalue_clone(state_value);
AzureIoTClient 23:1111ee8bcba4 8860 }
AzureIoTClient 28:add19eb7defa 8861 if (state_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8862 {
AzureIoTClient 28:add19eb7defa 8863 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8864 }
AzureIoTClient 28:add19eb7defa 8865 else
AzureIoTClient 28:add19eb7defa 8866 {
AzureIoTClient 28:add19eb7defa 8867 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 4, state_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8868 {
AzureIoTClient 28:add19eb7defa 8869 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8870 }
AzureIoTClient 28:add19eb7defa 8871 else
AzureIoTClient 28:add19eb7defa 8872 {
AzureIoTClient 28:add19eb7defa 8873 result = 0;
AzureIoTClient 28:add19eb7defa 8874 }
AzureIoTClient 28:add19eb7defa 8875
AzureIoTClient 28:add19eb7defa 8876 amqpvalue_destroy(state_amqp_value);
AzureIoTClient 28:add19eb7defa 8877 }
AzureIoTClient 28:add19eb7defa 8878 }
AzureIoTClient 28:add19eb7defa 8879
AzureIoTClient 28:add19eb7defa 8880 return result;
Azure.IoT Build 0:6ae2f7bca550 8881 }
Azure.IoT Build 0:6ae2f7bca550 8882
Azure.IoT Build 0:6ae2f7bca550 8883 int disposition_get_batchable(DISPOSITION_HANDLE disposition, bool* batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8884 {
AzureIoTClient 28:add19eb7defa 8885 int result;
AzureIoTClient 28:add19eb7defa 8886
AzureIoTClient 28:add19eb7defa 8887 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8888 {
AzureIoTClient 28:add19eb7defa 8889 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8890 }
AzureIoTClient 28:add19eb7defa 8891 else
AzureIoTClient 28:add19eb7defa 8892 {
AzureIoTClient 28:add19eb7defa 8893 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 8894 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 23:1111ee8bcba4 8895 if (amqpvalue_get_composite_item_count(disposition_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 8896 {
AzureIoTClient 23:1111ee8bcba4 8897 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 8898 }
AzureIoTClient 23:1111ee8bcba4 8899 else
AzureIoTClient 23:1111ee8bcba4 8900 {
AzureIoTClient 23:1111ee8bcba4 8901 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 8902 {
AzureIoTClient 28:add19eb7defa 8903 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8904 result = 0;
AzureIoTClient 28:add19eb7defa 8905 }
AzureIoTClient 28:add19eb7defa 8906 else
AzureIoTClient 28:add19eb7defa 8907 {
AzureIoTClient 28:add19eb7defa 8908 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 8909 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 8910 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 8911 {
AzureIoTClient 28:add19eb7defa 8912 *batchable_value = false;
AzureIoTClient 28:add19eb7defa 8913 result = 0;
AzureIoTClient 28:add19eb7defa 8914 }
AzureIoTClient 28:add19eb7defa 8915 else
AzureIoTClient 28:add19eb7defa 8916 {
AzureIoTClient 28:add19eb7defa 8917 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 8918 if ((get_single_value_result = amqpvalue_get_boolean(item_value, batchable_value)) != 0)
AzureIoTClient 28:add19eb7defa 8919 {
AzureIoTClient 23:1111ee8bcba4 8920 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 8921 {
AzureIoTClient 28:add19eb7defa 8922 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8923 }
AzureIoTClient 28:add19eb7defa 8924 else
AzureIoTClient 28:add19eb7defa 8925 {
AzureIoTClient 28:add19eb7defa 8926 *batchable_value = false;
AzureIoTClient 23:1111ee8bcba4 8927 result = 0;
AzureIoTClient 23:1111ee8bcba4 8928 }
AzureIoTClient 28:add19eb7defa 8929 }
AzureIoTClient 28:add19eb7defa 8930 else
AzureIoTClient 28:add19eb7defa 8931 {
AzureIoTClient 28:add19eb7defa 8932 result = 0;
AzureIoTClient 28:add19eb7defa 8933 }
AzureIoTClient 28:add19eb7defa 8934 }
AzureIoTClient 28:add19eb7defa 8935 }
AzureIoTClient 28:add19eb7defa 8936 }
AzureIoTClient 28:add19eb7defa 8937 }
AzureIoTClient 28:add19eb7defa 8938
AzureIoTClient 28:add19eb7defa 8939 return result;
Azure.IoT Build 0:6ae2f7bca550 8940 }
Azure.IoT Build 0:6ae2f7bca550 8941
Azure.IoT Build 0:6ae2f7bca550 8942 int disposition_set_batchable(DISPOSITION_HANDLE disposition, bool batchable_value)
Azure.IoT Build 0:6ae2f7bca550 8943 {
AzureIoTClient 28:add19eb7defa 8944 int result;
AzureIoTClient 28:add19eb7defa 8945
AzureIoTClient 28:add19eb7defa 8946 if (disposition == NULL)
AzureIoTClient 28:add19eb7defa 8947 {
AzureIoTClient 28:add19eb7defa 8948 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8949 }
AzureIoTClient 28:add19eb7defa 8950 else
AzureIoTClient 28:add19eb7defa 8951 {
AzureIoTClient 28:add19eb7defa 8952 DISPOSITION_INSTANCE* disposition_instance = (DISPOSITION_INSTANCE*)disposition;
AzureIoTClient 28:add19eb7defa 8953 AMQP_VALUE batchable_amqp_value = amqpvalue_create_boolean(batchable_value);
AzureIoTClient 28:add19eb7defa 8954 if (batchable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 8955 {
AzureIoTClient 28:add19eb7defa 8956 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8957 }
AzureIoTClient 28:add19eb7defa 8958 else
AzureIoTClient 28:add19eb7defa 8959 {
AzureIoTClient 28:add19eb7defa 8960 if (amqpvalue_set_composite_item(disposition_instance->composite_value, 5, batchable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 8961 {
AzureIoTClient 28:add19eb7defa 8962 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 8963 }
AzureIoTClient 28:add19eb7defa 8964 else
AzureIoTClient 28:add19eb7defa 8965 {
AzureIoTClient 28:add19eb7defa 8966 result = 0;
AzureIoTClient 28:add19eb7defa 8967 }
AzureIoTClient 28:add19eb7defa 8968
AzureIoTClient 28:add19eb7defa 8969 amqpvalue_destroy(batchable_amqp_value);
AzureIoTClient 28:add19eb7defa 8970 }
AzureIoTClient 28:add19eb7defa 8971 }
AzureIoTClient 28:add19eb7defa 8972
AzureIoTClient 28:add19eb7defa 8973 return result;
Azure.IoT Build 0:6ae2f7bca550 8974 }
Azure.IoT Build 0:6ae2f7bca550 8975
Azure.IoT Build 0:6ae2f7bca550 8976
Azure.IoT Build 0:6ae2f7bca550 8977 /* detach */
Azure.IoT Build 0:6ae2f7bca550 8978
Azure.IoT Build 0:6ae2f7bca550 8979 typedef struct DETACH_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 8980 {
AzureIoTClient 28:add19eb7defa 8981 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 8982 } DETACH_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 8983
Azure.IoT Build 0:6ae2f7bca550 8984 static DETACH_HANDLE detach_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 8985 {
AzureIoTClient 28:add19eb7defa 8986 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 8987 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 8988 {
AzureIoTClient 28:add19eb7defa 8989 detach_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 8990 }
AzureIoTClient 28:add19eb7defa 8991
AzureIoTClient 28:add19eb7defa 8992 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 8993 }
Azure.IoT Build 0:6ae2f7bca550 8994
Azure.IoT Build 0:6ae2f7bca550 8995 DETACH_HANDLE detach_create(handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 8996 {
AzureIoTClient 28:add19eb7defa 8997 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 8998 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 8999 {
AzureIoTClient 28:add19eb7defa 9000 detach_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(22);
AzureIoTClient 28:add19eb7defa 9001 if (detach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9002 {
AzureIoTClient 28:add19eb7defa 9003 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9004 detach_instance = NULL;
AzureIoTClient 28:add19eb7defa 9005 }
AzureIoTClient 28:add19eb7defa 9006 else
AzureIoTClient 28:add19eb7defa 9007 {
AzureIoTClient 28:add19eb7defa 9008 AMQP_VALUE handle_amqp_value;
AzureIoTClient 28:add19eb7defa 9009 int result = 0;
AzureIoTClient 28:add19eb7defa 9010
AzureIoTClient 28:add19eb7defa 9011 handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 9012 if ((result == 0) && (amqpvalue_set_composite_item(detach_instance->composite_value, 0, handle_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 9013 {
AzureIoTClient 28:add19eb7defa 9014 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9015 }
AzureIoTClient 28:add19eb7defa 9016
AzureIoTClient 28:add19eb7defa 9017 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 9018 }
AzureIoTClient 28:add19eb7defa 9019 }
AzureIoTClient 28:add19eb7defa 9020
AzureIoTClient 28:add19eb7defa 9021 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 9022 }
Azure.IoT Build 0:6ae2f7bca550 9023
Azure.IoT Build 0:6ae2f7bca550 9024 DETACH_HANDLE detach_clone(DETACH_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9025 {
AzureIoTClient 28:add19eb7defa 9026 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)malloc(sizeof(DETACH_INSTANCE));
AzureIoTClient 28:add19eb7defa 9027 if (detach_instance != NULL)
AzureIoTClient 28:add19eb7defa 9028 {
AzureIoTClient 28:add19eb7defa 9029 detach_instance->composite_value = amqpvalue_clone(((DETACH_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9030 if (detach_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9031 {
AzureIoTClient 28:add19eb7defa 9032 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9033 detach_instance = NULL;
AzureIoTClient 28:add19eb7defa 9034 }
AzureIoTClient 28:add19eb7defa 9035 }
AzureIoTClient 28:add19eb7defa 9036
AzureIoTClient 28:add19eb7defa 9037 return detach_instance;
Azure.IoT Build 0:6ae2f7bca550 9038 }
Azure.IoT Build 0:6ae2f7bca550 9039
Azure.IoT Build 0:6ae2f7bca550 9040 void detach_destroy(DETACH_HANDLE detach)
Azure.IoT Build 0:6ae2f7bca550 9041 {
AzureIoTClient 28:add19eb7defa 9042 if (detach != NULL)
AzureIoTClient 28:add19eb7defa 9043 {
AzureIoTClient 28:add19eb7defa 9044 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9045 amqpvalue_destroy(detach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9046 free(detach_instance);
AzureIoTClient 28:add19eb7defa 9047 }
Azure.IoT Build 0:6ae2f7bca550 9048 }
Azure.IoT Build 0:6ae2f7bca550 9049
Azure.IoT Build 0:6ae2f7bca550 9050 AMQP_VALUE amqpvalue_create_detach(DETACH_HANDLE detach)
Azure.IoT Build 0:6ae2f7bca550 9051 {
AzureIoTClient 28:add19eb7defa 9052 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9053
AzureIoTClient 28:add19eb7defa 9054 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9055 {
AzureIoTClient 28:add19eb7defa 9056 result = NULL;
AzureIoTClient 28:add19eb7defa 9057 }
AzureIoTClient 28:add19eb7defa 9058 else
AzureIoTClient 28:add19eb7defa 9059 {
AzureIoTClient 28:add19eb7defa 9060 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9061 result = amqpvalue_clone(detach_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9062 }
AzureIoTClient 28:add19eb7defa 9063
AzureIoTClient 28:add19eb7defa 9064 return result;
Azure.IoT Build 0:6ae2f7bca550 9065 }
Azure.IoT Build 0:6ae2f7bca550 9066
Azure.IoT Build 0:6ae2f7bca550 9067 bool is_detach_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9068 {
AzureIoTClient 28:add19eb7defa 9069 bool result;
AzureIoTClient 28:add19eb7defa 9070
AzureIoTClient 28:add19eb7defa 9071 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9072 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9073 (descriptor_ulong == 22))
AzureIoTClient 28:add19eb7defa 9074 {
AzureIoTClient 28:add19eb7defa 9075 result = true;
AzureIoTClient 28:add19eb7defa 9076 }
AzureIoTClient 28:add19eb7defa 9077 else
AzureIoTClient 28:add19eb7defa 9078 {
AzureIoTClient 28:add19eb7defa 9079 result = false;
AzureIoTClient 28:add19eb7defa 9080 }
AzureIoTClient 28:add19eb7defa 9081
AzureIoTClient 28:add19eb7defa 9082 return result;
Azure.IoT Build 0:6ae2f7bca550 9083 }
Azure.IoT Build 0:6ae2f7bca550 9084
Azure.IoT Build 0:6ae2f7bca550 9085
Azure.IoT Build 0:6ae2f7bca550 9086 int amqpvalue_get_detach(AMQP_VALUE value, DETACH_HANDLE* detach_handle)
Azure.IoT Build 0:6ae2f7bca550 9087 {
AzureIoTClient 28:add19eb7defa 9088 int result;
AzureIoTClient 28:add19eb7defa 9089 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach_create_internal();
AzureIoTClient 28:add19eb7defa 9090 *detach_handle = detach_instance;
AzureIoTClient 28:add19eb7defa 9091 if (*detach_handle == NULL)
AzureIoTClient 28:add19eb7defa 9092 {
AzureIoTClient 28:add19eb7defa 9093 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9094 }
AzureIoTClient 28:add19eb7defa 9095 else
AzureIoTClient 28:add19eb7defa 9096 {
AzureIoTClient 28:add19eb7defa 9097 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9098 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9099 {
AzureIoTClient 28:add19eb7defa 9100 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9101 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9102 }
AzureIoTClient 28:add19eb7defa 9103 else
AzureIoTClient 28:add19eb7defa 9104 {
AzureIoTClient 23:1111ee8bcba4 9105 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9106 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9107 {
AzureIoTClient 23:1111ee8bcba4 9108 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9109 }
AzureIoTClient 23:1111ee8bcba4 9110 else
AzureIoTClient 23:1111ee8bcba4 9111 {
AzureIoTClient 28:add19eb7defa 9112 do
AzureIoTClient 28:add19eb7defa 9113 {
AzureIoTClient 28:add19eb7defa 9114 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9115 /* handle */
AzureIoTClient 28:add19eb7defa 9116 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9117 {
AzureIoTClient 23:1111ee8bcba4 9118 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9119 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9120 {
AzureIoTClient 28:add19eb7defa 9121 {
AzureIoTClient 28:add19eb7defa 9122 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9123 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9124 break;
AzureIoTClient 28:add19eb7defa 9125 }
AzureIoTClient 28:add19eb7defa 9126 }
AzureIoTClient 28:add19eb7defa 9127 else
AzureIoTClient 28:add19eb7defa 9128 {
AzureIoTClient 28:add19eb7defa 9129 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9130 {
AzureIoTClient 28:add19eb7defa 9131 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9132 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9133 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9134 break;
AzureIoTClient 28:add19eb7defa 9135 }
AzureIoTClient 28:add19eb7defa 9136 else
AzureIoTClient 28:add19eb7defa 9137 {
AzureIoTClient 28:add19eb7defa 9138 handle handle;
AzureIoTClient 28:add19eb7defa 9139 if (amqpvalue_get_handle(item_value, &handle) != 0)
AzureIoTClient 28:add19eb7defa 9140 {
AzureIoTClient 28:add19eb7defa 9141 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9142 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9143 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9144 break;
AzureIoTClient 28:add19eb7defa 9145 }
AzureIoTClient 28:add19eb7defa 9146 }
AzureIoTClient 28:add19eb7defa 9147
AzureIoTClient 28:add19eb7defa 9148 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9149 }
AzureIoTClient 28:add19eb7defa 9150 }
AzureIoTClient 28:add19eb7defa 9151 else
AzureIoTClient 28:add19eb7defa 9152 {
AzureIoTClient 28:add19eb7defa 9153 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9154 }
AzureIoTClient 28:add19eb7defa 9155 /* closed */
AzureIoTClient 28:add19eb7defa 9156 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 9157 {
AzureIoTClient 23:1111ee8bcba4 9158 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 9159 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9160 {
AzureIoTClient 28:add19eb7defa 9161 /* do nothing */
AzureIoTClient 28:add19eb7defa 9162 }
AzureIoTClient 28:add19eb7defa 9163 else
AzureIoTClient 28:add19eb7defa 9164 {
AzureIoTClient 28:add19eb7defa 9165 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9166 {
AzureIoTClient 28:add19eb7defa 9167 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9168 }
AzureIoTClient 28:add19eb7defa 9169 else
AzureIoTClient 28:add19eb7defa 9170 {
AzureIoTClient 28:add19eb7defa 9171 bool closed;
AzureIoTClient 28:add19eb7defa 9172 if (amqpvalue_get_boolean(item_value, &closed) != 0)
AzureIoTClient 28:add19eb7defa 9173 {
AzureIoTClient 28:add19eb7defa 9174 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9175 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9176 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9177 break;
AzureIoTClient 28:add19eb7defa 9178 }
AzureIoTClient 28:add19eb7defa 9179 }
AzureIoTClient 28:add19eb7defa 9180
AzureIoTClient 28:add19eb7defa 9181 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9182 }
AzureIoTClient 28:add19eb7defa 9183 }
AzureIoTClient 28:add19eb7defa 9184 /* error */
AzureIoTClient 28:add19eb7defa 9185 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 9186 {
AzureIoTClient 23:1111ee8bcba4 9187 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 9188 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9189 {
AzureIoTClient 28:add19eb7defa 9190 /* do nothing */
AzureIoTClient 28:add19eb7defa 9191 }
AzureIoTClient 28:add19eb7defa 9192 else
AzureIoTClient 28:add19eb7defa 9193 {
AzureIoTClient 28:add19eb7defa 9194 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9195 {
AzureIoTClient 28:add19eb7defa 9196 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9197 }
AzureIoTClient 28:add19eb7defa 9198 else
AzureIoTClient 28:add19eb7defa 9199 {
AzureIoTClient 28:add19eb7defa 9200 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9201 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9202 {
AzureIoTClient 28:add19eb7defa 9203 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9204 detach_destroy(*detach_handle);
AzureIoTClient 28:add19eb7defa 9205 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9206 break;
AzureIoTClient 28:add19eb7defa 9207 }
AzureIoTClient 25:1101516ee67d 9208 else
AzureIoTClient 25:1101516ee67d 9209 {
AzureIoTClient 28:add19eb7defa 9210 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9211 }
AzureIoTClient 28:add19eb7defa 9212 }
AzureIoTClient 28:add19eb7defa 9213
AzureIoTClient 28:add19eb7defa 9214 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9215 }
AzureIoTClient 28:add19eb7defa 9216 }
AzureIoTClient 28:add19eb7defa 9217
AzureIoTClient 28:add19eb7defa 9218 detach_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9219
AzureIoTClient 28:add19eb7defa 9220 result = 0;
AzureIoTClient 28:add19eb7defa 9221 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9222 }
AzureIoTClient 28:add19eb7defa 9223 }
AzureIoTClient 28:add19eb7defa 9224 }
AzureIoTClient 28:add19eb7defa 9225
AzureIoTClient 28:add19eb7defa 9226 return result;
Azure.IoT Build 0:6ae2f7bca550 9227 }
Azure.IoT Build 0:6ae2f7bca550 9228
Azure.IoT Build 0:6ae2f7bca550 9229 int detach_get_handle(DETACH_HANDLE detach, handle* handle_value)
Azure.IoT Build 0:6ae2f7bca550 9230 {
AzureIoTClient 28:add19eb7defa 9231 int result;
AzureIoTClient 28:add19eb7defa 9232
AzureIoTClient 28:add19eb7defa 9233 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9234 {
AzureIoTClient 28:add19eb7defa 9235 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9236 }
AzureIoTClient 28:add19eb7defa 9237 else
AzureIoTClient 28:add19eb7defa 9238 {
AzureIoTClient 28:add19eb7defa 9239 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9240 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9241 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9242 {
AzureIoTClient 23:1111ee8bcba4 9243 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9244 }
AzureIoTClient 23:1111ee8bcba4 9245 else
AzureIoTClient 23:1111ee8bcba4 9246 {
AzureIoTClient 23:1111ee8bcba4 9247 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9248 {
AzureIoTClient 28:add19eb7defa 9249 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9250 }
AzureIoTClient 28:add19eb7defa 9251 else
AzureIoTClient 28:add19eb7defa 9252 {
AzureIoTClient 28:add19eb7defa 9253 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 9254 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9255 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9256 {
AzureIoTClient 28:add19eb7defa 9257 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9258 }
AzureIoTClient 28:add19eb7defa 9259 else
AzureIoTClient 28:add19eb7defa 9260 {
AzureIoTClient 28:add19eb7defa 9261 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9262 if ((get_single_value_result = amqpvalue_get_handle(item_value, handle_value)) != 0)
AzureIoTClient 28:add19eb7defa 9263 {
AzureIoTClient 28:add19eb7defa 9264 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9265 }
AzureIoTClient 28:add19eb7defa 9266 else
AzureIoTClient 28:add19eb7defa 9267 {
AzureIoTClient 28:add19eb7defa 9268 result = 0;
AzureIoTClient 28:add19eb7defa 9269 }
AzureIoTClient 28:add19eb7defa 9270 }
AzureIoTClient 28:add19eb7defa 9271 }
AzureIoTClient 28:add19eb7defa 9272 }
AzureIoTClient 28:add19eb7defa 9273 }
AzureIoTClient 28:add19eb7defa 9274
AzureIoTClient 28:add19eb7defa 9275 return result;
Azure.IoT Build 0:6ae2f7bca550 9276 }
Azure.IoT Build 0:6ae2f7bca550 9277
Azure.IoT Build 0:6ae2f7bca550 9278 int detach_set_handle(DETACH_HANDLE detach, handle handle_value)
Azure.IoT Build 0:6ae2f7bca550 9279 {
AzureIoTClient 28:add19eb7defa 9280 int result;
AzureIoTClient 28:add19eb7defa 9281
AzureIoTClient 28:add19eb7defa 9282 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9283 {
AzureIoTClient 28:add19eb7defa 9284 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9285 }
AzureIoTClient 28:add19eb7defa 9286 else
AzureIoTClient 28:add19eb7defa 9287 {
AzureIoTClient 28:add19eb7defa 9288 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9289 AMQP_VALUE handle_amqp_value = amqpvalue_create_handle(handle_value);
AzureIoTClient 28:add19eb7defa 9290 if (handle_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9291 {
AzureIoTClient 28:add19eb7defa 9292 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9293 }
AzureIoTClient 28:add19eb7defa 9294 else
AzureIoTClient 28:add19eb7defa 9295 {
AzureIoTClient 28:add19eb7defa 9296 if (amqpvalue_set_composite_item(detach_instance->composite_value, 0, handle_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9297 {
AzureIoTClient 28:add19eb7defa 9298 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9299 }
AzureIoTClient 28:add19eb7defa 9300 else
AzureIoTClient 28:add19eb7defa 9301 {
AzureIoTClient 28:add19eb7defa 9302 result = 0;
AzureIoTClient 28:add19eb7defa 9303 }
AzureIoTClient 28:add19eb7defa 9304
AzureIoTClient 28:add19eb7defa 9305 amqpvalue_destroy(handle_amqp_value);
AzureIoTClient 28:add19eb7defa 9306 }
AzureIoTClient 28:add19eb7defa 9307 }
AzureIoTClient 28:add19eb7defa 9308
AzureIoTClient 28:add19eb7defa 9309 return result;
Azure.IoT Build 0:6ae2f7bca550 9310 }
Azure.IoT Build 0:6ae2f7bca550 9311
Azure.IoT Build 0:6ae2f7bca550 9312 int detach_get_closed(DETACH_HANDLE detach, bool* closed_value)
Azure.IoT Build 0:6ae2f7bca550 9313 {
AzureIoTClient 28:add19eb7defa 9314 int result;
AzureIoTClient 28:add19eb7defa 9315
AzureIoTClient 28:add19eb7defa 9316 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9317 {
AzureIoTClient 28:add19eb7defa 9318 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9319 }
AzureIoTClient 28:add19eb7defa 9320 else
AzureIoTClient 28:add19eb7defa 9321 {
AzureIoTClient 28:add19eb7defa 9322 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9323 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9324 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9325 {
AzureIoTClient 23:1111ee8bcba4 9326 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9327 }
AzureIoTClient 23:1111ee8bcba4 9328 else
AzureIoTClient 23:1111ee8bcba4 9329 {
AzureIoTClient 23:1111ee8bcba4 9330 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 9331 {
AzureIoTClient 28:add19eb7defa 9332 *closed_value = false;
AzureIoTClient 28:add19eb7defa 9333 result = 0;
AzureIoTClient 28:add19eb7defa 9334 }
AzureIoTClient 28:add19eb7defa 9335 else
AzureIoTClient 28:add19eb7defa 9336 {
AzureIoTClient 28:add19eb7defa 9337 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 9338 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9339 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9340 {
AzureIoTClient 28:add19eb7defa 9341 *closed_value = false;
AzureIoTClient 28:add19eb7defa 9342 result = 0;
AzureIoTClient 28:add19eb7defa 9343 }
AzureIoTClient 28:add19eb7defa 9344 else
AzureIoTClient 28:add19eb7defa 9345 {
AzureIoTClient 28:add19eb7defa 9346 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9347 if ((get_single_value_result = amqpvalue_get_boolean(item_value, closed_value)) != 0)
AzureIoTClient 28:add19eb7defa 9348 {
AzureIoTClient 23:1111ee8bcba4 9349 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 9350 {
AzureIoTClient 28:add19eb7defa 9351 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9352 }
AzureIoTClient 28:add19eb7defa 9353 else
AzureIoTClient 28:add19eb7defa 9354 {
AzureIoTClient 28:add19eb7defa 9355 *closed_value = false;
AzureIoTClient 23:1111ee8bcba4 9356 result = 0;
AzureIoTClient 23:1111ee8bcba4 9357 }
AzureIoTClient 28:add19eb7defa 9358 }
AzureIoTClient 28:add19eb7defa 9359 else
AzureIoTClient 28:add19eb7defa 9360 {
AzureIoTClient 28:add19eb7defa 9361 result = 0;
AzureIoTClient 28:add19eb7defa 9362 }
AzureIoTClient 28:add19eb7defa 9363 }
AzureIoTClient 28:add19eb7defa 9364 }
AzureIoTClient 28:add19eb7defa 9365 }
AzureIoTClient 28:add19eb7defa 9366 }
AzureIoTClient 28:add19eb7defa 9367
AzureIoTClient 28:add19eb7defa 9368 return result;
Azure.IoT Build 0:6ae2f7bca550 9369 }
Azure.IoT Build 0:6ae2f7bca550 9370
Azure.IoT Build 0:6ae2f7bca550 9371 int detach_set_closed(DETACH_HANDLE detach, bool closed_value)
Azure.IoT Build 0:6ae2f7bca550 9372 {
AzureIoTClient 28:add19eb7defa 9373 int result;
AzureIoTClient 28:add19eb7defa 9374
AzureIoTClient 28:add19eb7defa 9375 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9376 {
AzureIoTClient 28:add19eb7defa 9377 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9378 }
AzureIoTClient 28:add19eb7defa 9379 else
AzureIoTClient 28:add19eb7defa 9380 {
AzureIoTClient 28:add19eb7defa 9381 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9382 AMQP_VALUE closed_amqp_value = amqpvalue_create_boolean(closed_value);
AzureIoTClient 28:add19eb7defa 9383 if (closed_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9384 {
AzureIoTClient 28:add19eb7defa 9385 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9386 }
AzureIoTClient 28:add19eb7defa 9387 else
AzureIoTClient 28:add19eb7defa 9388 {
AzureIoTClient 28:add19eb7defa 9389 if (amqpvalue_set_composite_item(detach_instance->composite_value, 1, closed_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9390 {
AzureIoTClient 28:add19eb7defa 9391 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9392 }
AzureIoTClient 28:add19eb7defa 9393 else
AzureIoTClient 28:add19eb7defa 9394 {
AzureIoTClient 28:add19eb7defa 9395 result = 0;
AzureIoTClient 28:add19eb7defa 9396 }
AzureIoTClient 28:add19eb7defa 9397
AzureIoTClient 28:add19eb7defa 9398 amqpvalue_destroy(closed_amqp_value);
AzureIoTClient 28:add19eb7defa 9399 }
AzureIoTClient 28:add19eb7defa 9400 }
AzureIoTClient 28:add19eb7defa 9401
AzureIoTClient 28:add19eb7defa 9402 return result;
Azure.IoT Build 0:6ae2f7bca550 9403 }
Azure.IoT Build 0:6ae2f7bca550 9404
Azure.IoT Build 0:6ae2f7bca550 9405 int detach_get_error(DETACH_HANDLE detach, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9406 {
AzureIoTClient 28:add19eb7defa 9407 int result;
AzureIoTClient 28:add19eb7defa 9408
AzureIoTClient 28:add19eb7defa 9409 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9410 {
AzureIoTClient 28:add19eb7defa 9411 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9412 }
AzureIoTClient 28:add19eb7defa 9413 else
AzureIoTClient 28:add19eb7defa 9414 {
AzureIoTClient 28:add19eb7defa 9415 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9416 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 23:1111ee8bcba4 9417 if (amqpvalue_get_composite_item_count(detach_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9418 {
AzureIoTClient 23:1111ee8bcba4 9419 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9420 }
AzureIoTClient 23:1111ee8bcba4 9421 else
AzureIoTClient 23:1111ee8bcba4 9422 {
AzureIoTClient 23:1111ee8bcba4 9423 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 9424 {
AzureIoTClient 28:add19eb7defa 9425 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9426 }
AzureIoTClient 28:add19eb7defa 9427 else
AzureIoTClient 28:add19eb7defa 9428 {
AzureIoTClient 28:add19eb7defa 9429 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 9430 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9431 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9432 {
AzureIoTClient 28:add19eb7defa 9433 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9434 }
AzureIoTClient 28:add19eb7defa 9435 else
AzureIoTClient 28:add19eb7defa 9436 {
AzureIoTClient 28:add19eb7defa 9437 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9438 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 9439 {
AzureIoTClient 28:add19eb7defa 9440 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9441 }
AzureIoTClient 28:add19eb7defa 9442 else
AzureIoTClient 28:add19eb7defa 9443 {
AzureIoTClient 28:add19eb7defa 9444 result = 0;
AzureIoTClient 28:add19eb7defa 9445 }
AzureIoTClient 28:add19eb7defa 9446 }
AzureIoTClient 28:add19eb7defa 9447 }
AzureIoTClient 28:add19eb7defa 9448 }
AzureIoTClient 28:add19eb7defa 9449 }
AzureIoTClient 28:add19eb7defa 9450
AzureIoTClient 28:add19eb7defa 9451 return result;
Azure.IoT Build 0:6ae2f7bca550 9452 }
Azure.IoT Build 0:6ae2f7bca550 9453
Azure.IoT Build 0:6ae2f7bca550 9454 int detach_set_error(DETACH_HANDLE detach, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9455 {
AzureIoTClient 28:add19eb7defa 9456 int result;
AzureIoTClient 28:add19eb7defa 9457
AzureIoTClient 28:add19eb7defa 9458 if (detach == NULL)
AzureIoTClient 28:add19eb7defa 9459 {
AzureIoTClient 28:add19eb7defa 9460 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9461 }
AzureIoTClient 28:add19eb7defa 9462 else
AzureIoTClient 28:add19eb7defa 9463 {
AzureIoTClient 28:add19eb7defa 9464 DETACH_INSTANCE* detach_instance = (DETACH_INSTANCE*)detach;
AzureIoTClient 28:add19eb7defa 9465 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 9466 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9467 {
AzureIoTClient 28:add19eb7defa 9468 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9469 }
AzureIoTClient 28:add19eb7defa 9470 else
AzureIoTClient 28:add19eb7defa 9471 {
AzureIoTClient 28:add19eb7defa 9472 if (amqpvalue_set_composite_item(detach_instance->composite_value, 2, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9473 {
AzureIoTClient 28:add19eb7defa 9474 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9475 }
AzureIoTClient 28:add19eb7defa 9476 else
AzureIoTClient 28:add19eb7defa 9477 {
AzureIoTClient 28:add19eb7defa 9478 result = 0;
AzureIoTClient 28:add19eb7defa 9479 }
AzureIoTClient 28:add19eb7defa 9480
AzureIoTClient 28:add19eb7defa 9481 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 9482 }
AzureIoTClient 28:add19eb7defa 9483 }
AzureIoTClient 28:add19eb7defa 9484
AzureIoTClient 28:add19eb7defa 9485 return result;
Azure.IoT Build 0:6ae2f7bca550 9486 }
Azure.IoT Build 0:6ae2f7bca550 9487
Azure.IoT Build 0:6ae2f7bca550 9488
Azure.IoT Build 0:6ae2f7bca550 9489 /* end */
Azure.IoT Build 0:6ae2f7bca550 9490
Azure.IoT Build 0:6ae2f7bca550 9491 typedef struct END_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9492 {
AzureIoTClient 28:add19eb7defa 9493 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9494 } END_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9495
Azure.IoT Build 0:6ae2f7bca550 9496 static END_HANDLE end_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9497 {
AzureIoTClient 28:add19eb7defa 9498 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9499 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9500 {
AzureIoTClient 28:add19eb7defa 9501 end_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 9502 }
AzureIoTClient 28:add19eb7defa 9503
AzureIoTClient 28:add19eb7defa 9504 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9505 }
Azure.IoT Build 0:6ae2f7bca550 9506
Azure.IoT Build 0:6ae2f7bca550 9507 END_HANDLE end_create(void)
Azure.IoT Build 0:6ae2f7bca550 9508 {
AzureIoTClient 28:add19eb7defa 9509 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9510 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9511 {
AzureIoTClient 28:add19eb7defa 9512 end_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(23);
AzureIoTClient 28:add19eb7defa 9513 if (end_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9514 {
AzureIoTClient 28:add19eb7defa 9515 free(end_instance);
AzureIoTClient 28:add19eb7defa 9516 end_instance = NULL;
AzureIoTClient 28:add19eb7defa 9517 }
AzureIoTClient 28:add19eb7defa 9518 }
AzureIoTClient 28:add19eb7defa 9519
AzureIoTClient 28:add19eb7defa 9520 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9521 }
Azure.IoT Build 0:6ae2f7bca550 9522
Azure.IoT Build 0:6ae2f7bca550 9523 END_HANDLE end_clone(END_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9524 {
AzureIoTClient 28:add19eb7defa 9525 END_INSTANCE* end_instance = (END_INSTANCE*)malloc(sizeof(END_INSTANCE));
AzureIoTClient 28:add19eb7defa 9526 if (end_instance != NULL)
AzureIoTClient 28:add19eb7defa 9527 {
AzureIoTClient 28:add19eb7defa 9528 end_instance->composite_value = amqpvalue_clone(((END_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9529 if (end_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9530 {
AzureIoTClient 28:add19eb7defa 9531 free(end_instance);
AzureIoTClient 28:add19eb7defa 9532 end_instance = NULL;
AzureIoTClient 28:add19eb7defa 9533 }
AzureIoTClient 28:add19eb7defa 9534 }
AzureIoTClient 28:add19eb7defa 9535
AzureIoTClient 28:add19eb7defa 9536 return end_instance;
Azure.IoT Build 0:6ae2f7bca550 9537 }
Azure.IoT Build 0:6ae2f7bca550 9538
Azure.IoT Build 0:6ae2f7bca550 9539 void end_destroy(END_HANDLE end)
Azure.IoT Build 0:6ae2f7bca550 9540 {
AzureIoTClient 28:add19eb7defa 9541 if (end != NULL)
AzureIoTClient 28:add19eb7defa 9542 {
AzureIoTClient 28:add19eb7defa 9543 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9544 amqpvalue_destroy(end_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9545 free(end_instance);
AzureIoTClient 28:add19eb7defa 9546 }
Azure.IoT Build 0:6ae2f7bca550 9547 }
Azure.IoT Build 0:6ae2f7bca550 9548
Azure.IoT Build 0:6ae2f7bca550 9549 AMQP_VALUE amqpvalue_create_end(END_HANDLE end)
Azure.IoT Build 0:6ae2f7bca550 9550 {
AzureIoTClient 28:add19eb7defa 9551 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9552
AzureIoTClient 28:add19eb7defa 9553 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9554 {
AzureIoTClient 28:add19eb7defa 9555 result = NULL;
AzureIoTClient 28:add19eb7defa 9556 }
AzureIoTClient 28:add19eb7defa 9557 else
AzureIoTClient 28:add19eb7defa 9558 {
AzureIoTClient 28:add19eb7defa 9559 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9560 result = amqpvalue_clone(end_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9561 }
AzureIoTClient 28:add19eb7defa 9562
AzureIoTClient 28:add19eb7defa 9563 return result;
Azure.IoT Build 0:6ae2f7bca550 9564 }
Azure.IoT Build 0:6ae2f7bca550 9565
Azure.IoT Build 0:6ae2f7bca550 9566 bool is_end_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9567 {
AzureIoTClient 28:add19eb7defa 9568 bool result;
AzureIoTClient 28:add19eb7defa 9569
AzureIoTClient 28:add19eb7defa 9570 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9571 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9572 (descriptor_ulong == 23))
AzureIoTClient 28:add19eb7defa 9573 {
AzureIoTClient 28:add19eb7defa 9574 result = true;
AzureIoTClient 28:add19eb7defa 9575 }
AzureIoTClient 28:add19eb7defa 9576 else
AzureIoTClient 28:add19eb7defa 9577 {
AzureIoTClient 28:add19eb7defa 9578 result = false;
AzureIoTClient 28:add19eb7defa 9579 }
AzureIoTClient 28:add19eb7defa 9580
AzureIoTClient 28:add19eb7defa 9581 return result;
Azure.IoT Build 0:6ae2f7bca550 9582 }
Azure.IoT Build 0:6ae2f7bca550 9583
Azure.IoT Build 0:6ae2f7bca550 9584
Azure.IoT Build 0:6ae2f7bca550 9585 int amqpvalue_get_end(AMQP_VALUE value, END_HANDLE* end_handle)
Azure.IoT Build 0:6ae2f7bca550 9586 {
AzureIoTClient 28:add19eb7defa 9587 int result;
AzureIoTClient 28:add19eb7defa 9588 END_INSTANCE* end_instance = (END_INSTANCE*)end_create_internal();
AzureIoTClient 28:add19eb7defa 9589 *end_handle = end_instance;
AzureIoTClient 28:add19eb7defa 9590 if (*end_handle == NULL)
AzureIoTClient 28:add19eb7defa 9591 {
AzureIoTClient 28:add19eb7defa 9592 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9593 }
AzureIoTClient 28:add19eb7defa 9594 else
AzureIoTClient 28:add19eb7defa 9595 {
AzureIoTClient 28:add19eb7defa 9596 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9597 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9598 {
AzureIoTClient 28:add19eb7defa 9599 end_destroy(*end_handle);
AzureIoTClient 28:add19eb7defa 9600 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9601 }
AzureIoTClient 28:add19eb7defa 9602 else
AzureIoTClient 28:add19eb7defa 9603 {
AzureIoTClient 23:1111ee8bcba4 9604 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9605 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9606 {
AzureIoTClient 23:1111ee8bcba4 9607 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9608 }
AzureIoTClient 23:1111ee8bcba4 9609 else
AzureIoTClient 23:1111ee8bcba4 9610 {
AzureIoTClient 28:add19eb7defa 9611 do
AzureIoTClient 28:add19eb7defa 9612 {
AzureIoTClient 28:add19eb7defa 9613 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9614 /* error */
AzureIoTClient 28:add19eb7defa 9615 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9616 {
AzureIoTClient 23:1111ee8bcba4 9617 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9618 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9619 {
AzureIoTClient 28:add19eb7defa 9620 /* do nothing */
AzureIoTClient 28:add19eb7defa 9621 }
AzureIoTClient 28:add19eb7defa 9622 else
AzureIoTClient 28:add19eb7defa 9623 {
AzureIoTClient 28:add19eb7defa 9624 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9625 {
AzureIoTClient 28:add19eb7defa 9626 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9627 }
AzureIoTClient 28:add19eb7defa 9628 else
AzureIoTClient 28:add19eb7defa 9629 {
AzureIoTClient 28:add19eb7defa 9630 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9631 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9632 {
AzureIoTClient 28:add19eb7defa 9633 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9634 end_destroy(*end_handle);
AzureIoTClient 28:add19eb7defa 9635 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9636 break;
AzureIoTClient 28:add19eb7defa 9637 }
AzureIoTClient 25:1101516ee67d 9638 else
AzureIoTClient 25:1101516ee67d 9639 {
AzureIoTClient 28:add19eb7defa 9640 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9641 }
AzureIoTClient 28:add19eb7defa 9642 }
AzureIoTClient 28:add19eb7defa 9643
AzureIoTClient 28:add19eb7defa 9644 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9645 }
AzureIoTClient 28:add19eb7defa 9646 }
AzureIoTClient 28:add19eb7defa 9647
AzureIoTClient 28:add19eb7defa 9648 end_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9649
AzureIoTClient 28:add19eb7defa 9650 result = 0;
AzureIoTClient 28:add19eb7defa 9651 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9652 }
AzureIoTClient 28:add19eb7defa 9653 }
AzureIoTClient 28:add19eb7defa 9654 }
AzureIoTClient 28:add19eb7defa 9655
AzureIoTClient 28:add19eb7defa 9656 return result;
Azure.IoT Build 0:6ae2f7bca550 9657 }
Azure.IoT Build 0:6ae2f7bca550 9658
Azure.IoT Build 0:6ae2f7bca550 9659 int end_get_error(END_HANDLE end, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9660 {
AzureIoTClient 28:add19eb7defa 9661 int result;
AzureIoTClient 28:add19eb7defa 9662
AzureIoTClient 28:add19eb7defa 9663 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9664 {
AzureIoTClient 28:add19eb7defa 9665 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9666 }
AzureIoTClient 28:add19eb7defa 9667 else
AzureIoTClient 28:add19eb7defa 9668 {
AzureIoTClient 28:add19eb7defa 9669 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9670 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 23:1111ee8bcba4 9671 if (amqpvalue_get_composite_item_count(end_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9672 {
AzureIoTClient 23:1111ee8bcba4 9673 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9674 }
AzureIoTClient 23:1111ee8bcba4 9675 else
AzureIoTClient 23:1111ee8bcba4 9676 {
AzureIoTClient 23:1111ee8bcba4 9677 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9678 {
AzureIoTClient 28:add19eb7defa 9679 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9680 }
AzureIoTClient 28:add19eb7defa 9681 else
AzureIoTClient 28:add19eb7defa 9682 {
AzureIoTClient 28:add19eb7defa 9683 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(end_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 9684 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9685 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9686 {
AzureIoTClient 28:add19eb7defa 9687 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9688 }
AzureIoTClient 28:add19eb7defa 9689 else
AzureIoTClient 28:add19eb7defa 9690 {
AzureIoTClient 28:add19eb7defa 9691 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9692 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 9693 {
AzureIoTClient 28:add19eb7defa 9694 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9695 }
AzureIoTClient 28:add19eb7defa 9696 else
AzureIoTClient 28:add19eb7defa 9697 {
AzureIoTClient 28:add19eb7defa 9698 result = 0;
AzureIoTClient 28:add19eb7defa 9699 }
AzureIoTClient 28:add19eb7defa 9700 }
AzureIoTClient 28:add19eb7defa 9701 }
AzureIoTClient 28:add19eb7defa 9702 }
AzureIoTClient 28:add19eb7defa 9703 }
AzureIoTClient 28:add19eb7defa 9704
AzureIoTClient 28:add19eb7defa 9705 return result;
Azure.IoT Build 0:6ae2f7bca550 9706 }
Azure.IoT Build 0:6ae2f7bca550 9707
Azure.IoT Build 0:6ae2f7bca550 9708 int end_set_error(END_HANDLE end, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9709 {
AzureIoTClient 28:add19eb7defa 9710 int result;
AzureIoTClient 28:add19eb7defa 9711
AzureIoTClient 28:add19eb7defa 9712 if (end == NULL)
AzureIoTClient 28:add19eb7defa 9713 {
AzureIoTClient 28:add19eb7defa 9714 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9715 }
AzureIoTClient 28:add19eb7defa 9716 else
AzureIoTClient 28:add19eb7defa 9717 {
AzureIoTClient 28:add19eb7defa 9718 END_INSTANCE* end_instance = (END_INSTANCE*)end;
AzureIoTClient 28:add19eb7defa 9719 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 9720 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9721 {
AzureIoTClient 28:add19eb7defa 9722 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9723 }
AzureIoTClient 28:add19eb7defa 9724 else
AzureIoTClient 28:add19eb7defa 9725 {
AzureIoTClient 28:add19eb7defa 9726 if (amqpvalue_set_composite_item(end_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9727 {
AzureIoTClient 28:add19eb7defa 9728 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9729 }
AzureIoTClient 28:add19eb7defa 9730 else
AzureIoTClient 28:add19eb7defa 9731 {
AzureIoTClient 28:add19eb7defa 9732 result = 0;
AzureIoTClient 28:add19eb7defa 9733 }
AzureIoTClient 28:add19eb7defa 9734
AzureIoTClient 28:add19eb7defa 9735 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 9736 }
AzureIoTClient 28:add19eb7defa 9737 }
AzureIoTClient 28:add19eb7defa 9738
AzureIoTClient 28:add19eb7defa 9739 return result;
Azure.IoT Build 0:6ae2f7bca550 9740 }
Azure.IoT Build 0:6ae2f7bca550 9741
Azure.IoT Build 0:6ae2f7bca550 9742
Azure.IoT Build 0:6ae2f7bca550 9743 /* close */
Azure.IoT Build 0:6ae2f7bca550 9744
Azure.IoT Build 0:6ae2f7bca550 9745 typedef struct CLOSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 9746 {
AzureIoTClient 28:add19eb7defa 9747 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 9748 } CLOSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 9749
Azure.IoT Build 0:6ae2f7bca550 9750 static CLOSE_HANDLE close_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 9751 {
AzureIoTClient 28:add19eb7defa 9752 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9753 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9754 {
AzureIoTClient 28:add19eb7defa 9755 close_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 9756 }
AzureIoTClient 28:add19eb7defa 9757
AzureIoTClient 28:add19eb7defa 9758 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9759 }
Azure.IoT Build 0:6ae2f7bca550 9760
Azure.IoT Build 0:6ae2f7bca550 9761 CLOSE_HANDLE close_create(void)
Azure.IoT Build 0:6ae2f7bca550 9762 {
AzureIoTClient 28:add19eb7defa 9763 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9764 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9765 {
AzureIoTClient 28:add19eb7defa 9766 close_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(24);
AzureIoTClient 28:add19eb7defa 9767 if (close_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9768 {
AzureIoTClient 28:add19eb7defa 9769 free(close_instance);
AzureIoTClient 28:add19eb7defa 9770 close_instance = NULL;
AzureIoTClient 28:add19eb7defa 9771 }
AzureIoTClient 28:add19eb7defa 9772 }
AzureIoTClient 28:add19eb7defa 9773
AzureIoTClient 28:add19eb7defa 9774 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9775 }
Azure.IoT Build 0:6ae2f7bca550 9776
Azure.IoT Build 0:6ae2f7bca550 9777 CLOSE_HANDLE close_clone(CLOSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 9778 {
AzureIoTClient 28:add19eb7defa 9779 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)malloc(sizeof(CLOSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 9780 if (close_instance != NULL)
AzureIoTClient 28:add19eb7defa 9781 {
AzureIoTClient 28:add19eb7defa 9782 close_instance->composite_value = amqpvalue_clone(((CLOSE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 9783 if (close_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 9784 {
AzureIoTClient 28:add19eb7defa 9785 free(close_instance);
AzureIoTClient 28:add19eb7defa 9786 close_instance = NULL;
AzureIoTClient 28:add19eb7defa 9787 }
AzureIoTClient 28:add19eb7defa 9788 }
AzureIoTClient 28:add19eb7defa 9789
AzureIoTClient 28:add19eb7defa 9790 return close_instance;
Azure.IoT Build 0:6ae2f7bca550 9791 }
Azure.IoT Build 0:6ae2f7bca550 9792
Azure.IoT Build 0:6ae2f7bca550 9793 void close_destroy(CLOSE_HANDLE close)
Azure.IoT Build 0:6ae2f7bca550 9794 {
AzureIoTClient 28:add19eb7defa 9795 if (close != NULL)
AzureIoTClient 28:add19eb7defa 9796 {
AzureIoTClient 28:add19eb7defa 9797 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 9798 amqpvalue_destroy(close_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9799 free(close_instance);
AzureIoTClient 28:add19eb7defa 9800 }
Azure.IoT Build 0:6ae2f7bca550 9801 }
Azure.IoT Build 0:6ae2f7bca550 9802
Azure.IoT Build 0:6ae2f7bca550 9803 AMQP_VALUE amqpvalue_create_close(CLOSE_HANDLE close)
Azure.IoT Build 0:6ae2f7bca550 9804 {
AzureIoTClient 28:add19eb7defa 9805 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 9806
AzureIoTClient 28:add19eb7defa 9807 if (close == NULL)
AzureIoTClient 28:add19eb7defa 9808 {
AzureIoTClient 28:add19eb7defa 9809 result = NULL;
AzureIoTClient 28:add19eb7defa 9810 }
AzureIoTClient 28:add19eb7defa 9811 else
AzureIoTClient 28:add19eb7defa 9812 {
AzureIoTClient 28:add19eb7defa 9813 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 9814 result = amqpvalue_clone(close_instance->composite_value);
AzureIoTClient 28:add19eb7defa 9815 }
AzureIoTClient 28:add19eb7defa 9816
AzureIoTClient 28:add19eb7defa 9817 return result;
Azure.IoT Build 0:6ae2f7bca550 9818 }
Azure.IoT Build 0:6ae2f7bca550 9819
Azure.IoT Build 0:6ae2f7bca550 9820 bool is_close_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 9821 {
AzureIoTClient 28:add19eb7defa 9822 bool result;
AzureIoTClient 28:add19eb7defa 9823
AzureIoTClient 28:add19eb7defa 9824 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 9825 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 9826 (descriptor_ulong == 24))
AzureIoTClient 28:add19eb7defa 9827 {
AzureIoTClient 28:add19eb7defa 9828 result = true;
AzureIoTClient 28:add19eb7defa 9829 }
AzureIoTClient 28:add19eb7defa 9830 else
AzureIoTClient 28:add19eb7defa 9831 {
AzureIoTClient 28:add19eb7defa 9832 result = false;
AzureIoTClient 28:add19eb7defa 9833 }
AzureIoTClient 28:add19eb7defa 9834
AzureIoTClient 28:add19eb7defa 9835 return result;
Azure.IoT Build 0:6ae2f7bca550 9836 }
Azure.IoT Build 0:6ae2f7bca550 9837
Azure.IoT Build 0:6ae2f7bca550 9838
Azure.IoT Build 0:6ae2f7bca550 9839 int amqpvalue_get_close(AMQP_VALUE value, CLOSE_HANDLE* close_handle)
Azure.IoT Build 0:6ae2f7bca550 9840 {
AzureIoTClient 28:add19eb7defa 9841 int result;
AzureIoTClient 28:add19eb7defa 9842 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close_create_internal();
AzureIoTClient 28:add19eb7defa 9843 *close_handle = close_instance;
AzureIoTClient 28:add19eb7defa 9844 if (*close_handle == NULL)
AzureIoTClient 28:add19eb7defa 9845 {
AzureIoTClient 28:add19eb7defa 9846 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9847 }
AzureIoTClient 28:add19eb7defa 9848 else
AzureIoTClient 28:add19eb7defa 9849 {
AzureIoTClient 28:add19eb7defa 9850 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 9851 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 9852 {
AzureIoTClient 28:add19eb7defa 9853 close_destroy(*close_handle);
AzureIoTClient 28:add19eb7defa 9854 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9855 }
AzureIoTClient 28:add19eb7defa 9856 else
AzureIoTClient 28:add19eb7defa 9857 {
AzureIoTClient 23:1111ee8bcba4 9858 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 9859 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9860 {
AzureIoTClient 23:1111ee8bcba4 9861 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9862 }
AzureIoTClient 23:1111ee8bcba4 9863 else
AzureIoTClient 23:1111ee8bcba4 9864 {
AzureIoTClient 28:add19eb7defa 9865 do
AzureIoTClient 28:add19eb7defa 9866 {
AzureIoTClient 28:add19eb7defa 9867 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 9868 /* error */
AzureIoTClient 28:add19eb7defa 9869 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 9870 {
AzureIoTClient 23:1111ee8bcba4 9871 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 9872 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 9873 {
AzureIoTClient 28:add19eb7defa 9874 /* do nothing */
AzureIoTClient 28:add19eb7defa 9875 }
AzureIoTClient 28:add19eb7defa 9876 else
AzureIoTClient 28:add19eb7defa 9877 {
AzureIoTClient 28:add19eb7defa 9878 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 9879 {
AzureIoTClient 28:add19eb7defa 9880 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 9881 }
AzureIoTClient 28:add19eb7defa 9882 else
AzureIoTClient 28:add19eb7defa 9883 {
AzureIoTClient 28:add19eb7defa 9884 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 9885 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 9886 {
AzureIoTClient 28:add19eb7defa 9887 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9888 close_destroy(*close_handle);
AzureIoTClient 28:add19eb7defa 9889 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9890 break;
AzureIoTClient 28:add19eb7defa 9891 }
AzureIoTClient 25:1101516ee67d 9892 else
AzureIoTClient 25:1101516ee67d 9893 {
AzureIoTClient 28:add19eb7defa 9894 error_destroy(error);
AzureIoTClient 28:add19eb7defa 9895 }
AzureIoTClient 28:add19eb7defa 9896 }
AzureIoTClient 28:add19eb7defa 9897
AzureIoTClient 28:add19eb7defa 9898 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 9899 }
AzureIoTClient 28:add19eb7defa 9900 }
AzureIoTClient 28:add19eb7defa 9901
AzureIoTClient 28:add19eb7defa 9902 close_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 9903
AzureIoTClient 28:add19eb7defa 9904 result = 0;
AzureIoTClient 28:add19eb7defa 9905 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 9906 }
AzureIoTClient 28:add19eb7defa 9907 }
AzureIoTClient 28:add19eb7defa 9908 }
AzureIoTClient 28:add19eb7defa 9909
AzureIoTClient 28:add19eb7defa 9910 return result;
Azure.IoT Build 0:6ae2f7bca550 9911 }
Azure.IoT Build 0:6ae2f7bca550 9912
Azure.IoT Build 0:6ae2f7bca550 9913 int close_get_error(CLOSE_HANDLE close, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 9914 {
AzureIoTClient 28:add19eb7defa 9915 int result;
AzureIoTClient 28:add19eb7defa 9916
AzureIoTClient 28:add19eb7defa 9917 if (close == NULL)
AzureIoTClient 28:add19eb7defa 9918 {
AzureIoTClient 28:add19eb7defa 9919 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9920 }
AzureIoTClient 28:add19eb7defa 9921 else
AzureIoTClient 28:add19eb7defa 9922 {
AzureIoTClient 28:add19eb7defa 9923 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 9924 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 23:1111ee8bcba4 9925 if (amqpvalue_get_composite_item_count(close_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 9926 {
AzureIoTClient 23:1111ee8bcba4 9927 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 9928 }
AzureIoTClient 23:1111ee8bcba4 9929 else
AzureIoTClient 23:1111ee8bcba4 9930 {
AzureIoTClient 23:1111ee8bcba4 9931 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 9932 {
AzureIoTClient 28:add19eb7defa 9933 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9934 }
AzureIoTClient 28:add19eb7defa 9935 else
AzureIoTClient 28:add19eb7defa 9936 {
AzureIoTClient 28:add19eb7defa 9937 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(close_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 9938 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 9939 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 9940 {
AzureIoTClient 28:add19eb7defa 9941 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9942 }
AzureIoTClient 28:add19eb7defa 9943 else
AzureIoTClient 28:add19eb7defa 9944 {
AzureIoTClient 28:add19eb7defa 9945 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 9946 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 9947 {
AzureIoTClient 28:add19eb7defa 9948 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9949 }
AzureIoTClient 28:add19eb7defa 9950 else
AzureIoTClient 28:add19eb7defa 9951 {
AzureIoTClient 28:add19eb7defa 9952 result = 0;
AzureIoTClient 28:add19eb7defa 9953 }
AzureIoTClient 28:add19eb7defa 9954 }
AzureIoTClient 28:add19eb7defa 9955 }
AzureIoTClient 28:add19eb7defa 9956 }
AzureIoTClient 28:add19eb7defa 9957 }
AzureIoTClient 28:add19eb7defa 9958
AzureIoTClient 28:add19eb7defa 9959 return result;
Azure.IoT Build 0:6ae2f7bca550 9960 }
Azure.IoT Build 0:6ae2f7bca550 9961
Azure.IoT Build 0:6ae2f7bca550 9962 int close_set_error(CLOSE_HANDLE close, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 9963 {
AzureIoTClient 28:add19eb7defa 9964 int result;
AzureIoTClient 28:add19eb7defa 9965
AzureIoTClient 28:add19eb7defa 9966 if (close == NULL)
AzureIoTClient 28:add19eb7defa 9967 {
AzureIoTClient 28:add19eb7defa 9968 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9969 }
AzureIoTClient 28:add19eb7defa 9970 else
AzureIoTClient 28:add19eb7defa 9971 {
AzureIoTClient 28:add19eb7defa 9972 CLOSE_INSTANCE* close_instance = (CLOSE_INSTANCE*)close;
AzureIoTClient 28:add19eb7defa 9973 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 9974 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 9975 {
AzureIoTClient 28:add19eb7defa 9976 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9977 }
AzureIoTClient 28:add19eb7defa 9978 else
AzureIoTClient 28:add19eb7defa 9979 {
AzureIoTClient 28:add19eb7defa 9980 if (amqpvalue_set_composite_item(close_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 9981 {
AzureIoTClient 28:add19eb7defa 9982 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 9983 }
AzureIoTClient 28:add19eb7defa 9984 else
AzureIoTClient 28:add19eb7defa 9985 {
AzureIoTClient 28:add19eb7defa 9986 result = 0;
AzureIoTClient 28:add19eb7defa 9987 }
AzureIoTClient 28:add19eb7defa 9988
AzureIoTClient 28:add19eb7defa 9989 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 9990 }
AzureIoTClient 28:add19eb7defa 9991 }
AzureIoTClient 28:add19eb7defa 9992
AzureIoTClient 28:add19eb7defa 9993 return result;
Azure.IoT Build 0:6ae2f7bca550 9994 }
Azure.IoT Build 0:6ae2f7bca550 9995
Azure.IoT Build 0:6ae2f7bca550 9996
Azure.IoT Build 0:6ae2f7bca550 9997 /* sasl-code */
Azure.IoT Build 0:6ae2f7bca550 9998
Azure.IoT Build 0:6ae2f7bca550 9999 AMQP_VALUE amqpvalue_create_sasl_code(sasl_code value)
Azure.IoT Build 0:6ae2f7bca550 10000 {
AzureIoTClient 28:add19eb7defa 10001 return amqpvalue_create_ubyte(value);
Azure.IoT Build 0:6ae2f7bca550 10002 }
Azure.IoT Build 0:6ae2f7bca550 10003
Azure.IoT Build 0:6ae2f7bca550 10004 /* sasl-mechanisms */
Azure.IoT Build 0:6ae2f7bca550 10005
Azure.IoT Build 0:6ae2f7bca550 10006 typedef struct SASL_MECHANISMS_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10007 {
AzureIoTClient 28:add19eb7defa 10008 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10009 } SASL_MECHANISMS_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10010
Azure.IoT Build 0:6ae2f7bca550 10011 static SASL_MECHANISMS_HANDLE sasl_mechanisms_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10012 {
AzureIoTClient 28:add19eb7defa 10013 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10014 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10015 {
AzureIoTClient 28:add19eb7defa 10016 sasl_mechanisms_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10017 }
AzureIoTClient 28:add19eb7defa 10018
AzureIoTClient 28:add19eb7defa 10019 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10020 }
Azure.IoT Build 0:6ae2f7bca550 10021
Azure.IoT Build 0:6ae2f7bca550 10022 SASL_MECHANISMS_HANDLE sasl_mechanisms_create(AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10023 {
AzureIoTClient 28:add19eb7defa 10024 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10025 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10026 {
AzureIoTClient 28:add19eb7defa 10027 sasl_mechanisms_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(64);
AzureIoTClient 28:add19eb7defa 10028 if (sasl_mechanisms_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10029 {
AzureIoTClient 28:add19eb7defa 10030 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10031 sasl_mechanisms_instance = NULL;
AzureIoTClient 28:add19eb7defa 10032 }
AzureIoTClient 28:add19eb7defa 10033 else
AzureIoTClient 28:add19eb7defa 10034 {
AzureIoTClient 28:add19eb7defa 10035 AMQP_VALUE sasl_server_mechanisms_amqp_value;
AzureIoTClient 28:add19eb7defa 10036 int result = 0;
AzureIoTClient 28:add19eb7defa 10037
AzureIoTClient 28:add19eb7defa 10038 sasl_server_mechanisms_amqp_value = sasl_server_mechanisms_value;
AzureIoTClient 28:add19eb7defa 10039 if ((result == 0) && (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10040 {
AzureIoTClient 28:add19eb7defa 10041 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10042 }
AzureIoTClient 28:add19eb7defa 10043
AzureIoTClient 28:add19eb7defa 10044 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
AzureIoTClient 28:add19eb7defa 10045 }
AzureIoTClient 28:add19eb7defa 10046 }
AzureIoTClient 28:add19eb7defa 10047
AzureIoTClient 28:add19eb7defa 10048 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10049 }
Azure.IoT Build 0:6ae2f7bca550 10050
Azure.IoT Build 0:6ae2f7bca550 10051 SASL_MECHANISMS_HANDLE sasl_mechanisms_clone(SASL_MECHANISMS_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10052 {
AzureIoTClient 28:add19eb7defa 10053 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)malloc(sizeof(SASL_MECHANISMS_INSTANCE));
AzureIoTClient 28:add19eb7defa 10054 if (sasl_mechanisms_instance != NULL)
AzureIoTClient 28:add19eb7defa 10055 {
AzureIoTClient 28:add19eb7defa 10056 sasl_mechanisms_instance->composite_value = amqpvalue_clone(((SASL_MECHANISMS_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10057 if (sasl_mechanisms_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10058 {
AzureIoTClient 28:add19eb7defa 10059 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10060 sasl_mechanisms_instance = NULL;
AzureIoTClient 28:add19eb7defa 10061 }
AzureIoTClient 28:add19eb7defa 10062 }
AzureIoTClient 28:add19eb7defa 10063
AzureIoTClient 28:add19eb7defa 10064 return sasl_mechanisms_instance;
Azure.IoT Build 0:6ae2f7bca550 10065 }
Azure.IoT Build 0:6ae2f7bca550 10066
Azure.IoT Build 0:6ae2f7bca550 10067 void sasl_mechanisms_destroy(SASL_MECHANISMS_HANDLE sasl_mechanisms)
Azure.IoT Build 0:6ae2f7bca550 10068 {
AzureIoTClient 28:add19eb7defa 10069 if (sasl_mechanisms != NULL)
AzureIoTClient 28:add19eb7defa 10070 {
AzureIoTClient 28:add19eb7defa 10071 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10072 amqpvalue_destroy(sasl_mechanisms_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10073 free(sasl_mechanisms_instance);
AzureIoTClient 28:add19eb7defa 10074 }
Azure.IoT Build 0:6ae2f7bca550 10075 }
Azure.IoT Build 0:6ae2f7bca550 10076
Azure.IoT Build 0:6ae2f7bca550 10077 AMQP_VALUE amqpvalue_create_sasl_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms)
Azure.IoT Build 0:6ae2f7bca550 10078 {
AzureIoTClient 28:add19eb7defa 10079 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 10080
AzureIoTClient 28:add19eb7defa 10081 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10082 {
AzureIoTClient 28:add19eb7defa 10083 result = NULL;
AzureIoTClient 28:add19eb7defa 10084 }
AzureIoTClient 28:add19eb7defa 10085 else
AzureIoTClient 28:add19eb7defa 10086 {
AzureIoTClient 28:add19eb7defa 10087 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10088 result = amqpvalue_clone(sasl_mechanisms_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10089 }
AzureIoTClient 28:add19eb7defa 10090
AzureIoTClient 28:add19eb7defa 10091 return result;
Azure.IoT Build 0:6ae2f7bca550 10092 }
Azure.IoT Build 0:6ae2f7bca550 10093
Azure.IoT Build 0:6ae2f7bca550 10094 bool is_sasl_mechanisms_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10095 {
AzureIoTClient 28:add19eb7defa 10096 bool result;
AzureIoTClient 28:add19eb7defa 10097
AzureIoTClient 28:add19eb7defa 10098 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 10099 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 10100 (descriptor_ulong == 64))
AzureIoTClient 28:add19eb7defa 10101 {
AzureIoTClient 28:add19eb7defa 10102 result = true;
AzureIoTClient 28:add19eb7defa 10103 }
AzureIoTClient 28:add19eb7defa 10104 else
AzureIoTClient 28:add19eb7defa 10105 {
AzureIoTClient 28:add19eb7defa 10106 result = false;
AzureIoTClient 28:add19eb7defa 10107 }
AzureIoTClient 28:add19eb7defa 10108
AzureIoTClient 28:add19eb7defa 10109 return result;
Azure.IoT Build 0:6ae2f7bca550 10110 }
Azure.IoT Build 0:6ae2f7bca550 10111
Azure.IoT Build 0:6ae2f7bca550 10112
Azure.IoT Build 0:6ae2f7bca550 10113 int amqpvalue_get_sasl_mechanisms(AMQP_VALUE value, SASL_MECHANISMS_HANDLE* sasl_mechanisms_handle)
Azure.IoT Build 0:6ae2f7bca550 10114 {
AzureIoTClient 28:add19eb7defa 10115 int result;
AzureIoTClient 28:add19eb7defa 10116 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms_create_internal();
AzureIoTClient 28:add19eb7defa 10117 *sasl_mechanisms_handle = sasl_mechanisms_instance;
AzureIoTClient 28:add19eb7defa 10118 if (*sasl_mechanisms_handle == NULL)
AzureIoTClient 28:add19eb7defa 10119 {
AzureIoTClient 28:add19eb7defa 10120 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10121 }
AzureIoTClient 28:add19eb7defa 10122 else
AzureIoTClient 28:add19eb7defa 10123 {
AzureIoTClient 28:add19eb7defa 10124 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 10125 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 10126 {
AzureIoTClient 28:add19eb7defa 10127 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10128 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10129 }
AzureIoTClient 28:add19eb7defa 10130 else
AzureIoTClient 28:add19eb7defa 10131 {
AzureIoTClient 23:1111ee8bcba4 10132 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10133 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10134 {
AzureIoTClient 23:1111ee8bcba4 10135 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10136 }
AzureIoTClient 23:1111ee8bcba4 10137 else
AzureIoTClient 23:1111ee8bcba4 10138 {
AzureIoTClient 28:add19eb7defa 10139 do
AzureIoTClient 28:add19eb7defa 10140 {
AzureIoTClient 28:add19eb7defa 10141 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 10142 /* sasl-server-mechanisms */
AzureIoTClient 28:add19eb7defa 10143 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10144 {
AzureIoTClient 23:1111ee8bcba4 10145 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 10146 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10147 {
AzureIoTClient 28:add19eb7defa 10148 {
AzureIoTClient 28:add19eb7defa 10149 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10150 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10151 break;
AzureIoTClient 28:add19eb7defa 10152 }
AzureIoTClient 28:add19eb7defa 10153 }
AzureIoTClient 28:add19eb7defa 10154 else
AzureIoTClient 28:add19eb7defa 10155 {
AzureIoTClient 28:add19eb7defa 10156 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10157 {
AzureIoTClient 28:add19eb7defa 10158 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10159 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10160 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10161 break;
AzureIoTClient 28:add19eb7defa 10162 }
AzureIoTClient 28:add19eb7defa 10163 else
AzureIoTClient 28:add19eb7defa 10164 {
AzureIoTClient 28:add19eb7defa 10165 const char* sasl_server_mechanisms = NULL;
AzureIoTClient 28:add19eb7defa 10166 AMQP_VALUE sasl_server_mechanisms_array;
AzureIoTClient 28:add19eb7defa 10167 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &sasl_server_mechanisms_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 10168 (amqpvalue_get_symbol(item_value, &sasl_server_mechanisms) != 0))
AzureIoTClient 28:add19eb7defa 10169 {
AzureIoTClient 28:add19eb7defa 10170 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10171 sasl_mechanisms_destroy(*sasl_mechanisms_handle);
AzureIoTClient 28:add19eb7defa 10172 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10173 break;
AzureIoTClient 28:add19eb7defa 10174 }
AzureIoTClient 28:add19eb7defa 10175 }
AzureIoTClient 28:add19eb7defa 10176
AzureIoTClient 28:add19eb7defa 10177 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10178 }
AzureIoTClient 28:add19eb7defa 10179 }
AzureIoTClient 28:add19eb7defa 10180 else
AzureIoTClient 28:add19eb7defa 10181 {
AzureIoTClient 28:add19eb7defa 10182 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10183 }
AzureIoTClient 28:add19eb7defa 10184
AzureIoTClient 28:add19eb7defa 10185 sasl_mechanisms_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 10186
AzureIoTClient 28:add19eb7defa 10187 result = 0;
AzureIoTClient 28:add19eb7defa 10188 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 10189 }
AzureIoTClient 28:add19eb7defa 10190 }
AzureIoTClient 28:add19eb7defa 10191 }
AzureIoTClient 28:add19eb7defa 10192
AzureIoTClient 28:add19eb7defa 10193 return result;
Azure.IoT Build 0:6ae2f7bca550 10194 }
Azure.IoT Build 0:6ae2f7bca550 10195
Azure.IoT Build 0:6ae2f7bca550 10196 int sasl_mechanisms_get_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE* sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10197 {
AzureIoTClient 28:add19eb7defa 10198 int result;
AzureIoTClient 28:add19eb7defa 10199
AzureIoTClient 28:add19eb7defa 10200 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10201 {
AzureIoTClient 28:add19eb7defa 10202 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10203 }
AzureIoTClient 28:add19eb7defa 10204 else
AzureIoTClient 28:add19eb7defa 10205 {
AzureIoTClient 28:add19eb7defa 10206 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10207 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 23:1111ee8bcba4 10208 if (amqpvalue_get_composite_item_count(sasl_mechanisms_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10209 {
AzureIoTClient 23:1111ee8bcba4 10210 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10211 }
AzureIoTClient 23:1111ee8bcba4 10212 else
AzureIoTClient 23:1111ee8bcba4 10213 {
AzureIoTClient 23:1111ee8bcba4 10214 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10215 {
AzureIoTClient 28:add19eb7defa 10216 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10217 }
AzureIoTClient 28:add19eb7defa 10218 else
AzureIoTClient 28:add19eb7defa 10219 {
AzureIoTClient 28:add19eb7defa 10220 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_mechanisms_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10221 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10222 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10223 {
AzureIoTClient 28:add19eb7defa 10224 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10225 }
AzureIoTClient 28:add19eb7defa 10226 else
AzureIoTClient 28:add19eb7defa 10227 {
AzureIoTClient 28:add19eb7defa 10228 const char* sasl_server_mechanisms_single_value;
AzureIoTClient 28:add19eb7defa 10229 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10230 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 10231 {
AzureIoTClient 28:add19eb7defa 10232 get_single_value_result = amqpvalue_get_symbol(item_value, &sasl_server_mechanisms_single_value);
AzureIoTClient 28:add19eb7defa 10233 }
AzureIoTClient 28:add19eb7defa 10234 else
AzureIoTClient 28:add19eb7defa 10235 {
AzureIoTClient 28:add19eb7defa 10236 (void)memset((void*)&sasl_server_mechanisms_single_value, 0, sizeof(sasl_server_mechanisms_single_value));
AzureIoTClient 28:add19eb7defa 10237 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 10238 }
AzureIoTClient 28:add19eb7defa 10239
AzureIoTClient 28:add19eb7defa 10240 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, sasl_server_mechanisms_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 10241 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 10242 {
AzureIoTClient 28:add19eb7defa 10243 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10244 }
AzureIoTClient 28:add19eb7defa 10245 else
AzureIoTClient 28:add19eb7defa 10246 {
AzureIoTClient 28:add19eb7defa 10247 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 10248 {
AzureIoTClient 28:add19eb7defa 10249 *sasl_server_mechanisms_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 10250 if (*sasl_server_mechanisms_value == NULL)
AzureIoTClient 28:add19eb7defa 10251 {
AzureIoTClient 28:add19eb7defa 10252 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10253 }
AzureIoTClient 28:add19eb7defa 10254 else
AzureIoTClient 28:add19eb7defa 10255 {
AzureIoTClient 28:add19eb7defa 10256 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(sasl_server_mechanisms_single_value);
AzureIoTClient 28:add19eb7defa 10257 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10258 {
AzureIoTClient 28:add19eb7defa 10259 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10260 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10261 }
AzureIoTClient 28:add19eb7defa 10262 else
AzureIoTClient 28:add19eb7defa 10263 {
AzureIoTClient 28:add19eb7defa 10264 if (amqpvalue_add_array_item(*sasl_server_mechanisms_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10265 {
AzureIoTClient 28:add19eb7defa 10266 amqpvalue_destroy(*sasl_server_mechanisms_value);
AzureIoTClient 28:add19eb7defa 10267 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 10268 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10269 }
AzureIoTClient 28:add19eb7defa 10270 else
AzureIoTClient 28:add19eb7defa 10271 {
AzureIoTClient 28:add19eb7defa 10272 result = 0;
AzureIoTClient 28:add19eb7defa 10273 }
AzureIoTClient 28:add19eb7defa 10274 }
AzureIoTClient 28:add19eb7defa 10275 }
AzureIoTClient 28:add19eb7defa 10276 }
AzureIoTClient 28:add19eb7defa 10277 else
AzureIoTClient 28:add19eb7defa 10278 {
AzureIoTClient 28:add19eb7defa 10279 result = 0;
AzureIoTClient 28:add19eb7defa 10280 }
AzureIoTClient 28:add19eb7defa 10281 }
AzureIoTClient 28:add19eb7defa 10282 }
AzureIoTClient 28:add19eb7defa 10283 }
AzureIoTClient 28:add19eb7defa 10284 }
AzureIoTClient 28:add19eb7defa 10285 }
AzureIoTClient 28:add19eb7defa 10286
AzureIoTClient 28:add19eb7defa 10287 return result;
Azure.IoT Build 0:6ae2f7bca550 10288 }
Azure.IoT Build 0:6ae2f7bca550 10289
Azure.IoT Build 0:6ae2f7bca550 10290 int sasl_mechanisms_set_sasl_server_mechanisms(SASL_MECHANISMS_HANDLE sasl_mechanisms, AMQP_VALUE sasl_server_mechanisms_value)
Azure.IoT Build 0:6ae2f7bca550 10291 {
AzureIoTClient 28:add19eb7defa 10292 int result;
AzureIoTClient 28:add19eb7defa 10293
AzureIoTClient 28:add19eb7defa 10294 if (sasl_mechanisms == NULL)
AzureIoTClient 28:add19eb7defa 10295 {
AzureIoTClient 28:add19eb7defa 10296 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10297 }
AzureIoTClient 28:add19eb7defa 10298 else
AzureIoTClient 28:add19eb7defa 10299 {
AzureIoTClient 28:add19eb7defa 10300 SASL_MECHANISMS_INSTANCE* sasl_mechanisms_instance = (SASL_MECHANISMS_INSTANCE*)sasl_mechanisms;
AzureIoTClient 28:add19eb7defa 10301 AMQP_VALUE sasl_server_mechanisms_amqp_value;
AzureIoTClient 23:1111ee8bcba4 10302 if (sasl_server_mechanisms_value == NULL)
AzureIoTClient 23:1111ee8bcba4 10303 {
AzureIoTClient 23:1111ee8bcba4 10304 sasl_server_mechanisms_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 10305 }
AzureIoTClient 23:1111ee8bcba4 10306 else
AzureIoTClient 23:1111ee8bcba4 10307 {
AzureIoTClient 23:1111ee8bcba4 10308 sasl_server_mechanisms_amqp_value = amqpvalue_clone(sasl_server_mechanisms_value);
AzureIoTClient 23:1111ee8bcba4 10309 }
AzureIoTClient 28:add19eb7defa 10310 if (sasl_server_mechanisms_amqp_value == 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 if (amqpvalue_set_composite_item(sasl_mechanisms_instance->composite_value, 0, sasl_server_mechanisms_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10317 {
AzureIoTClient 28:add19eb7defa 10318 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10319 }
AzureIoTClient 28:add19eb7defa 10320 else
AzureIoTClient 28:add19eb7defa 10321 {
AzureIoTClient 28:add19eb7defa 10322 result = 0;
AzureIoTClient 28:add19eb7defa 10323 }
AzureIoTClient 28:add19eb7defa 10324
AzureIoTClient 28:add19eb7defa 10325 amqpvalue_destroy(sasl_server_mechanisms_amqp_value);
AzureIoTClient 28:add19eb7defa 10326 }
AzureIoTClient 28:add19eb7defa 10327 }
AzureIoTClient 28:add19eb7defa 10328
AzureIoTClient 28:add19eb7defa 10329 return result;
Azure.IoT Build 0:6ae2f7bca550 10330 }
Azure.IoT Build 0:6ae2f7bca550 10331
Azure.IoT Build 0:6ae2f7bca550 10332
Azure.IoT Build 0:6ae2f7bca550 10333 /* sasl-init */
Azure.IoT Build 0:6ae2f7bca550 10334
Azure.IoT Build 0:6ae2f7bca550 10335 typedef struct SASL_INIT_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10336 {
AzureIoTClient 28:add19eb7defa 10337 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10338 } SASL_INIT_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10339
Azure.IoT Build 0:6ae2f7bca550 10340 static SASL_INIT_HANDLE sasl_init_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10341 {
AzureIoTClient 28:add19eb7defa 10342 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10343 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10344 {
AzureIoTClient 28:add19eb7defa 10345 sasl_init_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10346 }
AzureIoTClient 28:add19eb7defa 10347
AzureIoTClient 28:add19eb7defa 10348 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10349 }
Azure.IoT Build 0:6ae2f7bca550 10350
Azure.IoT Build 0:6ae2f7bca550 10351 SASL_INIT_HANDLE sasl_init_create(const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10352 {
AzureIoTClient 28:add19eb7defa 10353 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10354 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10355 {
AzureIoTClient 28:add19eb7defa 10356 sasl_init_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(65);
AzureIoTClient 28:add19eb7defa 10357 if (sasl_init_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10358 {
AzureIoTClient 28:add19eb7defa 10359 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10360 sasl_init_instance = NULL;
AzureIoTClient 28:add19eb7defa 10361 }
AzureIoTClient 28:add19eb7defa 10362 else
AzureIoTClient 28:add19eb7defa 10363 {
AzureIoTClient 28:add19eb7defa 10364 AMQP_VALUE mechanism_amqp_value;
AzureIoTClient 28:add19eb7defa 10365 int result = 0;
AzureIoTClient 28:add19eb7defa 10366
AzureIoTClient 28:add19eb7defa 10367 mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
AzureIoTClient 28:add19eb7defa 10368 if ((result == 0) && (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10369 {
AzureIoTClient 28:add19eb7defa 10370 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10371 }
AzureIoTClient 28:add19eb7defa 10372
AzureIoTClient 28:add19eb7defa 10373 amqpvalue_destroy(mechanism_amqp_value);
AzureIoTClient 28:add19eb7defa 10374 }
AzureIoTClient 28:add19eb7defa 10375 }
AzureIoTClient 28:add19eb7defa 10376
AzureIoTClient 28:add19eb7defa 10377 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10378 }
Azure.IoT Build 0:6ae2f7bca550 10379
Azure.IoT Build 0:6ae2f7bca550 10380 SASL_INIT_HANDLE sasl_init_clone(SASL_INIT_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10381 {
AzureIoTClient 28:add19eb7defa 10382 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)malloc(sizeof(SASL_INIT_INSTANCE));
AzureIoTClient 28:add19eb7defa 10383 if (sasl_init_instance != NULL)
AzureIoTClient 28:add19eb7defa 10384 {
AzureIoTClient 28:add19eb7defa 10385 sasl_init_instance->composite_value = amqpvalue_clone(((SASL_INIT_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10386 if (sasl_init_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10387 {
AzureIoTClient 28:add19eb7defa 10388 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10389 sasl_init_instance = NULL;
AzureIoTClient 28:add19eb7defa 10390 }
AzureIoTClient 28:add19eb7defa 10391 }
AzureIoTClient 28:add19eb7defa 10392
AzureIoTClient 28:add19eb7defa 10393 return sasl_init_instance;
Azure.IoT Build 0:6ae2f7bca550 10394 }
Azure.IoT Build 0:6ae2f7bca550 10395
Azure.IoT Build 0:6ae2f7bca550 10396 void sasl_init_destroy(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 10397 {
AzureIoTClient 28:add19eb7defa 10398 if (sasl_init != NULL)
AzureIoTClient 28:add19eb7defa 10399 {
AzureIoTClient 28:add19eb7defa 10400 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10401 amqpvalue_destroy(sasl_init_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10402 free(sasl_init_instance);
AzureIoTClient 28:add19eb7defa 10403 }
Azure.IoT Build 0:6ae2f7bca550 10404 }
Azure.IoT Build 0:6ae2f7bca550 10405
Azure.IoT Build 0:6ae2f7bca550 10406 AMQP_VALUE amqpvalue_create_sasl_init(SASL_INIT_HANDLE sasl_init)
Azure.IoT Build 0:6ae2f7bca550 10407 {
AzureIoTClient 28:add19eb7defa 10408 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 10409
AzureIoTClient 28:add19eb7defa 10410 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10411 {
AzureIoTClient 28:add19eb7defa 10412 result = NULL;
AzureIoTClient 28:add19eb7defa 10413 }
AzureIoTClient 28:add19eb7defa 10414 else
AzureIoTClient 28:add19eb7defa 10415 {
AzureIoTClient 28:add19eb7defa 10416 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10417 result = amqpvalue_clone(sasl_init_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10418 }
AzureIoTClient 28:add19eb7defa 10419
AzureIoTClient 28:add19eb7defa 10420 return result;
Azure.IoT Build 0:6ae2f7bca550 10421 }
Azure.IoT Build 0:6ae2f7bca550 10422
Azure.IoT Build 0:6ae2f7bca550 10423 bool is_sasl_init_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10424 {
AzureIoTClient 28:add19eb7defa 10425 bool result;
AzureIoTClient 28:add19eb7defa 10426
AzureIoTClient 28:add19eb7defa 10427 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 10428 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 10429 (descriptor_ulong == 65))
AzureIoTClient 28:add19eb7defa 10430 {
AzureIoTClient 28:add19eb7defa 10431 result = true;
AzureIoTClient 28:add19eb7defa 10432 }
AzureIoTClient 28:add19eb7defa 10433 else
AzureIoTClient 28:add19eb7defa 10434 {
AzureIoTClient 28:add19eb7defa 10435 result = false;
AzureIoTClient 28:add19eb7defa 10436 }
AzureIoTClient 28:add19eb7defa 10437
AzureIoTClient 28:add19eb7defa 10438 return result;
Azure.IoT Build 0:6ae2f7bca550 10439 }
Azure.IoT Build 0:6ae2f7bca550 10440
Azure.IoT Build 0:6ae2f7bca550 10441
Azure.IoT Build 0:6ae2f7bca550 10442 int amqpvalue_get_sasl_init(AMQP_VALUE value, SASL_INIT_HANDLE* sasl_init_handle)
Azure.IoT Build 0:6ae2f7bca550 10443 {
AzureIoTClient 28:add19eb7defa 10444 int result;
AzureIoTClient 28:add19eb7defa 10445 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init_create_internal();
AzureIoTClient 28:add19eb7defa 10446 *sasl_init_handle = sasl_init_instance;
AzureIoTClient 28:add19eb7defa 10447 if (*sasl_init_handle == NULL)
AzureIoTClient 28:add19eb7defa 10448 {
AzureIoTClient 28:add19eb7defa 10449 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10450 }
AzureIoTClient 28:add19eb7defa 10451 else
AzureIoTClient 28:add19eb7defa 10452 {
AzureIoTClient 28:add19eb7defa 10453 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 10454 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 10455 {
AzureIoTClient 28:add19eb7defa 10456 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10457 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10458 }
AzureIoTClient 28:add19eb7defa 10459 else
AzureIoTClient 28:add19eb7defa 10460 {
AzureIoTClient 23:1111ee8bcba4 10461 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10462 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10463 {
AzureIoTClient 23:1111ee8bcba4 10464 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10465 }
AzureIoTClient 23:1111ee8bcba4 10466 else
AzureIoTClient 23:1111ee8bcba4 10467 {
AzureIoTClient 28:add19eb7defa 10468 do
AzureIoTClient 28:add19eb7defa 10469 {
AzureIoTClient 28:add19eb7defa 10470 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 10471 /* mechanism */
AzureIoTClient 28:add19eb7defa 10472 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10473 {
AzureIoTClient 23:1111ee8bcba4 10474 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 10475 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10476 {
AzureIoTClient 28:add19eb7defa 10477 {
AzureIoTClient 28:add19eb7defa 10478 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10479 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10480 break;
AzureIoTClient 28:add19eb7defa 10481 }
AzureIoTClient 28:add19eb7defa 10482 }
AzureIoTClient 28:add19eb7defa 10483 else
AzureIoTClient 28:add19eb7defa 10484 {
AzureIoTClient 28:add19eb7defa 10485 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10486 {
AzureIoTClient 28:add19eb7defa 10487 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10488 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10489 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10490 break;
AzureIoTClient 28:add19eb7defa 10491 }
AzureIoTClient 28:add19eb7defa 10492 else
AzureIoTClient 28:add19eb7defa 10493 {
AzureIoTClient 28:add19eb7defa 10494 const char* mechanism;
AzureIoTClient 28:add19eb7defa 10495 if (amqpvalue_get_symbol(item_value, &mechanism) != 0)
AzureIoTClient 28:add19eb7defa 10496 {
AzureIoTClient 28:add19eb7defa 10497 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10498 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10499 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10500 break;
AzureIoTClient 28:add19eb7defa 10501 }
AzureIoTClient 28:add19eb7defa 10502 }
AzureIoTClient 28:add19eb7defa 10503
AzureIoTClient 28:add19eb7defa 10504 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10505 }
AzureIoTClient 28:add19eb7defa 10506 }
AzureIoTClient 28:add19eb7defa 10507 else
AzureIoTClient 28:add19eb7defa 10508 {
AzureIoTClient 28:add19eb7defa 10509 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10510 }
AzureIoTClient 28:add19eb7defa 10511 /* initial-response */
AzureIoTClient 28:add19eb7defa 10512 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 10513 {
AzureIoTClient 23:1111ee8bcba4 10514 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 10515 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10516 {
AzureIoTClient 28:add19eb7defa 10517 /* do nothing */
AzureIoTClient 28:add19eb7defa 10518 }
AzureIoTClient 28:add19eb7defa 10519 else
AzureIoTClient 28:add19eb7defa 10520 {
AzureIoTClient 28:add19eb7defa 10521 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10522 {
AzureIoTClient 28:add19eb7defa 10523 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 10524 }
AzureIoTClient 28:add19eb7defa 10525 else
AzureIoTClient 28:add19eb7defa 10526 {
AzureIoTClient 28:add19eb7defa 10527 amqp_binary initial_response;
AzureIoTClient 28:add19eb7defa 10528 if (amqpvalue_get_binary(item_value, &initial_response) != 0)
AzureIoTClient 28:add19eb7defa 10529 {
AzureIoTClient 28:add19eb7defa 10530 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10531 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10532 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10533 break;
AzureIoTClient 28:add19eb7defa 10534 }
AzureIoTClient 28:add19eb7defa 10535 }
AzureIoTClient 28:add19eb7defa 10536
AzureIoTClient 28:add19eb7defa 10537 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10538 }
AzureIoTClient 28:add19eb7defa 10539 }
AzureIoTClient 28:add19eb7defa 10540 /* hostname */
AzureIoTClient 28:add19eb7defa 10541 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 10542 {
AzureIoTClient 23:1111ee8bcba4 10543 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 10544 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10545 {
AzureIoTClient 28:add19eb7defa 10546 /* do nothing */
AzureIoTClient 28:add19eb7defa 10547 }
AzureIoTClient 28:add19eb7defa 10548 else
AzureIoTClient 28:add19eb7defa 10549 {
AzureIoTClient 28:add19eb7defa 10550 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10551 {
AzureIoTClient 28:add19eb7defa 10552 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 10553 }
AzureIoTClient 28:add19eb7defa 10554 else
AzureIoTClient 28:add19eb7defa 10555 {
AzureIoTClient 28:add19eb7defa 10556 const char* hostname;
AzureIoTClient 28:add19eb7defa 10557 if (amqpvalue_get_string(item_value, &hostname) != 0)
AzureIoTClient 28:add19eb7defa 10558 {
AzureIoTClient 28:add19eb7defa 10559 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10560 sasl_init_destroy(*sasl_init_handle);
AzureIoTClient 28:add19eb7defa 10561 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10562 break;
AzureIoTClient 28:add19eb7defa 10563 }
AzureIoTClient 28:add19eb7defa 10564 }
AzureIoTClient 28:add19eb7defa 10565
AzureIoTClient 28:add19eb7defa 10566 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10567 }
AzureIoTClient 28:add19eb7defa 10568 }
AzureIoTClient 28:add19eb7defa 10569
AzureIoTClient 28:add19eb7defa 10570 sasl_init_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 10571
AzureIoTClient 28:add19eb7defa 10572 result = 0;
AzureIoTClient 28:add19eb7defa 10573 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 10574 }
AzureIoTClient 28:add19eb7defa 10575 }
AzureIoTClient 28:add19eb7defa 10576 }
AzureIoTClient 28:add19eb7defa 10577
AzureIoTClient 28:add19eb7defa 10578 return result;
Azure.IoT Build 0:6ae2f7bca550 10579 }
Azure.IoT Build 0:6ae2f7bca550 10580
Azure.IoT Build 0:6ae2f7bca550 10581 int sasl_init_get_mechanism(SASL_INIT_HANDLE sasl_init, const char** mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10582 {
AzureIoTClient 28:add19eb7defa 10583 int result;
AzureIoTClient 28:add19eb7defa 10584
AzureIoTClient 28:add19eb7defa 10585 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10586 {
AzureIoTClient 28:add19eb7defa 10587 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10588 }
AzureIoTClient 28:add19eb7defa 10589 else
AzureIoTClient 28:add19eb7defa 10590 {
AzureIoTClient 28:add19eb7defa 10591 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10592 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10593 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10594 {
AzureIoTClient 23:1111ee8bcba4 10595 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10596 }
AzureIoTClient 23:1111ee8bcba4 10597 else
AzureIoTClient 23:1111ee8bcba4 10598 {
AzureIoTClient 23:1111ee8bcba4 10599 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 10600 {
AzureIoTClient 28:add19eb7defa 10601 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10602 }
AzureIoTClient 28:add19eb7defa 10603 else
AzureIoTClient 28:add19eb7defa 10604 {
AzureIoTClient 28:add19eb7defa 10605 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 10606 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10607 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10608 {
AzureIoTClient 28:add19eb7defa 10609 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10610 }
AzureIoTClient 28:add19eb7defa 10611 else
AzureIoTClient 28:add19eb7defa 10612 {
AzureIoTClient 28:add19eb7defa 10613 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10614 if ((get_single_value_result = amqpvalue_get_symbol(item_value, mechanism_value)) != 0)
AzureIoTClient 28:add19eb7defa 10615 {
AzureIoTClient 28:add19eb7defa 10616 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10617 }
AzureIoTClient 28:add19eb7defa 10618 else
AzureIoTClient 28:add19eb7defa 10619 {
AzureIoTClient 28:add19eb7defa 10620 result = 0;
AzureIoTClient 28:add19eb7defa 10621 }
AzureIoTClient 28:add19eb7defa 10622 }
AzureIoTClient 28:add19eb7defa 10623 }
AzureIoTClient 28:add19eb7defa 10624 }
AzureIoTClient 28:add19eb7defa 10625 }
AzureIoTClient 28:add19eb7defa 10626
AzureIoTClient 28:add19eb7defa 10627 return result;
Azure.IoT Build 0:6ae2f7bca550 10628 }
Azure.IoT Build 0:6ae2f7bca550 10629
Azure.IoT Build 0:6ae2f7bca550 10630 int sasl_init_set_mechanism(SASL_INIT_HANDLE sasl_init, const char* mechanism_value)
Azure.IoT Build 0:6ae2f7bca550 10631 {
AzureIoTClient 28:add19eb7defa 10632 int result;
AzureIoTClient 28:add19eb7defa 10633
AzureIoTClient 28:add19eb7defa 10634 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10635 {
AzureIoTClient 28:add19eb7defa 10636 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10637 }
AzureIoTClient 28:add19eb7defa 10638 else
AzureIoTClient 28:add19eb7defa 10639 {
AzureIoTClient 28:add19eb7defa 10640 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10641 AMQP_VALUE mechanism_amqp_value = amqpvalue_create_symbol(mechanism_value);
AzureIoTClient 28:add19eb7defa 10642 if (mechanism_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10643 {
AzureIoTClient 28:add19eb7defa 10644 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10645 }
AzureIoTClient 28:add19eb7defa 10646 else
AzureIoTClient 28:add19eb7defa 10647 {
AzureIoTClient 28:add19eb7defa 10648 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 0, mechanism_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10649 {
AzureIoTClient 28:add19eb7defa 10650 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10651 }
AzureIoTClient 28:add19eb7defa 10652 else
AzureIoTClient 28:add19eb7defa 10653 {
AzureIoTClient 28:add19eb7defa 10654 result = 0;
AzureIoTClient 28:add19eb7defa 10655 }
AzureIoTClient 28:add19eb7defa 10656
AzureIoTClient 28:add19eb7defa 10657 amqpvalue_destroy(mechanism_amqp_value);
AzureIoTClient 28:add19eb7defa 10658 }
AzureIoTClient 28:add19eb7defa 10659 }
AzureIoTClient 28:add19eb7defa 10660
AzureIoTClient 28:add19eb7defa 10661 return result;
Azure.IoT Build 0:6ae2f7bca550 10662 }
Azure.IoT Build 0:6ae2f7bca550 10663
Azure.IoT Build 0:6ae2f7bca550 10664 int sasl_init_get_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary* initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10665 {
AzureIoTClient 28:add19eb7defa 10666 int result;
AzureIoTClient 28:add19eb7defa 10667
AzureIoTClient 28:add19eb7defa 10668 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10669 {
AzureIoTClient 28:add19eb7defa 10670 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10671 }
AzureIoTClient 28:add19eb7defa 10672 else
AzureIoTClient 28:add19eb7defa 10673 {
AzureIoTClient 28:add19eb7defa 10674 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10675 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10676 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10677 {
AzureIoTClient 23:1111ee8bcba4 10678 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10679 }
AzureIoTClient 23:1111ee8bcba4 10680 else
AzureIoTClient 23:1111ee8bcba4 10681 {
AzureIoTClient 23:1111ee8bcba4 10682 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 10683 {
AzureIoTClient 28:add19eb7defa 10684 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10685 }
AzureIoTClient 28:add19eb7defa 10686 else
AzureIoTClient 28:add19eb7defa 10687 {
AzureIoTClient 28:add19eb7defa 10688 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 10689 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10690 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10691 {
AzureIoTClient 28:add19eb7defa 10692 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10693 }
AzureIoTClient 28:add19eb7defa 10694 else
AzureIoTClient 28:add19eb7defa 10695 {
AzureIoTClient 28:add19eb7defa 10696 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10697 if ((get_single_value_result = amqpvalue_get_binary(item_value, initial_response_value)) != 0)
AzureIoTClient 28:add19eb7defa 10698 {
AzureIoTClient 28:add19eb7defa 10699 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10700 }
AzureIoTClient 28:add19eb7defa 10701 else
AzureIoTClient 28:add19eb7defa 10702 {
AzureIoTClient 28:add19eb7defa 10703 result = 0;
AzureIoTClient 28:add19eb7defa 10704 }
AzureIoTClient 28:add19eb7defa 10705 }
AzureIoTClient 28:add19eb7defa 10706 }
AzureIoTClient 28:add19eb7defa 10707 }
AzureIoTClient 28:add19eb7defa 10708 }
AzureIoTClient 28:add19eb7defa 10709
AzureIoTClient 28:add19eb7defa 10710 return result;
Azure.IoT Build 0:6ae2f7bca550 10711 }
Azure.IoT Build 0:6ae2f7bca550 10712
Azure.IoT Build 0:6ae2f7bca550 10713 int sasl_init_set_initial_response(SASL_INIT_HANDLE sasl_init, amqp_binary initial_response_value)
Azure.IoT Build 0:6ae2f7bca550 10714 {
AzureIoTClient 28:add19eb7defa 10715 int result;
AzureIoTClient 28:add19eb7defa 10716
AzureIoTClient 28:add19eb7defa 10717 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10718 {
AzureIoTClient 28:add19eb7defa 10719 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10720 }
AzureIoTClient 28:add19eb7defa 10721 else
AzureIoTClient 28:add19eb7defa 10722 {
AzureIoTClient 28:add19eb7defa 10723 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10724 AMQP_VALUE initial_response_amqp_value = amqpvalue_create_binary(initial_response_value);
AzureIoTClient 28:add19eb7defa 10725 if (initial_response_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10726 {
AzureIoTClient 28:add19eb7defa 10727 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10728 }
AzureIoTClient 28:add19eb7defa 10729 else
AzureIoTClient 28:add19eb7defa 10730 {
AzureIoTClient 28:add19eb7defa 10731 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 1, initial_response_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10732 {
AzureIoTClient 28:add19eb7defa 10733 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10734 }
AzureIoTClient 28:add19eb7defa 10735 else
AzureIoTClient 28:add19eb7defa 10736 {
AzureIoTClient 28:add19eb7defa 10737 result = 0;
AzureIoTClient 28:add19eb7defa 10738 }
AzureIoTClient 28:add19eb7defa 10739
AzureIoTClient 28:add19eb7defa 10740 amqpvalue_destroy(initial_response_amqp_value);
AzureIoTClient 28:add19eb7defa 10741 }
AzureIoTClient 28:add19eb7defa 10742 }
AzureIoTClient 28:add19eb7defa 10743
AzureIoTClient 28:add19eb7defa 10744 return result;
Azure.IoT Build 0:6ae2f7bca550 10745 }
Azure.IoT Build 0:6ae2f7bca550 10746
Azure.IoT Build 0:6ae2f7bca550 10747 int sasl_init_get_hostname(SASL_INIT_HANDLE sasl_init, const char** hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10748 {
AzureIoTClient 28:add19eb7defa 10749 int result;
AzureIoTClient 28:add19eb7defa 10750
AzureIoTClient 28:add19eb7defa 10751 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10752 {
AzureIoTClient 28:add19eb7defa 10753 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10754 }
AzureIoTClient 28:add19eb7defa 10755 else
AzureIoTClient 28:add19eb7defa 10756 {
AzureIoTClient 28:add19eb7defa 10757 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 10758 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 23:1111ee8bcba4 10759 if (amqpvalue_get_composite_item_count(sasl_init_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10760 {
AzureIoTClient 23:1111ee8bcba4 10761 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10762 }
AzureIoTClient 23:1111ee8bcba4 10763 else
AzureIoTClient 23:1111ee8bcba4 10764 {
AzureIoTClient 23:1111ee8bcba4 10765 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 10766 {
AzureIoTClient 28:add19eb7defa 10767 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10768 }
AzureIoTClient 28:add19eb7defa 10769 else
AzureIoTClient 28:add19eb7defa 10770 {
AzureIoTClient 28:add19eb7defa 10771 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_init_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 10772 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 10773 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 10774 {
AzureIoTClient 28:add19eb7defa 10775 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10776 }
AzureIoTClient 28:add19eb7defa 10777 else
AzureIoTClient 28:add19eb7defa 10778 {
AzureIoTClient 28:add19eb7defa 10779 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 10780 if ((get_single_value_result = amqpvalue_get_string(item_value, hostname_value)) != 0)
AzureIoTClient 28:add19eb7defa 10781 {
AzureIoTClient 28:add19eb7defa 10782 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10783 }
AzureIoTClient 28:add19eb7defa 10784 else
AzureIoTClient 28:add19eb7defa 10785 {
AzureIoTClient 28:add19eb7defa 10786 result = 0;
AzureIoTClient 28:add19eb7defa 10787 }
AzureIoTClient 28:add19eb7defa 10788 }
AzureIoTClient 28:add19eb7defa 10789 }
AzureIoTClient 28:add19eb7defa 10790 }
AzureIoTClient 28:add19eb7defa 10791 }
AzureIoTClient 28:add19eb7defa 10792
AzureIoTClient 28:add19eb7defa 10793 return result;
Azure.IoT Build 0:6ae2f7bca550 10794 }
Azure.IoT Build 0:6ae2f7bca550 10795
Azure.IoT Build 0:6ae2f7bca550 10796 int sasl_init_set_hostname(SASL_INIT_HANDLE sasl_init, const char* hostname_value)
Azure.IoT Build 0:6ae2f7bca550 10797 {
AzureIoTClient 28:add19eb7defa 10798 int result;
AzureIoTClient 28:add19eb7defa 10799
AzureIoTClient 28:add19eb7defa 10800 if (sasl_init == NULL)
AzureIoTClient 28:add19eb7defa 10801 {
AzureIoTClient 28:add19eb7defa 10802 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10803 }
AzureIoTClient 28:add19eb7defa 10804 else
AzureIoTClient 28:add19eb7defa 10805 {
AzureIoTClient 28:add19eb7defa 10806 SASL_INIT_INSTANCE* sasl_init_instance = (SASL_INIT_INSTANCE*)sasl_init;
AzureIoTClient 28:add19eb7defa 10807 AMQP_VALUE hostname_amqp_value = amqpvalue_create_string(hostname_value);
AzureIoTClient 28:add19eb7defa 10808 if (hostname_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 10809 {
AzureIoTClient 28:add19eb7defa 10810 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10811 }
AzureIoTClient 28:add19eb7defa 10812 else
AzureIoTClient 28:add19eb7defa 10813 {
AzureIoTClient 28:add19eb7defa 10814 if (amqpvalue_set_composite_item(sasl_init_instance->composite_value, 2, hostname_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 10815 {
AzureIoTClient 28:add19eb7defa 10816 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10817 }
AzureIoTClient 28:add19eb7defa 10818 else
AzureIoTClient 28:add19eb7defa 10819 {
AzureIoTClient 28:add19eb7defa 10820 result = 0;
AzureIoTClient 28:add19eb7defa 10821 }
AzureIoTClient 28:add19eb7defa 10822
AzureIoTClient 28:add19eb7defa 10823 amqpvalue_destroy(hostname_amqp_value);
AzureIoTClient 28:add19eb7defa 10824 }
AzureIoTClient 28:add19eb7defa 10825 }
AzureIoTClient 28:add19eb7defa 10826
AzureIoTClient 28:add19eb7defa 10827 return result;
Azure.IoT Build 0:6ae2f7bca550 10828 }
Azure.IoT Build 0:6ae2f7bca550 10829
Azure.IoT Build 0:6ae2f7bca550 10830
Azure.IoT Build 0:6ae2f7bca550 10831 /* sasl-challenge */
Azure.IoT Build 0:6ae2f7bca550 10832
Azure.IoT Build 0:6ae2f7bca550 10833 typedef struct SASL_CHALLENGE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 10834 {
AzureIoTClient 28:add19eb7defa 10835 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 10836 } SASL_CHALLENGE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 10837
Azure.IoT Build 0:6ae2f7bca550 10838 static SASL_CHALLENGE_HANDLE sasl_challenge_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 10839 {
AzureIoTClient 28:add19eb7defa 10840 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10841 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10842 {
AzureIoTClient 28:add19eb7defa 10843 sasl_challenge_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 10844 }
AzureIoTClient 28:add19eb7defa 10845
AzureIoTClient 28:add19eb7defa 10846 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10847 }
Azure.IoT Build 0:6ae2f7bca550 10848
Azure.IoT Build 0:6ae2f7bca550 10849 SASL_CHALLENGE_HANDLE sasl_challenge_create(amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 10850 {
AzureIoTClient 28:add19eb7defa 10851 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10852 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10853 {
AzureIoTClient 28:add19eb7defa 10854 sasl_challenge_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(66);
AzureIoTClient 28:add19eb7defa 10855 if (sasl_challenge_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10856 {
AzureIoTClient 28:add19eb7defa 10857 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10858 sasl_challenge_instance = NULL;
AzureIoTClient 28:add19eb7defa 10859 }
AzureIoTClient 28:add19eb7defa 10860 else
AzureIoTClient 28:add19eb7defa 10861 {
AzureIoTClient 28:add19eb7defa 10862 AMQP_VALUE challenge_amqp_value;
AzureIoTClient 28:add19eb7defa 10863 int result = 0;
AzureIoTClient 28:add19eb7defa 10864
AzureIoTClient 28:add19eb7defa 10865 challenge_amqp_value = amqpvalue_create_binary(challenge_value);
AzureIoTClient 28:add19eb7defa 10866 if ((result == 0) && (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 10867 {
AzureIoTClient 28:add19eb7defa 10868 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10869 }
AzureIoTClient 28:add19eb7defa 10870
AzureIoTClient 28:add19eb7defa 10871 amqpvalue_destroy(challenge_amqp_value);
AzureIoTClient 28:add19eb7defa 10872 }
AzureIoTClient 28:add19eb7defa 10873 }
AzureIoTClient 28:add19eb7defa 10874
AzureIoTClient 28:add19eb7defa 10875 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10876 }
Azure.IoT Build 0:6ae2f7bca550 10877
Azure.IoT Build 0:6ae2f7bca550 10878 SASL_CHALLENGE_HANDLE sasl_challenge_clone(SASL_CHALLENGE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 10879 {
AzureIoTClient 28:add19eb7defa 10880 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)malloc(sizeof(SASL_CHALLENGE_INSTANCE));
AzureIoTClient 28:add19eb7defa 10881 if (sasl_challenge_instance != NULL)
AzureIoTClient 28:add19eb7defa 10882 {
AzureIoTClient 28:add19eb7defa 10883 sasl_challenge_instance->composite_value = amqpvalue_clone(((SASL_CHALLENGE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 10884 if (sasl_challenge_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 10885 {
AzureIoTClient 28:add19eb7defa 10886 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10887 sasl_challenge_instance = NULL;
AzureIoTClient 28:add19eb7defa 10888 }
AzureIoTClient 28:add19eb7defa 10889 }
AzureIoTClient 28:add19eb7defa 10890
AzureIoTClient 28:add19eb7defa 10891 return sasl_challenge_instance;
Azure.IoT Build 0:6ae2f7bca550 10892 }
Azure.IoT Build 0:6ae2f7bca550 10893
Azure.IoT Build 0:6ae2f7bca550 10894 void sasl_challenge_destroy(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 10895 {
AzureIoTClient 28:add19eb7defa 10896 if (sasl_challenge != NULL)
AzureIoTClient 28:add19eb7defa 10897 {
AzureIoTClient 28:add19eb7defa 10898 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 10899 amqpvalue_destroy(sasl_challenge_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10900 free(sasl_challenge_instance);
AzureIoTClient 28:add19eb7defa 10901 }
Azure.IoT Build 0:6ae2f7bca550 10902 }
Azure.IoT Build 0:6ae2f7bca550 10903
Azure.IoT Build 0:6ae2f7bca550 10904 AMQP_VALUE amqpvalue_create_sasl_challenge(SASL_CHALLENGE_HANDLE sasl_challenge)
Azure.IoT Build 0:6ae2f7bca550 10905 {
AzureIoTClient 28:add19eb7defa 10906 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 10907
AzureIoTClient 28:add19eb7defa 10908 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 10909 {
AzureIoTClient 28:add19eb7defa 10910 result = NULL;
AzureIoTClient 28:add19eb7defa 10911 }
AzureIoTClient 28:add19eb7defa 10912 else
AzureIoTClient 28:add19eb7defa 10913 {
AzureIoTClient 28:add19eb7defa 10914 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 10915 result = amqpvalue_clone(sasl_challenge_instance->composite_value);
AzureIoTClient 28:add19eb7defa 10916 }
AzureIoTClient 28:add19eb7defa 10917
AzureIoTClient 28:add19eb7defa 10918 return result;
Azure.IoT Build 0:6ae2f7bca550 10919 }
Azure.IoT Build 0:6ae2f7bca550 10920
Azure.IoT Build 0:6ae2f7bca550 10921 bool is_sasl_challenge_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 10922 {
AzureIoTClient 28:add19eb7defa 10923 bool result;
AzureIoTClient 28:add19eb7defa 10924
AzureIoTClient 28:add19eb7defa 10925 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 10926 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 10927 (descriptor_ulong == 66))
AzureIoTClient 28:add19eb7defa 10928 {
AzureIoTClient 28:add19eb7defa 10929 result = true;
AzureIoTClient 28:add19eb7defa 10930 }
AzureIoTClient 28:add19eb7defa 10931 else
AzureIoTClient 28:add19eb7defa 10932 {
AzureIoTClient 28:add19eb7defa 10933 result = false;
AzureIoTClient 28:add19eb7defa 10934 }
AzureIoTClient 28:add19eb7defa 10935
AzureIoTClient 28:add19eb7defa 10936 return result;
Azure.IoT Build 0:6ae2f7bca550 10937 }
Azure.IoT Build 0:6ae2f7bca550 10938
Azure.IoT Build 0:6ae2f7bca550 10939
Azure.IoT Build 0:6ae2f7bca550 10940 int amqpvalue_get_sasl_challenge(AMQP_VALUE value, SASL_CHALLENGE_HANDLE* sasl_challenge_handle)
Azure.IoT Build 0:6ae2f7bca550 10941 {
AzureIoTClient 28:add19eb7defa 10942 int result;
AzureIoTClient 28:add19eb7defa 10943 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge_create_internal();
AzureIoTClient 28:add19eb7defa 10944 *sasl_challenge_handle = sasl_challenge_instance;
AzureIoTClient 28:add19eb7defa 10945 if (*sasl_challenge_handle == NULL)
AzureIoTClient 28:add19eb7defa 10946 {
AzureIoTClient 28:add19eb7defa 10947 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10948 }
AzureIoTClient 28:add19eb7defa 10949 else
AzureIoTClient 28:add19eb7defa 10950 {
AzureIoTClient 28:add19eb7defa 10951 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 10952 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 10953 {
AzureIoTClient 28:add19eb7defa 10954 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 10955 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10956 }
AzureIoTClient 28:add19eb7defa 10957 else
AzureIoTClient 28:add19eb7defa 10958 {
AzureIoTClient 23:1111ee8bcba4 10959 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 10960 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 10961 {
AzureIoTClient 23:1111ee8bcba4 10962 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 10963 }
AzureIoTClient 23:1111ee8bcba4 10964 else
AzureIoTClient 23:1111ee8bcba4 10965 {
AzureIoTClient 28:add19eb7defa 10966 do
AzureIoTClient 28:add19eb7defa 10967 {
AzureIoTClient 28:add19eb7defa 10968 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 10969 /* challenge */
AzureIoTClient 28:add19eb7defa 10970 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 10971 {
AzureIoTClient 23:1111ee8bcba4 10972 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 10973 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 10974 {
AzureIoTClient 28:add19eb7defa 10975 {
AzureIoTClient 28:add19eb7defa 10976 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 10977 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10978 break;
AzureIoTClient 28:add19eb7defa 10979 }
AzureIoTClient 28:add19eb7defa 10980 }
AzureIoTClient 28:add19eb7defa 10981 else
AzureIoTClient 28:add19eb7defa 10982 {
AzureIoTClient 28:add19eb7defa 10983 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 10984 {
AzureIoTClient 28:add19eb7defa 10985 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10986 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 10987 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10988 break;
AzureIoTClient 28:add19eb7defa 10989 }
AzureIoTClient 28:add19eb7defa 10990 else
AzureIoTClient 28:add19eb7defa 10991 {
AzureIoTClient 28:add19eb7defa 10992 amqp_binary challenge;
AzureIoTClient 28:add19eb7defa 10993 if (amqpvalue_get_binary(item_value, &challenge) != 0)
AzureIoTClient 28:add19eb7defa 10994 {
AzureIoTClient 28:add19eb7defa 10995 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 10996 sasl_challenge_destroy(*sasl_challenge_handle);
AzureIoTClient 28:add19eb7defa 10997 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 10998 break;
AzureIoTClient 28:add19eb7defa 10999 }
AzureIoTClient 28:add19eb7defa 11000 }
AzureIoTClient 28:add19eb7defa 11001
AzureIoTClient 28:add19eb7defa 11002 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11003 }
AzureIoTClient 28:add19eb7defa 11004 }
AzureIoTClient 28:add19eb7defa 11005 else
AzureIoTClient 28:add19eb7defa 11006 {
AzureIoTClient 28:add19eb7defa 11007 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11008 }
AzureIoTClient 28:add19eb7defa 11009
AzureIoTClient 28:add19eb7defa 11010 sasl_challenge_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11011
AzureIoTClient 28:add19eb7defa 11012 result = 0;
AzureIoTClient 28:add19eb7defa 11013 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11014 }
AzureIoTClient 28:add19eb7defa 11015 }
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 int sasl_challenge_get_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary* challenge_value)
Azure.IoT Build 0:6ae2f7bca550 11022 {
AzureIoTClient 28:add19eb7defa 11023 int result;
AzureIoTClient 28:add19eb7defa 11024
AzureIoTClient 28:add19eb7defa 11025 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11026 {
AzureIoTClient 28:add19eb7defa 11027 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11028 }
AzureIoTClient 28:add19eb7defa 11029 else
AzureIoTClient 28:add19eb7defa 11030 {
AzureIoTClient 28:add19eb7defa 11031 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11032 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 23:1111ee8bcba4 11033 if (amqpvalue_get_composite_item_count(sasl_challenge_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11034 {
AzureIoTClient 23:1111ee8bcba4 11035 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11036 }
AzureIoTClient 23:1111ee8bcba4 11037 else
AzureIoTClient 23:1111ee8bcba4 11038 {
AzureIoTClient 23:1111ee8bcba4 11039 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11040 {
AzureIoTClient 28:add19eb7defa 11041 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11042 }
AzureIoTClient 28:add19eb7defa 11043 else
AzureIoTClient 28:add19eb7defa 11044 {
AzureIoTClient 28:add19eb7defa 11045 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_challenge_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11046 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11047 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11048 {
AzureIoTClient 28:add19eb7defa 11049 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11050 }
AzureIoTClient 28:add19eb7defa 11051 else
AzureIoTClient 28:add19eb7defa 11052 {
AzureIoTClient 28:add19eb7defa 11053 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11054 if ((get_single_value_result = amqpvalue_get_binary(item_value, challenge_value)) != 0)
AzureIoTClient 28:add19eb7defa 11055 {
AzureIoTClient 28:add19eb7defa 11056 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11057 }
AzureIoTClient 28:add19eb7defa 11058 else
AzureIoTClient 28:add19eb7defa 11059 {
AzureIoTClient 28:add19eb7defa 11060 result = 0;
AzureIoTClient 28:add19eb7defa 11061 }
AzureIoTClient 28:add19eb7defa 11062 }
AzureIoTClient 28:add19eb7defa 11063 }
AzureIoTClient 28:add19eb7defa 11064 }
AzureIoTClient 28:add19eb7defa 11065 }
AzureIoTClient 28:add19eb7defa 11066
AzureIoTClient 28:add19eb7defa 11067 return result;
Azure.IoT Build 0:6ae2f7bca550 11068 }
Azure.IoT Build 0:6ae2f7bca550 11069
Azure.IoT Build 0:6ae2f7bca550 11070 int sasl_challenge_set_challenge(SASL_CHALLENGE_HANDLE sasl_challenge, amqp_binary challenge_value)
Azure.IoT Build 0:6ae2f7bca550 11071 {
AzureIoTClient 28:add19eb7defa 11072 int result;
AzureIoTClient 28:add19eb7defa 11073
AzureIoTClient 28:add19eb7defa 11074 if (sasl_challenge == NULL)
AzureIoTClient 28:add19eb7defa 11075 {
AzureIoTClient 28:add19eb7defa 11076 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11077 }
AzureIoTClient 28:add19eb7defa 11078 else
AzureIoTClient 28:add19eb7defa 11079 {
AzureIoTClient 28:add19eb7defa 11080 SASL_CHALLENGE_INSTANCE* sasl_challenge_instance = (SASL_CHALLENGE_INSTANCE*)sasl_challenge;
AzureIoTClient 28:add19eb7defa 11081 AMQP_VALUE challenge_amqp_value = amqpvalue_create_binary(challenge_value);
AzureIoTClient 28:add19eb7defa 11082 if (challenge_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11083 {
AzureIoTClient 28:add19eb7defa 11084 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11085 }
AzureIoTClient 28:add19eb7defa 11086 else
AzureIoTClient 28:add19eb7defa 11087 {
AzureIoTClient 28:add19eb7defa 11088 if (amqpvalue_set_composite_item(sasl_challenge_instance->composite_value, 0, challenge_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11089 {
AzureIoTClient 28:add19eb7defa 11090 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11091 }
AzureIoTClient 28:add19eb7defa 11092 else
AzureIoTClient 28:add19eb7defa 11093 {
AzureIoTClient 28:add19eb7defa 11094 result = 0;
AzureIoTClient 28:add19eb7defa 11095 }
AzureIoTClient 28:add19eb7defa 11096
AzureIoTClient 28:add19eb7defa 11097 amqpvalue_destroy(challenge_amqp_value);
AzureIoTClient 28:add19eb7defa 11098 }
AzureIoTClient 28:add19eb7defa 11099 }
AzureIoTClient 28:add19eb7defa 11100
AzureIoTClient 28:add19eb7defa 11101 return result;
Azure.IoT Build 0:6ae2f7bca550 11102 }
Azure.IoT Build 0:6ae2f7bca550 11103
Azure.IoT Build 0:6ae2f7bca550 11104
Azure.IoT Build 0:6ae2f7bca550 11105 /* sasl-response */
Azure.IoT Build 0:6ae2f7bca550 11106
Azure.IoT Build 0:6ae2f7bca550 11107 typedef struct SASL_RESPONSE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11108 {
AzureIoTClient 28:add19eb7defa 11109 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11110 } SASL_RESPONSE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11111
Azure.IoT Build 0:6ae2f7bca550 11112 static SASL_RESPONSE_HANDLE sasl_response_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11113 {
AzureIoTClient 28:add19eb7defa 11114 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11115 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11116 {
AzureIoTClient 28:add19eb7defa 11117 sasl_response_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11118 }
AzureIoTClient 28:add19eb7defa 11119
AzureIoTClient 28:add19eb7defa 11120 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11121 }
Azure.IoT Build 0:6ae2f7bca550 11122
Azure.IoT Build 0:6ae2f7bca550 11123 SASL_RESPONSE_HANDLE sasl_response_create(amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 11124 {
AzureIoTClient 28:add19eb7defa 11125 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11126 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11127 {
AzureIoTClient 28:add19eb7defa 11128 sasl_response_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(67);
AzureIoTClient 28:add19eb7defa 11129 if (sasl_response_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11130 {
AzureIoTClient 28:add19eb7defa 11131 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11132 sasl_response_instance = NULL;
AzureIoTClient 28:add19eb7defa 11133 }
AzureIoTClient 28:add19eb7defa 11134 else
AzureIoTClient 28:add19eb7defa 11135 {
AzureIoTClient 28:add19eb7defa 11136 AMQP_VALUE response_amqp_value;
AzureIoTClient 28:add19eb7defa 11137 int result = 0;
AzureIoTClient 28:add19eb7defa 11138
AzureIoTClient 28:add19eb7defa 11139 response_amqp_value = amqpvalue_create_binary(response_value);
AzureIoTClient 28:add19eb7defa 11140 if ((result == 0) && (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 11141 {
AzureIoTClient 28:add19eb7defa 11142 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11143 }
AzureIoTClient 28:add19eb7defa 11144
AzureIoTClient 28:add19eb7defa 11145 amqpvalue_destroy(response_amqp_value);
AzureIoTClient 28:add19eb7defa 11146 }
AzureIoTClient 28:add19eb7defa 11147 }
AzureIoTClient 28:add19eb7defa 11148
AzureIoTClient 28:add19eb7defa 11149 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11150 }
Azure.IoT Build 0:6ae2f7bca550 11151
Azure.IoT Build 0:6ae2f7bca550 11152 SASL_RESPONSE_HANDLE sasl_response_clone(SASL_RESPONSE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11153 {
AzureIoTClient 28:add19eb7defa 11154 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)malloc(sizeof(SASL_RESPONSE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11155 if (sasl_response_instance != NULL)
AzureIoTClient 28:add19eb7defa 11156 {
AzureIoTClient 28:add19eb7defa 11157 sasl_response_instance->composite_value = amqpvalue_clone(((SASL_RESPONSE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11158 if (sasl_response_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11159 {
AzureIoTClient 28:add19eb7defa 11160 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11161 sasl_response_instance = NULL;
AzureIoTClient 28:add19eb7defa 11162 }
AzureIoTClient 28:add19eb7defa 11163 }
AzureIoTClient 28:add19eb7defa 11164
AzureIoTClient 28:add19eb7defa 11165 return sasl_response_instance;
Azure.IoT Build 0:6ae2f7bca550 11166 }
Azure.IoT Build 0:6ae2f7bca550 11167
Azure.IoT Build 0:6ae2f7bca550 11168 void sasl_response_destroy(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 11169 {
AzureIoTClient 28:add19eb7defa 11170 if (sasl_response != NULL)
AzureIoTClient 28:add19eb7defa 11171 {
AzureIoTClient 28:add19eb7defa 11172 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11173 amqpvalue_destroy(sasl_response_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11174 free(sasl_response_instance);
AzureIoTClient 28:add19eb7defa 11175 }
Azure.IoT Build 0:6ae2f7bca550 11176 }
Azure.IoT Build 0:6ae2f7bca550 11177
Azure.IoT Build 0:6ae2f7bca550 11178 AMQP_VALUE amqpvalue_create_sasl_response(SASL_RESPONSE_HANDLE sasl_response)
Azure.IoT Build 0:6ae2f7bca550 11179 {
AzureIoTClient 28:add19eb7defa 11180 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11181
AzureIoTClient 28:add19eb7defa 11182 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11183 {
AzureIoTClient 28:add19eb7defa 11184 result = NULL;
AzureIoTClient 28:add19eb7defa 11185 }
AzureIoTClient 28:add19eb7defa 11186 else
AzureIoTClient 28:add19eb7defa 11187 {
AzureIoTClient 28:add19eb7defa 11188 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11189 result = amqpvalue_clone(sasl_response_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11190 }
AzureIoTClient 28:add19eb7defa 11191
AzureIoTClient 28:add19eb7defa 11192 return result;
Azure.IoT Build 0:6ae2f7bca550 11193 }
Azure.IoT Build 0:6ae2f7bca550 11194
Azure.IoT Build 0:6ae2f7bca550 11195 bool is_sasl_response_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11196 {
AzureIoTClient 28:add19eb7defa 11197 bool result;
AzureIoTClient 28:add19eb7defa 11198
AzureIoTClient 28:add19eb7defa 11199 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11200 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11201 (descriptor_ulong == 67))
AzureIoTClient 28:add19eb7defa 11202 {
AzureIoTClient 28:add19eb7defa 11203 result = true;
AzureIoTClient 28:add19eb7defa 11204 }
AzureIoTClient 28:add19eb7defa 11205 else
AzureIoTClient 28:add19eb7defa 11206 {
AzureIoTClient 28:add19eb7defa 11207 result = false;
AzureIoTClient 28:add19eb7defa 11208 }
AzureIoTClient 28:add19eb7defa 11209
AzureIoTClient 28:add19eb7defa 11210 return result;
Azure.IoT Build 0:6ae2f7bca550 11211 }
Azure.IoT Build 0:6ae2f7bca550 11212
Azure.IoT Build 0:6ae2f7bca550 11213
Azure.IoT Build 0:6ae2f7bca550 11214 int amqpvalue_get_sasl_response(AMQP_VALUE value, SASL_RESPONSE_HANDLE* sasl_response_handle)
Azure.IoT Build 0:6ae2f7bca550 11215 {
AzureIoTClient 28:add19eb7defa 11216 int result;
AzureIoTClient 28:add19eb7defa 11217 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response_create_internal();
AzureIoTClient 28:add19eb7defa 11218 *sasl_response_handle = sasl_response_instance;
AzureIoTClient 28:add19eb7defa 11219 if (*sasl_response_handle == NULL)
AzureIoTClient 28:add19eb7defa 11220 {
AzureIoTClient 28:add19eb7defa 11221 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11222 }
AzureIoTClient 28:add19eb7defa 11223 else
AzureIoTClient 28:add19eb7defa 11224 {
AzureIoTClient 28:add19eb7defa 11225 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11226 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11227 {
AzureIoTClient 28:add19eb7defa 11228 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11229 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11230 }
AzureIoTClient 28:add19eb7defa 11231 else
AzureIoTClient 28:add19eb7defa 11232 {
AzureIoTClient 23:1111ee8bcba4 11233 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11234 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11235 {
AzureIoTClient 23:1111ee8bcba4 11236 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11237 }
AzureIoTClient 23:1111ee8bcba4 11238 else
AzureIoTClient 23:1111ee8bcba4 11239 {
AzureIoTClient 28:add19eb7defa 11240 do
AzureIoTClient 28:add19eb7defa 11241 {
AzureIoTClient 28:add19eb7defa 11242 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11243 /* response */
AzureIoTClient 28:add19eb7defa 11244 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11245 {
AzureIoTClient 23:1111ee8bcba4 11246 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11247 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11248 {
AzureIoTClient 28:add19eb7defa 11249 {
AzureIoTClient 28:add19eb7defa 11250 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11251 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11252 break;
AzureIoTClient 28:add19eb7defa 11253 }
AzureIoTClient 28:add19eb7defa 11254 }
AzureIoTClient 28:add19eb7defa 11255 else
AzureIoTClient 28:add19eb7defa 11256 {
AzureIoTClient 28:add19eb7defa 11257 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11258 {
AzureIoTClient 28:add19eb7defa 11259 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11260 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11261 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11262 break;
AzureIoTClient 28:add19eb7defa 11263 }
AzureIoTClient 28:add19eb7defa 11264 else
AzureIoTClient 28:add19eb7defa 11265 {
AzureIoTClient 28:add19eb7defa 11266 amqp_binary response;
AzureIoTClient 28:add19eb7defa 11267 if (amqpvalue_get_binary(item_value, &response) != 0)
AzureIoTClient 28:add19eb7defa 11268 {
AzureIoTClient 28:add19eb7defa 11269 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11270 sasl_response_destroy(*sasl_response_handle);
AzureIoTClient 28:add19eb7defa 11271 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11272 break;
AzureIoTClient 28:add19eb7defa 11273 }
AzureIoTClient 28:add19eb7defa 11274 }
AzureIoTClient 28:add19eb7defa 11275
AzureIoTClient 28:add19eb7defa 11276 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11277 }
AzureIoTClient 28:add19eb7defa 11278 }
AzureIoTClient 28:add19eb7defa 11279 else
AzureIoTClient 28:add19eb7defa 11280 {
AzureIoTClient 28:add19eb7defa 11281 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11282 }
AzureIoTClient 28:add19eb7defa 11283
AzureIoTClient 28:add19eb7defa 11284 sasl_response_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11285
AzureIoTClient 28:add19eb7defa 11286 result = 0;
AzureIoTClient 28:add19eb7defa 11287 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11288 }
AzureIoTClient 28:add19eb7defa 11289 }
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 int sasl_response_get_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary* response_value)
Azure.IoT Build 0:6ae2f7bca550 11296 {
AzureIoTClient 28:add19eb7defa 11297 int result;
AzureIoTClient 28:add19eb7defa 11298
AzureIoTClient 28:add19eb7defa 11299 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11300 {
AzureIoTClient 28:add19eb7defa 11301 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11302 }
AzureIoTClient 28:add19eb7defa 11303 else
AzureIoTClient 28:add19eb7defa 11304 {
AzureIoTClient 28:add19eb7defa 11305 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11306 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 23:1111ee8bcba4 11307 if (amqpvalue_get_composite_item_count(sasl_response_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11308 {
AzureIoTClient 23:1111ee8bcba4 11309 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11310 }
AzureIoTClient 23:1111ee8bcba4 11311 else
AzureIoTClient 23:1111ee8bcba4 11312 {
AzureIoTClient 23:1111ee8bcba4 11313 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11314 {
AzureIoTClient 28:add19eb7defa 11315 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11316 }
AzureIoTClient 28:add19eb7defa 11317 else
AzureIoTClient 28:add19eb7defa 11318 {
AzureIoTClient 28:add19eb7defa 11319 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_response_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11320 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11321 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11322 {
AzureIoTClient 28:add19eb7defa 11323 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11324 }
AzureIoTClient 28:add19eb7defa 11325 else
AzureIoTClient 28:add19eb7defa 11326 {
AzureIoTClient 28:add19eb7defa 11327 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11328 if ((get_single_value_result = amqpvalue_get_binary(item_value, response_value)) != 0)
AzureIoTClient 28:add19eb7defa 11329 {
AzureIoTClient 28:add19eb7defa 11330 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11331 }
AzureIoTClient 28:add19eb7defa 11332 else
AzureIoTClient 28:add19eb7defa 11333 {
AzureIoTClient 28:add19eb7defa 11334 result = 0;
AzureIoTClient 28:add19eb7defa 11335 }
AzureIoTClient 28:add19eb7defa 11336 }
AzureIoTClient 28:add19eb7defa 11337 }
AzureIoTClient 28:add19eb7defa 11338 }
AzureIoTClient 28:add19eb7defa 11339 }
AzureIoTClient 28:add19eb7defa 11340
AzureIoTClient 28:add19eb7defa 11341 return result;
Azure.IoT Build 0:6ae2f7bca550 11342 }
Azure.IoT Build 0:6ae2f7bca550 11343
Azure.IoT Build 0:6ae2f7bca550 11344 int sasl_response_set_response(SASL_RESPONSE_HANDLE sasl_response, amqp_binary response_value)
Azure.IoT Build 0:6ae2f7bca550 11345 {
AzureIoTClient 28:add19eb7defa 11346 int result;
AzureIoTClient 28:add19eb7defa 11347
AzureIoTClient 28:add19eb7defa 11348 if (sasl_response == NULL)
AzureIoTClient 28:add19eb7defa 11349 {
AzureIoTClient 28:add19eb7defa 11350 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11351 }
AzureIoTClient 28:add19eb7defa 11352 else
AzureIoTClient 28:add19eb7defa 11353 {
AzureIoTClient 28:add19eb7defa 11354 SASL_RESPONSE_INSTANCE* sasl_response_instance = (SASL_RESPONSE_INSTANCE*)sasl_response;
AzureIoTClient 28:add19eb7defa 11355 AMQP_VALUE response_amqp_value = amqpvalue_create_binary(response_value);
AzureIoTClient 28:add19eb7defa 11356 if (response_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11357 {
AzureIoTClient 28:add19eb7defa 11358 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11359 }
AzureIoTClient 28:add19eb7defa 11360 else
AzureIoTClient 28:add19eb7defa 11361 {
AzureIoTClient 28:add19eb7defa 11362 if (amqpvalue_set_composite_item(sasl_response_instance->composite_value, 0, response_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11363 {
AzureIoTClient 28:add19eb7defa 11364 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11365 }
AzureIoTClient 28:add19eb7defa 11366 else
AzureIoTClient 28:add19eb7defa 11367 {
AzureIoTClient 28:add19eb7defa 11368 result = 0;
AzureIoTClient 28:add19eb7defa 11369 }
AzureIoTClient 28:add19eb7defa 11370
AzureIoTClient 28:add19eb7defa 11371 amqpvalue_destroy(response_amqp_value);
AzureIoTClient 28:add19eb7defa 11372 }
AzureIoTClient 28:add19eb7defa 11373 }
AzureIoTClient 28:add19eb7defa 11374
AzureIoTClient 28:add19eb7defa 11375 return result;
Azure.IoT Build 0:6ae2f7bca550 11376 }
Azure.IoT Build 0:6ae2f7bca550 11377
Azure.IoT Build 0:6ae2f7bca550 11378
Azure.IoT Build 0:6ae2f7bca550 11379 /* sasl-outcome */
Azure.IoT Build 0:6ae2f7bca550 11380
Azure.IoT Build 0:6ae2f7bca550 11381 typedef struct SASL_OUTCOME_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11382 {
AzureIoTClient 28:add19eb7defa 11383 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11384 } SASL_OUTCOME_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11385
Azure.IoT Build 0:6ae2f7bca550 11386 static SASL_OUTCOME_HANDLE sasl_outcome_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11387 {
AzureIoTClient 28:add19eb7defa 11388 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11389 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11390 {
AzureIoTClient 28:add19eb7defa 11391 sasl_outcome_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11392 }
AzureIoTClient 28:add19eb7defa 11393
AzureIoTClient 28:add19eb7defa 11394 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11395 }
Azure.IoT Build 0:6ae2f7bca550 11396
Azure.IoT Build 0:6ae2f7bca550 11397 SASL_OUTCOME_HANDLE sasl_outcome_create(sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11398 {
AzureIoTClient 28:add19eb7defa 11399 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11400 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11401 {
AzureIoTClient 28:add19eb7defa 11402 sasl_outcome_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(68);
AzureIoTClient 28:add19eb7defa 11403 if (sasl_outcome_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11404 {
AzureIoTClient 28:add19eb7defa 11405 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11406 sasl_outcome_instance = NULL;
AzureIoTClient 28:add19eb7defa 11407 }
AzureIoTClient 28:add19eb7defa 11408 else
AzureIoTClient 28:add19eb7defa 11409 {
AzureIoTClient 28:add19eb7defa 11410 AMQP_VALUE code_amqp_value;
AzureIoTClient 28:add19eb7defa 11411 int result = 0;
AzureIoTClient 28:add19eb7defa 11412
AzureIoTClient 28:add19eb7defa 11413 code_amqp_value = amqpvalue_create_sasl_code(code_value);
AzureIoTClient 28:add19eb7defa 11414 if ((result == 0) && (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 11415 {
AzureIoTClient 28:add19eb7defa 11416 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11417 }
AzureIoTClient 28:add19eb7defa 11418
AzureIoTClient 28:add19eb7defa 11419 amqpvalue_destroy(code_amqp_value);
AzureIoTClient 28:add19eb7defa 11420 }
AzureIoTClient 28:add19eb7defa 11421 }
AzureIoTClient 28:add19eb7defa 11422
AzureIoTClient 28:add19eb7defa 11423 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11424 }
Azure.IoT Build 0:6ae2f7bca550 11425
Azure.IoT Build 0:6ae2f7bca550 11426 SASL_OUTCOME_HANDLE sasl_outcome_clone(SASL_OUTCOME_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11427 {
AzureIoTClient 28:add19eb7defa 11428 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)malloc(sizeof(SASL_OUTCOME_INSTANCE));
AzureIoTClient 28:add19eb7defa 11429 if (sasl_outcome_instance != NULL)
AzureIoTClient 28:add19eb7defa 11430 {
AzureIoTClient 28:add19eb7defa 11431 sasl_outcome_instance->composite_value = amqpvalue_clone(((SASL_OUTCOME_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11432 if (sasl_outcome_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11433 {
AzureIoTClient 28:add19eb7defa 11434 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11435 sasl_outcome_instance = NULL;
AzureIoTClient 28:add19eb7defa 11436 }
AzureIoTClient 28:add19eb7defa 11437 }
AzureIoTClient 28:add19eb7defa 11438
AzureIoTClient 28:add19eb7defa 11439 return sasl_outcome_instance;
Azure.IoT Build 0:6ae2f7bca550 11440 }
Azure.IoT Build 0:6ae2f7bca550 11441
Azure.IoT Build 0:6ae2f7bca550 11442 void sasl_outcome_destroy(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 11443 {
AzureIoTClient 28:add19eb7defa 11444 if (sasl_outcome != NULL)
AzureIoTClient 28:add19eb7defa 11445 {
AzureIoTClient 28:add19eb7defa 11446 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11447 amqpvalue_destroy(sasl_outcome_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11448 free(sasl_outcome_instance);
AzureIoTClient 28:add19eb7defa 11449 }
Azure.IoT Build 0:6ae2f7bca550 11450 }
Azure.IoT Build 0:6ae2f7bca550 11451
Azure.IoT Build 0:6ae2f7bca550 11452 AMQP_VALUE amqpvalue_create_sasl_outcome(SASL_OUTCOME_HANDLE sasl_outcome)
Azure.IoT Build 0:6ae2f7bca550 11453 {
AzureIoTClient 28:add19eb7defa 11454 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11455
AzureIoTClient 28:add19eb7defa 11456 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11457 {
AzureIoTClient 28:add19eb7defa 11458 result = NULL;
AzureIoTClient 28:add19eb7defa 11459 }
AzureIoTClient 28:add19eb7defa 11460 else
AzureIoTClient 28:add19eb7defa 11461 {
AzureIoTClient 28:add19eb7defa 11462 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11463 result = amqpvalue_clone(sasl_outcome_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11464 }
AzureIoTClient 28:add19eb7defa 11465
AzureIoTClient 28:add19eb7defa 11466 return result;
Azure.IoT Build 0:6ae2f7bca550 11467 }
Azure.IoT Build 0:6ae2f7bca550 11468
Azure.IoT Build 0:6ae2f7bca550 11469 bool is_sasl_outcome_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11470 {
AzureIoTClient 28:add19eb7defa 11471 bool result;
AzureIoTClient 28:add19eb7defa 11472
AzureIoTClient 28:add19eb7defa 11473 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11474 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11475 (descriptor_ulong == 68))
AzureIoTClient 28:add19eb7defa 11476 {
AzureIoTClient 28:add19eb7defa 11477 result = true;
AzureIoTClient 28:add19eb7defa 11478 }
AzureIoTClient 28:add19eb7defa 11479 else
AzureIoTClient 28:add19eb7defa 11480 {
AzureIoTClient 28:add19eb7defa 11481 result = false;
AzureIoTClient 28:add19eb7defa 11482 }
AzureIoTClient 28:add19eb7defa 11483
AzureIoTClient 28:add19eb7defa 11484 return result;
Azure.IoT Build 0:6ae2f7bca550 11485 }
Azure.IoT Build 0:6ae2f7bca550 11486
Azure.IoT Build 0:6ae2f7bca550 11487
Azure.IoT Build 0:6ae2f7bca550 11488 int amqpvalue_get_sasl_outcome(AMQP_VALUE value, SASL_OUTCOME_HANDLE* sasl_outcome_handle)
Azure.IoT Build 0:6ae2f7bca550 11489 {
AzureIoTClient 28:add19eb7defa 11490 int result;
AzureIoTClient 28:add19eb7defa 11491 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome_create_internal();
AzureIoTClient 28:add19eb7defa 11492 *sasl_outcome_handle = sasl_outcome_instance;
AzureIoTClient 28:add19eb7defa 11493 if (*sasl_outcome_handle == NULL)
AzureIoTClient 28:add19eb7defa 11494 {
AzureIoTClient 28:add19eb7defa 11495 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11496 }
AzureIoTClient 28:add19eb7defa 11497 else
AzureIoTClient 28:add19eb7defa 11498 {
AzureIoTClient 28:add19eb7defa 11499 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11500 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11501 {
AzureIoTClient 28:add19eb7defa 11502 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11503 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11504 }
AzureIoTClient 28:add19eb7defa 11505 else
AzureIoTClient 28:add19eb7defa 11506 {
AzureIoTClient 23:1111ee8bcba4 11507 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11508 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11509 {
AzureIoTClient 23:1111ee8bcba4 11510 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11511 }
AzureIoTClient 23:1111ee8bcba4 11512 else
AzureIoTClient 23:1111ee8bcba4 11513 {
AzureIoTClient 28:add19eb7defa 11514 do
AzureIoTClient 28:add19eb7defa 11515 {
AzureIoTClient 28:add19eb7defa 11516 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11517 /* code */
AzureIoTClient 28:add19eb7defa 11518 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11519 {
AzureIoTClient 23:1111ee8bcba4 11520 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11521 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11522 {
AzureIoTClient 28:add19eb7defa 11523 {
AzureIoTClient 28:add19eb7defa 11524 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11525 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11526 break;
AzureIoTClient 28:add19eb7defa 11527 }
AzureIoTClient 28:add19eb7defa 11528 }
AzureIoTClient 28:add19eb7defa 11529 else
AzureIoTClient 28:add19eb7defa 11530 {
AzureIoTClient 28:add19eb7defa 11531 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11532 {
AzureIoTClient 28:add19eb7defa 11533 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11534 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11535 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11536 break;
AzureIoTClient 28:add19eb7defa 11537 }
AzureIoTClient 28:add19eb7defa 11538 else
AzureIoTClient 28:add19eb7defa 11539 {
AzureIoTClient 28:add19eb7defa 11540 sasl_code code;
AzureIoTClient 28:add19eb7defa 11541 if (amqpvalue_get_sasl_code(item_value, &code) != 0)
AzureIoTClient 28:add19eb7defa 11542 {
AzureIoTClient 28:add19eb7defa 11543 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11544 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11545 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11546 break;
AzureIoTClient 28:add19eb7defa 11547 }
AzureIoTClient 28:add19eb7defa 11548 }
AzureIoTClient 28:add19eb7defa 11549
AzureIoTClient 28:add19eb7defa 11550 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11551 }
AzureIoTClient 28:add19eb7defa 11552 }
AzureIoTClient 28:add19eb7defa 11553 else
AzureIoTClient 28:add19eb7defa 11554 {
AzureIoTClient 28:add19eb7defa 11555 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11556 }
AzureIoTClient 28:add19eb7defa 11557 /* additional-data */
AzureIoTClient 28:add19eb7defa 11558 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 11559 {
AzureIoTClient 23:1111ee8bcba4 11560 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 11561 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11562 {
AzureIoTClient 28:add19eb7defa 11563 /* do nothing */
AzureIoTClient 28:add19eb7defa 11564 }
AzureIoTClient 28:add19eb7defa 11565 else
AzureIoTClient 28:add19eb7defa 11566 {
AzureIoTClient 28:add19eb7defa 11567 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11568 {
AzureIoTClient 28:add19eb7defa 11569 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 11570 }
AzureIoTClient 28:add19eb7defa 11571 else
AzureIoTClient 28:add19eb7defa 11572 {
AzureIoTClient 28:add19eb7defa 11573 amqp_binary additional_data;
AzureIoTClient 28:add19eb7defa 11574 if (amqpvalue_get_binary(item_value, &additional_data) != 0)
AzureIoTClient 28:add19eb7defa 11575 {
AzureIoTClient 28:add19eb7defa 11576 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11577 sasl_outcome_destroy(*sasl_outcome_handle);
AzureIoTClient 28:add19eb7defa 11578 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11579 break;
AzureIoTClient 28:add19eb7defa 11580 }
AzureIoTClient 28:add19eb7defa 11581 }
AzureIoTClient 28:add19eb7defa 11582
AzureIoTClient 28:add19eb7defa 11583 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11584 }
AzureIoTClient 28:add19eb7defa 11585 }
AzureIoTClient 28:add19eb7defa 11586
AzureIoTClient 28:add19eb7defa 11587 sasl_outcome_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 11588
AzureIoTClient 28:add19eb7defa 11589 result = 0;
AzureIoTClient 28:add19eb7defa 11590 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 11591 }
AzureIoTClient 28:add19eb7defa 11592 }
AzureIoTClient 28:add19eb7defa 11593 }
AzureIoTClient 28:add19eb7defa 11594
AzureIoTClient 28:add19eb7defa 11595 return result;
Azure.IoT Build 0:6ae2f7bca550 11596 }
Azure.IoT Build 0:6ae2f7bca550 11597
Azure.IoT Build 0:6ae2f7bca550 11598 int sasl_outcome_get_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code* code_value)
Azure.IoT Build 0:6ae2f7bca550 11599 {
AzureIoTClient 28:add19eb7defa 11600 int result;
AzureIoTClient 28:add19eb7defa 11601
AzureIoTClient 28:add19eb7defa 11602 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11603 {
AzureIoTClient 28:add19eb7defa 11604 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11605 }
AzureIoTClient 28:add19eb7defa 11606 else
AzureIoTClient 28:add19eb7defa 11607 {
AzureIoTClient 28:add19eb7defa 11608 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11609 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11610 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11611 {
AzureIoTClient 23:1111ee8bcba4 11612 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11613 }
AzureIoTClient 23:1111ee8bcba4 11614 else
AzureIoTClient 23:1111ee8bcba4 11615 {
AzureIoTClient 23:1111ee8bcba4 11616 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 11617 {
AzureIoTClient 28:add19eb7defa 11618 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11619 }
AzureIoTClient 28:add19eb7defa 11620 else
AzureIoTClient 28:add19eb7defa 11621 {
AzureIoTClient 28:add19eb7defa 11622 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 11623 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11624 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11625 {
AzureIoTClient 28:add19eb7defa 11626 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11627 }
AzureIoTClient 28:add19eb7defa 11628 else
AzureIoTClient 28:add19eb7defa 11629 {
AzureIoTClient 28:add19eb7defa 11630 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11631 if ((get_single_value_result = amqpvalue_get_sasl_code(item_value, code_value)) != 0)
AzureIoTClient 28:add19eb7defa 11632 {
AzureIoTClient 28:add19eb7defa 11633 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11634 }
AzureIoTClient 28:add19eb7defa 11635 else
AzureIoTClient 28:add19eb7defa 11636 {
AzureIoTClient 28:add19eb7defa 11637 result = 0;
AzureIoTClient 28:add19eb7defa 11638 }
AzureIoTClient 28:add19eb7defa 11639 }
AzureIoTClient 28:add19eb7defa 11640 }
AzureIoTClient 28:add19eb7defa 11641 }
AzureIoTClient 28:add19eb7defa 11642 }
AzureIoTClient 28:add19eb7defa 11643
AzureIoTClient 28:add19eb7defa 11644 return result;
Azure.IoT Build 0:6ae2f7bca550 11645 }
Azure.IoT Build 0:6ae2f7bca550 11646
Azure.IoT Build 0:6ae2f7bca550 11647 int sasl_outcome_set_code(SASL_OUTCOME_HANDLE sasl_outcome, sasl_code code_value)
Azure.IoT Build 0:6ae2f7bca550 11648 {
AzureIoTClient 28:add19eb7defa 11649 int result;
AzureIoTClient 28:add19eb7defa 11650
AzureIoTClient 28:add19eb7defa 11651 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11652 {
AzureIoTClient 28:add19eb7defa 11653 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11654 }
AzureIoTClient 28:add19eb7defa 11655 else
AzureIoTClient 28:add19eb7defa 11656 {
AzureIoTClient 28:add19eb7defa 11657 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11658 AMQP_VALUE code_amqp_value = amqpvalue_create_sasl_code(code_value);
AzureIoTClient 28:add19eb7defa 11659 if (code_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11660 {
AzureIoTClient 28:add19eb7defa 11661 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11662 }
AzureIoTClient 28:add19eb7defa 11663 else
AzureIoTClient 28:add19eb7defa 11664 {
AzureIoTClient 28:add19eb7defa 11665 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 0, code_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11666 {
AzureIoTClient 28:add19eb7defa 11667 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11668 }
AzureIoTClient 28:add19eb7defa 11669 else
AzureIoTClient 28:add19eb7defa 11670 {
AzureIoTClient 28:add19eb7defa 11671 result = 0;
AzureIoTClient 28:add19eb7defa 11672 }
AzureIoTClient 28:add19eb7defa 11673
AzureIoTClient 28:add19eb7defa 11674 amqpvalue_destroy(code_amqp_value);
AzureIoTClient 28:add19eb7defa 11675 }
AzureIoTClient 28:add19eb7defa 11676 }
AzureIoTClient 28:add19eb7defa 11677
AzureIoTClient 28:add19eb7defa 11678 return result;
Azure.IoT Build 0:6ae2f7bca550 11679 }
Azure.IoT Build 0:6ae2f7bca550 11680
Azure.IoT Build 0:6ae2f7bca550 11681 int sasl_outcome_get_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary* additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11682 {
AzureIoTClient 28:add19eb7defa 11683 int result;
AzureIoTClient 28:add19eb7defa 11684
AzureIoTClient 28:add19eb7defa 11685 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11686 {
AzureIoTClient 28:add19eb7defa 11687 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11688 }
AzureIoTClient 28:add19eb7defa 11689 else
AzureIoTClient 28:add19eb7defa 11690 {
AzureIoTClient 28:add19eb7defa 11691 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 11692 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 23:1111ee8bcba4 11693 if (amqpvalue_get_composite_item_count(sasl_outcome_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11694 {
AzureIoTClient 23:1111ee8bcba4 11695 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11696 }
AzureIoTClient 23:1111ee8bcba4 11697 else
AzureIoTClient 23:1111ee8bcba4 11698 {
AzureIoTClient 23:1111ee8bcba4 11699 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 11700 {
AzureIoTClient 28:add19eb7defa 11701 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11702 }
AzureIoTClient 28:add19eb7defa 11703 else
AzureIoTClient 28:add19eb7defa 11704 {
AzureIoTClient 28:add19eb7defa 11705 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(sasl_outcome_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 11706 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 11707 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 11708 {
AzureIoTClient 28:add19eb7defa 11709 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11710 }
AzureIoTClient 28:add19eb7defa 11711 else
AzureIoTClient 28:add19eb7defa 11712 {
AzureIoTClient 28:add19eb7defa 11713 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 11714 if ((get_single_value_result = amqpvalue_get_binary(item_value, additional_data_value)) != 0)
AzureIoTClient 28:add19eb7defa 11715 {
AzureIoTClient 28:add19eb7defa 11716 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11717 }
AzureIoTClient 28:add19eb7defa 11718 else
AzureIoTClient 28:add19eb7defa 11719 {
AzureIoTClient 28:add19eb7defa 11720 result = 0;
AzureIoTClient 28:add19eb7defa 11721 }
AzureIoTClient 28:add19eb7defa 11722 }
AzureIoTClient 28:add19eb7defa 11723 }
AzureIoTClient 28:add19eb7defa 11724 }
AzureIoTClient 28:add19eb7defa 11725 }
AzureIoTClient 28:add19eb7defa 11726
AzureIoTClient 28:add19eb7defa 11727 return result;
Azure.IoT Build 0:6ae2f7bca550 11728 }
Azure.IoT Build 0:6ae2f7bca550 11729
Azure.IoT Build 0:6ae2f7bca550 11730 int sasl_outcome_set_additional_data(SASL_OUTCOME_HANDLE sasl_outcome, amqp_binary additional_data_value)
Azure.IoT Build 0:6ae2f7bca550 11731 {
AzureIoTClient 28:add19eb7defa 11732 int result;
AzureIoTClient 28:add19eb7defa 11733
AzureIoTClient 28:add19eb7defa 11734 if (sasl_outcome == NULL)
AzureIoTClient 28:add19eb7defa 11735 {
AzureIoTClient 28:add19eb7defa 11736 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11737 }
AzureIoTClient 28:add19eb7defa 11738 else
AzureIoTClient 28:add19eb7defa 11739 {
AzureIoTClient 28:add19eb7defa 11740 SASL_OUTCOME_INSTANCE* sasl_outcome_instance = (SASL_OUTCOME_INSTANCE*)sasl_outcome;
AzureIoTClient 28:add19eb7defa 11741 AMQP_VALUE additional_data_amqp_value = amqpvalue_create_binary(additional_data_value);
AzureIoTClient 28:add19eb7defa 11742 if (additional_data_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 11743 {
AzureIoTClient 28:add19eb7defa 11744 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11745 }
AzureIoTClient 28:add19eb7defa 11746 else
AzureIoTClient 28:add19eb7defa 11747 {
AzureIoTClient 28:add19eb7defa 11748 if (amqpvalue_set_composite_item(sasl_outcome_instance->composite_value, 1, additional_data_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 11749 {
AzureIoTClient 28:add19eb7defa 11750 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11751 }
AzureIoTClient 28:add19eb7defa 11752 else
AzureIoTClient 28:add19eb7defa 11753 {
AzureIoTClient 28:add19eb7defa 11754 result = 0;
AzureIoTClient 28:add19eb7defa 11755 }
AzureIoTClient 28:add19eb7defa 11756
AzureIoTClient 28:add19eb7defa 11757 amqpvalue_destroy(additional_data_amqp_value);
AzureIoTClient 28:add19eb7defa 11758 }
AzureIoTClient 28:add19eb7defa 11759 }
AzureIoTClient 28:add19eb7defa 11760
AzureIoTClient 28:add19eb7defa 11761 return result;
Azure.IoT Build 0:6ae2f7bca550 11762 }
Azure.IoT Build 0:6ae2f7bca550 11763
Azure.IoT Build 0:6ae2f7bca550 11764
Azure.IoT Build 0:6ae2f7bca550 11765 /* terminus-durability */
Azure.IoT Build 0:6ae2f7bca550 11766
Azure.IoT Build 0:6ae2f7bca550 11767 AMQP_VALUE amqpvalue_create_terminus_durability(terminus_durability value)
Azure.IoT Build 0:6ae2f7bca550 11768 {
AzureIoTClient 28:add19eb7defa 11769 return amqpvalue_create_uint(value);
Azure.IoT Build 0:6ae2f7bca550 11770 }
Azure.IoT Build 0:6ae2f7bca550 11771
Azure.IoT Build 0:6ae2f7bca550 11772 /* terminus-expiry-policy */
Azure.IoT Build 0:6ae2f7bca550 11773
Azure.IoT Build 0:6ae2f7bca550 11774 AMQP_VALUE amqpvalue_create_terminus_expiry_policy(terminus_expiry_policy value)
Azure.IoT Build 0:6ae2f7bca550 11775 {
AzureIoTClient 28:add19eb7defa 11776 return amqpvalue_create_symbol(value);
Azure.IoT Build 0:6ae2f7bca550 11777 }
Azure.IoT Build 0:6ae2f7bca550 11778
Azure.IoT Build 0:6ae2f7bca550 11779 /* node-properties */
Azure.IoT Build 0:6ae2f7bca550 11780
Azure.IoT Build 0:6ae2f7bca550 11781 AMQP_VALUE amqpvalue_create_node_properties(node_properties value)
Azure.IoT Build 0:6ae2f7bca550 11782 {
AzureIoTClient 28:add19eb7defa 11783 return amqpvalue_create_fields(value);
Azure.IoT Build 0:6ae2f7bca550 11784 }
Azure.IoT Build 0:6ae2f7bca550 11785
Azure.IoT Build 0:6ae2f7bca550 11786 /* filter-set */
Azure.IoT Build 0:6ae2f7bca550 11787
Azure.IoT Build 0:6ae2f7bca550 11788 AMQP_VALUE amqpvalue_create_filter_set(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 11789 {
AzureIoTClient 28:add19eb7defa 11790 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 11791 }
Azure.IoT Build 0:6ae2f7bca550 11792
Azure.IoT Build 0:6ae2f7bca550 11793 /* source */
Azure.IoT Build 0:6ae2f7bca550 11794
Azure.IoT Build 0:6ae2f7bca550 11795 typedef struct SOURCE_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 11796 {
AzureIoTClient 28:add19eb7defa 11797 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 11798 } SOURCE_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 11799
Azure.IoT Build 0:6ae2f7bca550 11800 static SOURCE_HANDLE source_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 11801 {
AzureIoTClient 28:add19eb7defa 11802 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11803 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11804 {
AzureIoTClient 28:add19eb7defa 11805 source_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 11806 }
AzureIoTClient 28:add19eb7defa 11807
AzureIoTClient 28:add19eb7defa 11808 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11809 }
Azure.IoT Build 0:6ae2f7bca550 11810
Azure.IoT Build 0:6ae2f7bca550 11811 SOURCE_HANDLE source_create(void)
Azure.IoT Build 0:6ae2f7bca550 11812 {
AzureIoTClient 28:add19eb7defa 11813 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11814 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11815 {
AzureIoTClient 28:add19eb7defa 11816 source_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(40);
AzureIoTClient 28:add19eb7defa 11817 if (source_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11818 {
AzureIoTClient 28:add19eb7defa 11819 free(source_instance);
AzureIoTClient 28:add19eb7defa 11820 source_instance = NULL;
AzureIoTClient 28:add19eb7defa 11821 }
AzureIoTClient 28:add19eb7defa 11822 }
AzureIoTClient 28:add19eb7defa 11823
AzureIoTClient 28:add19eb7defa 11824 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11825 }
Azure.IoT Build 0:6ae2f7bca550 11826
Azure.IoT Build 0:6ae2f7bca550 11827 SOURCE_HANDLE source_clone(SOURCE_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 11828 {
AzureIoTClient 28:add19eb7defa 11829 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)malloc(sizeof(SOURCE_INSTANCE));
AzureIoTClient 28:add19eb7defa 11830 if (source_instance != NULL)
AzureIoTClient 28:add19eb7defa 11831 {
AzureIoTClient 28:add19eb7defa 11832 source_instance->composite_value = amqpvalue_clone(((SOURCE_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 11833 if (source_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 11834 {
AzureIoTClient 28:add19eb7defa 11835 free(source_instance);
AzureIoTClient 28:add19eb7defa 11836 source_instance = NULL;
AzureIoTClient 28:add19eb7defa 11837 }
AzureIoTClient 28:add19eb7defa 11838 }
AzureIoTClient 28:add19eb7defa 11839
AzureIoTClient 28:add19eb7defa 11840 return source_instance;
Azure.IoT Build 0:6ae2f7bca550 11841 }
Azure.IoT Build 0:6ae2f7bca550 11842
Azure.IoT Build 0:6ae2f7bca550 11843 void source_destroy(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11844 {
AzureIoTClient 28:add19eb7defa 11845 if (source != NULL)
AzureIoTClient 28:add19eb7defa 11846 {
AzureIoTClient 28:add19eb7defa 11847 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 11848 amqpvalue_destroy(source_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11849 free(source_instance);
AzureIoTClient 28:add19eb7defa 11850 }
Azure.IoT Build 0:6ae2f7bca550 11851 }
Azure.IoT Build 0:6ae2f7bca550 11852
Azure.IoT Build 0:6ae2f7bca550 11853 AMQP_VALUE amqpvalue_create_source(SOURCE_HANDLE source)
Azure.IoT Build 0:6ae2f7bca550 11854 {
AzureIoTClient 28:add19eb7defa 11855 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 11856
AzureIoTClient 28:add19eb7defa 11857 if (source == NULL)
AzureIoTClient 28:add19eb7defa 11858 {
AzureIoTClient 28:add19eb7defa 11859 result = NULL;
AzureIoTClient 28:add19eb7defa 11860 }
AzureIoTClient 28:add19eb7defa 11861 else
AzureIoTClient 28:add19eb7defa 11862 {
AzureIoTClient 28:add19eb7defa 11863 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 11864 result = amqpvalue_clone(source_instance->composite_value);
AzureIoTClient 28:add19eb7defa 11865 }
AzureIoTClient 28:add19eb7defa 11866
AzureIoTClient 28:add19eb7defa 11867 return result;
Azure.IoT Build 0:6ae2f7bca550 11868 }
Azure.IoT Build 0:6ae2f7bca550 11869
Azure.IoT Build 0:6ae2f7bca550 11870 bool is_source_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 11871 {
AzureIoTClient 28:add19eb7defa 11872 bool result;
AzureIoTClient 28:add19eb7defa 11873
AzureIoTClient 28:add19eb7defa 11874 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 11875 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 11876 (descriptor_ulong == 40))
AzureIoTClient 28:add19eb7defa 11877 {
AzureIoTClient 28:add19eb7defa 11878 result = true;
AzureIoTClient 28:add19eb7defa 11879 }
AzureIoTClient 28:add19eb7defa 11880 else
AzureIoTClient 28:add19eb7defa 11881 {
AzureIoTClient 28:add19eb7defa 11882 result = false;
AzureIoTClient 28:add19eb7defa 11883 }
AzureIoTClient 28:add19eb7defa 11884
AzureIoTClient 28:add19eb7defa 11885 return result;
Azure.IoT Build 0:6ae2f7bca550 11886 }
Azure.IoT Build 0:6ae2f7bca550 11887
Azure.IoT Build 0:6ae2f7bca550 11888
Azure.IoT Build 0:6ae2f7bca550 11889 int amqpvalue_get_source(AMQP_VALUE value, SOURCE_HANDLE* source_handle)
Azure.IoT Build 0:6ae2f7bca550 11890 {
AzureIoTClient 28:add19eb7defa 11891 int result;
AzureIoTClient 28:add19eb7defa 11892 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source_create_internal();
AzureIoTClient 28:add19eb7defa 11893 *source_handle = source_instance;
AzureIoTClient 28:add19eb7defa 11894 if (*source_handle == NULL)
AzureIoTClient 28:add19eb7defa 11895 {
AzureIoTClient 28:add19eb7defa 11896 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11897 }
AzureIoTClient 28:add19eb7defa 11898 else
AzureIoTClient 28:add19eb7defa 11899 {
AzureIoTClient 28:add19eb7defa 11900 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 11901 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 11902 {
AzureIoTClient 28:add19eb7defa 11903 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 11904 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11905 }
AzureIoTClient 28:add19eb7defa 11906 else
AzureIoTClient 28:add19eb7defa 11907 {
AzureIoTClient 23:1111ee8bcba4 11908 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 11909 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 11910 {
AzureIoTClient 23:1111ee8bcba4 11911 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 11912 }
AzureIoTClient 23:1111ee8bcba4 11913 else
AzureIoTClient 23:1111ee8bcba4 11914 {
AzureIoTClient 28:add19eb7defa 11915 do
AzureIoTClient 28:add19eb7defa 11916 {
AzureIoTClient 28:add19eb7defa 11917 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 11918 /* address */
AzureIoTClient 28:add19eb7defa 11919 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 11920 {
AzureIoTClient 23:1111ee8bcba4 11921 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 11922 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11923 {
AzureIoTClient 28:add19eb7defa 11924 /* do nothing */
AzureIoTClient 28:add19eb7defa 11925 }
AzureIoTClient 28:add19eb7defa 11926 else
AzureIoTClient 28:add19eb7defa 11927 {
AzureIoTClient 28:add19eb7defa 11928 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11929 }
AzureIoTClient 28:add19eb7defa 11930 }
AzureIoTClient 28:add19eb7defa 11931 /* durable */
AzureIoTClient 28:add19eb7defa 11932 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 11933 {
AzureIoTClient 23:1111ee8bcba4 11934 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 11935 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11936 {
AzureIoTClient 28:add19eb7defa 11937 /* do nothing */
AzureIoTClient 28:add19eb7defa 11938 }
AzureIoTClient 28:add19eb7defa 11939 else
AzureIoTClient 28:add19eb7defa 11940 {
AzureIoTClient 28:add19eb7defa 11941 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11942 {
AzureIoTClient 28:add19eb7defa 11943 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 11944 }
AzureIoTClient 28:add19eb7defa 11945 else
AzureIoTClient 28:add19eb7defa 11946 {
AzureIoTClient 28:add19eb7defa 11947 terminus_durability durable;
AzureIoTClient 28:add19eb7defa 11948 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 11949 {
AzureIoTClient 28:add19eb7defa 11950 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11951 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 11952 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11953 break;
AzureIoTClient 28:add19eb7defa 11954 }
AzureIoTClient 28:add19eb7defa 11955 }
AzureIoTClient 28:add19eb7defa 11956
AzureIoTClient 28:add19eb7defa 11957 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11958 }
AzureIoTClient 28:add19eb7defa 11959 }
AzureIoTClient 28:add19eb7defa 11960 /* expiry-policy */
AzureIoTClient 28:add19eb7defa 11961 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 11962 {
AzureIoTClient 23:1111ee8bcba4 11963 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 11964 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11965 {
AzureIoTClient 28:add19eb7defa 11966 /* do nothing */
AzureIoTClient 28:add19eb7defa 11967 }
AzureIoTClient 28:add19eb7defa 11968 else
AzureIoTClient 28:add19eb7defa 11969 {
AzureIoTClient 28:add19eb7defa 11970 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 11971 {
AzureIoTClient 28:add19eb7defa 11972 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 11973 }
AzureIoTClient 28:add19eb7defa 11974 else
AzureIoTClient 28:add19eb7defa 11975 {
AzureIoTClient 28:add19eb7defa 11976 terminus_expiry_policy expiry_policy;
AzureIoTClient 28:add19eb7defa 11977 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 28:add19eb7defa 11978 {
AzureIoTClient 28:add19eb7defa 11979 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11980 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 11981 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 11982 break;
AzureIoTClient 28:add19eb7defa 11983 }
AzureIoTClient 28:add19eb7defa 11984 }
AzureIoTClient 28:add19eb7defa 11985
AzureIoTClient 28:add19eb7defa 11986 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 11987 }
AzureIoTClient 28:add19eb7defa 11988 }
AzureIoTClient 28:add19eb7defa 11989 /* timeout */
AzureIoTClient 28:add19eb7defa 11990 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 11991 {
AzureIoTClient 23:1111ee8bcba4 11992 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 11993 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 11994 {
AzureIoTClient 28:add19eb7defa 11995 /* do nothing */
AzureIoTClient 28:add19eb7defa 11996 }
AzureIoTClient 28:add19eb7defa 11997 else
AzureIoTClient 28:add19eb7defa 11998 {
AzureIoTClient 28:add19eb7defa 11999 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12000 {
AzureIoTClient 28:add19eb7defa 12001 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12002 }
AzureIoTClient 28:add19eb7defa 12003 else
AzureIoTClient 28:add19eb7defa 12004 {
AzureIoTClient 28:add19eb7defa 12005 seconds timeout;
AzureIoTClient 28:add19eb7defa 12006 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 28:add19eb7defa 12007 {
AzureIoTClient 28:add19eb7defa 12008 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12009 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12010 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12011 break;
AzureIoTClient 28:add19eb7defa 12012 }
AzureIoTClient 28:add19eb7defa 12013 }
AzureIoTClient 28:add19eb7defa 12014
AzureIoTClient 28:add19eb7defa 12015 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12016 }
AzureIoTClient 28:add19eb7defa 12017 }
AzureIoTClient 28:add19eb7defa 12018 /* dynamic */
AzureIoTClient 28:add19eb7defa 12019 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 12020 {
AzureIoTClient 23:1111ee8bcba4 12021 item_value = amqpvalue_get_list_item(list_value, 4);
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 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12029 {
AzureIoTClient 28:add19eb7defa 12030 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12031 }
AzureIoTClient 28:add19eb7defa 12032 else
AzureIoTClient 28:add19eb7defa 12033 {
AzureIoTClient 28:add19eb7defa 12034 bool dynamic;
AzureIoTClient 28:add19eb7defa 12035 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 28:add19eb7defa 12036 {
AzureIoTClient 28:add19eb7defa 12037 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12038 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12039 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12040 break;
AzureIoTClient 28:add19eb7defa 12041 }
AzureIoTClient 28:add19eb7defa 12042 }
AzureIoTClient 28:add19eb7defa 12043
AzureIoTClient 28:add19eb7defa 12044 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12045 }
AzureIoTClient 28:add19eb7defa 12046 }
AzureIoTClient 28:add19eb7defa 12047 /* dynamic-node-properties */
AzureIoTClient 28:add19eb7defa 12048 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 12049 {
AzureIoTClient 23:1111ee8bcba4 12050 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 12051 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12052 {
AzureIoTClient 28:add19eb7defa 12053 /* do nothing */
AzureIoTClient 28:add19eb7defa 12054 }
AzureIoTClient 28:add19eb7defa 12055 else
AzureIoTClient 28:add19eb7defa 12056 {
AzureIoTClient 28:add19eb7defa 12057 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12058 {
AzureIoTClient 28:add19eb7defa 12059 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12060 }
AzureIoTClient 28:add19eb7defa 12061 else
AzureIoTClient 28:add19eb7defa 12062 {
AzureIoTClient 28:add19eb7defa 12063 node_properties dynamic_node_properties;
AzureIoTClient 28:add19eb7defa 12064 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 28:add19eb7defa 12065 {
AzureIoTClient 28:add19eb7defa 12066 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12067 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12068 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12069 break;
AzureIoTClient 28:add19eb7defa 12070 }
AzureIoTClient 28:add19eb7defa 12071 }
AzureIoTClient 28:add19eb7defa 12072
AzureIoTClient 28:add19eb7defa 12073 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12074 }
AzureIoTClient 28:add19eb7defa 12075 }
AzureIoTClient 28:add19eb7defa 12076 /* distribution-mode */
AzureIoTClient 28:add19eb7defa 12077 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 12078 {
AzureIoTClient 23:1111ee8bcba4 12079 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 12080 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12081 {
AzureIoTClient 28:add19eb7defa 12082 /* do nothing */
AzureIoTClient 28:add19eb7defa 12083 }
AzureIoTClient 28:add19eb7defa 12084 else
AzureIoTClient 28:add19eb7defa 12085 {
AzureIoTClient 28:add19eb7defa 12086 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12087 {
AzureIoTClient 28:add19eb7defa 12088 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12089 }
AzureIoTClient 28:add19eb7defa 12090 else
AzureIoTClient 28:add19eb7defa 12091 {
AzureIoTClient 28:add19eb7defa 12092 const char* distribution_mode;
AzureIoTClient 28:add19eb7defa 12093 if (amqpvalue_get_symbol(item_value, &distribution_mode) != 0)
AzureIoTClient 28:add19eb7defa 12094 {
AzureIoTClient 28:add19eb7defa 12095 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12096 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12097 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12098 break;
AzureIoTClient 28:add19eb7defa 12099 }
AzureIoTClient 28:add19eb7defa 12100 }
AzureIoTClient 28:add19eb7defa 12101
AzureIoTClient 28:add19eb7defa 12102 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12103 }
AzureIoTClient 28:add19eb7defa 12104 }
AzureIoTClient 28:add19eb7defa 12105 /* filter */
AzureIoTClient 28:add19eb7defa 12106 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 12107 {
AzureIoTClient 23:1111ee8bcba4 12108 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 12109 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12110 {
AzureIoTClient 28:add19eb7defa 12111 /* do nothing */
AzureIoTClient 28:add19eb7defa 12112 }
AzureIoTClient 28:add19eb7defa 12113 else
AzureIoTClient 28:add19eb7defa 12114 {
AzureIoTClient 28:add19eb7defa 12115 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12116 {
AzureIoTClient 28:add19eb7defa 12117 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12118 }
AzureIoTClient 28:add19eb7defa 12119 else
AzureIoTClient 28:add19eb7defa 12120 {
AzureIoTClient 28:add19eb7defa 12121 filter_set filter;
AzureIoTClient 28:add19eb7defa 12122 if (amqpvalue_get_filter_set(item_value, &filter) != 0)
AzureIoTClient 28:add19eb7defa 12123 {
AzureIoTClient 28:add19eb7defa 12124 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12125 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12126 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12127 break;
AzureIoTClient 28:add19eb7defa 12128 }
AzureIoTClient 28:add19eb7defa 12129 }
AzureIoTClient 28:add19eb7defa 12130
AzureIoTClient 28:add19eb7defa 12131 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12132 }
AzureIoTClient 28:add19eb7defa 12133 }
AzureIoTClient 28:add19eb7defa 12134 /* default-outcome */
AzureIoTClient 28:add19eb7defa 12135 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 12136 {
AzureIoTClient 23:1111ee8bcba4 12137 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 12138 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12139 {
AzureIoTClient 28:add19eb7defa 12140 /* do nothing */
AzureIoTClient 28:add19eb7defa 12141 }
AzureIoTClient 28:add19eb7defa 12142 else
AzureIoTClient 28:add19eb7defa 12143 {
AzureIoTClient 28:add19eb7defa 12144 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12145 }
AzureIoTClient 28:add19eb7defa 12146 }
AzureIoTClient 28:add19eb7defa 12147 /* outcomes */
AzureIoTClient 28:add19eb7defa 12148 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 12149 {
AzureIoTClient 23:1111ee8bcba4 12150 item_value = amqpvalue_get_list_item(list_value, 9);
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 const char* outcomes = NULL;
AzureIoTClient 28:add19eb7defa 12164 AMQP_VALUE outcomes_array;
AzureIoTClient 28:add19eb7defa 12165 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &outcomes_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 12166 (amqpvalue_get_symbol(item_value, &outcomes) != 0))
AzureIoTClient 28:add19eb7defa 12167 {
AzureIoTClient 28:add19eb7defa 12168 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12169 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12170 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12171 break;
AzureIoTClient 28:add19eb7defa 12172 }
AzureIoTClient 28:add19eb7defa 12173 }
AzureIoTClient 28:add19eb7defa 12174
AzureIoTClient 28:add19eb7defa 12175 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12176 }
AzureIoTClient 28:add19eb7defa 12177 }
AzureIoTClient 28:add19eb7defa 12178 /* capabilities */
AzureIoTClient 28:add19eb7defa 12179 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 12180 {
AzureIoTClient 23:1111ee8bcba4 12181 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 12182 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 12183 {
AzureIoTClient 28:add19eb7defa 12184 /* do nothing */
AzureIoTClient 28:add19eb7defa 12185 }
AzureIoTClient 28:add19eb7defa 12186 else
AzureIoTClient 28:add19eb7defa 12187 {
AzureIoTClient 28:add19eb7defa 12188 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 12189 {
AzureIoTClient 28:add19eb7defa 12190 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 12191 }
AzureIoTClient 28:add19eb7defa 12192 else
AzureIoTClient 28:add19eb7defa 12193 {
AzureIoTClient 28:add19eb7defa 12194 const char* capabilities = NULL;
AzureIoTClient 28:add19eb7defa 12195 AMQP_VALUE capabilities_array;
AzureIoTClient 28:add19eb7defa 12196 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 12197 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 28:add19eb7defa 12198 {
AzureIoTClient 28:add19eb7defa 12199 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12200 source_destroy(*source_handle);
AzureIoTClient 28:add19eb7defa 12201 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12202 break;
AzureIoTClient 28:add19eb7defa 12203 }
AzureIoTClient 28:add19eb7defa 12204 }
AzureIoTClient 28:add19eb7defa 12205
AzureIoTClient 28:add19eb7defa 12206 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 12207 }
AzureIoTClient 28:add19eb7defa 12208 }
AzureIoTClient 28:add19eb7defa 12209
AzureIoTClient 28:add19eb7defa 12210 source_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 12211
AzureIoTClient 28:add19eb7defa 12212 result = 0;
AzureIoTClient 28:add19eb7defa 12213 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 12214 }
AzureIoTClient 28:add19eb7defa 12215 }
AzureIoTClient 28:add19eb7defa 12216 }
AzureIoTClient 28:add19eb7defa 12217
AzureIoTClient 28:add19eb7defa 12218 return result;
Azure.IoT Build 0:6ae2f7bca550 12219 }
Azure.IoT Build 0:6ae2f7bca550 12220
Azure.IoT Build 0:6ae2f7bca550 12221 int source_get_address(SOURCE_HANDLE source, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 12222 {
AzureIoTClient 28:add19eb7defa 12223 int result;
AzureIoTClient 28:add19eb7defa 12224
AzureIoTClient 28:add19eb7defa 12225 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12226 {
AzureIoTClient 28:add19eb7defa 12227 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12228 }
AzureIoTClient 28:add19eb7defa 12229 else
AzureIoTClient 28:add19eb7defa 12230 {
AzureIoTClient 28:add19eb7defa 12231 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12232 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12233 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12234 {
AzureIoTClient 23:1111ee8bcba4 12235 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12236 }
AzureIoTClient 23:1111ee8bcba4 12237 else
AzureIoTClient 23:1111ee8bcba4 12238 {
AzureIoTClient 23:1111ee8bcba4 12239 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 12240 {
AzureIoTClient 28:add19eb7defa 12241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12242 }
AzureIoTClient 28:add19eb7defa 12243 else
AzureIoTClient 28:add19eb7defa 12244 {
AzureIoTClient 28:add19eb7defa 12245 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 12246 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12247 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12248 {
AzureIoTClient 28:add19eb7defa 12249 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12250 }
AzureIoTClient 28:add19eb7defa 12251 else
AzureIoTClient 28:add19eb7defa 12252 {
AzureIoTClient 28:add19eb7defa 12253 *address_value = item_value;
AzureIoTClient 28:add19eb7defa 12254 result = 0;
AzureIoTClient 28:add19eb7defa 12255 }
AzureIoTClient 28:add19eb7defa 12256 }
AzureIoTClient 28:add19eb7defa 12257 }
AzureIoTClient 28:add19eb7defa 12258 }
AzureIoTClient 28:add19eb7defa 12259
AzureIoTClient 28:add19eb7defa 12260 return result;
Azure.IoT Build 0:6ae2f7bca550 12261 }
Azure.IoT Build 0:6ae2f7bca550 12262
Azure.IoT Build 0:6ae2f7bca550 12263 int source_set_address(SOURCE_HANDLE source, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 12264 {
AzureIoTClient 28:add19eb7defa 12265 int result;
AzureIoTClient 28:add19eb7defa 12266
AzureIoTClient 28:add19eb7defa 12267 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12268 {
AzureIoTClient 28:add19eb7defa 12269 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12270 }
AzureIoTClient 28:add19eb7defa 12271 else
AzureIoTClient 28:add19eb7defa 12272 {
AzureIoTClient 28:add19eb7defa 12273 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12274 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 12275 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12276 {
AzureIoTClient 23:1111ee8bcba4 12277 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 12278 }
AzureIoTClient 23:1111ee8bcba4 12279 else
AzureIoTClient 23:1111ee8bcba4 12280 {
AzureIoTClient 23:1111ee8bcba4 12281 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 12282 }
AzureIoTClient 28:add19eb7defa 12283 if (address_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12284 {
AzureIoTClient 28:add19eb7defa 12285 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12286 }
AzureIoTClient 28:add19eb7defa 12287 else
AzureIoTClient 28:add19eb7defa 12288 {
AzureIoTClient 28:add19eb7defa 12289 if (amqpvalue_set_composite_item(source_instance->composite_value, 0, address_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12290 {
AzureIoTClient 28:add19eb7defa 12291 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12292 }
AzureIoTClient 28:add19eb7defa 12293 else
AzureIoTClient 28:add19eb7defa 12294 {
AzureIoTClient 28:add19eb7defa 12295 result = 0;
AzureIoTClient 28:add19eb7defa 12296 }
AzureIoTClient 28:add19eb7defa 12297
AzureIoTClient 28:add19eb7defa 12298 amqpvalue_destroy(address_amqp_value);
AzureIoTClient 28:add19eb7defa 12299 }
AzureIoTClient 28:add19eb7defa 12300 }
AzureIoTClient 28:add19eb7defa 12301
AzureIoTClient 28:add19eb7defa 12302 return result;
Azure.IoT Build 0:6ae2f7bca550 12303 }
Azure.IoT Build 0:6ae2f7bca550 12304
Azure.IoT Build 0:6ae2f7bca550 12305 int source_get_durable(SOURCE_HANDLE source, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 12306 {
AzureIoTClient 28:add19eb7defa 12307 int result;
AzureIoTClient 28:add19eb7defa 12308
AzureIoTClient 28:add19eb7defa 12309 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12310 {
AzureIoTClient 28:add19eb7defa 12311 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12312 }
AzureIoTClient 28:add19eb7defa 12313 else
AzureIoTClient 28:add19eb7defa 12314 {
AzureIoTClient 28:add19eb7defa 12315 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12316 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12317 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12318 {
AzureIoTClient 23:1111ee8bcba4 12319 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12320 }
AzureIoTClient 23:1111ee8bcba4 12321 else
AzureIoTClient 23:1111ee8bcba4 12322 {
AzureIoTClient 23:1111ee8bcba4 12323 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 12324 {
AzureIoTClient 23:1111ee8bcba4 12325 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 12326 result = 0;
AzureIoTClient 23:1111ee8bcba4 12327 }
AzureIoTClient 23:1111ee8bcba4 12328 else
AzureIoTClient 23:1111ee8bcba4 12329 {
AzureIoTClient 28:add19eb7defa 12330 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 12331 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12332 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12333 {
AzureIoTClient 16:22a72cf8e416 12334 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 12335 result = 0;
AzureIoTClient 28:add19eb7defa 12336 }
AzureIoTClient 28:add19eb7defa 12337 else
AzureIoTClient 28:add19eb7defa 12338 {
AzureIoTClient 28:add19eb7defa 12339 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12340 if ((get_single_value_result = amqpvalue_get_terminus_durability(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 12341 {
AzureIoTClient 23:1111ee8bcba4 12342 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12343 {
AzureIoTClient 28:add19eb7defa 12344 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12345 }
AzureIoTClient 23:1111ee8bcba4 12346 else
AzureIoTClient 23:1111ee8bcba4 12347 {
AzureIoTClient 23:1111ee8bcba4 12348 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 12349 result = 0;
AzureIoTClient 23:1111ee8bcba4 12350 }
AzureIoTClient 28:add19eb7defa 12351 }
AzureIoTClient 28:add19eb7defa 12352 else
AzureIoTClient 28:add19eb7defa 12353 {
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
AzureIoTClient 28:add19eb7defa 12361 return result;
Azure.IoT Build 0:6ae2f7bca550 12362 }
Azure.IoT Build 0:6ae2f7bca550 12363
Azure.IoT Build 0:6ae2f7bca550 12364 int source_set_durable(SOURCE_HANDLE source, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 12365 {
AzureIoTClient 28:add19eb7defa 12366 int result;
AzureIoTClient 28:add19eb7defa 12367
AzureIoTClient 28:add19eb7defa 12368 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12369 {
AzureIoTClient 28:add19eb7defa 12370 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12371 }
AzureIoTClient 28:add19eb7defa 12372 else
AzureIoTClient 28:add19eb7defa 12373 {
AzureIoTClient 28:add19eb7defa 12374 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12375 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
AzureIoTClient 28:add19eb7defa 12376 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12377 {
AzureIoTClient 28:add19eb7defa 12378 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12379 }
AzureIoTClient 28:add19eb7defa 12380 else
AzureIoTClient 28:add19eb7defa 12381 {
AzureIoTClient 28:add19eb7defa 12382 if (amqpvalue_set_composite_item(source_instance->composite_value, 1, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12383 {
AzureIoTClient 28:add19eb7defa 12384 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12385 }
AzureIoTClient 28:add19eb7defa 12386 else
AzureIoTClient 28:add19eb7defa 12387 {
AzureIoTClient 28:add19eb7defa 12388 result = 0;
AzureIoTClient 28:add19eb7defa 12389 }
AzureIoTClient 28:add19eb7defa 12390
AzureIoTClient 28:add19eb7defa 12391 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 12392 }
AzureIoTClient 28:add19eb7defa 12393 }
AzureIoTClient 28:add19eb7defa 12394
AzureIoTClient 28:add19eb7defa 12395 return result;
Azure.IoT Build 0:6ae2f7bca550 12396 }
Azure.IoT Build 0:6ae2f7bca550 12397
Azure.IoT Build 0:6ae2f7bca550 12398 int source_get_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 12399 {
AzureIoTClient 28:add19eb7defa 12400 int result;
AzureIoTClient 28:add19eb7defa 12401
AzureIoTClient 28:add19eb7defa 12402 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12403 {
AzureIoTClient 28:add19eb7defa 12404 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12405 }
AzureIoTClient 28:add19eb7defa 12406 else
AzureIoTClient 28:add19eb7defa 12407 {
AzureIoTClient 28:add19eb7defa 12408 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12409 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12410 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12411 {
AzureIoTClient 23:1111ee8bcba4 12412 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12413 }
AzureIoTClient 23:1111ee8bcba4 12414 else
AzureIoTClient 23:1111ee8bcba4 12415 {
AzureIoTClient 23:1111ee8bcba4 12416 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 12417 {
AzureIoTClient 23:1111ee8bcba4 12418 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 12419 result = 0;
AzureIoTClient 23:1111ee8bcba4 12420 }
AzureIoTClient 23:1111ee8bcba4 12421 else
AzureIoTClient 23:1111ee8bcba4 12422 {
AzureIoTClient 28:add19eb7defa 12423 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 12424 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12425 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12426 {
AzureIoTClient 16:22a72cf8e416 12427 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 12428 result = 0;
AzureIoTClient 28:add19eb7defa 12429 }
AzureIoTClient 28:add19eb7defa 12430 else
AzureIoTClient 28:add19eb7defa 12431 {
AzureIoTClient 28:add19eb7defa 12432 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12433 if ((get_single_value_result = amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value)) != 0)
AzureIoTClient 28:add19eb7defa 12434 {
AzureIoTClient 23:1111ee8bcba4 12435 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12436 {
AzureIoTClient 28:add19eb7defa 12437 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12438 }
AzureIoTClient 23:1111ee8bcba4 12439 else
AzureIoTClient 23:1111ee8bcba4 12440 {
AzureIoTClient 23:1111ee8bcba4 12441 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 12442 result = 0;
AzureIoTClient 23:1111ee8bcba4 12443 }
AzureIoTClient 28:add19eb7defa 12444 }
AzureIoTClient 28:add19eb7defa 12445 else
AzureIoTClient 28:add19eb7defa 12446 {
AzureIoTClient 28:add19eb7defa 12447 result = 0;
AzureIoTClient 28:add19eb7defa 12448 }
AzureIoTClient 28:add19eb7defa 12449 }
AzureIoTClient 28:add19eb7defa 12450 }
AzureIoTClient 28:add19eb7defa 12451 }
AzureIoTClient 28:add19eb7defa 12452 }
AzureIoTClient 28:add19eb7defa 12453
AzureIoTClient 28:add19eb7defa 12454 return result;
Azure.IoT Build 0:6ae2f7bca550 12455 }
Azure.IoT Build 0:6ae2f7bca550 12456
Azure.IoT Build 0:6ae2f7bca550 12457 int source_set_expiry_policy(SOURCE_HANDLE source, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 12458 {
AzureIoTClient 28:add19eb7defa 12459 int result;
AzureIoTClient 28:add19eb7defa 12460
AzureIoTClient 28:add19eb7defa 12461 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12462 {
AzureIoTClient 28:add19eb7defa 12463 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12464 }
AzureIoTClient 28:add19eb7defa 12465 else
AzureIoTClient 28:add19eb7defa 12466 {
AzureIoTClient 28:add19eb7defa 12467 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12468 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
AzureIoTClient 28:add19eb7defa 12469 if (expiry_policy_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12470 {
AzureIoTClient 28:add19eb7defa 12471 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12472 }
AzureIoTClient 28:add19eb7defa 12473 else
AzureIoTClient 28:add19eb7defa 12474 {
AzureIoTClient 28:add19eb7defa 12475 if (amqpvalue_set_composite_item(source_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12476 {
AzureIoTClient 28:add19eb7defa 12477 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12478 }
AzureIoTClient 28:add19eb7defa 12479 else
AzureIoTClient 28:add19eb7defa 12480 {
AzureIoTClient 28:add19eb7defa 12481 result = 0;
AzureIoTClient 28:add19eb7defa 12482 }
AzureIoTClient 28:add19eb7defa 12483
AzureIoTClient 28:add19eb7defa 12484 amqpvalue_destroy(expiry_policy_amqp_value);
AzureIoTClient 28:add19eb7defa 12485 }
AzureIoTClient 28:add19eb7defa 12486 }
AzureIoTClient 28:add19eb7defa 12487
AzureIoTClient 28:add19eb7defa 12488 return result;
Azure.IoT Build 0:6ae2f7bca550 12489 }
Azure.IoT Build 0:6ae2f7bca550 12490
Azure.IoT Build 0:6ae2f7bca550 12491 int source_get_timeout(SOURCE_HANDLE source, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12492 {
AzureIoTClient 28:add19eb7defa 12493 int result;
AzureIoTClient 28:add19eb7defa 12494
AzureIoTClient 28:add19eb7defa 12495 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12496 {
AzureIoTClient 28:add19eb7defa 12497 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12498 }
AzureIoTClient 28:add19eb7defa 12499 else
AzureIoTClient 28:add19eb7defa 12500 {
AzureIoTClient 28:add19eb7defa 12501 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12502 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12503 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12504 {
AzureIoTClient 23:1111ee8bcba4 12505 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12506 }
AzureIoTClient 23:1111ee8bcba4 12507 else
AzureIoTClient 23:1111ee8bcba4 12508 {
AzureIoTClient 23:1111ee8bcba4 12509 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 12510 {
AzureIoTClient 28:add19eb7defa 12511 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 12512 result = 0;
AzureIoTClient 28:add19eb7defa 12513 }
AzureIoTClient 28:add19eb7defa 12514 else
AzureIoTClient 28:add19eb7defa 12515 {
AzureIoTClient 28:add19eb7defa 12516 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 12517 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12518 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12519 {
AzureIoTClient 28:add19eb7defa 12520 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 12521 result = 0;
AzureIoTClient 28:add19eb7defa 12522 }
AzureIoTClient 28:add19eb7defa 12523 else
AzureIoTClient 28:add19eb7defa 12524 {
AzureIoTClient 28:add19eb7defa 12525 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12526 if ((get_single_value_result = amqpvalue_get_seconds(item_value, timeout_value)) != 0)
AzureIoTClient 28:add19eb7defa 12527 {
AzureIoTClient 23:1111ee8bcba4 12528 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12529 {
AzureIoTClient 28:add19eb7defa 12530 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12531 }
AzureIoTClient 28:add19eb7defa 12532 else
AzureIoTClient 28:add19eb7defa 12533 {
AzureIoTClient 28:add19eb7defa 12534 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 12535 result = 0;
AzureIoTClient 23:1111ee8bcba4 12536 }
AzureIoTClient 28:add19eb7defa 12537 }
AzureIoTClient 28:add19eb7defa 12538 else
AzureIoTClient 28:add19eb7defa 12539 {
AzureIoTClient 28:add19eb7defa 12540 result = 0;
AzureIoTClient 28:add19eb7defa 12541 }
AzureIoTClient 28:add19eb7defa 12542 }
AzureIoTClient 28:add19eb7defa 12543 }
AzureIoTClient 28:add19eb7defa 12544 }
AzureIoTClient 28:add19eb7defa 12545 }
AzureIoTClient 28:add19eb7defa 12546
AzureIoTClient 28:add19eb7defa 12547 return result;
Azure.IoT Build 0:6ae2f7bca550 12548 }
Azure.IoT Build 0:6ae2f7bca550 12549
Azure.IoT Build 0:6ae2f7bca550 12550 int source_set_timeout(SOURCE_HANDLE source, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 12551 {
AzureIoTClient 28:add19eb7defa 12552 int result;
AzureIoTClient 28:add19eb7defa 12553
AzureIoTClient 28:add19eb7defa 12554 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12555 {
AzureIoTClient 28:add19eb7defa 12556 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12557 }
AzureIoTClient 28:add19eb7defa 12558 else
AzureIoTClient 28:add19eb7defa 12559 {
AzureIoTClient 28:add19eb7defa 12560 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12561 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
AzureIoTClient 28:add19eb7defa 12562 if (timeout_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12563 {
AzureIoTClient 28:add19eb7defa 12564 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12565 }
AzureIoTClient 28:add19eb7defa 12566 else
AzureIoTClient 28:add19eb7defa 12567 {
AzureIoTClient 28:add19eb7defa 12568 if (amqpvalue_set_composite_item(source_instance->composite_value, 3, timeout_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12569 {
AzureIoTClient 28:add19eb7defa 12570 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12571 }
AzureIoTClient 28:add19eb7defa 12572 else
AzureIoTClient 28:add19eb7defa 12573 {
AzureIoTClient 28:add19eb7defa 12574 result = 0;
AzureIoTClient 28:add19eb7defa 12575 }
AzureIoTClient 28:add19eb7defa 12576
AzureIoTClient 28:add19eb7defa 12577 amqpvalue_destroy(timeout_amqp_value);
AzureIoTClient 28:add19eb7defa 12578 }
AzureIoTClient 28:add19eb7defa 12579 }
AzureIoTClient 28:add19eb7defa 12580
AzureIoTClient 28:add19eb7defa 12581 return result;
Azure.IoT Build 0:6ae2f7bca550 12582 }
Azure.IoT Build 0:6ae2f7bca550 12583
Azure.IoT Build 0:6ae2f7bca550 12584 int source_get_dynamic(SOURCE_HANDLE source, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12585 {
AzureIoTClient 28:add19eb7defa 12586 int result;
AzureIoTClient 28:add19eb7defa 12587
AzureIoTClient 28:add19eb7defa 12588 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12589 {
AzureIoTClient 28:add19eb7defa 12590 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12591 }
AzureIoTClient 28:add19eb7defa 12592 else
AzureIoTClient 28:add19eb7defa 12593 {
AzureIoTClient 28:add19eb7defa 12594 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12595 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12596 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12597 {
AzureIoTClient 23:1111ee8bcba4 12598 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12599 }
AzureIoTClient 23:1111ee8bcba4 12600 else
AzureIoTClient 23:1111ee8bcba4 12601 {
AzureIoTClient 23:1111ee8bcba4 12602 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 12603 {
AzureIoTClient 28:add19eb7defa 12604 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 12605 result = 0;
AzureIoTClient 28:add19eb7defa 12606 }
AzureIoTClient 28:add19eb7defa 12607 else
AzureIoTClient 28:add19eb7defa 12608 {
AzureIoTClient 28:add19eb7defa 12609 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 12610 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12611 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12612 {
AzureIoTClient 28:add19eb7defa 12613 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 12614 result = 0;
AzureIoTClient 28:add19eb7defa 12615 }
AzureIoTClient 28:add19eb7defa 12616 else
AzureIoTClient 28:add19eb7defa 12617 {
AzureIoTClient 28:add19eb7defa 12618 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12619 if ((get_single_value_result = amqpvalue_get_boolean(item_value, dynamic_value)) != 0)
AzureIoTClient 28:add19eb7defa 12620 {
AzureIoTClient 23:1111ee8bcba4 12621 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 12622 {
AzureIoTClient 28:add19eb7defa 12623 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12624 }
AzureIoTClient 28:add19eb7defa 12625 else
AzureIoTClient 28:add19eb7defa 12626 {
AzureIoTClient 28:add19eb7defa 12627 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 12628 result = 0;
AzureIoTClient 23:1111ee8bcba4 12629 }
AzureIoTClient 28:add19eb7defa 12630 }
AzureIoTClient 28:add19eb7defa 12631 else
AzureIoTClient 28:add19eb7defa 12632 {
AzureIoTClient 28:add19eb7defa 12633 result = 0;
AzureIoTClient 28:add19eb7defa 12634 }
AzureIoTClient 28:add19eb7defa 12635 }
AzureIoTClient 28:add19eb7defa 12636 }
AzureIoTClient 28:add19eb7defa 12637 }
AzureIoTClient 28:add19eb7defa 12638 }
AzureIoTClient 28:add19eb7defa 12639
AzureIoTClient 28:add19eb7defa 12640 return result;
Azure.IoT Build 0:6ae2f7bca550 12641 }
Azure.IoT Build 0:6ae2f7bca550 12642
Azure.IoT Build 0:6ae2f7bca550 12643 int source_set_dynamic(SOURCE_HANDLE source, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 12644 {
AzureIoTClient 28:add19eb7defa 12645 int result;
AzureIoTClient 28:add19eb7defa 12646
AzureIoTClient 28:add19eb7defa 12647 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12648 {
AzureIoTClient 28:add19eb7defa 12649 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12650 }
AzureIoTClient 28:add19eb7defa 12651 else
AzureIoTClient 28:add19eb7defa 12652 {
AzureIoTClient 28:add19eb7defa 12653 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12654 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
AzureIoTClient 28:add19eb7defa 12655 if (dynamic_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12656 {
AzureIoTClient 28:add19eb7defa 12657 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12658 }
AzureIoTClient 28:add19eb7defa 12659 else
AzureIoTClient 28:add19eb7defa 12660 {
AzureIoTClient 28:add19eb7defa 12661 if (amqpvalue_set_composite_item(source_instance->composite_value, 4, dynamic_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12662 {
AzureIoTClient 28:add19eb7defa 12663 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12664 }
AzureIoTClient 28:add19eb7defa 12665 else
AzureIoTClient 28:add19eb7defa 12666 {
AzureIoTClient 28:add19eb7defa 12667 result = 0;
AzureIoTClient 28:add19eb7defa 12668 }
AzureIoTClient 28:add19eb7defa 12669
AzureIoTClient 28:add19eb7defa 12670 amqpvalue_destroy(dynamic_amqp_value);
AzureIoTClient 28:add19eb7defa 12671 }
AzureIoTClient 28:add19eb7defa 12672 }
AzureIoTClient 28:add19eb7defa 12673
AzureIoTClient 28:add19eb7defa 12674 return result;
Azure.IoT Build 0:6ae2f7bca550 12675 }
Azure.IoT Build 0:6ae2f7bca550 12676
Azure.IoT Build 0:6ae2f7bca550 12677 int source_get_dynamic_node_properties(SOURCE_HANDLE source, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12678 {
AzureIoTClient 28:add19eb7defa 12679 int result;
AzureIoTClient 28:add19eb7defa 12680
AzureIoTClient 28:add19eb7defa 12681 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12682 {
AzureIoTClient 28:add19eb7defa 12683 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12684 }
AzureIoTClient 28:add19eb7defa 12685 else
AzureIoTClient 28:add19eb7defa 12686 {
AzureIoTClient 28:add19eb7defa 12687 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12688 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12689 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12690 {
AzureIoTClient 23:1111ee8bcba4 12691 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12692 }
AzureIoTClient 23:1111ee8bcba4 12693 else
AzureIoTClient 23:1111ee8bcba4 12694 {
AzureIoTClient 23:1111ee8bcba4 12695 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 12696 {
AzureIoTClient 28:add19eb7defa 12697 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12698 }
AzureIoTClient 28:add19eb7defa 12699 else
AzureIoTClient 28:add19eb7defa 12700 {
AzureIoTClient 28:add19eb7defa 12701 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 12702 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12703 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12704 {
AzureIoTClient 28:add19eb7defa 12705 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12706 }
AzureIoTClient 28:add19eb7defa 12707 else
AzureIoTClient 28:add19eb7defa 12708 {
AzureIoTClient 28:add19eb7defa 12709 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12710 if ((get_single_value_result = amqpvalue_get_node_properties(item_value, dynamic_node_properties_value)) != 0)
AzureIoTClient 28:add19eb7defa 12711 {
AzureIoTClient 28:add19eb7defa 12712 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12713 }
AzureIoTClient 28:add19eb7defa 12714 else
AzureIoTClient 28:add19eb7defa 12715 {
AzureIoTClient 28:add19eb7defa 12716 result = 0;
AzureIoTClient 28:add19eb7defa 12717 }
AzureIoTClient 28:add19eb7defa 12718 }
AzureIoTClient 28:add19eb7defa 12719 }
AzureIoTClient 28:add19eb7defa 12720 }
AzureIoTClient 28:add19eb7defa 12721 }
AzureIoTClient 28:add19eb7defa 12722
AzureIoTClient 28:add19eb7defa 12723 return result;
Azure.IoT Build 0:6ae2f7bca550 12724 }
Azure.IoT Build 0:6ae2f7bca550 12725
Azure.IoT Build 0:6ae2f7bca550 12726 int source_set_dynamic_node_properties(SOURCE_HANDLE source, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 12727 {
AzureIoTClient 28:add19eb7defa 12728 int result;
AzureIoTClient 28:add19eb7defa 12729
AzureIoTClient 28:add19eb7defa 12730 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12731 {
AzureIoTClient 28:add19eb7defa 12732 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12733 }
AzureIoTClient 28:add19eb7defa 12734 else
AzureIoTClient 28:add19eb7defa 12735 {
AzureIoTClient 28:add19eb7defa 12736 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12737 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
AzureIoTClient 28:add19eb7defa 12738 if (dynamic_node_properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12739 {
AzureIoTClient 28:add19eb7defa 12740 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12741 }
AzureIoTClient 28:add19eb7defa 12742 else
AzureIoTClient 28:add19eb7defa 12743 {
AzureIoTClient 28:add19eb7defa 12744 if (amqpvalue_set_composite_item(source_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12745 {
AzureIoTClient 28:add19eb7defa 12746 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12747 }
AzureIoTClient 28:add19eb7defa 12748 else
AzureIoTClient 28:add19eb7defa 12749 {
AzureIoTClient 28:add19eb7defa 12750 result = 0;
AzureIoTClient 28:add19eb7defa 12751 }
AzureIoTClient 28:add19eb7defa 12752
AzureIoTClient 28:add19eb7defa 12753 amqpvalue_destroy(dynamic_node_properties_amqp_value);
AzureIoTClient 28:add19eb7defa 12754 }
AzureIoTClient 28:add19eb7defa 12755 }
AzureIoTClient 28:add19eb7defa 12756
AzureIoTClient 28:add19eb7defa 12757 return result;
Azure.IoT Build 0:6ae2f7bca550 12758 }
Azure.IoT Build 0:6ae2f7bca550 12759
Azure.IoT Build 0:6ae2f7bca550 12760 int source_get_distribution_mode(SOURCE_HANDLE source, const char** distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12761 {
AzureIoTClient 28:add19eb7defa 12762 int result;
AzureIoTClient 28:add19eb7defa 12763
AzureIoTClient 28:add19eb7defa 12764 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12765 {
AzureIoTClient 28:add19eb7defa 12766 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12767 }
AzureIoTClient 28:add19eb7defa 12768 else
AzureIoTClient 28:add19eb7defa 12769 {
AzureIoTClient 28:add19eb7defa 12770 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12771 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12772 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12773 {
AzureIoTClient 23:1111ee8bcba4 12774 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12775 }
AzureIoTClient 23:1111ee8bcba4 12776 else
AzureIoTClient 23:1111ee8bcba4 12777 {
AzureIoTClient 23:1111ee8bcba4 12778 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 12779 {
AzureIoTClient 28:add19eb7defa 12780 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12781 }
AzureIoTClient 28:add19eb7defa 12782 else
AzureIoTClient 28:add19eb7defa 12783 {
AzureIoTClient 28:add19eb7defa 12784 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 12785 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12786 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12787 {
AzureIoTClient 28:add19eb7defa 12788 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12789 }
AzureIoTClient 28:add19eb7defa 12790 else
AzureIoTClient 28:add19eb7defa 12791 {
AzureIoTClient 28:add19eb7defa 12792 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12793 if ((get_single_value_result = amqpvalue_get_symbol(item_value, distribution_mode_value)) != 0)
AzureIoTClient 28:add19eb7defa 12794 {
AzureIoTClient 28:add19eb7defa 12795 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12796 }
AzureIoTClient 28:add19eb7defa 12797 else
AzureIoTClient 28:add19eb7defa 12798 {
AzureIoTClient 28:add19eb7defa 12799 result = 0;
AzureIoTClient 28:add19eb7defa 12800 }
AzureIoTClient 28:add19eb7defa 12801 }
AzureIoTClient 28:add19eb7defa 12802 }
AzureIoTClient 28:add19eb7defa 12803 }
AzureIoTClient 28:add19eb7defa 12804 }
AzureIoTClient 28:add19eb7defa 12805
AzureIoTClient 28:add19eb7defa 12806 return result;
Azure.IoT Build 0:6ae2f7bca550 12807 }
Azure.IoT Build 0:6ae2f7bca550 12808
Azure.IoT Build 0:6ae2f7bca550 12809 int source_set_distribution_mode(SOURCE_HANDLE source, const char* distribution_mode_value)
Azure.IoT Build 0:6ae2f7bca550 12810 {
AzureIoTClient 28:add19eb7defa 12811 int result;
AzureIoTClient 28:add19eb7defa 12812
AzureIoTClient 28:add19eb7defa 12813 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12814 {
AzureIoTClient 28:add19eb7defa 12815 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12816 }
AzureIoTClient 28:add19eb7defa 12817 else
AzureIoTClient 28:add19eb7defa 12818 {
AzureIoTClient 28:add19eb7defa 12819 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12820 AMQP_VALUE distribution_mode_amqp_value = amqpvalue_create_symbol(distribution_mode_value);
AzureIoTClient 28:add19eb7defa 12821 if (distribution_mode_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12822 {
AzureIoTClient 28:add19eb7defa 12823 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12824 }
AzureIoTClient 28:add19eb7defa 12825 else
AzureIoTClient 28:add19eb7defa 12826 {
AzureIoTClient 28:add19eb7defa 12827 if (amqpvalue_set_composite_item(source_instance->composite_value, 6, distribution_mode_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12828 {
AzureIoTClient 28:add19eb7defa 12829 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12830 }
AzureIoTClient 28:add19eb7defa 12831 else
AzureIoTClient 28:add19eb7defa 12832 {
AzureIoTClient 28:add19eb7defa 12833 result = 0;
AzureIoTClient 28:add19eb7defa 12834 }
AzureIoTClient 28:add19eb7defa 12835
AzureIoTClient 28:add19eb7defa 12836 amqpvalue_destroy(distribution_mode_amqp_value);
AzureIoTClient 28:add19eb7defa 12837 }
AzureIoTClient 28:add19eb7defa 12838 }
AzureIoTClient 28:add19eb7defa 12839
AzureIoTClient 28:add19eb7defa 12840 return result;
Azure.IoT Build 0:6ae2f7bca550 12841 }
Azure.IoT Build 0:6ae2f7bca550 12842
Azure.IoT Build 0:6ae2f7bca550 12843 int source_get_filter(SOURCE_HANDLE source, filter_set* filter_value)
Azure.IoT Build 0:6ae2f7bca550 12844 {
AzureIoTClient 28:add19eb7defa 12845 int result;
AzureIoTClient 28:add19eb7defa 12846
AzureIoTClient 28:add19eb7defa 12847 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12848 {
AzureIoTClient 28:add19eb7defa 12849 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12850 }
AzureIoTClient 28:add19eb7defa 12851 else
AzureIoTClient 28:add19eb7defa 12852 {
AzureIoTClient 28:add19eb7defa 12853 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12854 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12855 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12856 {
AzureIoTClient 23:1111ee8bcba4 12857 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12858 }
AzureIoTClient 23:1111ee8bcba4 12859 else
AzureIoTClient 23:1111ee8bcba4 12860 {
AzureIoTClient 23:1111ee8bcba4 12861 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 12862 {
AzureIoTClient 28:add19eb7defa 12863 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12864 }
AzureIoTClient 28:add19eb7defa 12865 else
AzureIoTClient 28:add19eb7defa 12866 {
AzureIoTClient 28:add19eb7defa 12867 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 12868 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12869 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12870 {
AzureIoTClient 28:add19eb7defa 12871 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12872 }
AzureIoTClient 28:add19eb7defa 12873 else
AzureIoTClient 28:add19eb7defa 12874 {
AzureIoTClient 28:add19eb7defa 12875 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 12876 if ((get_single_value_result = amqpvalue_get_filter_set(item_value, filter_value)) != 0)
AzureIoTClient 28:add19eb7defa 12877 {
AzureIoTClient 28:add19eb7defa 12878 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12879 }
AzureIoTClient 28:add19eb7defa 12880 else
AzureIoTClient 28:add19eb7defa 12881 {
AzureIoTClient 28:add19eb7defa 12882 result = 0;
AzureIoTClient 28:add19eb7defa 12883 }
AzureIoTClient 28:add19eb7defa 12884 }
AzureIoTClient 28:add19eb7defa 12885 }
AzureIoTClient 28:add19eb7defa 12886 }
AzureIoTClient 28:add19eb7defa 12887 }
AzureIoTClient 28:add19eb7defa 12888
AzureIoTClient 28:add19eb7defa 12889 return result;
Azure.IoT Build 0:6ae2f7bca550 12890 }
Azure.IoT Build 0:6ae2f7bca550 12891
Azure.IoT Build 0:6ae2f7bca550 12892 int source_set_filter(SOURCE_HANDLE source, filter_set filter_value)
Azure.IoT Build 0:6ae2f7bca550 12893 {
AzureIoTClient 28:add19eb7defa 12894 int result;
AzureIoTClient 28:add19eb7defa 12895
AzureIoTClient 28:add19eb7defa 12896 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12897 {
AzureIoTClient 28:add19eb7defa 12898 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12899 }
AzureIoTClient 28:add19eb7defa 12900 else
AzureIoTClient 28:add19eb7defa 12901 {
AzureIoTClient 28:add19eb7defa 12902 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12903 AMQP_VALUE filter_amqp_value = amqpvalue_create_filter_set(filter_value);
AzureIoTClient 28:add19eb7defa 12904 if (filter_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12905 {
AzureIoTClient 28:add19eb7defa 12906 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12907 }
AzureIoTClient 28:add19eb7defa 12908 else
AzureIoTClient 28:add19eb7defa 12909 {
AzureIoTClient 28:add19eb7defa 12910 if (amqpvalue_set_composite_item(source_instance->composite_value, 7, filter_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12911 {
AzureIoTClient 28:add19eb7defa 12912 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12913 }
AzureIoTClient 28:add19eb7defa 12914 else
AzureIoTClient 28:add19eb7defa 12915 {
AzureIoTClient 28:add19eb7defa 12916 result = 0;
AzureIoTClient 28:add19eb7defa 12917 }
AzureIoTClient 28:add19eb7defa 12918
AzureIoTClient 28:add19eb7defa 12919 amqpvalue_destroy(filter_amqp_value);
AzureIoTClient 28:add19eb7defa 12920 }
AzureIoTClient 28:add19eb7defa 12921 }
AzureIoTClient 28:add19eb7defa 12922
AzureIoTClient 28:add19eb7defa 12923 return result;
Azure.IoT Build 0:6ae2f7bca550 12924 }
Azure.IoT Build 0:6ae2f7bca550 12925
Azure.IoT Build 0:6ae2f7bca550 12926 int source_get_default_outcome(SOURCE_HANDLE source, AMQP_VALUE* default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 12927 {
AzureIoTClient 28:add19eb7defa 12928 int result;
AzureIoTClient 28:add19eb7defa 12929
AzureIoTClient 28:add19eb7defa 12930 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12931 {
AzureIoTClient 28:add19eb7defa 12932 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12933 }
AzureIoTClient 28:add19eb7defa 12934 else
AzureIoTClient 28:add19eb7defa 12935 {
AzureIoTClient 28:add19eb7defa 12936 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 12937 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 12938 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 12939 {
AzureIoTClient 23:1111ee8bcba4 12940 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 12941 }
AzureIoTClient 23:1111ee8bcba4 12942 else
AzureIoTClient 23:1111ee8bcba4 12943 {
AzureIoTClient 23:1111ee8bcba4 12944 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 12945 {
AzureIoTClient 28:add19eb7defa 12946 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12947 }
AzureIoTClient 28:add19eb7defa 12948 else
AzureIoTClient 28:add19eb7defa 12949 {
AzureIoTClient 28:add19eb7defa 12950 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 12951 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 12952 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 12953 {
AzureIoTClient 28:add19eb7defa 12954 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12955 }
AzureIoTClient 28:add19eb7defa 12956 else
AzureIoTClient 28:add19eb7defa 12957 {
AzureIoTClient 28:add19eb7defa 12958 *default_outcome_value = item_value;
AzureIoTClient 28:add19eb7defa 12959 result = 0;
AzureIoTClient 28:add19eb7defa 12960 }
AzureIoTClient 28:add19eb7defa 12961 }
AzureIoTClient 28:add19eb7defa 12962 }
AzureIoTClient 28:add19eb7defa 12963 }
AzureIoTClient 28:add19eb7defa 12964
AzureIoTClient 28:add19eb7defa 12965 return result;
Azure.IoT Build 0:6ae2f7bca550 12966 }
Azure.IoT Build 0:6ae2f7bca550 12967
Azure.IoT Build 0:6ae2f7bca550 12968 int source_set_default_outcome(SOURCE_HANDLE source, AMQP_VALUE default_outcome_value)
Azure.IoT Build 0:6ae2f7bca550 12969 {
AzureIoTClient 28:add19eb7defa 12970 int result;
AzureIoTClient 28:add19eb7defa 12971
AzureIoTClient 28:add19eb7defa 12972 if (source == NULL)
AzureIoTClient 28:add19eb7defa 12973 {
AzureIoTClient 28:add19eb7defa 12974 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12975 }
AzureIoTClient 28:add19eb7defa 12976 else
AzureIoTClient 28:add19eb7defa 12977 {
AzureIoTClient 28:add19eb7defa 12978 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 12979 AMQP_VALUE default_outcome_amqp_value;
AzureIoTClient 23:1111ee8bcba4 12980 if (default_outcome_value == NULL)
AzureIoTClient 23:1111ee8bcba4 12981 {
AzureIoTClient 23:1111ee8bcba4 12982 default_outcome_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 12983 }
AzureIoTClient 23:1111ee8bcba4 12984 else
AzureIoTClient 23:1111ee8bcba4 12985 {
AzureIoTClient 23:1111ee8bcba4 12986 default_outcome_amqp_value = amqpvalue_clone(default_outcome_value);
AzureIoTClient 23:1111ee8bcba4 12987 }
AzureIoTClient 28:add19eb7defa 12988 if (default_outcome_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 12989 {
AzureIoTClient 28:add19eb7defa 12990 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12991 }
AzureIoTClient 28:add19eb7defa 12992 else
AzureIoTClient 28:add19eb7defa 12993 {
AzureIoTClient 28:add19eb7defa 12994 if (amqpvalue_set_composite_item(source_instance->composite_value, 8, default_outcome_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 12995 {
AzureIoTClient 28:add19eb7defa 12996 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 12997 }
AzureIoTClient 28:add19eb7defa 12998 else
AzureIoTClient 28:add19eb7defa 12999 {
AzureIoTClient 28:add19eb7defa 13000 result = 0;
AzureIoTClient 28:add19eb7defa 13001 }
AzureIoTClient 28:add19eb7defa 13002
AzureIoTClient 28:add19eb7defa 13003 amqpvalue_destroy(default_outcome_amqp_value);
AzureIoTClient 28:add19eb7defa 13004 }
AzureIoTClient 28:add19eb7defa 13005 }
AzureIoTClient 28:add19eb7defa 13006
AzureIoTClient 28:add19eb7defa 13007 return result;
Azure.IoT Build 0:6ae2f7bca550 13008 }
Azure.IoT Build 0:6ae2f7bca550 13009
Azure.IoT Build 0:6ae2f7bca550 13010 int source_get_outcomes(SOURCE_HANDLE source, AMQP_VALUE* outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 13011 {
AzureIoTClient 28:add19eb7defa 13012 int result;
AzureIoTClient 28:add19eb7defa 13013
AzureIoTClient 28:add19eb7defa 13014 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13015 {
AzureIoTClient 28:add19eb7defa 13016 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13017 }
AzureIoTClient 28:add19eb7defa 13018 else
AzureIoTClient 28:add19eb7defa 13019 {
AzureIoTClient 28:add19eb7defa 13020 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13021 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13022 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13023 {
AzureIoTClient 23:1111ee8bcba4 13024 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13025 }
AzureIoTClient 23:1111ee8bcba4 13026 else
AzureIoTClient 23:1111ee8bcba4 13027 {
AzureIoTClient 23:1111ee8bcba4 13028 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 13029 {
AzureIoTClient 28:add19eb7defa 13030 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13031 }
AzureIoTClient 28:add19eb7defa 13032 else
AzureIoTClient 28:add19eb7defa 13033 {
AzureIoTClient 28:add19eb7defa 13034 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 13035 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13036 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13037 {
AzureIoTClient 28:add19eb7defa 13038 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13039 }
AzureIoTClient 28:add19eb7defa 13040 else
AzureIoTClient 28:add19eb7defa 13041 {
AzureIoTClient 28:add19eb7defa 13042 const char* outcomes_single_value;
AzureIoTClient 28:add19eb7defa 13043 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13044 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13045 {
AzureIoTClient 28:add19eb7defa 13046 get_single_value_result = amqpvalue_get_symbol(item_value, &outcomes_single_value);
AzureIoTClient 28:add19eb7defa 13047 }
AzureIoTClient 28:add19eb7defa 13048 else
AzureIoTClient 28:add19eb7defa 13049 {
AzureIoTClient 28:add19eb7defa 13050 (void)memset((void*)&outcomes_single_value, 0, sizeof(outcomes_single_value));
AzureIoTClient 28:add19eb7defa 13051 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 13052 }
AzureIoTClient 28:add19eb7defa 13053
AzureIoTClient 28:add19eb7defa 13054 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, outcomes_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 13055 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 13056 {
AzureIoTClient 28:add19eb7defa 13057 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13058 }
AzureIoTClient 28:add19eb7defa 13059 else
AzureIoTClient 28:add19eb7defa 13060 {
AzureIoTClient 28:add19eb7defa 13061 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13062 {
AzureIoTClient 28:add19eb7defa 13063 *outcomes_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 13064 if (*outcomes_value == NULL)
AzureIoTClient 28:add19eb7defa 13065 {
AzureIoTClient 28:add19eb7defa 13066 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13067 }
AzureIoTClient 28:add19eb7defa 13068 else
AzureIoTClient 28:add19eb7defa 13069 {
AzureIoTClient 28:add19eb7defa 13070 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(outcomes_single_value);
AzureIoTClient 28:add19eb7defa 13071 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13072 {
AzureIoTClient 28:add19eb7defa 13073 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13074 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13075 }
AzureIoTClient 28:add19eb7defa 13076 else
AzureIoTClient 28:add19eb7defa 13077 {
AzureIoTClient 28:add19eb7defa 13078 if (amqpvalue_add_array_item(*outcomes_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13079 {
AzureIoTClient 28:add19eb7defa 13080 amqpvalue_destroy(*outcomes_value);
AzureIoTClient 28:add19eb7defa 13081 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 13082 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13083 }
AzureIoTClient 28:add19eb7defa 13084 else
AzureIoTClient 28:add19eb7defa 13085 {
AzureIoTClient 28:add19eb7defa 13086 result = 0;
AzureIoTClient 28:add19eb7defa 13087 }
AzureIoTClient 28:add19eb7defa 13088 }
AzureIoTClient 28:add19eb7defa 13089 }
AzureIoTClient 28:add19eb7defa 13090 }
AzureIoTClient 28:add19eb7defa 13091 else
AzureIoTClient 28:add19eb7defa 13092 {
AzureIoTClient 28:add19eb7defa 13093 result = 0;
AzureIoTClient 28:add19eb7defa 13094 }
AzureIoTClient 28:add19eb7defa 13095 }
AzureIoTClient 28:add19eb7defa 13096 }
AzureIoTClient 28:add19eb7defa 13097 }
AzureIoTClient 28:add19eb7defa 13098 }
AzureIoTClient 28:add19eb7defa 13099 }
AzureIoTClient 28:add19eb7defa 13100
AzureIoTClient 28:add19eb7defa 13101 return result;
Azure.IoT Build 0:6ae2f7bca550 13102 }
Azure.IoT Build 0:6ae2f7bca550 13103
Azure.IoT Build 0:6ae2f7bca550 13104 int source_set_outcomes(SOURCE_HANDLE source, AMQP_VALUE outcomes_value)
Azure.IoT Build 0:6ae2f7bca550 13105 {
AzureIoTClient 28:add19eb7defa 13106 int result;
AzureIoTClient 28:add19eb7defa 13107
AzureIoTClient 28:add19eb7defa 13108 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13109 {
AzureIoTClient 28:add19eb7defa 13110 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13111 }
AzureIoTClient 28:add19eb7defa 13112 else
AzureIoTClient 28:add19eb7defa 13113 {
AzureIoTClient 28:add19eb7defa 13114 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13115 AMQP_VALUE outcomes_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13116 if (outcomes_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13117 {
AzureIoTClient 23:1111ee8bcba4 13118 outcomes_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13119 }
AzureIoTClient 23:1111ee8bcba4 13120 else
AzureIoTClient 23:1111ee8bcba4 13121 {
AzureIoTClient 23:1111ee8bcba4 13122 outcomes_amqp_value = amqpvalue_clone(outcomes_value);
AzureIoTClient 23:1111ee8bcba4 13123 }
AzureIoTClient 28:add19eb7defa 13124 if (outcomes_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13125 {
AzureIoTClient 28:add19eb7defa 13126 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13127 }
AzureIoTClient 28:add19eb7defa 13128 else
AzureIoTClient 28:add19eb7defa 13129 {
AzureIoTClient 28:add19eb7defa 13130 if (amqpvalue_set_composite_item(source_instance->composite_value, 9, outcomes_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13131 {
AzureIoTClient 28:add19eb7defa 13132 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13133 }
AzureIoTClient 28:add19eb7defa 13134 else
AzureIoTClient 28:add19eb7defa 13135 {
AzureIoTClient 28:add19eb7defa 13136 result = 0;
AzureIoTClient 28:add19eb7defa 13137 }
AzureIoTClient 28:add19eb7defa 13138
AzureIoTClient 28:add19eb7defa 13139 amqpvalue_destroy(outcomes_amqp_value);
AzureIoTClient 28:add19eb7defa 13140 }
AzureIoTClient 28:add19eb7defa 13141 }
AzureIoTClient 28:add19eb7defa 13142
AzureIoTClient 28:add19eb7defa 13143 return result;
Azure.IoT Build 0:6ae2f7bca550 13144 }
Azure.IoT Build 0:6ae2f7bca550 13145
Azure.IoT Build 0:6ae2f7bca550 13146 int source_get_capabilities(SOURCE_HANDLE source, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13147 {
AzureIoTClient 28:add19eb7defa 13148 int result;
AzureIoTClient 28:add19eb7defa 13149
AzureIoTClient 28:add19eb7defa 13150 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13151 {
AzureIoTClient 28:add19eb7defa 13152 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13153 }
AzureIoTClient 28:add19eb7defa 13154 else
AzureIoTClient 28:add19eb7defa 13155 {
AzureIoTClient 28:add19eb7defa 13156 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13157 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 23:1111ee8bcba4 13158 if (amqpvalue_get_composite_item_count(source_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13159 {
AzureIoTClient 23:1111ee8bcba4 13160 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13161 }
AzureIoTClient 23:1111ee8bcba4 13162 else
AzureIoTClient 23:1111ee8bcba4 13163 {
AzureIoTClient 23:1111ee8bcba4 13164 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 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 item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 13171 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13172 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13173 {
AzureIoTClient 28:add19eb7defa 13174 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13175 }
AzureIoTClient 28:add19eb7defa 13176 else
AzureIoTClient 28:add19eb7defa 13177 {
AzureIoTClient 28:add19eb7defa 13178 const char* capabilities_single_value;
AzureIoTClient 28:add19eb7defa 13179 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13180 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13181 {
AzureIoTClient 28:add19eb7defa 13182 get_single_value_result = amqpvalue_get_symbol(item_value, &capabilities_single_value);
AzureIoTClient 28:add19eb7defa 13183 }
AzureIoTClient 28:add19eb7defa 13184 else
AzureIoTClient 28:add19eb7defa 13185 {
AzureIoTClient 28:add19eb7defa 13186 (void)memset((void*)&capabilities_single_value, 0, sizeof(capabilities_single_value));
AzureIoTClient 28:add19eb7defa 13187 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 13188 }
AzureIoTClient 28:add19eb7defa 13189
AzureIoTClient 28:add19eb7defa 13190 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 13191 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 13192 {
AzureIoTClient 28:add19eb7defa 13193 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13194 }
AzureIoTClient 28:add19eb7defa 13195 else
AzureIoTClient 28:add19eb7defa 13196 {
AzureIoTClient 28:add19eb7defa 13197 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 13198 {
AzureIoTClient 28:add19eb7defa 13199 *capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 13200 if (*capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 13201 {
AzureIoTClient 28:add19eb7defa 13202 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13203 }
AzureIoTClient 28:add19eb7defa 13204 else
AzureIoTClient 28:add19eb7defa 13205 {
AzureIoTClient 28:add19eb7defa 13206 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(capabilities_single_value);
AzureIoTClient 28:add19eb7defa 13207 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13208 {
AzureIoTClient 28:add19eb7defa 13209 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13210 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13211 }
AzureIoTClient 28:add19eb7defa 13212 else
AzureIoTClient 28:add19eb7defa 13213 {
AzureIoTClient 28:add19eb7defa 13214 if (amqpvalue_add_array_item(*capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13215 {
AzureIoTClient 28:add19eb7defa 13216 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 13217 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 13218 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13219 }
AzureIoTClient 28:add19eb7defa 13220 else
AzureIoTClient 28:add19eb7defa 13221 {
AzureIoTClient 28:add19eb7defa 13222 result = 0;
AzureIoTClient 28:add19eb7defa 13223 }
AzureIoTClient 28:add19eb7defa 13224 }
AzureIoTClient 28:add19eb7defa 13225 }
AzureIoTClient 28:add19eb7defa 13226 }
AzureIoTClient 28:add19eb7defa 13227 else
AzureIoTClient 28:add19eb7defa 13228 {
AzureIoTClient 28:add19eb7defa 13229 result = 0;
AzureIoTClient 28:add19eb7defa 13230 }
AzureIoTClient 28:add19eb7defa 13231 }
AzureIoTClient 28:add19eb7defa 13232 }
AzureIoTClient 28:add19eb7defa 13233 }
AzureIoTClient 28:add19eb7defa 13234 }
AzureIoTClient 28:add19eb7defa 13235 }
AzureIoTClient 28:add19eb7defa 13236
AzureIoTClient 28:add19eb7defa 13237 return result;
Azure.IoT Build 0:6ae2f7bca550 13238 }
Azure.IoT Build 0:6ae2f7bca550 13239
Azure.IoT Build 0:6ae2f7bca550 13240 int source_set_capabilities(SOURCE_HANDLE source, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 13241 {
AzureIoTClient 28:add19eb7defa 13242 int result;
AzureIoTClient 28:add19eb7defa 13243
AzureIoTClient 28:add19eb7defa 13244 if (source == NULL)
AzureIoTClient 28:add19eb7defa 13245 {
AzureIoTClient 28:add19eb7defa 13246 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13247 }
AzureIoTClient 28:add19eb7defa 13248 else
AzureIoTClient 28:add19eb7defa 13249 {
AzureIoTClient 28:add19eb7defa 13250 SOURCE_INSTANCE* source_instance = (SOURCE_INSTANCE*)source;
AzureIoTClient 28:add19eb7defa 13251 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13252 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13253 {
AzureIoTClient 23:1111ee8bcba4 13254 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13255 }
AzureIoTClient 23:1111ee8bcba4 13256 else
AzureIoTClient 23:1111ee8bcba4 13257 {
AzureIoTClient 23:1111ee8bcba4 13258 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 13259 }
AzureIoTClient 28:add19eb7defa 13260 if (capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13261 {
AzureIoTClient 28:add19eb7defa 13262 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13263 }
AzureIoTClient 28:add19eb7defa 13264 else
AzureIoTClient 28:add19eb7defa 13265 {
AzureIoTClient 28:add19eb7defa 13266 if (amqpvalue_set_composite_item(source_instance->composite_value, 10, capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13267 {
AzureIoTClient 28:add19eb7defa 13268 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13269 }
AzureIoTClient 28:add19eb7defa 13270 else
AzureIoTClient 28:add19eb7defa 13271 {
AzureIoTClient 28:add19eb7defa 13272 result = 0;
AzureIoTClient 28:add19eb7defa 13273 }
AzureIoTClient 28:add19eb7defa 13274
AzureIoTClient 28:add19eb7defa 13275 amqpvalue_destroy(capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 13276 }
AzureIoTClient 28:add19eb7defa 13277 }
AzureIoTClient 28:add19eb7defa 13278
AzureIoTClient 28:add19eb7defa 13279 return result;
Azure.IoT Build 0:6ae2f7bca550 13280 }
Azure.IoT Build 0:6ae2f7bca550 13281
Azure.IoT Build 0:6ae2f7bca550 13282
Azure.IoT Build 0:6ae2f7bca550 13283 /* target */
Azure.IoT Build 0:6ae2f7bca550 13284
Azure.IoT Build 0:6ae2f7bca550 13285 typedef struct TARGET_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 13286 {
AzureIoTClient 28:add19eb7defa 13287 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 13288 } TARGET_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 13289
Azure.IoT Build 0:6ae2f7bca550 13290 static TARGET_HANDLE target_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 13291 {
AzureIoTClient 28:add19eb7defa 13292 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13293 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13294 {
AzureIoTClient 28:add19eb7defa 13295 target_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 13296 }
AzureIoTClient 28:add19eb7defa 13297
AzureIoTClient 28:add19eb7defa 13298 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13299 }
Azure.IoT Build 0:6ae2f7bca550 13300
Azure.IoT Build 0:6ae2f7bca550 13301 TARGET_HANDLE target_create(void)
Azure.IoT Build 0:6ae2f7bca550 13302 {
AzureIoTClient 28:add19eb7defa 13303 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13304 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13305 {
AzureIoTClient 28:add19eb7defa 13306 target_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(41);
AzureIoTClient 28:add19eb7defa 13307 if (target_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 13308 {
AzureIoTClient 28:add19eb7defa 13309 free(target_instance);
AzureIoTClient 28:add19eb7defa 13310 target_instance = NULL;
AzureIoTClient 28:add19eb7defa 13311 }
AzureIoTClient 28:add19eb7defa 13312 }
AzureIoTClient 28:add19eb7defa 13313
AzureIoTClient 28:add19eb7defa 13314 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13315 }
Azure.IoT Build 0:6ae2f7bca550 13316
Azure.IoT Build 0:6ae2f7bca550 13317 TARGET_HANDLE target_clone(TARGET_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 13318 {
AzureIoTClient 28:add19eb7defa 13319 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)malloc(sizeof(TARGET_INSTANCE));
AzureIoTClient 28:add19eb7defa 13320 if (target_instance != NULL)
AzureIoTClient 28:add19eb7defa 13321 {
AzureIoTClient 28:add19eb7defa 13322 target_instance->composite_value = amqpvalue_clone(((TARGET_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 13323 if (target_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 13324 {
AzureIoTClient 28:add19eb7defa 13325 free(target_instance);
AzureIoTClient 28:add19eb7defa 13326 target_instance = NULL;
AzureIoTClient 28:add19eb7defa 13327 }
AzureIoTClient 28:add19eb7defa 13328 }
AzureIoTClient 28:add19eb7defa 13329
AzureIoTClient 28:add19eb7defa 13330 return target_instance;
Azure.IoT Build 0:6ae2f7bca550 13331 }
Azure.IoT Build 0:6ae2f7bca550 13332
Azure.IoT Build 0:6ae2f7bca550 13333 void target_destroy(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 13334 {
AzureIoTClient 28:add19eb7defa 13335 if (target != NULL)
AzureIoTClient 28:add19eb7defa 13336 {
AzureIoTClient 28:add19eb7defa 13337 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13338 amqpvalue_destroy(target_instance->composite_value);
AzureIoTClient 28:add19eb7defa 13339 free(target_instance);
AzureIoTClient 28:add19eb7defa 13340 }
Azure.IoT Build 0:6ae2f7bca550 13341 }
Azure.IoT Build 0:6ae2f7bca550 13342
Azure.IoT Build 0:6ae2f7bca550 13343 AMQP_VALUE amqpvalue_create_target(TARGET_HANDLE target)
Azure.IoT Build 0:6ae2f7bca550 13344 {
AzureIoTClient 28:add19eb7defa 13345 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 13346
AzureIoTClient 28:add19eb7defa 13347 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13348 {
AzureIoTClient 28:add19eb7defa 13349 result = NULL;
AzureIoTClient 28:add19eb7defa 13350 }
AzureIoTClient 28:add19eb7defa 13351 else
AzureIoTClient 28:add19eb7defa 13352 {
AzureIoTClient 28:add19eb7defa 13353 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13354 result = amqpvalue_clone(target_instance->composite_value);
AzureIoTClient 28:add19eb7defa 13355 }
AzureIoTClient 28:add19eb7defa 13356
AzureIoTClient 28:add19eb7defa 13357 return result;
Azure.IoT Build 0:6ae2f7bca550 13358 }
Azure.IoT Build 0:6ae2f7bca550 13359
Azure.IoT Build 0:6ae2f7bca550 13360 bool is_target_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 13361 {
AzureIoTClient 28:add19eb7defa 13362 bool result;
AzureIoTClient 28:add19eb7defa 13363
AzureIoTClient 28:add19eb7defa 13364 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 13365 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 13366 (descriptor_ulong == 41))
AzureIoTClient 28:add19eb7defa 13367 {
AzureIoTClient 28:add19eb7defa 13368 result = true;
AzureIoTClient 28:add19eb7defa 13369 }
AzureIoTClient 28:add19eb7defa 13370 else
AzureIoTClient 28:add19eb7defa 13371 {
AzureIoTClient 28:add19eb7defa 13372 result = false;
AzureIoTClient 28:add19eb7defa 13373 }
AzureIoTClient 28:add19eb7defa 13374
AzureIoTClient 28:add19eb7defa 13375 return result;
Azure.IoT Build 0:6ae2f7bca550 13376 }
Azure.IoT Build 0:6ae2f7bca550 13377
Azure.IoT Build 0:6ae2f7bca550 13378
Azure.IoT Build 0:6ae2f7bca550 13379 int amqpvalue_get_target(AMQP_VALUE value, TARGET_HANDLE* target_handle)
Azure.IoT Build 0:6ae2f7bca550 13380 {
AzureIoTClient 28:add19eb7defa 13381 int result;
AzureIoTClient 28:add19eb7defa 13382 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target_create_internal();
AzureIoTClient 28:add19eb7defa 13383 *target_handle = target_instance;
AzureIoTClient 28:add19eb7defa 13384 if (*target_handle == NULL)
AzureIoTClient 28:add19eb7defa 13385 {
AzureIoTClient 28:add19eb7defa 13386 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13387 }
AzureIoTClient 28:add19eb7defa 13388 else
AzureIoTClient 28:add19eb7defa 13389 {
AzureIoTClient 28:add19eb7defa 13390 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 13391 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 13392 {
AzureIoTClient 28:add19eb7defa 13393 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13394 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13395 }
AzureIoTClient 28:add19eb7defa 13396 else
AzureIoTClient 28:add19eb7defa 13397 {
AzureIoTClient 23:1111ee8bcba4 13398 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 13399 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13400 {
AzureIoTClient 23:1111ee8bcba4 13401 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13402 }
AzureIoTClient 23:1111ee8bcba4 13403 else
AzureIoTClient 23:1111ee8bcba4 13404 {
AzureIoTClient 28:add19eb7defa 13405 do
AzureIoTClient 28:add19eb7defa 13406 {
AzureIoTClient 28:add19eb7defa 13407 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 13408 /* address */
AzureIoTClient 28:add19eb7defa 13409 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 13410 {
AzureIoTClient 23:1111ee8bcba4 13411 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 13412 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13413 {
AzureIoTClient 28:add19eb7defa 13414 /* do nothing */
AzureIoTClient 28:add19eb7defa 13415 }
AzureIoTClient 28:add19eb7defa 13416 else
AzureIoTClient 28:add19eb7defa 13417 {
AzureIoTClient 28:add19eb7defa 13418 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13419 }
AzureIoTClient 28:add19eb7defa 13420 }
AzureIoTClient 28:add19eb7defa 13421 /* durable */
AzureIoTClient 28:add19eb7defa 13422 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 13423 {
AzureIoTClient 23:1111ee8bcba4 13424 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 13425 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13426 {
AzureIoTClient 28:add19eb7defa 13427 /* do nothing */
AzureIoTClient 28:add19eb7defa 13428 }
AzureIoTClient 28:add19eb7defa 13429 else
AzureIoTClient 28:add19eb7defa 13430 {
AzureIoTClient 28:add19eb7defa 13431 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13432 {
AzureIoTClient 28:add19eb7defa 13433 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13434 }
AzureIoTClient 28:add19eb7defa 13435 else
AzureIoTClient 28:add19eb7defa 13436 {
AzureIoTClient 28:add19eb7defa 13437 terminus_durability durable;
AzureIoTClient 28:add19eb7defa 13438 if (amqpvalue_get_terminus_durability(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 13439 {
AzureIoTClient 28:add19eb7defa 13440 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13441 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13443 break;
AzureIoTClient 28:add19eb7defa 13444 }
AzureIoTClient 28:add19eb7defa 13445 }
AzureIoTClient 28:add19eb7defa 13446
AzureIoTClient 28:add19eb7defa 13447 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13448 }
AzureIoTClient 28:add19eb7defa 13449 }
AzureIoTClient 28:add19eb7defa 13450 /* expiry-policy */
AzureIoTClient 28:add19eb7defa 13451 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 13452 {
AzureIoTClient 23:1111ee8bcba4 13453 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 13454 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13455 {
AzureIoTClient 28:add19eb7defa 13456 /* do nothing */
AzureIoTClient 28:add19eb7defa 13457 }
AzureIoTClient 28:add19eb7defa 13458 else
AzureIoTClient 28:add19eb7defa 13459 {
AzureIoTClient 28:add19eb7defa 13460 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13461 {
AzureIoTClient 28:add19eb7defa 13462 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13463 }
AzureIoTClient 28:add19eb7defa 13464 else
AzureIoTClient 28:add19eb7defa 13465 {
AzureIoTClient 28:add19eb7defa 13466 terminus_expiry_policy expiry_policy;
AzureIoTClient 28:add19eb7defa 13467 if (amqpvalue_get_terminus_expiry_policy(item_value, &expiry_policy) != 0)
AzureIoTClient 28:add19eb7defa 13468 {
AzureIoTClient 28:add19eb7defa 13469 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13470 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13471 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13472 break;
AzureIoTClient 28:add19eb7defa 13473 }
AzureIoTClient 28:add19eb7defa 13474 }
AzureIoTClient 28:add19eb7defa 13475
AzureIoTClient 28:add19eb7defa 13476 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13477 }
AzureIoTClient 28:add19eb7defa 13478 }
AzureIoTClient 28:add19eb7defa 13479 /* timeout */
AzureIoTClient 28:add19eb7defa 13480 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 13481 {
AzureIoTClient 23:1111ee8bcba4 13482 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 13483 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13484 {
AzureIoTClient 28:add19eb7defa 13485 /* do nothing */
AzureIoTClient 28:add19eb7defa 13486 }
AzureIoTClient 28:add19eb7defa 13487 else
AzureIoTClient 28:add19eb7defa 13488 {
AzureIoTClient 28:add19eb7defa 13489 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13490 {
AzureIoTClient 28:add19eb7defa 13491 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13492 }
AzureIoTClient 28:add19eb7defa 13493 else
AzureIoTClient 28:add19eb7defa 13494 {
AzureIoTClient 28:add19eb7defa 13495 seconds timeout;
AzureIoTClient 28:add19eb7defa 13496 if (amqpvalue_get_seconds(item_value, &timeout) != 0)
AzureIoTClient 28:add19eb7defa 13497 {
AzureIoTClient 28:add19eb7defa 13498 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13499 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13500 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13501 break;
AzureIoTClient 28:add19eb7defa 13502 }
AzureIoTClient 28:add19eb7defa 13503 }
AzureIoTClient 28:add19eb7defa 13504
AzureIoTClient 28:add19eb7defa 13505 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13506 }
AzureIoTClient 28:add19eb7defa 13507 }
AzureIoTClient 28:add19eb7defa 13508 /* dynamic */
AzureIoTClient 28:add19eb7defa 13509 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 13510 {
AzureIoTClient 23:1111ee8bcba4 13511 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 13512 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13513 {
AzureIoTClient 28:add19eb7defa 13514 /* do nothing */
AzureIoTClient 28:add19eb7defa 13515 }
AzureIoTClient 28:add19eb7defa 13516 else
AzureIoTClient 28:add19eb7defa 13517 {
AzureIoTClient 28:add19eb7defa 13518 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13519 {
AzureIoTClient 28:add19eb7defa 13520 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13521 }
AzureIoTClient 28:add19eb7defa 13522 else
AzureIoTClient 28:add19eb7defa 13523 {
AzureIoTClient 28:add19eb7defa 13524 bool dynamic;
AzureIoTClient 28:add19eb7defa 13525 if (amqpvalue_get_boolean(item_value, &dynamic) != 0)
AzureIoTClient 28:add19eb7defa 13526 {
AzureIoTClient 28:add19eb7defa 13527 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13528 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13529 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13530 break;
AzureIoTClient 28:add19eb7defa 13531 }
AzureIoTClient 28:add19eb7defa 13532 }
AzureIoTClient 28:add19eb7defa 13533
AzureIoTClient 28:add19eb7defa 13534 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13535 }
AzureIoTClient 28:add19eb7defa 13536 }
AzureIoTClient 28:add19eb7defa 13537 /* dynamic-node-properties */
AzureIoTClient 28:add19eb7defa 13538 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 13539 {
AzureIoTClient 23:1111ee8bcba4 13540 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 13541 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13542 {
AzureIoTClient 28:add19eb7defa 13543 /* do nothing */
AzureIoTClient 28:add19eb7defa 13544 }
AzureIoTClient 28:add19eb7defa 13545 else
AzureIoTClient 28:add19eb7defa 13546 {
AzureIoTClient 28:add19eb7defa 13547 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13548 {
AzureIoTClient 28:add19eb7defa 13549 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13550 }
AzureIoTClient 28:add19eb7defa 13551 else
AzureIoTClient 28:add19eb7defa 13552 {
AzureIoTClient 28:add19eb7defa 13553 node_properties dynamic_node_properties;
AzureIoTClient 28:add19eb7defa 13554 if (amqpvalue_get_node_properties(item_value, &dynamic_node_properties) != 0)
AzureIoTClient 28:add19eb7defa 13555 {
AzureIoTClient 28:add19eb7defa 13556 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13557 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13558 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13559 break;
AzureIoTClient 28:add19eb7defa 13560 }
AzureIoTClient 28:add19eb7defa 13561 }
AzureIoTClient 28:add19eb7defa 13562
AzureIoTClient 28:add19eb7defa 13563 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13564 }
AzureIoTClient 28:add19eb7defa 13565 }
AzureIoTClient 28:add19eb7defa 13566 /* capabilities */
AzureIoTClient 28:add19eb7defa 13567 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 13568 {
AzureIoTClient 23:1111ee8bcba4 13569 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 13570 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 13571 {
AzureIoTClient 28:add19eb7defa 13572 /* do nothing */
AzureIoTClient 28:add19eb7defa 13573 }
AzureIoTClient 28:add19eb7defa 13574 else
AzureIoTClient 28:add19eb7defa 13575 {
AzureIoTClient 28:add19eb7defa 13576 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 13577 {
AzureIoTClient 28:add19eb7defa 13578 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 13579 }
AzureIoTClient 28:add19eb7defa 13580 else
AzureIoTClient 28:add19eb7defa 13581 {
AzureIoTClient 28:add19eb7defa 13582 const char* capabilities = NULL;
AzureIoTClient 28:add19eb7defa 13583 AMQP_VALUE capabilities_array;
AzureIoTClient 28:add19eb7defa 13584 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &capabilities_array) != 0)) &&
AzureIoTClient 28:add19eb7defa 13585 (amqpvalue_get_symbol(item_value, &capabilities) != 0))
AzureIoTClient 28:add19eb7defa 13586 {
AzureIoTClient 28:add19eb7defa 13587 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13588 target_destroy(*target_handle);
AzureIoTClient 28:add19eb7defa 13589 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13590 break;
AzureIoTClient 28:add19eb7defa 13591 }
AzureIoTClient 28:add19eb7defa 13592 }
AzureIoTClient 28:add19eb7defa 13593
AzureIoTClient 28:add19eb7defa 13594 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 13595 }
AzureIoTClient 28:add19eb7defa 13596 }
AzureIoTClient 28:add19eb7defa 13597
AzureIoTClient 28:add19eb7defa 13598 target_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 13599
AzureIoTClient 28:add19eb7defa 13600 result = 0;
AzureIoTClient 28:add19eb7defa 13601 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 13602 }
AzureIoTClient 28:add19eb7defa 13603 }
AzureIoTClient 28:add19eb7defa 13604 }
AzureIoTClient 28:add19eb7defa 13605
AzureIoTClient 28:add19eb7defa 13606 return result;
Azure.IoT Build 0:6ae2f7bca550 13607 }
Azure.IoT Build 0:6ae2f7bca550 13608
Azure.IoT Build 0:6ae2f7bca550 13609 int target_get_address(TARGET_HANDLE target, AMQP_VALUE* address_value)
Azure.IoT Build 0:6ae2f7bca550 13610 {
AzureIoTClient 28:add19eb7defa 13611 int result;
AzureIoTClient 28:add19eb7defa 13612
AzureIoTClient 28:add19eb7defa 13613 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13614 {
AzureIoTClient 28:add19eb7defa 13615 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13616 }
AzureIoTClient 28:add19eb7defa 13617 else
AzureIoTClient 28:add19eb7defa 13618 {
AzureIoTClient 28:add19eb7defa 13619 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13620 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13621 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13622 {
AzureIoTClient 23:1111ee8bcba4 13623 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13624 }
AzureIoTClient 23:1111ee8bcba4 13625 else
AzureIoTClient 23:1111ee8bcba4 13626 {
AzureIoTClient 23:1111ee8bcba4 13627 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 13628 {
AzureIoTClient 28:add19eb7defa 13629 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13630 }
AzureIoTClient 28:add19eb7defa 13631 else
AzureIoTClient 28:add19eb7defa 13632 {
AzureIoTClient 28:add19eb7defa 13633 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 13634 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13635 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13636 {
AzureIoTClient 28:add19eb7defa 13637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13638 }
AzureIoTClient 28:add19eb7defa 13639 else
AzureIoTClient 28:add19eb7defa 13640 {
AzureIoTClient 28:add19eb7defa 13641 *address_value = item_value;
AzureIoTClient 28:add19eb7defa 13642 result = 0;
AzureIoTClient 28:add19eb7defa 13643 }
AzureIoTClient 28:add19eb7defa 13644 }
AzureIoTClient 28:add19eb7defa 13645 }
AzureIoTClient 28:add19eb7defa 13646 }
AzureIoTClient 28:add19eb7defa 13647
AzureIoTClient 28:add19eb7defa 13648 return result;
Azure.IoT Build 0:6ae2f7bca550 13649 }
Azure.IoT Build 0:6ae2f7bca550 13650
Azure.IoT Build 0:6ae2f7bca550 13651 int target_set_address(TARGET_HANDLE target, AMQP_VALUE address_value)
Azure.IoT Build 0:6ae2f7bca550 13652 {
AzureIoTClient 28:add19eb7defa 13653 int result;
AzureIoTClient 28:add19eb7defa 13654
AzureIoTClient 28:add19eb7defa 13655 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13656 {
AzureIoTClient 28:add19eb7defa 13657 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13658 }
AzureIoTClient 28:add19eb7defa 13659 else
AzureIoTClient 28:add19eb7defa 13660 {
AzureIoTClient 28:add19eb7defa 13661 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13662 AMQP_VALUE address_amqp_value;
AzureIoTClient 23:1111ee8bcba4 13663 if (address_value == NULL)
AzureIoTClient 23:1111ee8bcba4 13664 {
AzureIoTClient 23:1111ee8bcba4 13665 address_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 13666 }
AzureIoTClient 23:1111ee8bcba4 13667 else
AzureIoTClient 23:1111ee8bcba4 13668 {
AzureIoTClient 23:1111ee8bcba4 13669 address_amqp_value = amqpvalue_clone(address_value);
AzureIoTClient 23:1111ee8bcba4 13670 }
AzureIoTClient 28:add19eb7defa 13671 if (address_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13672 {
AzureIoTClient 28:add19eb7defa 13673 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13674 }
AzureIoTClient 28:add19eb7defa 13675 else
AzureIoTClient 28:add19eb7defa 13676 {
AzureIoTClient 28:add19eb7defa 13677 if (amqpvalue_set_composite_item(target_instance->composite_value, 0, address_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13678 {
AzureIoTClient 28:add19eb7defa 13679 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13680 }
AzureIoTClient 28:add19eb7defa 13681 else
AzureIoTClient 28:add19eb7defa 13682 {
AzureIoTClient 28:add19eb7defa 13683 result = 0;
AzureIoTClient 28:add19eb7defa 13684 }
AzureIoTClient 28:add19eb7defa 13685
AzureIoTClient 28:add19eb7defa 13686 amqpvalue_destroy(address_amqp_value);
AzureIoTClient 28:add19eb7defa 13687 }
AzureIoTClient 28:add19eb7defa 13688 }
AzureIoTClient 28:add19eb7defa 13689
AzureIoTClient 28:add19eb7defa 13690 return result;
Azure.IoT Build 0:6ae2f7bca550 13691 }
Azure.IoT Build 0:6ae2f7bca550 13692
Azure.IoT Build 0:6ae2f7bca550 13693 int target_get_durable(TARGET_HANDLE target, terminus_durability* durable_value)
Azure.IoT Build 0:6ae2f7bca550 13694 {
AzureIoTClient 28:add19eb7defa 13695 int result;
AzureIoTClient 28:add19eb7defa 13696
AzureIoTClient 28:add19eb7defa 13697 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13698 {
AzureIoTClient 28:add19eb7defa 13699 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13700 }
AzureIoTClient 28:add19eb7defa 13701 else
AzureIoTClient 28:add19eb7defa 13702 {
AzureIoTClient 28:add19eb7defa 13703 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13704 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13705 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13706 {
AzureIoTClient 23:1111ee8bcba4 13707 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13708 }
AzureIoTClient 23:1111ee8bcba4 13709 else
AzureIoTClient 23:1111ee8bcba4 13710 {
AzureIoTClient 23:1111ee8bcba4 13711 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 13712 {
AzureIoTClient 23:1111ee8bcba4 13713 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13714 result = 0;
AzureIoTClient 23:1111ee8bcba4 13715 }
AzureIoTClient 23:1111ee8bcba4 13716 else
AzureIoTClient 23:1111ee8bcba4 13717 {
AzureIoTClient 28:add19eb7defa 13718 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 13719 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13720 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13721 {
AzureIoTClient 16:22a72cf8e416 13722 *durable_value = terminus_durability_none;
AzureIoTClient 16:22a72cf8e416 13723 result = 0;
AzureIoTClient 28:add19eb7defa 13724 }
AzureIoTClient 28:add19eb7defa 13725 else
AzureIoTClient 28:add19eb7defa 13726 {
AzureIoTClient 28:add19eb7defa 13727 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13728 if ((get_single_value_result = amqpvalue_get_terminus_durability(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 13729 {
AzureIoTClient 23:1111ee8bcba4 13730 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13731 {
AzureIoTClient 28:add19eb7defa 13732 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13733 }
AzureIoTClient 23:1111ee8bcba4 13734 else
AzureIoTClient 23:1111ee8bcba4 13735 {
AzureIoTClient 23:1111ee8bcba4 13736 *durable_value = terminus_durability_none;
AzureIoTClient 23:1111ee8bcba4 13737 result = 0;
AzureIoTClient 23:1111ee8bcba4 13738 }
AzureIoTClient 28:add19eb7defa 13739 }
AzureIoTClient 28:add19eb7defa 13740 else
AzureIoTClient 28:add19eb7defa 13741 {
AzureIoTClient 28:add19eb7defa 13742 result = 0;
AzureIoTClient 28:add19eb7defa 13743 }
AzureIoTClient 28:add19eb7defa 13744 }
AzureIoTClient 28:add19eb7defa 13745 }
AzureIoTClient 28:add19eb7defa 13746 }
AzureIoTClient 28:add19eb7defa 13747 }
AzureIoTClient 28:add19eb7defa 13748
AzureIoTClient 28:add19eb7defa 13749 return result;
Azure.IoT Build 0:6ae2f7bca550 13750 }
Azure.IoT Build 0:6ae2f7bca550 13751
Azure.IoT Build 0:6ae2f7bca550 13752 int target_set_durable(TARGET_HANDLE target, terminus_durability durable_value)
Azure.IoT Build 0:6ae2f7bca550 13753 {
AzureIoTClient 28:add19eb7defa 13754 int result;
AzureIoTClient 28:add19eb7defa 13755
AzureIoTClient 28:add19eb7defa 13756 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13757 {
AzureIoTClient 28:add19eb7defa 13758 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13759 }
AzureIoTClient 28:add19eb7defa 13760 else
AzureIoTClient 28:add19eb7defa 13761 {
AzureIoTClient 28:add19eb7defa 13762 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13763 AMQP_VALUE durable_amqp_value = amqpvalue_create_terminus_durability(durable_value);
AzureIoTClient 28:add19eb7defa 13764 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13765 {
AzureIoTClient 28:add19eb7defa 13766 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13767 }
AzureIoTClient 28:add19eb7defa 13768 else
AzureIoTClient 28:add19eb7defa 13769 {
AzureIoTClient 28:add19eb7defa 13770 if (amqpvalue_set_composite_item(target_instance->composite_value, 1, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13771 {
AzureIoTClient 28:add19eb7defa 13772 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13773 }
AzureIoTClient 28:add19eb7defa 13774 else
AzureIoTClient 28:add19eb7defa 13775 {
AzureIoTClient 28:add19eb7defa 13776 result = 0;
AzureIoTClient 28:add19eb7defa 13777 }
AzureIoTClient 28:add19eb7defa 13778
AzureIoTClient 28:add19eb7defa 13779 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 13780 }
AzureIoTClient 28:add19eb7defa 13781 }
AzureIoTClient 28:add19eb7defa 13782
AzureIoTClient 28:add19eb7defa 13783 return result;
Azure.IoT Build 0:6ae2f7bca550 13784 }
Azure.IoT Build 0:6ae2f7bca550 13785
Azure.IoT Build 0:6ae2f7bca550 13786 int target_get_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy* expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13787 {
AzureIoTClient 28:add19eb7defa 13788 int result;
AzureIoTClient 28:add19eb7defa 13789
AzureIoTClient 28:add19eb7defa 13790 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13791 {
AzureIoTClient 28:add19eb7defa 13792 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13793 }
AzureIoTClient 28:add19eb7defa 13794 else
AzureIoTClient 28:add19eb7defa 13795 {
AzureIoTClient 28:add19eb7defa 13796 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13797 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13798 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13799 {
AzureIoTClient 23:1111ee8bcba4 13800 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13801 }
AzureIoTClient 23:1111ee8bcba4 13802 else
AzureIoTClient 23:1111ee8bcba4 13803 {
AzureIoTClient 23:1111ee8bcba4 13804 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 13805 {
AzureIoTClient 23:1111ee8bcba4 13806 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13807 result = 0;
AzureIoTClient 23:1111ee8bcba4 13808 }
AzureIoTClient 23:1111ee8bcba4 13809 else
AzureIoTClient 23:1111ee8bcba4 13810 {
AzureIoTClient 28:add19eb7defa 13811 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 13812 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13813 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13814 {
AzureIoTClient 16:22a72cf8e416 13815 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 16:22a72cf8e416 13816 result = 0;
AzureIoTClient 28:add19eb7defa 13817 }
AzureIoTClient 28:add19eb7defa 13818 else
AzureIoTClient 28:add19eb7defa 13819 {
AzureIoTClient 28:add19eb7defa 13820 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13821 if ((get_single_value_result = amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value)) != 0)
AzureIoTClient 28:add19eb7defa 13822 {
AzureIoTClient 23:1111ee8bcba4 13823 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13824 {
AzureIoTClient 28:add19eb7defa 13825 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13826 }
AzureIoTClient 23:1111ee8bcba4 13827 else
AzureIoTClient 23:1111ee8bcba4 13828 {
AzureIoTClient 23:1111ee8bcba4 13829 *expiry_policy_value = terminus_expiry_policy_session_end;
AzureIoTClient 23:1111ee8bcba4 13830 result = 0;
AzureIoTClient 23:1111ee8bcba4 13831 }
AzureIoTClient 28:add19eb7defa 13832 }
AzureIoTClient 28:add19eb7defa 13833 else
AzureIoTClient 28:add19eb7defa 13834 {
AzureIoTClient 28:add19eb7defa 13835 result = 0;
AzureIoTClient 28:add19eb7defa 13836 }
AzureIoTClient 28:add19eb7defa 13837 }
AzureIoTClient 28:add19eb7defa 13838 }
AzureIoTClient 28:add19eb7defa 13839 }
AzureIoTClient 28:add19eb7defa 13840 }
AzureIoTClient 28:add19eb7defa 13841
AzureIoTClient 28:add19eb7defa 13842 return result;
Azure.IoT Build 0:6ae2f7bca550 13843 }
Azure.IoT Build 0:6ae2f7bca550 13844
Azure.IoT Build 0:6ae2f7bca550 13845 int target_set_expiry_policy(TARGET_HANDLE target, terminus_expiry_policy expiry_policy_value)
Azure.IoT Build 0:6ae2f7bca550 13846 {
AzureIoTClient 28:add19eb7defa 13847 int result;
AzureIoTClient 28:add19eb7defa 13848
AzureIoTClient 28:add19eb7defa 13849 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13850 {
AzureIoTClient 28:add19eb7defa 13851 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13852 }
AzureIoTClient 28:add19eb7defa 13853 else
AzureIoTClient 28:add19eb7defa 13854 {
AzureIoTClient 28:add19eb7defa 13855 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13856 AMQP_VALUE expiry_policy_amqp_value = amqpvalue_create_terminus_expiry_policy(expiry_policy_value);
AzureIoTClient 28:add19eb7defa 13857 if (expiry_policy_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13858 {
AzureIoTClient 28:add19eb7defa 13859 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13860 }
AzureIoTClient 28:add19eb7defa 13861 else
AzureIoTClient 28:add19eb7defa 13862 {
AzureIoTClient 28:add19eb7defa 13863 if (amqpvalue_set_composite_item(target_instance->composite_value, 2, expiry_policy_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13864 {
AzureIoTClient 28:add19eb7defa 13865 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13866 }
AzureIoTClient 28:add19eb7defa 13867 else
AzureIoTClient 28:add19eb7defa 13868 {
AzureIoTClient 28:add19eb7defa 13869 result = 0;
AzureIoTClient 28:add19eb7defa 13870 }
AzureIoTClient 28:add19eb7defa 13871
AzureIoTClient 28:add19eb7defa 13872 amqpvalue_destroy(expiry_policy_amqp_value);
AzureIoTClient 28:add19eb7defa 13873 }
AzureIoTClient 28:add19eb7defa 13874 }
AzureIoTClient 28:add19eb7defa 13875
AzureIoTClient 28:add19eb7defa 13876 return result;
Azure.IoT Build 0:6ae2f7bca550 13877 }
Azure.IoT Build 0:6ae2f7bca550 13878
Azure.IoT Build 0:6ae2f7bca550 13879 int target_get_timeout(TARGET_HANDLE target, seconds* timeout_value)
Azure.IoT Build 0:6ae2f7bca550 13880 {
AzureIoTClient 28:add19eb7defa 13881 int result;
AzureIoTClient 28:add19eb7defa 13882
AzureIoTClient 28:add19eb7defa 13883 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13884 {
AzureIoTClient 28:add19eb7defa 13885 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13886 }
AzureIoTClient 28:add19eb7defa 13887 else
AzureIoTClient 28:add19eb7defa 13888 {
AzureIoTClient 28:add19eb7defa 13889 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13890 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13891 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13892 {
AzureIoTClient 23:1111ee8bcba4 13893 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13894 }
AzureIoTClient 23:1111ee8bcba4 13895 else
AzureIoTClient 23:1111ee8bcba4 13896 {
AzureIoTClient 23:1111ee8bcba4 13897 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 13898 {
AzureIoTClient 28:add19eb7defa 13899 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 13900 result = 0;
AzureIoTClient 28:add19eb7defa 13901 }
AzureIoTClient 28:add19eb7defa 13902 else
AzureIoTClient 28:add19eb7defa 13903 {
AzureIoTClient 28:add19eb7defa 13904 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 13905 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13906 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 13907 {
AzureIoTClient 28:add19eb7defa 13908 *timeout_value = 0;
AzureIoTClient 28:add19eb7defa 13909 result = 0;
AzureIoTClient 28:add19eb7defa 13910 }
AzureIoTClient 28:add19eb7defa 13911 else
AzureIoTClient 28:add19eb7defa 13912 {
AzureIoTClient 28:add19eb7defa 13913 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 13914 if ((get_single_value_result = amqpvalue_get_seconds(item_value, timeout_value)) != 0)
AzureIoTClient 28:add19eb7defa 13915 {
AzureIoTClient 23:1111ee8bcba4 13916 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 13917 {
AzureIoTClient 28:add19eb7defa 13918 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13919 }
AzureIoTClient 28:add19eb7defa 13920 else
AzureIoTClient 28:add19eb7defa 13921 {
AzureIoTClient 28:add19eb7defa 13922 *timeout_value = 0;
AzureIoTClient 23:1111ee8bcba4 13923 result = 0;
AzureIoTClient 23:1111ee8bcba4 13924 }
AzureIoTClient 28:add19eb7defa 13925 }
AzureIoTClient 28:add19eb7defa 13926 else
AzureIoTClient 28:add19eb7defa 13927 {
AzureIoTClient 28:add19eb7defa 13928 result = 0;
AzureIoTClient 28:add19eb7defa 13929 }
AzureIoTClient 28:add19eb7defa 13930 }
AzureIoTClient 28:add19eb7defa 13931 }
AzureIoTClient 28:add19eb7defa 13932 }
AzureIoTClient 28:add19eb7defa 13933 }
AzureIoTClient 28:add19eb7defa 13934
AzureIoTClient 28:add19eb7defa 13935 return result;
Azure.IoT Build 0:6ae2f7bca550 13936 }
Azure.IoT Build 0:6ae2f7bca550 13937
Azure.IoT Build 0:6ae2f7bca550 13938 int target_set_timeout(TARGET_HANDLE target, seconds timeout_value)
Azure.IoT Build 0:6ae2f7bca550 13939 {
AzureIoTClient 28:add19eb7defa 13940 int result;
AzureIoTClient 28:add19eb7defa 13941
AzureIoTClient 28:add19eb7defa 13942 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13943 {
AzureIoTClient 28:add19eb7defa 13944 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13945 }
AzureIoTClient 28:add19eb7defa 13946 else
AzureIoTClient 28:add19eb7defa 13947 {
AzureIoTClient 28:add19eb7defa 13948 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 13949 AMQP_VALUE timeout_amqp_value = amqpvalue_create_seconds(timeout_value);
AzureIoTClient 28:add19eb7defa 13950 if (timeout_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 13951 {
AzureIoTClient 28:add19eb7defa 13952 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13953 }
AzureIoTClient 28:add19eb7defa 13954 else
AzureIoTClient 28:add19eb7defa 13955 {
AzureIoTClient 28:add19eb7defa 13956 if (amqpvalue_set_composite_item(target_instance->composite_value, 3, timeout_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 13957 {
AzureIoTClient 28:add19eb7defa 13958 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13959 }
AzureIoTClient 28:add19eb7defa 13960 else
AzureIoTClient 28:add19eb7defa 13961 {
AzureIoTClient 28:add19eb7defa 13962 result = 0;
AzureIoTClient 28:add19eb7defa 13963 }
AzureIoTClient 28:add19eb7defa 13964
AzureIoTClient 28:add19eb7defa 13965 amqpvalue_destroy(timeout_amqp_value);
AzureIoTClient 28:add19eb7defa 13966 }
AzureIoTClient 28:add19eb7defa 13967 }
AzureIoTClient 28:add19eb7defa 13968
AzureIoTClient 28:add19eb7defa 13969 return result;
Azure.IoT Build 0:6ae2f7bca550 13970 }
Azure.IoT Build 0:6ae2f7bca550 13971
Azure.IoT Build 0:6ae2f7bca550 13972 int target_get_dynamic(TARGET_HANDLE target, bool* dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 13973 {
AzureIoTClient 28:add19eb7defa 13974 int result;
AzureIoTClient 28:add19eb7defa 13975
AzureIoTClient 28:add19eb7defa 13976 if (target == NULL)
AzureIoTClient 28:add19eb7defa 13977 {
AzureIoTClient 28:add19eb7defa 13978 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 13979 }
AzureIoTClient 28:add19eb7defa 13980 else
AzureIoTClient 28:add19eb7defa 13981 {
AzureIoTClient 28:add19eb7defa 13982 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 13983 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 13984 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 13985 {
AzureIoTClient 23:1111ee8bcba4 13986 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 13987 }
AzureIoTClient 23:1111ee8bcba4 13988 else
AzureIoTClient 23:1111ee8bcba4 13989 {
AzureIoTClient 23:1111ee8bcba4 13990 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 13991 {
AzureIoTClient 28:add19eb7defa 13992 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 13993 result = 0;
AzureIoTClient 28:add19eb7defa 13994 }
AzureIoTClient 28:add19eb7defa 13995 else
AzureIoTClient 28:add19eb7defa 13996 {
AzureIoTClient 28:add19eb7defa 13997 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 13998 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 13999 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14000 {
AzureIoTClient 28:add19eb7defa 14001 *dynamic_value = false;
AzureIoTClient 28:add19eb7defa 14002 result = 0;
AzureIoTClient 28:add19eb7defa 14003 }
AzureIoTClient 28:add19eb7defa 14004 else
AzureIoTClient 28:add19eb7defa 14005 {
AzureIoTClient 28:add19eb7defa 14006 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14007 if ((get_single_value_result = amqpvalue_get_boolean(item_value, dynamic_value)) != 0)
AzureIoTClient 28:add19eb7defa 14008 {
AzureIoTClient 23:1111ee8bcba4 14009 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14010 {
AzureIoTClient 28:add19eb7defa 14011 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14012 }
AzureIoTClient 28:add19eb7defa 14013 else
AzureIoTClient 28:add19eb7defa 14014 {
AzureIoTClient 28:add19eb7defa 14015 *dynamic_value = false;
AzureIoTClient 23:1111ee8bcba4 14016 result = 0;
AzureIoTClient 23:1111ee8bcba4 14017 }
AzureIoTClient 28:add19eb7defa 14018 }
AzureIoTClient 28:add19eb7defa 14019 else
AzureIoTClient 28:add19eb7defa 14020 {
AzureIoTClient 28:add19eb7defa 14021 result = 0;
AzureIoTClient 28:add19eb7defa 14022 }
AzureIoTClient 28:add19eb7defa 14023 }
AzureIoTClient 28:add19eb7defa 14024 }
AzureIoTClient 28:add19eb7defa 14025 }
AzureIoTClient 28:add19eb7defa 14026 }
AzureIoTClient 28:add19eb7defa 14027
AzureIoTClient 28:add19eb7defa 14028 return result;
Azure.IoT Build 0:6ae2f7bca550 14029 }
Azure.IoT Build 0:6ae2f7bca550 14030
Azure.IoT Build 0:6ae2f7bca550 14031 int target_set_dynamic(TARGET_HANDLE target, bool dynamic_value)
Azure.IoT Build 0:6ae2f7bca550 14032 {
AzureIoTClient 28:add19eb7defa 14033 int result;
AzureIoTClient 28:add19eb7defa 14034
AzureIoTClient 28:add19eb7defa 14035 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14036 {
AzureIoTClient 28:add19eb7defa 14037 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14038 }
AzureIoTClient 28:add19eb7defa 14039 else
AzureIoTClient 28:add19eb7defa 14040 {
AzureIoTClient 28:add19eb7defa 14041 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14042 AMQP_VALUE dynamic_amqp_value = amqpvalue_create_boolean(dynamic_value);
AzureIoTClient 28:add19eb7defa 14043 if (dynamic_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14044 {
AzureIoTClient 28:add19eb7defa 14045 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14046 }
AzureIoTClient 28:add19eb7defa 14047 else
AzureIoTClient 28:add19eb7defa 14048 {
AzureIoTClient 28:add19eb7defa 14049 if (amqpvalue_set_composite_item(target_instance->composite_value, 4, dynamic_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14050 {
AzureIoTClient 28:add19eb7defa 14051 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14052 }
AzureIoTClient 28:add19eb7defa 14053 else
AzureIoTClient 28:add19eb7defa 14054 {
AzureIoTClient 28:add19eb7defa 14055 result = 0;
AzureIoTClient 28:add19eb7defa 14056 }
AzureIoTClient 28:add19eb7defa 14057
AzureIoTClient 28:add19eb7defa 14058 amqpvalue_destroy(dynamic_amqp_value);
AzureIoTClient 28:add19eb7defa 14059 }
AzureIoTClient 28:add19eb7defa 14060 }
AzureIoTClient 28:add19eb7defa 14061
AzureIoTClient 28:add19eb7defa 14062 return result;
Azure.IoT Build 0:6ae2f7bca550 14063 }
Azure.IoT Build 0:6ae2f7bca550 14064
Azure.IoT Build 0:6ae2f7bca550 14065 int target_get_dynamic_node_properties(TARGET_HANDLE target, node_properties* dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 14066 {
AzureIoTClient 28:add19eb7defa 14067 int result;
AzureIoTClient 28:add19eb7defa 14068
AzureIoTClient 28:add19eb7defa 14069 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14070 {
AzureIoTClient 28:add19eb7defa 14071 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14072 }
AzureIoTClient 28:add19eb7defa 14073 else
AzureIoTClient 28:add19eb7defa 14074 {
AzureIoTClient 28:add19eb7defa 14075 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14076 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14077 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14078 {
AzureIoTClient 23:1111ee8bcba4 14079 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14080 }
AzureIoTClient 23:1111ee8bcba4 14081 else
AzureIoTClient 23:1111ee8bcba4 14082 {
AzureIoTClient 23:1111ee8bcba4 14083 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 14084 {
AzureIoTClient 28:add19eb7defa 14085 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14086 }
AzureIoTClient 28:add19eb7defa 14087 else
AzureIoTClient 28:add19eb7defa 14088 {
AzureIoTClient 28:add19eb7defa 14089 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 14090 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14091 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14092 {
AzureIoTClient 28:add19eb7defa 14093 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14094 }
AzureIoTClient 28:add19eb7defa 14095 else
AzureIoTClient 28:add19eb7defa 14096 {
AzureIoTClient 28:add19eb7defa 14097 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14098 if ((get_single_value_result = amqpvalue_get_node_properties(item_value, dynamic_node_properties_value)) != 0)
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 result = 0;
AzureIoTClient 28:add19eb7defa 14105 }
AzureIoTClient 28:add19eb7defa 14106 }
AzureIoTClient 28:add19eb7defa 14107 }
AzureIoTClient 28:add19eb7defa 14108 }
AzureIoTClient 28:add19eb7defa 14109 }
AzureIoTClient 28:add19eb7defa 14110
AzureIoTClient 28:add19eb7defa 14111 return result;
Azure.IoT Build 0:6ae2f7bca550 14112 }
Azure.IoT Build 0:6ae2f7bca550 14113
Azure.IoT Build 0:6ae2f7bca550 14114 int target_set_dynamic_node_properties(TARGET_HANDLE target, node_properties dynamic_node_properties_value)
Azure.IoT Build 0:6ae2f7bca550 14115 {
AzureIoTClient 28:add19eb7defa 14116 int result;
AzureIoTClient 28:add19eb7defa 14117
AzureIoTClient 28:add19eb7defa 14118 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14119 {
AzureIoTClient 28:add19eb7defa 14120 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14121 }
AzureIoTClient 28:add19eb7defa 14122 else
AzureIoTClient 28:add19eb7defa 14123 {
AzureIoTClient 28:add19eb7defa 14124 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14125 AMQP_VALUE dynamic_node_properties_amqp_value = amqpvalue_create_node_properties(dynamic_node_properties_value);
AzureIoTClient 28:add19eb7defa 14126 if (dynamic_node_properties_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14127 {
AzureIoTClient 28:add19eb7defa 14128 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14129 }
AzureIoTClient 28:add19eb7defa 14130 else
AzureIoTClient 28:add19eb7defa 14131 {
AzureIoTClient 28:add19eb7defa 14132 if (amqpvalue_set_composite_item(target_instance->composite_value, 5, dynamic_node_properties_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14133 {
AzureIoTClient 28:add19eb7defa 14134 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14135 }
AzureIoTClient 28:add19eb7defa 14136 else
AzureIoTClient 28:add19eb7defa 14137 {
AzureIoTClient 28:add19eb7defa 14138 result = 0;
AzureIoTClient 28:add19eb7defa 14139 }
AzureIoTClient 28:add19eb7defa 14140
AzureIoTClient 28:add19eb7defa 14141 amqpvalue_destroy(dynamic_node_properties_amqp_value);
AzureIoTClient 28:add19eb7defa 14142 }
AzureIoTClient 28:add19eb7defa 14143 }
AzureIoTClient 28:add19eb7defa 14144
AzureIoTClient 28:add19eb7defa 14145 return result;
Azure.IoT Build 0:6ae2f7bca550 14146 }
Azure.IoT Build 0:6ae2f7bca550 14147
Azure.IoT Build 0:6ae2f7bca550 14148 int target_get_capabilities(TARGET_HANDLE target, AMQP_VALUE* capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 14149 {
AzureIoTClient 28:add19eb7defa 14150 int result;
AzureIoTClient 28:add19eb7defa 14151
AzureIoTClient 28:add19eb7defa 14152 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14153 {
AzureIoTClient 28:add19eb7defa 14154 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14155 }
AzureIoTClient 28:add19eb7defa 14156 else
AzureIoTClient 28:add19eb7defa 14157 {
AzureIoTClient 28:add19eb7defa 14158 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14159 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 23:1111ee8bcba4 14160 if (amqpvalue_get_composite_item_count(target_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14161 {
AzureIoTClient 23:1111ee8bcba4 14162 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14163 }
AzureIoTClient 23:1111ee8bcba4 14164 else
AzureIoTClient 23:1111ee8bcba4 14165 {
AzureIoTClient 23:1111ee8bcba4 14166 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 14167 {
AzureIoTClient 28:add19eb7defa 14168 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14169 }
AzureIoTClient 28:add19eb7defa 14170 else
AzureIoTClient 28:add19eb7defa 14171 {
AzureIoTClient 28:add19eb7defa 14172 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 14173 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14174 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14175 {
AzureIoTClient 28:add19eb7defa 14176 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14177 }
AzureIoTClient 28:add19eb7defa 14178 else
AzureIoTClient 28:add19eb7defa 14179 {
AzureIoTClient 28:add19eb7defa 14180 const char* capabilities_single_value;
AzureIoTClient 28:add19eb7defa 14181 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14182 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 14183 {
AzureIoTClient 28:add19eb7defa 14184 get_single_value_result = amqpvalue_get_symbol(item_value, &capabilities_single_value);
AzureIoTClient 28:add19eb7defa 14185 }
AzureIoTClient 28:add19eb7defa 14186 else
AzureIoTClient 28:add19eb7defa 14187 {
AzureIoTClient 28:add19eb7defa 14188 (void)memset((void*)&capabilities_single_value, 0, sizeof(capabilities_single_value));
AzureIoTClient 28:add19eb7defa 14189 get_single_value_result = 1;
AzureIoTClient 28:add19eb7defa 14190 }
AzureIoTClient 28:add19eb7defa 14191
AzureIoTClient 28:add19eb7defa 14192 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, capabilities_value) != 0)) &&
AzureIoTClient 28:add19eb7defa 14193 (get_single_value_result != 0))
AzureIoTClient 28:add19eb7defa 14194 {
AzureIoTClient 28:add19eb7defa 14195 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14196 }
AzureIoTClient 28:add19eb7defa 14197 else
AzureIoTClient 28:add19eb7defa 14198 {
AzureIoTClient 28:add19eb7defa 14199 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
AzureIoTClient 28:add19eb7defa 14200 {
AzureIoTClient 28:add19eb7defa 14201 *capabilities_value = amqpvalue_create_array();
AzureIoTClient 28:add19eb7defa 14202 if (*capabilities_value == NULL)
AzureIoTClient 28:add19eb7defa 14203 {
AzureIoTClient 28:add19eb7defa 14204 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14205 }
AzureIoTClient 28:add19eb7defa 14206 else
AzureIoTClient 28:add19eb7defa 14207 {
AzureIoTClient 28:add19eb7defa 14208 AMQP_VALUE single_amqp_value = amqpvalue_create_symbol(capabilities_single_value);
AzureIoTClient 28:add19eb7defa 14209 if (single_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14210 {
AzureIoTClient 28:add19eb7defa 14211 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14212 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14213 }
AzureIoTClient 28:add19eb7defa 14214 else
AzureIoTClient 28:add19eb7defa 14215 {
AzureIoTClient 28:add19eb7defa 14216 if (amqpvalue_add_array_item(*capabilities_value, single_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14217 {
AzureIoTClient 28:add19eb7defa 14218 amqpvalue_destroy(*capabilities_value);
AzureIoTClient 28:add19eb7defa 14219 amqpvalue_destroy(single_amqp_value);
AzureIoTClient 28:add19eb7defa 14220 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14221 }
AzureIoTClient 28:add19eb7defa 14222 else
AzureIoTClient 28:add19eb7defa 14223 {
AzureIoTClient 28:add19eb7defa 14224 result = 0;
AzureIoTClient 28:add19eb7defa 14225 }
AzureIoTClient 28:add19eb7defa 14226 }
AzureIoTClient 28:add19eb7defa 14227 }
AzureIoTClient 28:add19eb7defa 14228 }
AzureIoTClient 28:add19eb7defa 14229 else
AzureIoTClient 28:add19eb7defa 14230 {
AzureIoTClient 28:add19eb7defa 14231 result = 0;
AzureIoTClient 28:add19eb7defa 14232 }
AzureIoTClient 28:add19eb7defa 14233 }
AzureIoTClient 28:add19eb7defa 14234 }
AzureIoTClient 28:add19eb7defa 14235 }
AzureIoTClient 28:add19eb7defa 14236 }
AzureIoTClient 28:add19eb7defa 14237 }
AzureIoTClient 28:add19eb7defa 14238
AzureIoTClient 28:add19eb7defa 14239 return result;
Azure.IoT Build 0:6ae2f7bca550 14240 }
Azure.IoT Build 0:6ae2f7bca550 14241
Azure.IoT Build 0:6ae2f7bca550 14242 int target_set_capabilities(TARGET_HANDLE target, AMQP_VALUE capabilities_value)
Azure.IoT Build 0:6ae2f7bca550 14243 {
AzureIoTClient 28:add19eb7defa 14244 int result;
AzureIoTClient 28:add19eb7defa 14245
AzureIoTClient 28:add19eb7defa 14246 if (target == NULL)
AzureIoTClient 28:add19eb7defa 14247 {
AzureIoTClient 28:add19eb7defa 14248 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14249 }
AzureIoTClient 28:add19eb7defa 14250 else
AzureIoTClient 28:add19eb7defa 14251 {
AzureIoTClient 28:add19eb7defa 14252 TARGET_INSTANCE* target_instance = (TARGET_INSTANCE*)target;
AzureIoTClient 28:add19eb7defa 14253 AMQP_VALUE capabilities_amqp_value;
AzureIoTClient 23:1111ee8bcba4 14254 if (capabilities_value == NULL)
AzureIoTClient 23:1111ee8bcba4 14255 {
AzureIoTClient 23:1111ee8bcba4 14256 capabilities_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 14257 }
AzureIoTClient 23:1111ee8bcba4 14258 else
AzureIoTClient 23:1111ee8bcba4 14259 {
AzureIoTClient 23:1111ee8bcba4 14260 capabilities_amqp_value = amqpvalue_clone(capabilities_value);
AzureIoTClient 23:1111ee8bcba4 14261 }
AzureIoTClient 28:add19eb7defa 14262 if (capabilities_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14263 {
AzureIoTClient 28:add19eb7defa 14264 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14265 }
AzureIoTClient 28:add19eb7defa 14266 else
AzureIoTClient 28:add19eb7defa 14267 {
AzureIoTClient 28:add19eb7defa 14268 if (amqpvalue_set_composite_item(target_instance->composite_value, 6, capabilities_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14269 {
AzureIoTClient 28:add19eb7defa 14270 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14271 }
AzureIoTClient 28:add19eb7defa 14272 else
AzureIoTClient 28:add19eb7defa 14273 {
AzureIoTClient 28:add19eb7defa 14274 result = 0;
AzureIoTClient 28:add19eb7defa 14275 }
AzureIoTClient 28:add19eb7defa 14276
AzureIoTClient 28:add19eb7defa 14277 amqpvalue_destroy(capabilities_amqp_value);
AzureIoTClient 28:add19eb7defa 14278 }
AzureIoTClient 28:add19eb7defa 14279 }
AzureIoTClient 28:add19eb7defa 14280
AzureIoTClient 28:add19eb7defa 14281 return result;
Azure.IoT Build 0:6ae2f7bca550 14282 }
Azure.IoT Build 0:6ae2f7bca550 14283
Azure.IoT Build 0:6ae2f7bca550 14284
Azure.IoT Build 0:6ae2f7bca550 14285 /* annotations */
Azure.IoT Build 0:6ae2f7bca550 14286
Azure.IoT Build 0:6ae2f7bca550 14287 AMQP_VALUE amqpvalue_create_annotations(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 14288 {
AzureIoTClient 28:add19eb7defa 14289 return amqpvalue_clone(value);
Azure.IoT Build 0:6ae2f7bca550 14290 }
Azure.IoT Build 0:6ae2f7bca550 14291
Azure.IoT Build 0:6ae2f7bca550 14292 /* message-id-ulong */
Azure.IoT Build 0:6ae2f7bca550 14293
Azure.IoT Build 0:6ae2f7bca550 14294 AMQP_VALUE amqpvalue_create_message_id_ulong(message_id_ulong value)
Azure.IoT Build 0:6ae2f7bca550 14295 {
AzureIoTClient 28:add19eb7defa 14296 return amqpvalue_create_ulong(value);
Azure.IoT Build 0:6ae2f7bca550 14297 }
Azure.IoT Build 0:6ae2f7bca550 14298
Azure.IoT Build 0:6ae2f7bca550 14299 /* message-id-uuid */
Azure.IoT Build 0:6ae2f7bca550 14300
Azure.IoT Build 0:6ae2f7bca550 14301 AMQP_VALUE amqpvalue_create_message_id_uuid(message_id_uuid value)
Azure.IoT Build 0:6ae2f7bca550 14302 {
AzureIoTClient 28:add19eb7defa 14303 return amqpvalue_create_uuid(value);
Azure.IoT Build 0:6ae2f7bca550 14304 }
Azure.IoT Build 0:6ae2f7bca550 14305
Azure.IoT Build 0:6ae2f7bca550 14306 /* message-id-binary */
Azure.IoT Build 0:6ae2f7bca550 14307
Azure.IoT Build 0:6ae2f7bca550 14308 AMQP_VALUE amqpvalue_create_message_id_binary(message_id_binary value)
Azure.IoT Build 0:6ae2f7bca550 14309 {
AzureIoTClient 28:add19eb7defa 14310 return amqpvalue_create_binary(value);
Azure.IoT Build 0:6ae2f7bca550 14311 }
Azure.IoT Build 0:6ae2f7bca550 14312
Azure.IoT Build 0:6ae2f7bca550 14313 /* message-id-string */
Azure.IoT Build 0:6ae2f7bca550 14314
Azure.IoT Build 0:6ae2f7bca550 14315 AMQP_VALUE amqpvalue_create_message_id_string(message_id_string value)
Azure.IoT Build 0:6ae2f7bca550 14316 {
AzureIoTClient 28:add19eb7defa 14317 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 14318 }
Azure.IoT Build 0:6ae2f7bca550 14319
Azure.IoT Build 0:6ae2f7bca550 14320 /* address-string */
Azure.IoT Build 0:6ae2f7bca550 14321
Azure.IoT Build 0:6ae2f7bca550 14322 AMQP_VALUE amqpvalue_create_address_string(address_string value)
Azure.IoT Build 0:6ae2f7bca550 14323 {
AzureIoTClient 28:add19eb7defa 14324 return amqpvalue_create_string(value);
Azure.IoT Build 0:6ae2f7bca550 14325 }
Azure.IoT Build 0:6ae2f7bca550 14326
Azure.IoT Build 0:6ae2f7bca550 14327 /* header */
Azure.IoT Build 0:6ae2f7bca550 14328
Azure.IoT Build 0:6ae2f7bca550 14329 typedef struct HEADER_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 14330 {
AzureIoTClient 28:add19eb7defa 14331 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 14332 } HEADER_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 14333
Azure.IoT Build 0:6ae2f7bca550 14334 static HEADER_HANDLE header_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 14335 {
AzureIoTClient 28:add19eb7defa 14336 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14337 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14338 {
AzureIoTClient 28:add19eb7defa 14339 header_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 14340 }
AzureIoTClient 28:add19eb7defa 14341
AzureIoTClient 28:add19eb7defa 14342 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14343 }
Azure.IoT Build 0:6ae2f7bca550 14344
Azure.IoT Build 0:6ae2f7bca550 14345 HEADER_HANDLE header_create(void)
Azure.IoT Build 0:6ae2f7bca550 14346 {
AzureIoTClient 28:add19eb7defa 14347 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14348 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14349 {
AzureIoTClient 28:add19eb7defa 14350 header_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(112);
AzureIoTClient 28:add19eb7defa 14351 if (header_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 14352 {
AzureIoTClient 28:add19eb7defa 14353 free(header_instance);
AzureIoTClient 28:add19eb7defa 14354 header_instance = NULL;
AzureIoTClient 28:add19eb7defa 14355 }
AzureIoTClient 28:add19eb7defa 14356 }
AzureIoTClient 28:add19eb7defa 14357
AzureIoTClient 28:add19eb7defa 14358 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14359 }
Azure.IoT Build 0:6ae2f7bca550 14360
Azure.IoT Build 0:6ae2f7bca550 14361 HEADER_HANDLE header_clone(HEADER_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 14362 {
AzureIoTClient 28:add19eb7defa 14363 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)malloc(sizeof(HEADER_INSTANCE));
AzureIoTClient 28:add19eb7defa 14364 if (header_instance != NULL)
AzureIoTClient 28:add19eb7defa 14365 {
AzureIoTClient 28:add19eb7defa 14366 header_instance->composite_value = amqpvalue_clone(((HEADER_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 14367 if (header_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 14368 {
AzureIoTClient 28:add19eb7defa 14369 free(header_instance);
AzureIoTClient 28:add19eb7defa 14370 header_instance = NULL;
AzureIoTClient 28:add19eb7defa 14371 }
AzureIoTClient 28:add19eb7defa 14372 }
AzureIoTClient 28:add19eb7defa 14373
AzureIoTClient 28:add19eb7defa 14374 return header_instance;
Azure.IoT Build 0:6ae2f7bca550 14375 }
Azure.IoT Build 0:6ae2f7bca550 14376
Azure.IoT Build 0:6ae2f7bca550 14377 void header_destroy(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 14378 {
AzureIoTClient 28:add19eb7defa 14379 if (header != NULL)
AzureIoTClient 28:add19eb7defa 14380 {
AzureIoTClient 28:add19eb7defa 14381 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14382 amqpvalue_destroy(header_instance->composite_value);
AzureIoTClient 28:add19eb7defa 14383 free(header_instance);
AzureIoTClient 28:add19eb7defa 14384 }
Azure.IoT Build 0:6ae2f7bca550 14385 }
Azure.IoT Build 0:6ae2f7bca550 14386
Azure.IoT Build 0:6ae2f7bca550 14387 AMQP_VALUE amqpvalue_create_header(HEADER_HANDLE header)
Azure.IoT Build 0:6ae2f7bca550 14388 {
AzureIoTClient 28:add19eb7defa 14389 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 14390
AzureIoTClient 28:add19eb7defa 14391 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14392 {
AzureIoTClient 28:add19eb7defa 14393 result = NULL;
AzureIoTClient 28:add19eb7defa 14394 }
AzureIoTClient 28:add19eb7defa 14395 else
AzureIoTClient 28:add19eb7defa 14396 {
AzureIoTClient 28:add19eb7defa 14397 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14398 result = amqpvalue_clone(header_instance->composite_value);
AzureIoTClient 28:add19eb7defa 14399 }
AzureIoTClient 28:add19eb7defa 14400
AzureIoTClient 28:add19eb7defa 14401 return result;
Azure.IoT Build 0:6ae2f7bca550 14402 }
Azure.IoT Build 0:6ae2f7bca550 14403
Azure.IoT Build 0:6ae2f7bca550 14404 bool is_header_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 14405 {
AzureIoTClient 28:add19eb7defa 14406 bool result;
AzureIoTClient 28:add19eb7defa 14407
AzureIoTClient 28:add19eb7defa 14408 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 14409 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 14410 (descriptor_ulong == 112))
AzureIoTClient 28:add19eb7defa 14411 {
AzureIoTClient 28:add19eb7defa 14412 result = true;
AzureIoTClient 28:add19eb7defa 14413 }
AzureIoTClient 28:add19eb7defa 14414 else
AzureIoTClient 28:add19eb7defa 14415 {
AzureIoTClient 28:add19eb7defa 14416 result = false;
AzureIoTClient 28:add19eb7defa 14417 }
AzureIoTClient 28:add19eb7defa 14418
AzureIoTClient 28:add19eb7defa 14419 return result;
Azure.IoT Build 0:6ae2f7bca550 14420 }
Azure.IoT Build 0:6ae2f7bca550 14421
Azure.IoT Build 0:6ae2f7bca550 14422
Azure.IoT Build 0:6ae2f7bca550 14423 int amqpvalue_get_header(AMQP_VALUE value, HEADER_HANDLE* header_handle)
Azure.IoT Build 0:6ae2f7bca550 14424 {
AzureIoTClient 28:add19eb7defa 14425 int result;
AzureIoTClient 28:add19eb7defa 14426 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header_create_internal();
AzureIoTClient 28:add19eb7defa 14427 *header_handle = header_instance;
AzureIoTClient 28:add19eb7defa 14428 if (*header_handle == NULL)
AzureIoTClient 28:add19eb7defa 14429 {
AzureIoTClient 28:add19eb7defa 14430 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14431 }
AzureIoTClient 28:add19eb7defa 14432 else
AzureIoTClient 28:add19eb7defa 14433 {
AzureIoTClient 28:add19eb7defa 14434 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 14435 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 14436 {
AzureIoTClient 28:add19eb7defa 14437 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14438 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14439 }
AzureIoTClient 28:add19eb7defa 14440 else
AzureIoTClient 28:add19eb7defa 14441 {
AzureIoTClient 23:1111ee8bcba4 14442 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 14443 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14444 {
AzureIoTClient 23:1111ee8bcba4 14445 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14446 }
AzureIoTClient 23:1111ee8bcba4 14447 else
AzureIoTClient 23:1111ee8bcba4 14448 {
AzureIoTClient 28:add19eb7defa 14449 do
AzureIoTClient 28:add19eb7defa 14450 {
AzureIoTClient 28:add19eb7defa 14451 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 14452 /* durable */
AzureIoTClient 28:add19eb7defa 14453 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 14454 {
AzureIoTClient 23:1111ee8bcba4 14455 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 14456 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14457 {
AzureIoTClient 28:add19eb7defa 14458 /* do nothing */
AzureIoTClient 28:add19eb7defa 14459 }
AzureIoTClient 28:add19eb7defa 14460 else
AzureIoTClient 28:add19eb7defa 14461 {
AzureIoTClient 28:add19eb7defa 14462 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14463 {
AzureIoTClient 28:add19eb7defa 14464 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14465 }
AzureIoTClient 28:add19eb7defa 14466 else
AzureIoTClient 28:add19eb7defa 14467 {
AzureIoTClient 28:add19eb7defa 14468 bool durable;
AzureIoTClient 28:add19eb7defa 14469 if (amqpvalue_get_boolean(item_value, &durable) != 0)
AzureIoTClient 28:add19eb7defa 14470 {
AzureIoTClient 28:add19eb7defa 14471 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14472 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14473 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14474 break;
AzureIoTClient 28:add19eb7defa 14475 }
AzureIoTClient 28:add19eb7defa 14476 }
AzureIoTClient 28:add19eb7defa 14477
AzureIoTClient 28:add19eb7defa 14478 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14479 }
AzureIoTClient 28:add19eb7defa 14480 }
AzureIoTClient 28:add19eb7defa 14481 /* priority */
AzureIoTClient 28:add19eb7defa 14482 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 14483 {
AzureIoTClient 23:1111ee8bcba4 14484 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 14485 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14486 {
AzureIoTClient 28:add19eb7defa 14487 /* do nothing */
AzureIoTClient 28:add19eb7defa 14488 }
AzureIoTClient 28:add19eb7defa 14489 else
AzureIoTClient 28:add19eb7defa 14490 {
AzureIoTClient 28:add19eb7defa 14491 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14492 {
AzureIoTClient 28:add19eb7defa 14493 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14494 }
AzureIoTClient 28:add19eb7defa 14495 else
AzureIoTClient 28:add19eb7defa 14496 {
AzureIoTClient 28:add19eb7defa 14497 uint8_t priority;
AzureIoTClient 28:add19eb7defa 14498 if (amqpvalue_get_ubyte(item_value, &priority) != 0)
AzureIoTClient 28:add19eb7defa 14499 {
AzureIoTClient 28:add19eb7defa 14500 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14501 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14502 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14503 break;
AzureIoTClient 28:add19eb7defa 14504 }
AzureIoTClient 28:add19eb7defa 14505 }
AzureIoTClient 28:add19eb7defa 14506
AzureIoTClient 28:add19eb7defa 14507 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14508 }
AzureIoTClient 28:add19eb7defa 14509 }
AzureIoTClient 28:add19eb7defa 14510 /* ttl */
AzureIoTClient 28:add19eb7defa 14511 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 14512 {
AzureIoTClient 23:1111ee8bcba4 14513 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 14514 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14515 {
AzureIoTClient 28:add19eb7defa 14516 /* do nothing */
AzureIoTClient 28:add19eb7defa 14517 }
AzureIoTClient 28:add19eb7defa 14518 else
AzureIoTClient 28:add19eb7defa 14519 {
AzureIoTClient 28:add19eb7defa 14520 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14521 {
AzureIoTClient 28:add19eb7defa 14522 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14523 }
AzureIoTClient 28:add19eb7defa 14524 else
AzureIoTClient 28:add19eb7defa 14525 {
AzureIoTClient 28:add19eb7defa 14526 milliseconds ttl;
AzureIoTClient 28:add19eb7defa 14527 if (amqpvalue_get_milliseconds(item_value, &ttl) != 0)
AzureIoTClient 28:add19eb7defa 14528 {
AzureIoTClient 28:add19eb7defa 14529 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14530 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14531 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14532 break;
AzureIoTClient 28:add19eb7defa 14533 }
AzureIoTClient 28:add19eb7defa 14534 }
AzureIoTClient 28:add19eb7defa 14535
AzureIoTClient 28:add19eb7defa 14536 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14537 }
AzureIoTClient 28:add19eb7defa 14538 }
AzureIoTClient 28:add19eb7defa 14539 /* first-acquirer */
AzureIoTClient 28:add19eb7defa 14540 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 14541 {
AzureIoTClient 23:1111ee8bcba4 14542 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 14543 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14544 {
AzureIoTClient 28:add19eb7defa 14545 /* do nothing */
AzureIoTClient 28:add19eb7defa 14546 }
AzureIoTClient 28:add19eb7defa 14547 else
AzureIoTClient 28:add19eb7defa 14548 {
AzureIoTClient 28:add19eb7defa 14549 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14550 {
AzureIoTClient 28:add19eb7defa 14551 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14552 }
AzureIoTClient 28:add19eb7defa 14553 else
AzureIoTClient 28:add19eb7defa 14554 {
AzureIoTClient 28:add19eb7defa 14555 bool first_acquirer;
AzureIoTClient 28:add19eb7defa 14556 if (amqpvalue_get_boolean(item_value, &first_acquirer) != 0)
AzureIoTClient 28:add19eb7defa 14557 {
AzureIoTClient 28:add19eb7defa 14558 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14559 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14560 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14561 break;
AzureIoTClient 28:add19eb7defa 14562 }
AzureIoTClient 28:add19eb7defa 14563 }
AzureIoTClient 28:add19eb7defa 14564
AzureIoTClient 28:add19eb7defa 14565 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14566 }
AzureIoTClient 28:add19eb7defa 14567 }
AzureIoTClient 28:add19eb7defa 14568 /* delivery-count */
AzureIoTClient 28:add19eb7defa 14569 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 14570 {
AzureIoTClient 23:1111ee8bcba4 14571 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 14572 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 14573 {
AzureIoTClient 28:add19eb7defa 14574 /* do nothing */
AzureIoTClient 28:add19eb7defa 14575 }
AzureIoTClient 28:add19eb7defa 14576 else
AzureIoTClient 28:add19eb7defa 14577 {
AzureIoTClient 28:add19eb7defa 14578 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 14579 {
AzureIoTClient 28:add19eb7defa 14580 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 14581 }
AzureIoTClient 28:add19eb7defa 14582 else
AzureIoTClient 28:add19eb7defa 14583 {
AzureIoTClient 28:add19eb7defa 14584 uint32_t delivery_count;
AzureIoTClient 28:add19eb7defa 14585 if (amqpvalue_get_uint(item_value, &delivery_count) != 0)
AzureIoTClient 28:add19eb7defa 14586 {
AzureIoTClient 28:add19eb7defa 14587 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14588 header_destroy(*header_handle);
AzureIoTClient 28:add19eb7defa 14589 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14590 break;
AzureIoTClient 28:add19eb7defa 14591 }
AzureIoTClient 28:add19eb7defa 14592 }
AzureIoTClient 28:add19eb7defa 14593
AzureIoTClient 28:add19eb7defa 14594 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 14595 }
AzureIoTClient 28:add19eb7defa 14596 }
AzureIoTClient 28:add19eb7defa 14597
AzureIoTClient 28:add19eb7defa 14598 header_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 14599
AzureIoTClient 28:add19eb7defa 14600 result = 0;
AzureIoTClient 28:add19eb7defa 14601 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 14602 }
AzureIoTClient 28:add19eb7defa 14603 }
AzureIoTClient 28:add19eb7defa 14604 }
AzureIoTClient 28:add19eb7defa 14605
AzureIoTClient 28:add19eb7defa 14606 return result;
Azure.IoT Build 0:6ae2f7bca550 14607 }
Azure.IoT Build 0:6ae2f7bca550 14608
Azure.IoT Build 0:6ae2f7bca550 14609 int header_get_durable(HEADER_HANDLE header, bool* durable_value)
Azure.IoT Build 0:6ae2f7bca550 14610 {
AzureIoTClient 28:add19eb7defa 14611 int result;
AzureIoTClient 28:add19eb7defa 14612
AzureIoTClient 28:add19eb7defa 14613 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14614 {
AzureIoTClient 28:add19eb7defa 14615 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14616 }
AzureIoTClient 28:add19eb7defa 14617 else
AzureIoTClient 28:add19eb7defa 14618 {
AzureIoTClient 28:add19eb7defa 14619 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14620 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14621 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14622 {
AzureIoTClient 23:1111ee8bcba4 14623 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14624 }
AzureIoTClient 23:1111ee8bcba4 14625 else
AzureIoTClient 23:1111ee8bcba4 14626 {
AzureIoTClient 23:1111ee8bcba4 14627 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 14628 {
AzureIoTClient 28:add19eb7defa 14629 *durable_value = false;
AzureIoTClient 28:add19eb7defa 14630 result = 0;
AzureIoTClient 28:add19eb7defa 14631 }
AzureIoTClient 28:add19eb7defa 14632 else
AzureIoTClient 28:add19eb7defa 14633 {
AzureIoTClient 28:add19eb7defa 14634 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 14635 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14636 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14637 {
AzureIoTClient 28:add19eb7defa 14638 *durable_value = false;
AzureIoTClient 28:add19eb7defa 14639 result = 0;
AzureIoTClient 28:add19eb7defa 14640 }
AzureIoTClient 28:add19eb7defa 14641 else
AzureIoTClient 28:add19eb7defa 14642 {
AzureIoTClient 28:add19eb7defa 14643 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14644 if ((get_single_value_result = amqpvalue_get_boolean(item_value, durable_value)) != 0)
AzureIoTClient 28:add19eb7defa 14645 {
AzureIoTClient 23:1111ee8bcba4 14646 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14647 {
AzureIoTClient 28:add19eb7defa 14648 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14649 }
AzureIoTClient 28:add19eb7defa 14650 else
AzureIoTClient 28:add19eb7defa 14651 {
AzureIoTClient 28:add19eb7defa 14652 *durable_value = false;
AzureIoTClient 23:1111ee8bcba4 14653 result = 0;
AzureIoTClient 23:1111ee8bcba4 14654 }
AzureIoTClient 28:add19eb7defa 14655 }
AzureIoTClient 28:add19eb7defa 14656 else
AzureIoTClient 28:add19eb7defa 14657 {
AzureIoTClient 28:add19eb7defa 14658 result = 0;
AzureIoTClient 28:add19eb7defa 14659 }
AzureIoTClient 28:add19eb7defa 14660 }
AzureIoTClient 28:add19eb7defa 14661 }
AzureIoTClient 28:add19eb7defa 14662 }
AzureIoTClient 28:add19eb7defa 14663 }
AzureIoTClient 28:add19eb7defa 14664
AzureIoTClient 28:add19eb7defa 14665 return result;
Azure.IoT Build 0:6ae2f7bca550 14666 }
Azure.IoT Build 0:6ae2f7bca550 14667
Azure.IoT Build 0:6ae2f7bca550 14668 int header_set_durable(HEADER_HANDLE header, bool durable_value)
Azure.IoT Build 0:6ae2f7bca550 14669 {
AzureIoTClient 28:add19eb7defa 14670 int result;
AzureIoTClient 28:add19eb7defa 14671
AzureIoTClient 28:add19eb7defa 14672 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14673 {
AzureIoTClient 28:add19eb7defa 14674 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14675 }
AzureIoTClient 28:add19eb7defa 14676 else
AzureIoTClient 28:add19eb7defa 14677 {
AzureIoTClient 28:add19eb7defa 14678 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14679 AMQP_VALUE durable_amqp_value = amqpvalue_create_boolean(durable_value);
AzureIoTClient 28:add19eb7defa 14680 if (durable_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14681 {
AzureIoTClient 28:add19eb7defa 14682 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14683 }
AzureIoTClient 28:add19eb7defa 14684 else
AzureIoTClient 28:add19eb7defa 14685 {
AzureIoTClient 28:add19eb7defa 14686 if (amqpvalue_set_composite_item(header_instance->composite_value, 0, durable_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14687 {
AzureIoTClient 28:add19eb7defa 14688 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14689 }
AzureIoTClient 28:add19eb7defa 14690 else
AzureIoTClient 28:add19eb7defa 14691 {
AzureIoTClient 28:add19eb7defa 14692 result = 0;
AzureIoTClient 28:add19eb7defa 14693 }
AzureIoTClient 28:add19eb7defa 14694
AzureIoTClient 28:add19eb7defa 14695 amqpvalue_destroy(durable_amqp_value);
AzureIoTClient 28:add19eb7defa 14696 }
AzureIoTClient 28:add19eb7defa 14697 }
AzureIoTClient 28:add19eb7defa 14698
AzureIoTClient 28:add19eb7defa 14699 return result;
Azure.IoT Build 0:6ae2f7bca550 14700 }
Azure.IoT Build 0:6ae2f7bca550 14701
Azure.IoT Build 0:6ae2f7bca550 14702 int header_get_priority(HEADER_HANDLE header, uint8_t* priority_value)
Azure.IoT Build 0:6ae2f7bca550 14703 {
AzureIoTClient 28:add19eb7defa 14704 int result;
AzureIoTClient 28:add19eb7defa 14705
AzureIoTClient 28:add19eb7defa 14706 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14707 {
AzureIoTClient 28:add19eb7defa 14708 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14709 }
AzureIoTClient 28:add19eb7defa 14710 else
AzureIoTClient 28:add19eb7defa 14711 {
AzureIoTClient 28:add19eb7defa 14712 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14713 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14714 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14715 {
AzureIoTClient 23:1111ee8bcba4 14716 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14717 }
AzureIoTClient 23:1111ee8bcba4 14718 else
AzureIoTClient 23:1111ee8bcba4 14719 {
AzureIoTClient 23:1111ee8bcba4 14720 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 14721 {
AzureIoTClient 28:add19eb7defa 14722 *priority_value = 4;
AzureIoTClient 28:add19eb7defa 14723 result = 0;
AzureIoTClient 28:add19eb7defa 14724 }
AzureIoTClient 28:add19eb7defa 14725 else
AzureIoTClient 28:add19eb7defa 14726 {
AzureIoTClient 28:add19eb7defa 14727 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 14728 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14729 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14730 {
AzureIoTClient 28:add19eb7defa 14731 *priority_value = 4;
AzureIoTClient 28:add19eb7defa 14732 result = 0;
AzureIoTClient 28:add19eb7defa 14733 }
AzureIoTClient 28:add19eb7defa 14734 else
AzureIoTClient 28:add19eb7defa 14735 {
AzureIoTClient 28:add19eb7defa 14736 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14737 if ((get_single_value_result = amqpvalue_get_ubyte(item_value, priority_value)) != 0)
AzureIoTClient 28:add19eb7defa 14738 {
AzureIoTClient 23:1111ee8bcba4 14739 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14740 {
AzureIoTClient 28:add19eb7defa 14741 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14742 }
AzureIoTClient 28:add19eb7defa 14743 else
AzureIoTClient 28:add19eb7defa 14744 {
AzureIoTClient 28:add19eb7defa 14745 *priority_value = 4;
AzureIoTClient 23:1111ee8bcba4 14746 result = 0;
AzureIoTClient 23:1111ee8bcba4 14747 }
AzureIoTClient 28:add19eb7defa 14748 }
AzureIoTClient 28:add19eb7defa 14749 else
AzureIoTClient 28:add19eb7defa 14750 {
AzureIoTClient 28:add19eb7defa 14751 result = 0;
AzureIoTClient 28:add19eb7defa 14752 }
AzureIoTClient 28:add19eb7defa 14753 }
AzureIoTClient 28:add19eb7defa 14754 }
AzureIoTClient 28:add19eb7defa 14755 }
AzureIoTClient 28:add19eb7defa 14756 }
AzureIoTClient 28:add19eb7defa 14757
AzureIoTClient 28:add19eb7defa 14758 return result;
Azure.IoT Build 0:6ae2f7bca550 14759 }
Azure.IoT Build 0:6ae2f7bca550 14760
Azure.IoT Build 0:6ae2f7bca550 14761 int header_set_priority(HEADER_HANDLE header, uint8_t priority_value)
Azure.IoT Build 0:6ae2f7bca550 14762 {
AzureIoTClient 28:add19eb7defa 14763 int result;
AzureIoTClient 28:add19eb7defa 14764
AzureIoTClient 28:add19eb7defa 14765 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14766 {
AzureIoTClient 28:add19eb7defa 14767 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14768 }
AzureIoTClient 28:add19eb7defa 14769 else
AzureIoTClient 28:add19eb7defa 14770 {
AzureIoTClient 28:add19eb7defa 14771 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14772 AMQP_VALUE priority_amqp_value = amqpvalue_create_ubyte(priority_value);
AzureIoTClient 28:add19eb7defa 14773 if (priority_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14774 {
AzureIoTClient 28:add19eb7defa 14775 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14776 }
AzureIoTClient 28:add19eb7defa 14777 else
AzureIoTClient 28:add19eb7defa 14778 {
AzureIoTClient 28:add19eb7defa 14779 if (amqpvalue_set_composite_item(header_instance->composite_value, 1, priority_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14780 {
AzureIoTClient 28:add19eb7defa 14781 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14782 }
AzureIoTClient 28:add19eb7defa 14783 else
AzureIoTClient 28:add19eb7defa 14784 {
AzureIoTClient 28:add19eb7defa 14785 result = 0;
AzureIoTClient 28:add19eb7defa 14786 }
AzureIoTClient 28:add19eb7defa 14787
AzureIoTClient 28:add19eb7defa 14788 amqpvalue_destroy(priority_amqp_value);
AzureIoTClient 28:add19eb7defa 14789 }
AzureIoTClient 28:add19eb7defa 14790 }
AzureIoTClient 28:add19eb7defa 14791
AzureIoTClient 28:add19eb7defa 14792 return result;
Azure.IoT Build 0:6ae2f7bca550 14793 }
Azure.IoT Build 0:6ae2f7bca550 14794
Azure.IoT Build 0:6ae2f7bca550 14795 int header_get_ttl(HEADER_HANDLE header, milliseconds* ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14796 {
AzureIoTClient 28:add19eb7defa 14797 int result;
AzureIoTClient 28:add19eb7defa 14798
AzureIoTClient 28:add19eb7defa 14799 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14800 {
AzureIoTClient 28:add19eb7defa 14801 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14802 }
AzureIoTClient 28:add19eb7defa 14803 else
AzureIoTClient 28:add19eb7defa 14804 {
AzureIoTClient 28:add19eb7defa 14805 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14806 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14807 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14808 {
AzureIoTClient 23:1111ee8bcba4 14809 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14810 }
AzureIoTClient 23:1111ee8bcba4 14811 else
AzureIoTClient 23:1111ee8bcba4 14812 {
AzureIoTClient 23:1111ee8bcba4 14813 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 14814 {
AzureIoTClient 28:add19eb7defa 14815 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14816 }
AzureIoTClient 28:add19eb7defa 14817 else
AzureIoTClient 28:add19eb7defa 14818 {
AzureIoTClient 28:add19eb7defa 14819 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 14820 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14821 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14822 {
AzureIoTClient 28:add19eb7defa 14823 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14824 }
AzureIoTClient 28:add19eb7defa 14825 else
AzureIoTClient 28:add19eb7defa 14826 {
AzureIoTClient 28:add19eb7defa 14827 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14828 if ((get_single_value_result = amqpvalue_get_milliseconds(item_value, ttl_value)) != 0)
AzureIoTClient 28:add19eb7defa 14829 {
AzureIoTClient 28:add19eb7defa 14830 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14831 }
AzureIoTClient 28:add19eb7defa 14832 else
AzureIoTClient 28:add19eb7defa 14833 {
AzureIoTClient 28:add19eb7defa 14834 result = 0;
AzureIoTClient 28:add19eb7defa 14835 }
AzureIoTClient 28:add19eb7defa 14836 }
AzureIoTClient 28:add19eb7defa 14837 }
AzureIoTClient 28:add19eb7defa 14838 }
AzureIoTClient 28:add19eb7defa 14839 }
AzureIoTClient 28:add19eb7defa 14840
AzureIoTClient 28:add19eb7defa 14841 return result;
Azure.IoT Build 0:6ae2f7bca550 14842 }
Azure.IoT Build 0:6ae2f7bca550 14843
Azure.IoT Build 0:6ae2f7bca550 14844 int header_set_ttl(HEADER_HANDLE header, milliseconds ttl_value)
Azure.IoT Build 0:6ae2f7bca550 14845 {
AzureIoTClient 28:add19eb7defa 14846 int result;
AzureIoTClient 28:add19eb7defa 14847
AzureIoTClient 28:add19eb7defa 14848 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14849 {
AzureIoTClient 28:add19eb7defa 14850 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14851 }
AzureIoTClient 28:add19eb7defa 14852 else
AzureIoTClient 28:add19eb7defa 14853 {
AzureIoTClient 28:add19eb7defa 14854 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14855 AMQP_VALUE ttl_amqp_value = amqpvalue_create_milliseconds(ttl_value);
AzureIoTClient 28:add19eb7defa 14856 if (ttl_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14857 {
AzureIoTClient 28:add19eb7defa 14858 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14859 }
AzureIoTClient 28:add19eb7defa 14860 else
AzureIoTClient 28:add19eb7defa 14861 {
AzureIoTClient 28:add19eb7defa 14862 if (amqpvalue_set_composite_item(header_instance->composite_value, 2, ttl_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14863 {
AzureIoTClient 28:add19eb7defa 14864 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14865 }
AzureIoTClient 28:add19eb7defa 14866 else
AzureIoTClient 28:add19eb7defa 14867 {
AzureIoTClient 28:add19eb7defa 14868 result = 0;
AzureIoTClient 28:add19eb7defa 14869 }
AzureIoTClient 28:add19eb7defa 14870
AzureIoTClient 28:add19eb7defa 14871 amqpvalue_destroy(ttl_amqp_value);
AzureIoTClient 28:add19eb7defa 14872 }
AzureIoTClient 28:add19eb7defa 14873 }
AzureIoTClient 28:add19eb7defa 14874
AzureIoTClient 28:add19eb7defa 14875 return result;
Azure.IoT Build 0:6ae2f7bca550 14876 }
Azure.IoT Build 0:6ae2f7bca550 14877
Azure.IoT Build 0:6ae2f7bca550 14878 int header_get_first_acquirer(HEADER_HANDLE header, bool* first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 14879 {
AzureIoTClient 28:add19eb7defa 14880 int result;
AzureIoTClient 28:add19eb7defa 14881
AzureIoTClient 28:add19eb7defa 14882 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14883 {
AzureIoTClient 28:add19eb7defa 14884 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14885 }
AzureIoTClient 28:add19eb7defa 14886 else
AzureIoTClient 28:add19eb7defa 14887 {
AzureIoTClient 28:add19eb7defa 14888 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14889 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14890 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14891 {
AzureIoTClient 23:1111ee8bcba4 14892 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14893 }
AzureIoTClient 23:1111ee8bcba4 14894 else
AzureIoTClient 23:1111ee8bcba4 14895 {
AzureIoTClient 23:1111ee8bcba4 14896 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 14897 {
AzureIoTClient 28:add19eb7defa 14898 *first_acquirer_value = false;
AzureIoTClient 28:add19eb7defa 14899 result = 0;
AzureIoTClient 28:add19eb7defa 14900 }
AzureIoTClient 28:add19eb7defa 14901 else
AzureIoTClient 28:add19eb7defa 14902 {
AzureIoTClient 28:add19eb7defa 14903 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 14904 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14905 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14906 {
AzureIoTClient 28:add19eb7defa 14907 *first_acquirer_value = false;
AzureIoTClient 28:add19eb7defa 14908 result = 0;
AzureIoTClient 28:add19eb7defa 14909 }
AzureIoTClient 28:add19eb7defa 14910 else
AzureIoTClient 28:add19eb7defa 14911 {
AzureIoTClient 28:add19eb7defa 14912 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 14913 if ((get_single_value_result = amqpvalue_get_boolean(item_value, first_acquirer_value)) != 0)
AzureIoTClient 28:add19eb7defa 14914 {
AzureIoTClient 23:1111ee8bcba4 14915 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 14916 {
AzureIoTClient 28:add19eb7defa 14917 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14918 }
AzureIoTClient 28:add19eb7defa 14919 else
AzureIoTClient 28:add19eb7defa 14920 {
AzureIoTClient 28:add19eb7defa 14921 *first_acquirer_value = false;
AzureIoTClient 23:1111ee8bcba4 14922 result = 0;
AzureIoTClient 23:1111ee8bcba4 14923 }
AzureIoTClient 28:add19eb7defa 14924 }
AzureIoTClient 28:add19eb7defa 14925 else
AzureIoTClient 28:add19eb7defa 14926 {
AzureIoTClient 28:add19eb7defa 14927 result = 0;
AzureIoTClient 28:add19eb7defa 14928 }
AzureIoTClient 28:add19eb7defa 14929 }
AzureIoTClient 28:add19eb7defa 14930 }
AzureIoTClient 28:add19eb7defa 14931 }
AzureIoTClient 28:add19eb7defa 14932 }
AzureIoTClient 28:add19eb7defa 14933
AzureIoTClient 28:add19eb7defa 14934 return result;
Azure.IoT Build 0:6ae2f7bca550 14935 }
Azure.IoT Build 0:6ae2f7bca550 14936
Azure.IoT Build 0:6ae2f7bca550 14937 int header_set_first_acquirer(HEADER_HANDLE header, bool first_acquirer_value)
Azure.IoT Build 0:6ae2f7bca550 14938 {
AzureIoTClient 28:add19eb7defa 14939 int result;
AzureIoTClient 28:add19eb7defa 14940
AzureIoTClient 28:add19eb7defa 14941 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14942 {
AzureIoTClient 28:add19eb7defa 14943 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14944 }
AzureIoTClient 28:add19eb7defa 14945 else
AzureIoTClient 28:add19eb7defa 14946 {
AzureIoTClient 28:add19eb7defa 14947 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 14948 AMQP_VALUE first_acquirer_amqp_value = amqpvalue_create_boolean(first_acquirer_value);
AzureIoTClient 28:add19eb7defa 14949 if (first_acquirer_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 14950 {
AzureIoTClient 28:add19eb7defa 14951 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14952 }
AzureIoTClient 28:add19eb7defa 14953 else
AzureIoTClient 28:add19eb7defa 14954 {
AzureIoTClient 28:add19eb7defa 14955 if (amqpvalue_set_composite_item(header_instance->composite_value, 3, first_acquirer_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 14956 {
AzureIoTClient 28:add19eb7defa 14957 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14958 }
AzureIoTClient 28:add19eb7defa 14959 else
AzureIoTClient 28:add19eb7defa 14960 {
AzureIoTClient 28:add19eb7defa 14961 result = 0;
AzureIoTClient 28:add19eb7defa 14962 }
AzureIoTClient 28:add19eb7defa 14963
AzureIoTClient 28:add19eb7defa 14964 amqpvalue_destroy(first_acquirer_amqp_value);
AzureIoTClient 28:add19eb7defa 14965 }
AzureIoTClient 28:add19eb7defa 14966 }
AzureIoTClient 28:add19eb7defa 14967
AzureIoTClient 28:add19eb7defa 14968 return result;
Azure.IoT Build 0:6ae2f7bca550 14969 }
Azure.IoT Build 0:6ae2f7bca550 14970
Azure.IoT Build 0:6ae2f7bca550 14971 int header_get_delivery_count(HEADER_HANDLE header, uint32_t* delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 14972 {
AzureIoTClient 28:add19eb7defa 14973 int result;
AzureIoTClient 28:add19eb7defa 14974
AzureIoTClient 28:add19eb7defa 14975 if (header == NULL)
AzureIoTClient 28:add19eb7defa 14976 {
AzureIoTClient 28:add19eb7defa 14977 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 14978 }
AzureIoTClient 28:add19eb7defa 14979 else
AzureIoTClient 28:add19eb7defa 14980 {
AzureIoTClient 28:add19eb7defa 14981 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 14982 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 23:1111ee8bcba4 14983 if (amqpvalue_get_composite_item_count(header_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 14984 {
AzureIoTClient 23:1111ee8bcba4 14985 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 14986 }
AzureIoTClient 23:1111ee8bcba4 14987 else
AzureIoTClient 23:1111ee8bcba4 14988 {
AzureIoTClient 23:1111ee8bcba4 14989 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 14990 {
AzureIoTClient 28:add19eb7defa 14991 *delivery_count_value = 0;
AzureIoTClient 28:add19eb7defa 14992 result = 0;
AzureIoTClient 28:add19eb7defa 14993 }
AzureIoTClient 28:add19eb7defa 14994 else
AzureIoTClient 28:add19eb7defa 14995 {
AzureIoTClient 28:add19eb7defa 14996 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 14997 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 14998 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 14999 {
AzureIoTClient 28:add19eb7defa 15000 *delivery_count_value = 0;
AzureIoTClient 28:add19eb7defa 15001 result = 0;
AzureIoTClient 28:add19eb7defa 15002 }
AzureIoTClient 28:add19eb7defa 15003 else
AzureIoTClient 28:add19eb7defa 15004 {
AzureIoTClient 28:add19eb7defa 15005 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 15006 if ((get_single_value_result = amqpvalue_get_uint(item_value, delivery_count_value)) != 0)
AzureIoTClient 28:add19eb7defa 15007 {
AzureIoTClient 23:1111ee8bcba4 15008 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
AzureIoTClient 23:1111ee8bcba4 15009 {
AzureIoTClient 28:add19eb7defa 15010 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15011 }
AzureIoTClient 28:add19eb7defa 15012 else
AzureIoTClient 28:add19eb7defa 15013 {
AzureIoTClient 28:add19eb7defa 15014 *delivery_count_value = 0;
AzureIoTClient 23:1111ee8bcba4 15015 result = 0;
AzureIoTClient 23:1111ee8bcba4 15016 }
AzureIoTClient 28:add19eb7defa 15017 }
AzureIoTClient 28:add19eb7defa 15018 else
AzureIoTClient 28:add19eb7defa 15019 {
AzureIoTClient 28:add19eb7defa 15020 result = 0;
AzureIoTClient 28:add19eb7defa 15021 }
AzureIoTClient 28:add19eb7defa 15022 }
AzureIoTClient 28:add19eb7defa 15023 }
AzureIoTClient 28:add19eb7defa 15024 }
AzureIoTClient 28:add19eb7defa 15025 }
AzureIoTClient 28:add19eb7defa 15026
AzureIoTClient 28:add19eb7defa 15027 return result;
Azure.IoT Build 0:6ae2f7bca550 15028 }
Azure.IoT Build 0:6ae2f7bca550 15029
Azure.IoT Build 0:6ae2f7bca550 15030 int header_set_delivery_count(HEADER_HANDLE header, uint32_t delivery_count_value)
Azure.IoT Build 0:6ae2f7bca550 15031 {
AzureIoTClient 28:add19eb7defa 15032 int result;
AzureIoTClient 28:add19eb7defa 15033
AzureIoTClient 28:add19eb7defa 15034 if (header == NULL)
AzureIoTClient 28:add19eb7defa 15035 {
AzureIoTClient 28:add19eb7defa 15036 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15037 }
AzureIoTClient 28:add19eb7defa 15038 else
AzureIoTClient 28:add19eb7defa 15039 {
AzureIoTClient 28:add19eb7defa 15040 HEADER_INSTANCE* header_instance = (HEADER_INSTANCE*)header;
AzureIoTClient 28:add19eb7defa 15041 AMQP_VALUE delivery_count_amqp_value = amqpvalue_create_uint(delivery_count_value);
AzureIoTClient 28:add19eb7defa 15042 if (delivery_count_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15043 {
AzureIoTClient 28:add19eb7defa 15044 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15045 }
AzureIoTClient 28:add19eb7defa 15046 else
AzureIoTClient 28:add19eb7defa 15047 {
AzureIoTClient 28:add19eb7defa 15048 if (amqpvalue_set_composite_item(header_instance->composite_value, 4, delivery_count_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 15049 {
AzureIoTClient 28:add19eb7defa 15050 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15051 }
AzureIoTClient 28:add19eb7defa 15052 else
AzureIoTClient 28:add19eb7defa 15053 {
AzureIoTClient 28:add19eb7defa 15054 result = 0;
AzureIoTClient 28:add19eb7defa 15055 }
AzureIoTClient 28:add19eb7defa 15056
AzureIoTClient 28:add19eb7defa 15057 amqpvalue_destroy(delivery_count_amqp_value);
AzureIoTClient 28:add19eb7defa 15058 }
AzureIoTClient 28:add19eb7defa 15059 }
AzureIoTClient 28:add19eb7defa 15060
AzureIoTClient 28:add19eb7defa 15061 return result;
Azure.IoT Build 0:6ae2f7bca550 15062 }
Azure.IoT Build 0:6ae2f7bca550 15063
Azure.IoT Build 0:6ae2f7bca550 15064
Azure.IoT Build 0:6ae2f7bca550 15065 /* delivery-annotations */
Azure.IoT Build 0:6ae2f7bca550 15066
Azure.IoT Build 0:6ae2f7bca550 15067 AMQP_VALUE amqpvalue_create_delivery_annotations(delivery_annotations value)
Azure.IoT Build 0:6ae2f7bca550 15068 {
AzureIoTClient 28:add19eb7defa 15069 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15070 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15071 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15072 {
AzureIoTClient 28:add19eb7defa 15073 result = NULL;
AzureIoTClient 28:add19eb7defa 15074 }
AzureIoTClient 28:add19eb7defa 15075 else
AzureIoTClient 28:add19eb7defa 15076 {
AzureIoTClient 28:add19eb7defa 15077 AMQP_VALUE descriptor = amqpvalue_create_ulong(113);
AzureIoTClient 28:add19eb7defa 15078 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15079 {
AzureIoTClient 28:add19eb7defa 15080 result = NULL;
AzureIoTClient 28:add19eb7defa 15081 }
AzureIoTClient 28:add19eb7defa 15082 else
AzureIoTClient 28:add19eb7defa 15083 {
AzureIoTClient 28:add19eb7defa 15084 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15085
AzureIoTClient 28:add19eb7defa 15086 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15087 }
AzureIoTClient 28:add19eb7defa 15088
AzureIoTClient 28:add19eb7defa 15089 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15090 }
AzureIoTClient 28:add19eb7defa 15091
AzureIoTClient 28:add19eb7defa 15092 return result;
Azure.IoT Build 0:6ae2f7bca550 15093 }
Azure.IoT Build 0:6ae2f7bca550 15094
Azure.IoT Build 0:6ae2f7bca550 15095 bool is_delivery_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15096 {
AzureIoTClient 28:add19eb7defa 15097 bool result;
AzureIoTClient 28:add19eb7defa 15098
AzureIoTClient 28:add19eb7defa 15099 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15100 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15101 (descriptor_ulong == 113))
AzureIoTClient 28:add19eb7defa 15102 {
AzureIoTClient 28:add19eb7defa 15103 result = true;
AzureIoTClient 28:add19eb7defa 15104 }
AzureIoTClient 28:add19eb7defa 15105 else
AzureIoTClient 28:add19eb7defa 15106 {
AzureIoTClient 28:add19eb7defa 15107 result = false;
AzureIoTClient 28:add19eb7defa 15108 }
AzureIoTClient 28:add19eb7defa 15109
AzureIoTClient 28:add19eb7defa 15110 return result;
Azure.IoT Build 0:6ae2f7bca550 15111 }
Azure.IoT Build 0:6ae2f7bca550 15112
Azure.IoT Build 0:6ae2f7bca550 15113 /* message-annotations */
Azure.IoT Build 0:6ae2f7bca550 15114
Azure.IoT Build 0:6ae2f7bca550 15115 AMQP_VALUE amqpvalue_create_message_annotations(message_annotations value)
Azure.IoT Build 0:6ae2f7bca550 15116 {
AzureIoTClient 28:add19eb7defa 15117 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15118 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15119 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15120 {
AzureIoTClient 28:add19eb7defa 15121 result = NULL;
AzureIoTClient 28:add19eb7defa 15122 }
AzureIoTClient 28:add19eb7defa 15123 else
AzureIoTClient 28:add19eb7defa 15124 {
AzureIoTClient 28:add19eb7defa 15125 AMQP_VALUE descriptor = amqpvalue_create_ulong(114);
AzureIoTClient 28:add19eb7defa 15126 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15127 {
AzureIoTClient 28:add19eb7defa 15128 result = NULL;
AzureIoTClient 28:add19eb7defa 15129 }
AzureIoTClient 28:add19eb7defa 15130 else
AzureIoTClient 28:add19eb7defa 15131 {
AzureIoTClient 28:add19eb7defa 15132 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15133
AzureIoTClient 28:add19eb7defa 15134 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15135 }
AzureIoTClient 28:add19eb7defa 15136
AzureIoTClient 28:add19eb7defa 15137 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15138 }
AzureIoTClient 28:add19eb7defa 15139
AzureIoTClient 28:add19eb7defa 15140 return result;
Azure.IoT Build 0:6ae2f7bca550 15141 }
Azure.IoT Build 0:6ae2f7bca550 15142
Azure.IoT Build 0:6ae2f7bca550 15143 bool is_message_annotations_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15144 {
AzureIoTClient 28:add19eb7defa 15145 bool result;
AzureIoTClient 28:add19eb7defa 15146
AzureIoTClient 28:add19eb7defa 15147 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15148 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15149 (descriptor_ulong == 114))
AzureIoTClient 28:add19eb7defa 15150 {
AzureIoTClient 28:add19eb7defa 15151 result = true;
AzureIoTClient 28:add19eb7defa 15152 }
AzureIoTClient 28:add19eb7defa 15153 else
AzureIoTClient 28:add19eb7defa 15154 {
AzureIoTClient 28:add19eb7defa 15155 result = false;
AzureIoTClient 28:add19eb7defa 15156 }
AzureIoTClient 28:add19eb7defa 15157
AzureIoTClient 28:add19eb7defa 15158 return result;
Azure.IoT Build 0:6ae2f7bca550 15159 }
Azure.IoT Build 0:6ae2f7bca550 15160
Azure.IoT Build 0:6ae2f7bca550 15161 /* application-properties */
Azure.IoT Build 0:6ae2f7bca550 15162
Azure.IoT Build 0:6ae2f7bca550 15163 AMQP_VALUE amqpvalue_create_application_properties(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15164 {
AzureIoTClient 28:add19eb7defa 15165 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15166 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15167 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15168 {
AzureIoTClient 28:add19eb7defa 15169 result = NULL;
AzureIoTClient 28:add19eb7defa 15170 }
AzureIoTClient 28:add19eb7defa 15171 else
AzureIoTClient 28:add19eb7defa 15172 {
AzureIoTClient 28:add19eb7defa 15173 AMQP_VALUE descriptor = amqpvalue_create_ulong(116);
AzureIoTClient 28:add19eb7defa 15174 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15175 {
AzureIoTClient 28:add19eb7defa 15176 result = NULL;
AzureIoTClient 28:add19eb7defa 15177 }
AzureIoTClient 28:add19eb7defa 15178 else
AzureIoTClient 28:add19eb7defa 15179 {
AzureIoTClient 28:add19eb7defa 15180 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15181
AzureIoTClient 28:add19eb7defa 15182 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15183 }
AzureIoTClient 28:add19eb7defa 15184
AzureIoTClient 28:add19eb7defa 15185 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15186 }
AzureIoTClient 28:add19eb7defa 15187
AzureIoTClient 28:add19eb7defa 15188 return result;
Azure.IoT Build 0:6ae2f7bca550 15189 }
Azure.IoT Build 0:6ae2f7bca550 15190
Azure.IoT Build 0:6ae2f7bca550 15191 bool is_application_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15192 {
AzureIoTClient 28:add19eb7defa 15193 bool result;
AzureIoTClient 28:add19eb7defa 15194
AzureIoTClient 28:add19eb7defa 15195 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15196 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15197 (descriptor_ulong == 116))
AzureIoTClient 28:add19eb7defa 15198 {
AzureIoTClient 28:add19eb7defa 15199 result = true;
AzureIoTClient 28:add19eb7defa 15200 }
AzureIoTClient 28:add19eb7defa 15201 else
AzureIoTClient 28:add19eb7defa 15202 {
AzureIoTClient 28:add19eb7defa 15203 result = false;
AzureIoTClient 28:add19eb7defa 15204 }
AzureIoTClient 28:add19eb7defa 15205
AzureIoTClient 28:add19eb7defa 15206 return result;
Azure.IoT Build 0:6ae2f7bca550 15207 }
Azure.IoT Build 0:6ae2f7bca550 15208
Azure.IoT Build 0:6ae2f7bca550 15209 /* data */
Azure.IoT Build 0:6ae2f7bca550 15210
Azure.IoT Build 0:6ae2f7bca550 15211 AMQP_VALUE amqpvalue_create_data(data value)
Azure.IoT Build 0:6ae2f7bca550 15212 {
AzureIoTClient 28:add19eb7defa 15213 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15214 AMQP_VALUE described_value = amqpvalue_create_binary(value);
AzureIoTClient 28:add19eb7defa 15215 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15216 {
AzureIoTClient 28:add19eb7defa 15217 result = NULL;
AzureIoTClient 28:add19eb7defa 15218 }
AzureIoTClient 28:add19eb7defa 15219 else
AzureIoTClient 28:add19eb7defa 15220 {
AzureIoTClient 28:add19eb7defa 15221 AMQP_VALUE descriptor = amqpvalue_create_ulong(117);
AzureIoTClient 28:add19eb7defa 15222 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15223 {
AzureIoTClient 28:add19eb7defa 15224 result = NULL;
AzureIoTClient 28:add19eb7defa 15225 }
AzureIoTClient 28:add19eb7defa 15226 else
AzureIoTClient 28:add19eb7defa 15227 {
AzureIoTClient 28:add19eb7defa 15228 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15229
AzureIoTClient 28:add19eb7defa 15230 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15231 }
AzureIoTClient 28:add19eb7defa 15232
AzureIoTClient 28:add19eb7defa 15233 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15234 }
AzureIoTClient 28:add19eb7defa 15235
AzureIoTClient 28:add19eb7defa 15236 return result;
Azure.IoT Build 0:6ae2f7bca550 15237 }
Azure.IoT Build 0:6ae2f7bca550 15238
Azure.IoT Build 0:6ae2f7bca550 15239 bool is_data_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15240 {
AzureIoTClient 28:add19eb7defa 15241 bool result;
AzureIoTClient 28:add19eb7defa 15242
AzureIoTClient 28:add19eb7defa 15243 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15244 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15245 (descriptor_ulong == 117))
AzureIoTClient 28:add19eb7defa 15246 {
AzureIoTClient 28:add19eb7defa 15247 result = true;
AzureIoTClient 28:add19eb7defa 15248 }
AzureIoTClient 28:add19eb7defa 15249 else
AzureIoTClient 28:add19eb7defa 15250 {
AzureIoTClient 28:add19eb7defa 15251 result = false;
AzureIoTClient 28:add19eb7defa 15252 }
AzureIoTClient 28:add19eb7defa 15253
AzureIoTClient 28:add19eb7defa 15254 return result;
Azure.IoT Build 0:6ae2f7bca550 15255 }
Azure.IoT Build 0:6ae2f7bca550 15256
Azure.IoT Build 0:6ae2f7bca550 15257 /* amqp-sequence */
Azure.IoT Build 0:6ae2f7bca550 15258
Azure.IoT Build 0:6ae2f7bca550 15259 AMQP_VALUE amqpvalue_create_amqp_sequence(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15260 {
AzureIoTClient 28:add19eb7defa 15261 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15262 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15263 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15264 {
AzureIoTClient 28:add19eb7defa 15265 result = NULL;
AzureIoTClient 28:add19eb7defa 15266 }
AzureIoTClient 28:add19eb7defa 15267 else
AzureIoTClient 28:add19eb7defa 15268 {
AzureIoTClient 28:add19eb7defa 15269 AMQP_VALUE descriptor = amqpvalue_create_ulong(118);
AzureIoTClient 28:add19eb7defa 15270 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15271 {
AzureIoTClient 28:add19eb7defa 15272 result = NULL;
AzureIoTClient 28:add19eb7defa 15273 }
AzureIoTClient 28:add19eb7defa 15274 else
AzureIoTClient 28:add19eb7defa 15275 {
AzureIoTClient 28:add19eb7defa 15276 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15277
AzureIoTClient 28:add19eb7defa 15278 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15279 }
AzureIoTClient 28:add19eb7defa 15280
AzureIoTClient 28:add19eb7defa 15281 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15282 }
AzureIoTClient 28:add19eb7defa 15283
AzureIoTClient 28:add19eb7defa 15284 return result;
Azure.IoT Build 0:6ae2f7bca550 15285 }
Azure.IoT Build 0:6ae2f7bca550 15286
Azure.IoT Build 0:6ae2f7bca550 15287 bool is_amqp_sequence_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15288 {
AzureIoTClient 28:add19eb7defa 15289 bool result;
AzureIoTClient 28:add19eb7defa 15290
AzureIoTClient 28:add19eb7defa 15291 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15292 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15293 (descriptor_ulong == 118))
AzureIoTClient 28:add19eb7defa 15294 {
AzureIoTClient 28:add19eb7defa 15295 result = true;
AzureIoTClient 28:add19eb7defa 15296 }
AzureIoTClient 28:add19eb7defa 15297 else
AzureIoTClient 28:add19eb7defa 15298 {
AzureIoTClient 28:add19eb7defa 15299 result = false;
AzureIoTClient 28:add19eb7defa 15300 }
AzureIoTClient 28:add19eb7defa 15301
AzureIoTClient 28:add19eb7defa 15302 return result;
Azure.IoT Build 0:6ae2f7bca550 15303 }
Azure.IoT Build 0:6ae2f7bca550 15304
Azure.IoT Build 0:6ae2f7bca550 15305 /* amqp-value */
Azure.IoT Build 0:6ae2f7bca550 15306
Azure.IoT Build 0:6ae2f7bca550 15307 AMQP_VALUE amqpvalue_create_amqp_value(AMQP_VALUE value)
Azure.IoT Build 0:6ae2f7bca550 15308 {
AzureIoTClient 28:add19eb7defa 15309 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15310 AMQP_VALUE described_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15311 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15312 {
AzureIoTClient 28:add19eb7defa 15313 result = NULL;
AzureIoTClient 28:add19eb7defa 15314 }
AzureIoTClient 28:add19eb7defa 15315 else
AzureIoTClient 28:add19eb7defa 15316 {
AzureIoTClient 28:add19eb7defa 15317 AMQP_VALUE descriptor = amqpvalue_create_ulong(119);
AzureIoTClient 28:add19eb7defa 15318 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15319 {
AzureIoTClient 28:add19eb7defa 15320 result = NULL;
AzureIoTClient 28:add19eb7defa 15321 }
AzureIoTClient 28:add19eb7defa 15322 else
AzureIoTClient 28:add19eb7defa 15323 {
AzureIoTClient 28:add19eb7defa 15324 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15325
AzureIoTClient 28:add19eb7defa 15326 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15327 }
AzureIoTClient 28:add19eb7defa 15328
AzureIoTClient 28:add19eb7defa 15329 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15330 }
AzureIoTClient 28:add19eb7defa 15331
AzureIoTClient 28:add19eb7defa 15332 return result;
Azure.IoT Build 0:6ae2f7bca550 15333 }
Azure.IoT Build 0:6ae2f7bca550 15334
Azure.IoT Build 0:6ae2f7bca550 15335 bool is_amqp_value_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15336 {
AzureIoTClient 28:add19eb7defa 15337 bool result;
AzureIoTClient 28:add19eb7defa 15338
AzureIoTClient 28:add19eb7defa 15339 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15340 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15341 (descriptor_ulong == 119))
AzureIoTClient 28:add19eb7defa 15342 {
AzureIoTClient 28:add19eb7defa 15343 result = true;
AzureIoTClient 28:add19eb7defa 15344 }
AzureIoTClient 28:add19eb7defa 15345 else
AzureIoTClient 28:add19eb7defa 15346 {
AzureIoTClient 28:add19eb7defa 15347 result = false;
AzureIoTClient 28:add19eb7defa 15348 }
AzureIoTClient 28:add19eb7defa 15349
AzureIoTClient 28:add19eb7defa 15350 return result;
Azure.IoT Build 0:6ae2f7bca550 15351 }
Azure.IoT Build 0:6ae2f7bca550 15352
Azure.IoT Build 0:6ae2f7bca550 15353 /* footer */
Azure.IoT Build 0:6ae2f7bca550 15354
Azure.IoT Build 0:6ae2f7bca550 15355 AMQP_VALUE amqpvalue_create_footer(footer value)
Azure.IoT Build 0:6ae2f7bca550 15356 {
AzureIoTClient 28:add19eb7defa 15357 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15358 AMQP_VALUE described_value = amqpvalue_create_annotations(value);
AzureIoTClient 28:add19eb7defa 15359 if (described_value == NULL)
AzureIoTClient 28:add19eb7defa 15360 {
AzureIoTClient 28:add19eb7defa 15361 result = NULL;
AzureIoTClient 28:add19eb7defa 15362 }
AzureIoTClient 28:add19eb7defa 15363 else
AzureIoTClient 28:add19eb7defa 15364 {
AzureIoTClient 28:add19eb7defa 15365 AMQP_VALUE descriptor = amqpvalue_create_ulong(120);
AzureIoTClient 28:add19eb7defa 15366 if (descriptor == NULL)
AzureIoTClient 28:add19eb7defa 15367 {
AzureIoTClient 28:add19eb7defa 15368 result = NULL;
AzureIoTClient 28:add19eb7defa 15369 }
AzureIoTClient 28:add19eb7defa 15370 else
AzureIoTClient 28:add19eb7defa 15371 {
AzureIoTClient 28:add19eb7defa 15372 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
AzureIoTClient 28:add19eb7defa 15373
AzureIoTClient 28:add19eb7defa 15374 amqpvalue_destroy(descriptor);
AzureIoTClient 28:add19eb7defa 15375 }
AzureIoTClient 28:add19eb7defa 15376
AzureIoTClient 28:add19eb7defa 15377 amqpvalue_destroy(described_value);
AzureIoTClient 28:add19eb7defa 15378 }
AzureIoTClient 28:add19eb7defa 15379
AzureIoTClient 28:add19eb7defa 15380 return result;
Azure.IoT Build 0:6ae2f7bca550 15381 }
Azure.IoT Build 0:6ae2f7bca550 15382
Azure.IoT Build 0:6ae2f7bca550 15383 bool is_footer_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15384 {
AzureIoTClient 28:add19eb7defa 15385 bool result;
AzureIoTClient 28:add19eb7defa 15386
AzureIoTClient 28:add19eb7defa 15387 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15388 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15389 (descriptor_ulong == 120))
AzureIoTClient 28:add19eb7defa 15390 {
AzureIoTClient 28:add19eb7defa 15391 result = true;
AzureIoTClient 28:add19eb7defa 15392 }
AzureIoTClient 28:add19eb7defa 15393 else
AzureIoTClient 28:add19eb7defa 15394 {
AzureIoTClient 28:add19eb7defa 15395 result = false;
AzureIoTClient 28:add19eb7defa 15396 }
AzureIoTClient 28:add19eb7defa 15397
AzureIoTClient 28:add19eb7defa 15398 return result;
Azure.IoT Build 0:6ae2f7bca550 15399 }
Azure.IoT Build 0:6ae2f7bca550 15400
Azure.IoT Build 0:6ae2f7bca550 15401 /* properties */
Azure.IoT Build 0:6ae2f7bca550 15402
Azure.IoT Build 0:6ae2f7bca550 15403 typedef struct PROPERTIES_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 15404 {
AzureIoTClient 28:add19eb7defa 15405 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 15406 } PROPERTIES_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 15407
Azure.IoT Build 0:6ae2f7bca550 15408 static PROPERTIES_HANDLE properties_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 15409 {
AzureIoTClient 28:add19eb7defa 15410 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15411 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15412 {
AzureIoTClient 28:add19eb7defa 15413 properties_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 15414 }
AzureIoTClient 28:add19eb7defa 15415
AzureIoTClient 28:add19eb7defa 15416 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15417 }
Azure.IoT Build 0:6ae2f7bca550 15418
Azure.IoT Build 0:6ae2f7bca550 15419 PROPERTIES_HANDLE properties_create(void)
Azure.IoT Build 0:6ae2f7bca550 15420 {
AzureIoTClient 28:add19eb7defa 15421 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15422 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15423 {
AzureIoTClient 28:add19eb7defa 15424 properties_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(115);
AzureIoTClient 28:add19eb7defa 15425 if (properties_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 15426 {
AzureIoTClient 28:add19eb7defa 15427 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15428 properties_instance = NULL;
AzureIoTClient 28:add19eb7defa 15429 }
AzureIoTClient 28:add19eb7defa 15430 }
AzureIoTClient 28:add19eb7defa 15431
AzureIoTClient 28:add19eb7defa 15432 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15433 }
Azure.IoT Build 0:6ae2f7bca550 15434
Azure.IoT Build 0:6ae2f7bca550 15435 PROPERTIES_HANDLE properties_clone(PROPERTIES_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 15436 {
AzureIoTClient 28:add19eb7defa 15437 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)malloc(sizeof(PROPERTIES_INSTANCE));
AzureIoTClient 28:add19eb7defa 15438 if (properties_instance != NULL)
AzureIoTClient 28:add19eb7defa 15439 {
AzureIoTClient 28:add19eb7defa 15440 properties_instance->composite_value = amqpvalue_clone(((PROPERTIES_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 15441 if (properties_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 15442 {
AzureIoTClient 28:add19eb7defa 15443 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15444 properties_instance = NULL;
AzureIoTClient 28:add19eb7defa 15445 }
AzureIoTClient 28:add19eb7defa 15446 }
AzureIoTClient 28:add19eb7defa 15447
AzureIoTClient 28:add19eb7defa 15448 return properties_instance;
Azure.IoT Build 0:6ae2f7bca550 15449 }
Azure.IoT Build 0:6ae2f7bca550 15450
Azure.IoT Build 0:6ae2f7bca550 15451 void properties_destroy(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 15452 {
AzureIoTClient 28:add19eb7defa 15453 if (properties != NULL)
AzureIoTClient 28:add19eb7defa 15454 {
AzureIoTClient 28:add19eb7defa 15455 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15456 amqpvalue_destroy(properties_instance->composite_value);
AzureIoTClient 28:add19eb7defa 15457 free(properties_instance);
AzureIoTClient 28:add19eb7defa 15458 }
Azure.IoT Build 0:6ae2f7bca550 15459 }
Azure.IoT Build 0:6ae2f7bca550 15460
Azure.IoT Build 0:6ae2f7bca550 15461 AMQP_VALUE amqpvalue_create_properties(PROPERTIES_HANDLE properties)
Azure.IoT Build 0:6ae2f7bca550 15462 {
AzureIoTClient 28:add19eb7defa 15463 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 15464
AzureIoTClient 28:add19eb7defa 15465 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15466 {
AzureIoTClient 28:add19eb7defa 15467 result = NULL;
AzureIoTClient 28:add19eb7defa 15468 }
AzureIoTClient 28:add19eb7defa 15469 else
AzureIoTClient 28:add19eb7defa 15470 {
AzureIoTClient 28:add19eb7defa 15471 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15472 result = amqpvalue_clone(properties_instance->composite_value);
AzureIoTClient 28:add19eb7defa 15473 }
AzureIoTClient 28:add19eb7defa 15474
AzureIoTClient 28:add19eb7defa 15475 return result;
Azure.IoT Build 0:6ae2f7bca550 15476 }
Azure.IoT Build 0:6ae2f7bca550 15477
Azure.IoT Build 0:6ae2f7bca550 15478 bool is_properties_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 15479 {
AzureIoTClient 28:add19eb7defa 15480 bool result;
AzureIoTClient 28:add19eb7defa 15481
AzureIoTClient 28:add19eb7defa 15482 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 15483 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 15484 (descriptor_ulong == 115))
AzureIoTClient 28:add19eb7defa 15485 {
AzureIoTClient 28:add19eb7defa 15486 result = true;
AzureIoTClient 28:add19eb7defa 15487 }
AzureIoTClient 28:add19eb7defa 15488 else
AzureIoTClient 28:add19eb7defa 15489 {
AzureIoTClient 28:add19eb7defa 15490 result = false;
AzureIoTClient 28:add19eb7defa 15491 }
AzureIoTClient 28:add19eb7defa 15492
AzureIoTClient 28:add19eb7defa 15493 return result;
Azure.IoT Build 0:6ae2f7bca550 15494 }
Azure.IoT Build 0:6ae2f7bca550 15495
Azure.IoT Build 0:6ae2f7bca550 15496
Azure.IoT Build 0:6ae2f7bca550 15497 int amqpvalue_get_properties(AMQP_VALUE value, PROPERTIES_HANDLE* properties_handle)
Azure.IoT Build 0:6ae2f7bca550 15498 {
AzureIoTClient 28:add19eb7defa 15499 int result;
AzureIoTClient 28:add19eb7defa 15500 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties_create_internal();
AzureIoTClient 28:add19eb7defa 15501 *properties_handle = properties_instance;
AzureIoTClient 28:add19eb7defa 15502 if (*properties_handle == NULL)
AzureIoTClient 28:add19eb7defa 15503 {
AzureIoTClient 28:add19eb7defa 15504 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15505 }
AzureIoTClient 28:add19eb7defa 15506 else
AzureIoTClient 28:add19eb7defa 15507 {
AzureIoTClient 28:add19eb7defa 15508 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 15509 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 15510 {
AzureIoTClient 28:add19eb7defa 15511 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15512 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15513 }
AzureIoTClient 28:add19eb7defa 15514 else
AzureIoTClient 28:add19eb7defa 15515 {
AzureIoTClient 23:1111ee8bcba4 15516 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 15517 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15518 {
AzureIoTClient 23:1111ee8bcba4 15519 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15520 }
AzureIoTClient 23:1111ee8bcba4 15521 else
AzureIoTClient 23:1111ee8bcba4 15522 {
AzureIoTClient 28:add19eb7defa 15523 do
AzureIoTClient 28:add19eb7defa 15524 {
AzureIoTClient 28:add19eb7defa 15525 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 15526 /* message-id */
AzureIoTClient 28:add19eb7defa 15527 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 15528 {
AzureIoTClient 23:1111ee8bcba4 15529 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 15530 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15531 {
AzureIoTClient 28:add19eb7defa 15532 /* do nothing */
AzureIoTClient 28:add19eb7defa 15533 }
AzureIoTClient 28:add19eb7defa 15534 else
AzureIoTClient 28:add19eb7defa 15535 {
AzureIoTClient 28:add19eb7defa 15536 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15537 }
AzureIoTClient 28:add19eb7defa 15538 }
AzureIoTClient 28:add19eb7defa 15539 /* user-id */
AzureIoTClient 28:add19eb7defa 15540 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 15541 {
AzureIoTClient 23:1111ee8bcba4 15542 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 15543 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15544 {
AzureIoTClient 28:add19eb7defa 15545 /* do nothing */
AzureIoTClient 28:add19eb7defa 15546 }
AzureIoTClient 28:add19eb7defa 15547 else
AzureIoTClient 28:add19eb7defa 15548 {
AzureIoTClient 28:add19eb7defa 15549 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15550 {
AzureIoTClient 28:add19eb7defa 15551 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15552 }
AzureIoTClient 28:add19eb7defa 15553 else
AzureIoTClient 28:add19eb7defa 15554 {
AzureIoTClient 28:add19eb7defa 15555 amqp_binary user_id;
AzureIoTClient 28:add19eb7defa 15556 if (amqpvalue_get_binary(item_value, &user_id) != 0)
AzureIoTClient 28:add19eb7defa 15557 {
AzureIoTClient 28:add19eb7defa 15558 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15559 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15560 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15561 break;
AzureIoTClient 28:add19eb7defa 15562 }
AzureIoTClient 28:add19eb7defa 15563 }
AzureIoTClient 28:add19eb7defa 15564
AzureIoTClient 28:add19eb7defa 15565 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15566 }
AzureIoTClient 28:add19eb7defa 15567 }
AzureIoTClient 28:add19eb7defa 15568 /* to */
AzureIoTClient 28:add19eb7defa 15569 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 15570 {
AzureIoTClient 23:1111ee8bcba4 15571 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 15572 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15573 {
AzureIoTClient 28:add19eb7defa 15574 /* do nothing */
AzureIoTClient 28:add19eb7defa 15575 }
AzureIoTClient 28:add19eb7defa 15576 else
AzureIoTClient 28:add19eb7defa 15577 {
AzureIoTClient 28:add19eb7defa 15578 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15579 }
AzureIoTClient 28:add19eb7defa 15580 }
AzureIoTClient 28:add19eb7defa 15581 /* subject */
AzureIoTClient 28:add19eb7defa 15582 if (list_item_count > 3)
AzureIoTClient 23:1111ee8bcba4 15583 {
AzureIoTClient 23:1111ee8bcba4 15584 item_value = amqpvalue_get_list_item(list_value, 3);
AzureIoTClient 28:add19eb7defa 15585 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15586 {
AzureIoTClient 28:add19eb7defa 15587 /* do nothing */
AzureIoTClient 28:add19eb7defa 15588 }
AzureIoTClient 28:add19eb7defa 15589 else
AzureIoTClient 28:add19eb7defa 15590 {
AzureIoTClient 28:add19eb7defa 15591 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15592 {
AzureIoTClient 28:add19eb7defa 15593 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15594 }
AzureIoTClient 28:add19eb7defa 15595 else
AzureIoTClient 28:add19eb7defa 15596 {
AzureIoTClient 28:add19eb7defa 15597 const char* subject;
AzureIoTClient 28:add19eb7defa 15598 if (amqpvalue_get_string(item_value, &subject) != 0)
AzureIoTClient 28:add19eb7defa 15599 {
AzureIoTClient 28:add19eb7defa 15600 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15601 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15602 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15603 break;
AzureIoTClient 28:add19eb7defa 15604 }
AzureIoTClient 28:add19eb7defa 15605 }
AzureIoTClient 28:add19eb7defa 15606
AzureIoTClient 28:add19eb7defa 15607 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15608 }
AzureIoTClient 28:add19eb7defa 15609 }
AzureIoTClient 28:add19eb7defa 15610 /* reply-to */
AzureIoTClient 28:add19eb7defa 15611 if (list_item_count > 4)
AzureIoTClient 23:1111ee8bcba4 15612 {
AzureIoTClient 23:1111ee8bcba4 15613 item_value = amqpvalue_get_list_item(list_value, 4);
AzureIoTClient 28:add19eb7defa 15614 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15615 {
AzureIoTClient 28:add19eb7defa 15616 /* do nothing */
AzureIoTClient 28:add19eb7defa 15617 }
AzureIoTClient 28:add19eb7defa 15618 else
AzureIoTClient 28:add19eb7defa 15619 {
AzureIoTClient 28:add19eb7defa 15620 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15621 }
AzureIoTClient 28:add19eb7defa 15622 }
AzureIoTClient 28:add19eb7defa 15623 /* correlation-id */
AzureIoTClient 28:add19eb7defa 15624 if (list_item_count > 5)
AzureIoTClient 23:1111ee8bcba4 15625 {
AzureIoTClient 23:1111ee8bcba4 15626 item_value = amqpvalue_get_list_item(list_value, 5);
AzureIoTClient 28:add19eb7defa 15627 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15628 {
AzureIoTClient 28:add19eb7defa 15629 /* do nothing */
AzureIoTClient 28:add19eb7defa 15630 }
AzureIoTClient 28:add19eb7defa 15631 else
AzureIoTClient 28:add19eb7defa 15632 {
AzureIoTClient 28:add19eb7defa 15633 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15634 }
AzureIoTClient 28:add19eb7defa 15635 }
AzureIoTClient 28:add19eb7defa 15636 /* content-type */
AzureIoTClient 28:add19eb7defa 15637 if (list_item_count > 6)
AzureIoTClient 23:1111ee8bcba4 15638 {
AzureIoTClient 23:1111ee8bcba4 15639 item_value = amqpvalue_get_list_item(list_value, 6);
AzureIoTClient 28:add19eb7defa 15640 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15641 {
AzureIoTClient 28:add19eb7defa 15642 /* do nothing */
AzureIoTClient 28:add19eb7defa 15643 }
AzureIoTClient 28:add19eb7defa 15644 else
AzureIoTClient 28:add19eb7defa 15645 {
AzureIoTClient 28:add19eb7defa 15646 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15647 {
AzureIoTClient 28:add19eb7defa 15648 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15649 }
AzureIoTClient 28:add19eb7defa 15650 else
AzureIoTClient 28:add19eb7defa 15651 {
AzureIoTClient 28:add19eb7defa 15652 const char* content_type;
AzureIoTClient 28:add19eb7defa 15653 if (amqpvalue_get_symbol(item_value, &content_type) != 0)
AzureIoTClient 28:add19eb7defa 15654 {
AzureIoTClient 28:add19eb7defa 15655 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15656 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15657 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15658 break;
AzureIoTClient 28:add19eb7defa 15659 }
AzureIoTClient 28:add19eb7defa 15660 }
AzureIoTClient 28:add19eb7defa 15661
AzureIoTClient 28:add19eb7defa 15662 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15663 }
AzureIoTClient 28:add19eb7defa 15664 }
AzureIoTClient 28:add19eb7defa 15665 /* content-encoding */
AzureIoTClient 28:add19eb7defa 15666 if (list_item_count > 7)
AzureIoTClient 23:1111ee8bcba4 15667 {
AzureIoTClient 23:1111ee8bcba4 15668 item_value = amqpvalue_get_list_item(list_value, 7);
AzureIoTClient 28:add19eb7defa 15669 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15670 {
AzureIoTClient 28:add19eb7defa 15671 /* do nothing */
AzureIoTClient 28:add19eb7defa 15672 }
AzureIoTClient 28:add19eb7defa 15673 else
AzureIoTClient 28:add19eb7defa 15674 {
AzureIoTClient 28:add19eb7defa 15675 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15676 {
AzureIoTClient 28:add19eb7defa 15677 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15678 }
AzureIoTClient 28:add19eb7defa 15679 else
AzureIoTClient 28:add19eb7defa 15680 {
AzureIoTClient 28:add19eb7defa 15681 const char* content_encoding;
AzureIoTClient 28:add19eb7defa 15682 if (amqpvalue_get_symbol(item_value, &content_encoding) != 0)
AzureIoTClient 28:add19eb7defa 15683 {
AzureIoTClient 28:add19eb7defa 15684 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15685 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15686 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15687 break;
AzureIoTClient 28:add19eb7defa 15688 }
AzureIoTClient 28:add19eb7defa 15689 }
AzureIoTClient 28:add19eb7defa 15690
AzureIoTClient 28:add19eb7defa 15691 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15692 }
AzureIoTClient 28:add19eb7defa 15693 }
AzureIoTClient 28:add19eb7defa 15694 /* absolute-expiry-time */
AzureIoTClient 28:add19eb7defa 15695 if (list_item_count > 8)
AzureIoTClient 23:1111ee8bcba4 15696 {
AzureIoTClient 23:1111ee8bcba4 15697 item_value = amqpvalue_get_list_item(list_value, 8);
AzureIoTClient 28:add19eb7defa 15698 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15699 {
AzureIoTClient 28:add19eb7defa 15700 /* do nothing */
AzureIoTClient 28:add19eb7defa 15701 }
AzureIoTClient 28:add19eb7defa 15702 else
AzureIoTClient 28:add19eb7defa 15703 {
AzureIoTClient 28:add19eb7defa 15704 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15705 {
AzureIoTClient 28:add19eb7defa 15706 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15707 }
AzureIoTClient 28:add19eb7defa 15708 else
AzureIoTClient 28:add19eb7defa 15709 {
AzureIoTClient 28:add19eb7defa 15710 timestamp absolute_expiry_time;
AzureIoTClient 28:add19eb7defa 15711 if (amqpvalue_get_timestamp(item_value, &absolute_expiry_time) != 0)
AzureIoTClient 28:add19eb7defa 15712 {
AzureIoTClient 28:add19eb7defa 15713 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15714 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15715 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15716 break;
AzureIoTClient 28:add19eb7defa 15717 }
AzureIoTClient 28:add19eb7defa 15718 }
AzureIoTClient 28:add19eb7defa 15719
AzureIoTClient 28:add19eb7defa 15720 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15721 }
AzureIoTClient 28:add19eb7defa 15722 }
AzureIoTClient 28:add19eb7defa 15723 /* creation-time */
AzureIoTClient 28:add19eb7defa 15724 if (list_item_count > 9)
AzureIoTClient 23:1111ee8bcba4 15725 {
AzureIoTClient 23:1111ee8bcba4 15726 item_value = amqpvalue_get_list_item(list_value, 9);
AzureIoTClient 28:add19eb7defa 15727 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15728 {
AzureIoTClient 28:add19eb7defa 15729 /* do nothing */
AzureIoTClient 28:add19eb7defa 15730 }
AzureIoTClient 28:add19eb7defa 15731 else
AzureIoTClient 28:add19eb7defa 15732 {
AzureIoTClient 28:add19eb7defa 15733 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15734 {
AzureIoTClient 28:add19eb7defa 15735 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15736 }
AzureIoTClient 28:add19eb7defa 15737 else
AzureIoTClient 28:add19eb7defa 15738 {
AzureIoTClient 28:add19eb7defa 15739 timestamp creation_time;
AzureIoTClient 28:add19eb7defa 15740 if (amqpvalue_get_timestamp(item_value, &creation_time) != 0)
AzureIoTClient 28:add19eb7defa 15741 {
AzureIoTClient 28:add19eb7defa 15742 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15743 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15744 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15745 break;
AzureIoTClient 28:add19eb7defa 15746 }
AzureIoTClient 28:add19eb7defa 15747 }
AzureIoTClient 28:add19eb7defa 15748
AzureIoTClient 28:add19eb7defa 15749 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15750 }
AzureIoTClient 28:add19eb7defa 15751 }
AzureIoTClient 28:add19eb7defa 15752 /* group-id */
AzureIoTClient 28:add19eb7defa 15753 if (list_item_count > 10)
AzureIoTClient 23:1111ee8bcba4 15754 {
AzureIoTClient 23:1111ee8bcba4 15755 item_value = amqpvalue_get_list_item(list_value, 10);
AzureIoTClient 28:add19eb7defa 15756 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15757 {
AzureIoTClient 28:add19eb7defa 15758 /* do nothing */
AzureIoTClient 28:add19eb7defa 15759 }
AzureIoTClient 28:add19eb7defa 15760 else
AzureIoTClient 28:add19eb7defa 15761 {
AzureIoTClient 28:add19eb7defa 15762 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15763 {
AzureIoTClient 28:add19eb7defa 15764 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15765 }
AzureIoTClient 28:add19eb7defa 15766 else
AzureIoTClient 28:add19eb7defa 15767 {
AzureIoTClient 28:add19eb7defa 15768 const char* group_id;
AzureIoTClient 28:add19eb7defa 15769 if (amqpvalue_get_string(item_value, &group_id) != 0)
AzureIoTClient 28:add19eb7defa 15770 {
AzureIoTClient 28:add19eb7defa 15771 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15772 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15773 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15774 break;
AzureIoTClient 28:add19eb7defa 15775 }
AzureIoTClient 28:add19eb7defa 15776 }
AzureIoTClient 28:add19eb7defa 15777
AzureIoTClient 28:add19eb7defa 15778 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15779 }
AzureIoTClient 28:add19eb7defa 15780 }
AzureIoTClient 28:add19eb7defa 15781 /* group-sequence */
AzureIoTClient 28:add19eb7defa 15782 if (list_item_count > 11)
AzureIoTClient 23:1111ee8bcba4 15783 {
AzureIoTClient 23:1111ee8bcba4 15784 item_value = amqpvalue_get_list_item(list_value, 11);
AzureIoTClient 28:add19eb7defa 15785 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15786 {
AzureIoTClient 28:add19eb7defa 15787 /* do nothing */
AzureIoTClient 28:add19eb7defa 15788 }
AzureIoTClient 28:add19eb7defa 15789 else
AzureIoTClient 28:add19eb7defa 15790 {
AzureIoTClient 28:add19eb7defa 15791 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15792 {
AzureIoTClient 28:add19eb7defa 15793 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15794 }
AzureIoTClient 28:add19eb7defa 15795 else
AzureIoTClient 28:add19eb7defa 15796 {
AzureIoTClient 28:add19eb7defa 15797 sequence_no group_sequence;
AzureIoTClient 28:add19eb7defa 15798 if (amqpvalue_get_sequence_no(item_value, &group_sequence) != 0)
AzureIoTClient 28:add19eb7defa 15799 {
AzureIoTClient 28:add19eb7defa 15800 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15801 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15802 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15803 break;
AzureIoTClient 28:add19eb7defa 15804 }
AzureIoTClient 28:add19eb7defa 15805 }
AzureIoTClient 28:add19eb7defa 15806
AzureIoTClient 28:add19eb7defa 15807 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15808 }
AzureIoTClient 28:add19eb7defa 15809 }
AzureIoTClient 28:add19eb7defa 15810 /* reply-to-group-id */
AzureIoTClient 28:add19eb7defa 15811 if (list_item_count > 12)
AzureIoTClient 23:1111ee8bcba4 15812 {
AzureIoTClient 23:1111ee8bcba4 15813 item_value = amqpvalue_get_list_item(list_value, 12);
AzureIoTClient 28:add19eb7defa 15814 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 15815 {
AzureIoTClient 28:add19eb7defa 15816 /* do nothing */
AzureIoTClient 28:add19eb7defa 15817 }
AzureIoTClient 28:add19eb7defa 15818 else
AzureIoTClient 28:add19eb7defa 15819 {
AzureIoTClient 28:add19eb7defa 15820 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 15821 {
AzureIoTClient 28:add19eb7defa 15822 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 15823 }
AzureIoTClient 28:add19eb7defa 15824 else
AzureIoTClient 28:add19eb7defa 15825 {
AzureIoTClient 28:add19eb7defa 15826 const char* reply_to_group_id;
AzureIoTClient 28:add19eb7defa 15827 if (amqpvalue_get_string(item_value, &reply_to_group_id) != 0)
AzureIoTClient 28:add19eb7defa 15828 {
AzureIoTClient 28:add19eb7defa 15829 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15830 properties_destroy(*properties_handle);
AzureIoTClient 28:add19eb7defa 15831 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15832 break;
AzureIoTClient 28:add19eb7defa 15833 }
AzureIoTClient 28:add19eb7defa 15834 }
AzureIoTClient 28:add19eb7defa 15835
AzureIoTClient 28:add19eb7defa 15836 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 15837 }
AzureIoTClient 28:add19eb7defa 15838 }
AzureIoTClient 28:add19eb7defa 15839
AzureIoTClient 28:add19eb7defa 15840 properties_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 15841
AzureIoTClient 28:add19eb7defa 15842 result = 0;
AzureIoTClient 28:add19eb7defa 15843 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 15844 }
AzureIoTClient 28:add19eb7defa 15845 }
AzureIoTClient 28:add19eb7defa 15846 }
AzureIoTClient 28:add19eb7defa 15847
AzureIoTClient 28:add19eb7defa 15848 return result;
Azure.IoT Build 0:6ae2f7bca550 15849 }
Azure.IoT Build 0:6ae2f7bca550 15850
Azure.IoT Build 0:6ae2f7bca550 15851 int properties_get_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE* message_id_value)
Azure.IoT Build 0:6ae2f7bca550 15852 {
AzureIoTClient 28:add19eb7defa 15853 int result;
AzureIoTClient 28:add19eb7defa 15854
AzureIoTClient 28:add19eb7defa 15855 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15856 {
AzureIoTClient 28:add19eb7defa 15857 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15858 }
AzureIoTClient 28:add19eb7defa 15859 else
AzureIoTClient 28:add19eb7defa 15860 {
AzureIoTClient 28:add19eb7defa 15861 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15862 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15863 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15864 {
AzureIoTClient 23:1111ee8bcba4 15865 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15866 }
AzureIoTClient 23:1111ee8bcba4 15867 else
AzureIoTClient 23:1111ee8bcba4 15868 {
AzureIoTClient 23:1111ee8bcba4 15869 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 15870 {
AzureIoTClient 28:add19eb7defa 15871 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15872 }
AzureIoTClient 28:add19eb7defa 15873 else
AzureIoTClient 28:add19eb7defa 15874 {
AzureIoTClient 28:add19eb7defa 15875 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 15876 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 15877 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 15878 {
AzureIoTClient 28:add19eb7defa 15879 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15880 }
AzureIoTClient 28:add19eb7defa 15881 else
AzureIoTClient 28:add19eb7defa 15882 {
AzureIoTClient 28:add19eb7defa 15883 *message_id_value = item_value;
AzureIoTClient 28:add19eb7defa 15884 result = 0;
AzureIoTClient 28:add19eb7defa 15885 }
AzureIoTClient 28:add19eb7defa 15886 }
AzureIoTClient 28:add19eb7defa 15887 }
AzureIoTClient 28:add19eb7defa 15888 }
AzureIoTClient 28:add19eb7defa 15889
AzureIoTClient 28:add19eb7defa 15890 return result;
Azure.IoT Build 0:6ae2f7bca550 15891 }
Azure.IoT Build 0:6ae2f7bca550 15892
Azure.IoT Build 0:6ae2f7bca550 15893 int properties_set_message_id(PROPERTIES_HANDLE properties, AMQP_VALUE message_id_value)
Azure.IoT Build 0:6ae2f7bca550 15894 {
AzureIoTClient 28:add19eb7defa 15895 int result;
AzureIoTClient 28:add19eb7defa 15896
AzureIoTClient 28:add19eb7defa 15897 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15898 {
AzureIoTClient 28:add19eb7defa 15899 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15900 }
AzureIoTClient 28:add19eb7defa 15901 else
AzureIoTClient 28:add19eb7defa 15902 {
AzureIoTClient 28:add19eb7defa 15903 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15904 AMQP_VALUE message_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 15905 if (message_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 15906 {
AzureIoTClient 23:1111ee8bcba4 15907 message_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 15908 }
AzureIoTClient 23:1111ee8bcba4 15909 else
AzureIoTClient 23:1111ee8bcba4 15910 {
AzureIoTClient 23:1111ee8bcba4 15911 message_id_amqp_value = amqpvalue_clone(message_id_value);
AzureIoTClient 23:1111ee8bcba4 15912 }
AzureIoTClient 28:add19eb7defa 15913 if (message_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15914 {
AzureIoTClient 28:add19eb7defa 15915 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15916 }
AzureIoTClient 28:add19eb7defa 15917 else
AzureIoTClient 28:add19eb7defa 15918 {
AzureIoTClient 28:add19eb7defa 15919 if (amqpvalue_set_composite_item(properties_instance->composite_value, 0, message_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 15920 {
AzureIoTClient 28:add19eb7defa 15921 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15922 }
AzureIoTClient 28:add19eb7defa 15923 else
AzureIoTClient 28:add19eb7defa 15924 {
AzureIoTClient 28:add19eb7defa 15925 result = 0;
AzureIoTClient 28:add19eb7defa 15926 }
AzureIoTClient 28:add19eb7defa 15927
AzureIoTClient 28:add19eb7defa 15928 amqpvalue_destroy(message_id_amqp_value);
AzureIoTClient 28:add19eb7defa 15929 }
AzureIoTClient 28:add19eb7defa 15930 }
AzureIoTClient 28:add19eb7defa 15931
AzureIoTClient 28:add19eb7defa 15932 return result;
Azure.IoT Build 0:6ae2f7bca550 15933 }
Azure.IoT Build 0:6ae2f7bca550 15934
Azure.IoT Build 0:6ae2f7bca550 15935 int properties_get_user_id(PROPERTIES_HANDLE properties, amqp_binary* user_id_value)
Azure.IoT Build 0:6ae2f7bca550 15936 {
AzureIoTClient 28:add19eb7defa 15937 int result;
AzureIoTClient 28:add19eb7defa 15938
AzureIoTClient 28:add19eb7defa 15939 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 15940 {
AzureIoTClient 28:add19eb7defa 15941 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15942 }
AzureIoTClient 28:add19eb7defa 15943 else
AzureIoTClient 28:add19eb7defa 15944 {
AzureIoTClient 28:add19eb7defa 15945 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 15946 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 15947 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 15948 {
AzureIoTClient 23:1111ee8bcba4 15949 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 15950 }
AzureIoTClient 23:1111ee8bcba4 15951 else
AzureIoTClient 23:1111ee8bcba4 15952 {
AzureIoTClient 23:1111ee8bcba4 15953 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 15954 {
AzureIoTClient 28:add19eb7defa 15955 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15956 }
AzureIoTClient 28:add19eb7defa 15957 else
AzureIoTClient 28:add19eb7defa 15958 {
AzureIoTClient 28:add19eb7defa 15959 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 15960 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 15961 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 15962 {
AzureIoTClient 28:add19eb7defa 15963 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15964 }
AzureIoTClient 28:add19eb7defa 15965 else
AzureIoTClient 28:add19eb7defa 15966 {
AzureIoTClient 28:add19eb7defa 15967 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 15968 if ((get_single_value_result = amqpvalue_get_binary(item_value, user_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 15969 {
AzureIoTClient 28:add19eb7defa 15970 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15971 }
AzureIoTClient 28:add19eb7defa 15972 else
AzureIoTClient 28:add19eb7defa 15973 {
AzureIoTClient 28:add19eb7defa 15974 result = 0;
AzureIoTClient 28:add19eb7defa 15975 }
AzureIoTClient 28:add19eb7defa 15976 }
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_set_user_id(PROPERTIES_HANDLE properties, amqp_binary user_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 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 15995 AMQP_VALUE user_id_amqp_value = amqpvalue_create_binary(user_id_value);
AzureIoTClient 28:add19eb7defa 15996 if (user_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 15997 {
AzureIoTClient 28:add19eb7defa 15998 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 15999 }
AzureIoTClient 28:add19eb7defa 16000 else
AzureIoTClient 28:add19eb7defa 16001 {
AzureIoTClient 28:add19eb7defa 16002 if (amqpvalue_set_composite_item(properties_instance->composite_value, 1, user_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16003 {
AzureIoTClient 28:add19eb7defa 16004 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16005 }
AzureIoTClient 28:add19eb7defa 16006 else
AzureIoTClient 28:add19eb7defa 16007 {
AzureIoTClient 28:add19eb7defa 16008 result = 0;
AzureIoTClient 28:add19eb7defa 16009 }
AzureIoTClient 28:add19eb7defa 16010
AzureIoTClient 28:add19eb7defa 16011 amqpvalue_destroy(user_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16012 }
AzureIoTClient 28:add19eb7defa 16013 }
AzureIoTClient 28:add19eb7defa 16014
AzureIoTClient 28:add19eb7defa 16015 return result;
Azure.IoT Build 0:6ae2f7bca550 16016 }
Azure.IoT Build 0:6ae2f7bca550 16017
Azure.IoT Build 0:6ae2f7bca550 16018 int properties_get_to(PROPERTIES_HANDLE properties, AMQP_VALUE* to_value)
Azure.IoT Build 0:6ae2f7bca550 16019 {
AzureIoTClient 28:add19eb7defa 16020 int result;
AzureIoTClient 28:add19eb7defa 16021
AzureIoTClient 28:add19eb7defa 16022 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16023 {
AzureIoTClient 28:add19eb7defa 16024 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16025 }
AzureIoTClient 28:add19eb7defa 16026 else
AzureIoTClient 28:add19eb7defa 16027 {
AzureIoTClient 28:add19eb7defa 16028 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16029 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16030 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16031 {
AzureIoTClient 23:1111ee8bcba4 16032 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16033 }
AzureIoTClient 23:1111ee8bcba4 16034 else
AzureIoTClient 23:1111ee8bcba4 16035 {
AzureIoTClient 23:1111ee8bcba4 16036 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 16037 {
AzureIoTClient 28:add19eb7defa 16038 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16039 }
AzureIoTClient 28:add19eb7defa 16040 else
AzureIoTClient 28:add19eb7defa 16041 {
AzureIoTClient 28:add19eb7defa 16042 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 16043 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16044 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16045 {
AzureIoTClient 28:add19eb7defa 16046 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16047 }
AzureIoTClient 28:add19eb7defa 16048 else
AzureIoTClient 28:add19eb7defa 16049 {
AzureIoTClient 28:add19eb7defa 16050 *to_value = item_value;
AzureIoTClient 28:add19eb7defa 16051 result = 0;
AzureIoTClient 28:add19eb7defa 16052 }
AzureIoTClient 28:add19eb7defa 16053 }
AzureIoTClient 28:add19eb7defa 16054 }
AzureIoTClient 28:add19eb7defa 16055 }
AzureIoTClient 28:add19eb7defa 16056
AzureIoTClient 28:add19eb7defa 16057 return result;
Azure.IoT Build 0:6ae2f7bca550 16058 }
Azure.IoT Build 0:6ae2f7bca550 16059
Azure.IoT Build 0:6ae2f7bca550 16060 int properties_set_to(PROPERTIES_HANDLE properties, AMQP_VALUE to_value)
Azure.IoT Build 0:6ae2f7bca550 16061 {
AzureIoTClient 28:add19eb7defa 16062 int result;
AzureIoTClient 28:add19eb7defa 16063
AzureIoTClient 28:add19eb7defa 16064 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16065 {
AzureIoTClient 28:add19eb7defa 16066 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16067 }
AzureIoTClient 28:add19eb7defa 16068 else
AzureIoTClient 28:add19eb7defa 16069 {
AzureIoTClient 28:add19eb7defa 16070 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16071 AMQP_VALUE to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16072 if (to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16073 {
AzureIoTClient 23:1111ee8bcba4 16074 to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16075 }
AzureIoTClient 23:1111ee8bcba4 16076 else
AzureIoTClient 23:1111ee8bcba4 16077 {
AzureIoTClient 23:1111ee8bcba4 16078 to_amqp_value = amqpvalue_clone(to_value);
AzureIoTClient 23:1111ee8bcba4 16079 }
AzureIoTClient 28:add19eb7defa 16080 if (to_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16081 {
AzureIoTClient 28:add19eb7defa 16082 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16083 }
AzureIoTClient 28:add19eb7defa 16084 else
AzureIoTClient 28:add19eb7defa 16085 {
AzureIoTClient 28:add19eb7defa 16086 if (amqpvalue_set_composite_item(properties_instance->composite_value, 2, to_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16087 {
AzureIoTClient 28:add19eb7defa 16088 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16089 }
AzureIoTClient 28:add19eb7defa 16090 else
AzureIoTClient 28:add19eb7defa 16091 {
AzureIoTClient 28:add19eb7defa 16092 result = 0;
AzureIoTClient 28:add19eb7defa 16093 }
AzureIoTClient 28:add19eb7defa 16094
AzureIoTClient 28:add19eb7defa 16095 amqpvalue_destroy(to_amqp_value);
AzureIoTClient 28:add19eb7defa 16096 }
AzureIoTClient 28:add19eb7defa 16097 }
AzureIoTClient 28:add19eb7defa 16098
AzureIoTClient 28:add19eb7defa 16099 return result;
Azure.IoT Build 0:6ae2f7bca550 16100 }
Azure.IoT Build 0:6ae2f7bca550 16101
Azure.IoT Build 0:6ae2f7bca550 16102 int properties_get_subject(PROPERTIES_HANDLE properties, const char** subject_value)
Azure.IoT Build 0:6ae2f7bca550 16103 {
AzureIoTClient 28:add19eb7defa 16104 int result;
AzureIoTClient 28:add19eb7defa 16105
AzureIoTClient 28:add19eb7defa 16106 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16107 {
AzureIoTClient 28:add19eb7defa 16108 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16109 }
AzureIoTClient 28:add19eb7defa 16110 else
AzureIoTClient 28:add19eb7defa 16111 {
AzureIoTClient 28:add19eb7defa 16112 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16113 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16114 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16115 {
AzureIoTClient 23:1111ee8bcba4 16116 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16117 }
AzureIoTClient 23:1111ee8bcba4 16118 else
AzureIoTClient 23:1111ee8bcba4 16119 {
AzureIoTClient 23:1111ee8bcba4 16120 if (item_count <= 3)
AzureIoTClient 23:1111ee8bcba4 16121 {
AzureIoTClient 28:add19eb7defa 16122 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16123 }
AzureIoTClient 28:add19eb7defa 16124 else
AzureIoTClient 28:add19eb7defa 16125 {
AzureIoTClient 28:add19eb7defa 16126 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 3);
AzureIoTClient 28:add19eb7defa 16127 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16128 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16129 {
AzureIoTClient 28:add19eb7defa 16130 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16131 }
AzureIoTClient 28:add19eb7defa 16132 else
AzureIoTClient 28:add19eb7defa 16133 {
AzureIoTClient 28:add19eb7defa 16134 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16135 if ((get_single_value_result = amqpvalue_get_string(item_value, subject_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 }
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_set_subject(PROPERTIES_HANDLE properties, const char* subject_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 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16162 AMQP_VALUE subject_amqp_value = amqpvalue_create_string(subject_value);
AzureIoTClient 28:add19eb7defa 16163 if (subject_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16164 {
AzureIoTClient 28:add19eb7defa 16165 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16166 }
AzureIoTClient 28:add19eb7defa 16167 else
AzureIoTClient 28:add19eb7defa 16168 {
AzureIoTClient 28:add19eb7defa 16169 if (amqpvalue_set_composite_item(properties_instance->composite_value, 3, subject_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16170 {
AzureIoTClient 28:add19eb7defa 16171 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16172 }
AzureIoTClient 28:add19eb7defa 16173 else
AzureIoTClient 28:add19eb7defa 16174 {
AzureIoTClient 28:add19eb7defa 16175 result = 0;
AzureIoTClient 28:add19eb7defa 16176 }
AzureIoTClient 28:add19eb7defa 16177
AzureIoTClient 28:add19eb7defa 16178 amqpvalue_destroy(subject_amqp_value);
AzureIoTClient 28:add19eb7defa 16179 }
AzureIoTClient 28:add19eb7defa 16180 }
AzureIoTClient 28:add19eb7defa 16181
AzureIoTClient 28:add19eb7defa 16182 return result;
Azure.IoT Build 0:6ae2f7bca550 16183 }
Azure.IoT Build 0:6ae2f7bca550 16184
Azure.IoT Build 0:6ae2f7bca550 16185 int properties_get_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE* reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 16186 {
AzureIoTClient 28:add19eb7defa 16187 int result;
AzureIoTClient 28:add19eb7defa 16188
AzureIoTClient 28:add19eb7defa 16189 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16190 {
AzureIoTClient 28:add19eb7defa 16191 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16192 }
AzureIoTClient 28:add19eb7defa 16193 else
AzureIoTClient 28:add19eb7defa 16194 {
AzureIoTClient 28:add19eb7defa 16195 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16196 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16197 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16198 {
AzureIoTClient 23:1111ee8bcba4 16199 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16200 }
AzureIoTClient 23:1111ee8bcba4 16201 else
AzureIoTClient 23:1111ee8bcba4 16202 {
AzureIoTClient 23:1111ee8bcba4 16203 if (item_count <= 4)
AzureIoTClient 23:1111ee8bcba4 16204 {
AzureIoTClient 28:add19eb7defa 16205 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16206 }
AzureIoTClient 28:add19eb7defa 16207 else
AzureIoTClient 28:add19eb7defa 16208 {
AzureIoTClient 28:add19eb7defa 16209 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 4);
AzureIoTClient 28:add19eb7defa 16210 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16211 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16212 {
AzureIoTClient 28:add19eb7defa 16213 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16214 }
AzureIoTClient 28:add19eb7defa 16215 else
AzureIoTClient 28:add19eb7defa 16216 {
AzureIoTClient 28:add19eb7defa 16217 *reply_to_value = item_value;
AzureIoTClient 28:add19eb7defa 16218 result = 0;
AzureIoTClient 28:add19eb7defa 16219 }
AzureIoTClient 28:add19eb7defa 16220 }
AzureIoTClient 28:add19eb7defa 16221 }
AzureIoTClient 28:add19eb7defa 16222 }
AzureIoTClient 28:add19eb7defa 16223
AzureIoTClient 28:add19eb7defa 16224 return result;
Azure.IoT Build 0:6ae2f7bca550 16225 }
Azure.IoT Build 0:6ae2f7bca550 16226
Azure.IoT Build 0:6ae2f7bca550 16227 int properties_set_reply_to(PROPERTIES_HANDLE properties, AMQP_VALUE reply_to_value)
Azure.IoT Build 0:6ae2f7bca550 16228 {
AzureIoTClient 28:add19eb7defa 16229 int result;
AzureIoTClient 28:add19eb7defa 16230
AzureIoTClient 28:add19eb7defa 16231 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16232 {
AzureIoTClient 28:add19eb7defa 16233 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16234 }
AzureIoTClient 28:add19eb7defa 16235 else
AzureIoTClient 28:add19eb7defa 16236 {
AzureIoTClient 28:add19eb7defa 16237 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16238 AMQP_VALUE reply_to_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16239 if (reply_to_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16240 {
AzureIoTClient 23:1111ee8bcba4 16241 reply_to_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16242 }
AzureIoTClient 23:1111ee8bcba4 16243 else
AzureIoTClient 23:1111ee8bcba4 16244 {
AzureIoTClient 23:1111ee8bcba4 16245 reply_to_amqp_value = amqpvalue_clone(reply_to_value);
AzureIoTClient 23:1111ee8bcba4 16246 }
AzureIoTClient 28:add19eb7defa 16247 if (reply_to_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16248 {
AzureIoTClient 28:add19eb7defa 16249 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16250 }
AzureIoTClient 28:add19eb7defa 16251 else
AzureIoTClient 28:add19eb7defa 16252 {
AzureIoTClient 28:add19eb7defa 16253 if (amqpvalue_set_composite_item(properties_instance->composite_value, 4, reply_to_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16254 {
AzureIoTClient 28:add19eb7defa 16255 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16256 }
AzureIoTClient 28:add19eb7defa 16257 else
AzureIoTClient 28:add19eb7defa 16258 {
AzureIoTClient 28:add19eb7defa 16259 result = 0;
AzureIoTClient 28:add19eb7defa 16260 }
AzureIoTClient 28:add19eb7defa 16261
AzureIoTClient 28:add19eb7defa 16262 amqpvalue_destroy(reply_to_amqp_value);
AzureIoTClient 28:add19eb7defa 16263 }
AzureIoTClient 28:add19eb7defa 16264 }
AzureIoTClient 28:add19eb7defa 16265
AzureIoTClient 28:add19eb7defa 16266 return result;
Azure.IoT Build 0:6ae2f7bca550 16267 }
Azure.IoT Build 0:6ae2f7bca550 16268
Azure.IoT Build 0:6ae2f7bca550 16269 int properties_get_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE* correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 16270 {
AzureIoTClient 28:add19eb7defa 16271 int result;
AzureIoTClient 28:add19eb7defa 16272
AzureIoTClient 28:add19eb7defa 16273 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16274 {
AzureIoTClient 28:add19eb7defa 16275 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16276 }
AzureIoTClient 28:add19eb7defa 16277 else
AzureIoTClient 28:add19eb7defa 16278 {
AzureIoTClient 28:add19eb7defa 16279 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16280 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16281 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16282 {
AzureIoTClient 23:1111ee8bcba4 16283 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16284 }
AzureIoTClient 23:1111ee8bcba4 16285 else
AzureIoTClient 23:1111ee8bcba4 16286 {
AzureIoTClient 23:1111ee8bcba4 16287 if (item_count <= 5)
AzureIoTClient 23:1111ee8bcba4 16288 {
AzureIoTClient 28:add19eb7defa 16289 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16290 }
AzureIoTClient 28:add19eb7defa 16291 else
AzureIoTClient 28:add19eb7defa 16292 {
AzureIoTClient 28:add19eb7defa 16293 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 5);
AzureIoTClient 28:add19eb7defa 16294 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16295 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16296 {
AzureIoTClient 28:add19eb7defa 16297 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16298 }
AzureIoTClient 28:add19eb7defa 16299 else
AzureIoTClient 28:add19eb7defa 16300 {
AzureIoTClient 28:add19eb7defa 16301 *correlation_id_value = item_value;
AzureIoTClient 28:add19eb7defa 16302 result = 0;
AzureIoTClient 28:add19eb7defa 16303 }
AzureIoTClient 28:add19eb7defa 16304 }
AzureIoTClient 28:add19eb7defa 16305 }
AzureIoTClient 28:add19eb7defa 16306 }
AzureIoTClient 28:add19eb7defa 16307
AzureIoTClient 28:add19eb7defa 16308 return result;
Azure.IoT Build 0:6ae2f7bca550 16309 }
Azure.IoT Build 0:6ae2f7bca550 16310
Azure.IoT Build 0:6ae2f7bca550 16311 int properties_set_correlation_id(PROPERTIES_HANDLE properties, AMQP_VALUE correlation_id_value)
Azure.IoT Build 0:6ae2f7bca550 16312 {
AzureIoTClient 28:add19eb7defa 16313 int result;
AzureIoTClient 28:add19eb7defa 16314
AzureIoTClient 28:add19eb7defa 16315 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16316 {
AzureIoTClient 28:add19eb7defa 16317 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16318 }
AzureIoTClient 28:add19eb7defa 16319 else
AzureIoTClient 28:add19eb7defa 16320 {
AzureIoTClient 28:add19eb7defa 16321 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16322 AMQP_VALUE correlation_id_amqp_value;
AzureIoTClient 23:1111ee8bcba4 16323 if (correlation_id_value == NULL)
AzureIoTClient 23:1111ee8bcba4 16324 {
AzureIoTClient 23:1111ee8bcba4 16325 correlation_id_amqp_value = NULL;
AzureIoTClient 23:1111ee8bcba4 16326 }
AzureIoTClient 23:1111ee8bcba4 16327 else
AzureIoTClient 23:1111ee8bcba4 16328 {
AzureIoTClient 23:1111ee8bcba4 16329 correlation_id_amqp_value = amqpvalue_clone(correlation_id_value);
AzureIoTClient 23:1111ee8bcba4 16330 }
AzureIoTClient 28:add19eb7defa 16331 if (correlation_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16332 {
AzureIoTClient 28:add19eb7defa 16333 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16334 }
AzureIoTClient 28:add19eb7defa 16335 else
AzureIoTClient 28:add19eb7defa 16336 {
AzureIoTClient 28:add19eb7defa 16337 if (amqpvalue_set_composite_item(properties_instance->composite_value, 5, correlation_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16338 {
AzureIoTClient 28:add19eb7defa 16339 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16340 }
AzureIoTClient 28:add19eb7defa 16341 else
AzureIoTClient 28:add19eb7defa 16342 {
AzureIoTClient 28:add19eb7defa 16343 result = 0;
AzureIoTClient 28:add19eb7defa 16344 }
AzureIoTClient 28:add19eb7defa 16345
AzureIoTClient 28:add19eb7defa 16346 amqpvalue_destroy(correlation_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16347 }
AzureIoTClient 28:add19eb7defa 16348 }
AzureIoTClient 28:add19eb7defa 16349
AzureIoTClient 28:add19eb7defa 16350 return result;
Azure.IoT Build 0:6ae2f7bca550 16351 }
Azure.IoT Build 0:6ae2f7bca550 16352
Azure.IoT Build 0:6ae2f7bca550 16353 int properties_get_content_type(PROPERTIES_HANDLE properties, const char** content_type_value)
Azure.IoT Build 0:6ae2f7bca550 16354 {
AzureIoTClient 28:add19eb7defa 16355 int result;
AzureIoTClient 28:add19eb7defa 16356
AzureIoTClient 28:add19eb7defa 16357 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16358 {
AzureIoTClient 28:add19eb7defa 16359 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16360 }
AzureIoTClient 28:add19eb7defa 16361 else
AzureIoTClient 28:add19eb7defa 16362 {
AzureIoTClient 28:add19eb7defa 16363 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16364 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16365 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16366 {
AzureIoTClient 23:1111ee8bcba4 16367 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16368 }
AzureIoTClient 23:1111ee8bcba4 16369 else
AzureIoTClient 23:1111ee8bcba4 16370 {
AzureIoTClient 23:1111ee8bcba4 16371 if (item_count <= 6)
AzureIoTClient 23:1111ee8bcba4 16372 {
AzureIoTClient 28:add19eb7defa 16373 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16374 }
AzureIoTClient 28:add19eb7defa 16375 else
AzureIoTClient 28:add19eb7defa 16376 {
AzureIoTClient 28:add19eb7defa 16377 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 6);
AzureIoTClient 28:add19eb7defa 16378 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16379 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16380 {
AzureIoTClient 28:add19eb7defa 16381 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16382 }
AzureIoTClient 28:add19eb7defa 16383 else
AzureIoTClient 28:add19eb7defa 16384 {
AzureIoTClient 28:add19eb7defa 16385 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16386 if ((get_single_value_result = amqpvalue_get_symbol(item_value, content_type_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 }
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_set_content_type(PROPERTIES_HANDLE properties, const char* content_type_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 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16413 AMQP_VALUE content_type_amqp_value = amqpvalue_create_symbol(content_type_value);
AzureIoTClient 28:add19eb7defa 16414 if (content_type_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16415 {
AzureIoTClient 28:add19eb7defa 16416 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16417 }
AzureIoTClient 28:add19eb7defa 16418 else
AzureIoTClient 28:add19eb7defa 16419 {
AzureIoTClient 28:add19eb7defa 16420 if (amqpvalue_set_composite_item(properties_instance->composite_value, 6, content_type_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16421 {
AzureIoTClient 28:add19eb7defa 16422 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16423 }
AzureIoTClient 28:add19eb7defa 16424 else
AzureIoTClient 28:add19eb7defa 16425 {
AzureIoTClient 28:add19eb7defa 16426 result = 0;
AzureIoTClient 28:add19eb7defa 16427 }
AzureIoTClient 28:add19eb7defa 16428
AzureIoTClient 28:add19eb7defa 16429 amqpvalue_destroy(content_type_amqp_value);
AzureIoTClient 28:add19eb7defa 16430 }
AzureIoTClient 28:add19eb7defa 16431 }
AzureIoTClient 28:add19eb7defa 16432
AzureIoTClient 28:add19eb7defa 16433 return result;
Azure.IoT Build 0:6ae2f7bca550 16434 }
Azure.IoT Build 0:6ae2f7bca550 16435
Azure.IoT Build 0:6ae2f7bca550 16436 int properties_get_content_encoding(PROPERTIES_HANDLE properties, const char** content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 16437 {
AzureIoTClient 28:add19eb7defa 16438 int result;
AzureIoTClient 28:add19eb7defa 16439
AzureIoTClient 28:add19eb7defa 16440 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16441 {
AzureIoTClient 28:add19eb7defa 16442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16443 }
AzureIoTClient 28:add19eb7defa 16444 else
AzureIoTClient 28:add19eb7defa 16445 {
AzureIoTClient 28:add19eb7defa 16446 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16447 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16448 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16449 {
AzureIoTClient 23:1111ee8bcba4 16450 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16451 }
AzureIoTClient 23:1111ee8bcba4 16452 else
AzureIoTClient 23:1111ee8bcba4 16453 {
AzureIoTClient 23:1111ee8bcba4 16454 if (item_count <= 7)
AzureIoTClient 23:1111ee8bcba4 16455 {
AzureIoTClient 28:add19eb7defa 16456 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16457 }
AzureIoTClient 28:add19eb7defa 16458 else
AzureIoTClient 28:add19eb7defa 16459 {
AzureIoTClient 28:add19eb7defa 16460 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 7);
AzureIoTClient 28:add19eb7defa 16461 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16462 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16463 {
AzureIoTClient 28:add19eb7defa 16464 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16465 }
AzureIoTClient 28:add19eb7defa 16466 else
AzureIoTClient 28:add19eb7defa 16467 {
AzureIoTClient 28:add19eb7defa 16468 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16469 if ((get_single_value_result = amqpvalue_get_symbol(item_value, content_encoding_value)) != 0)
AzureIoTClient 28:add19eb7defa 16470 {
AzureIoTClient 28:add19eb7defa 16471 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16472 }
AzureIoTClient 28:add19eb7defa 16473 else
AzureIoTClient 28:add19eb7defa 16474 {
AzureIoTClient 28:add19eb7defa 16475 result = 0;
AzureIoTClient 28:add19eb7defa 16476 }
AzureIoTClient 28:add19eb7defa 16477 }
AzureIoTClient 28:add19eb7defa 16478 }
AzureIoTClient 28:add19eb7defa 16479 }
AzureIoTClient 28:add19eb7defa 16480 }
AzureIoTClient 28:add19eb7defa 16481
AzureIoTClient 28:add19eb7defa 16482 return result;
Azure.IoT Build 0:6ae2f7bca550 16483 }
Azure.IoT Build 0:6ae2f7bca550 16484
Azure.IoT Build 0:6ae2f7bca550 16485 int properties_set_content_encoding(PROPERTIES_HANDLE properties, const char* content_encoding_value)
Azure.IoT Build 0:6ae2f7bca550 16486 {
AzureIoTClient 28:add19eb7defa 16487 int result;
AzureIoTClient 28:add19eb7defa 16488
AzureIoTClient 28:add19eb7defa 16489 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16490 {
AzureIoTClient 28:add19eb7defa 16491 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16492 }
AzureIoTClient 28:add19eb7defa 16493 else
AzureIoTClient 28:add19eb7defa 16494 {
AzureIoTClient 28:add19eb7defa 16495 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16496 AMQP_VALUE content_encoding_amqp_value = amqpvalue_create_symbol(content_encoding_value);
AzureIoTClient 28:add19eb7defa 16497 if (content_encoding_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16498 {
AzureIoTClient 28:add19eb7defa 16499 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16500 }
AzureIoTClient 28:add19eb7defa 16501 else
AzureIoTClient 28:add19eb7defa 16502 {
AzureIoTClient 28:add19eb7defa 16503 if (amqpvalue_set_composite_item(properties_instance->composite_value, 7, content_encoding_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16504 {
AzureIoTClient 28:add19eb7defa 16505 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16506 }
AzureIoTClient 28:add19eb7defa 16507 else
AzureIoTClient 28:add19eb7defa 16508 {
AzureIoTClient 28:add19eb7defa 16509 result = 0;
AzureIoTClient 28:add19eb7defa 16510 }
AzureIoTClient 28:add19eb7defa 16511
AzureIoTClient 28:add19eb7defa 16512 amqpvalue_destroy(content_encoding_amqp_value);
AzureIoTClient 28:add19eb7defa 16513 }
AzureIoTClient 28:add19eb7defa 16514 }
AzureIoTClient 28:add19eb7defa 16515
AzureIoTClient 28:add19eb7defa 16516 return result;
Azure.IoT Build 0:6ae2f7bca550 16517 }
Azure.IoT Build 0:6ae2f7bca550 16518
Azure.IoT Build 0:6ae2f7bca550 16519 int properties_get_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp* absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 16520 {
AzureIoTClient 28:add19eb7defa 16521 int result;
AzureIoTClient 28:add19eb7defa 16522
AzureIoTClient 28:add19eb7defa 16523 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16524 {
AzureIoTClient 28:add19eb7defa 16525 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16526 }
AzureIoTClient 28:add19eb7defa 16527 else
AzureIoTClient 28:add19eb7defa 16528 {
AzureIoTClient 28:add19eb7defa 16529 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16530 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16531 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16532 {
AzureIoTClient 23:1111ee8bcba4 16533 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16534 }
AzureIoTClient 23:1111ee8bcba4 16535 else
AzureIoTClient 23:1111ee8bcba4 16536 {
AzureIoTClient 23:1111ee8bcba4 16537 if (item_count <= 8)
AzureIoTClient 23:1111ee8bcba4 16538 {
AzureIoTClient 28:add19eb7defa 16539 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16540 }
AzureIoTClient 28:add19eb7defa 16541 else
AzureIoTClient 28:add19eb7defa 16542 {
AzureIoTClient 28:add19eb7defa 16543 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 8);
AzureIoTClient 28:add19eb7defa 16544 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16545 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16546 {
AzureIoTClient 28:add19eb7defa 16547 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16548 }
AzureIoTClient 28:add19eb7defa 16549 else
AzureIoTClient 28:add19eb7defa 16550 {
AzureIoTClient 28:add19eb7defa 16551 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16552 if ((get_single_value_result = amqpvalue_get_timestamp(item_value, absolute_expiry_time_value)) != 0)
AzureIoTClient 28:add19eb7defa 16553 {
AzureIoTClient 28:add19eb7defa 16554 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16555 }
AzureIoTClient 28:add19eb7defa 16556 else
AzureIoTClient 28:add19eb7defa 16557 {
AzureIoTClient 28:add19eb7defa 16558 result = 0;
AzureIoTClient 28:add19eb7defa 16559 }
AzureIoTClient 28:add19eb7defa 16560 }
AzureIoTClient 28:add19eb7defa 16561 }
AzureIoTClient 28:add19eb7defa 16562 }
AzureIoTClient 28:add19eb7defa 16563 }
AzureIoTClient 28:add19eb7defa 16564
AzureIoTClient 28:add19eb7defa 16565 return result;
Azure.IoT Build 0:6ae2f7bca550 16566 }
Azure.IoT Build 0:6ae2f7bca550 16567
Azure.IoT Build 0:6ae2f7bca550 16568 int properties_set_absolute_expiry_time(PROPERTIES_HANDLE properties, timestamp absolute_expiry_time_value)
Azure.IoT Build 0:6ae2f7bca550 16569 {
AzureIoTClient 28:add19eb7defa 16570 int result;
AzureIoTClient 28:add19eb7defa 16571
AzureIoTClient 28:add19eb7defa 16572 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16573 {
AzureIoTClient 28:add19eb7defa 16574 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16575 }
AzureIoTClient 28:add19eb7defa 16576 else
AzureIoTClient 28:add19eb7defa 16577 {
AzureIoTClient 28:add19eb7defa 16578 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16579 AMQP_VALUE absolute_expiry_time_amqp_value = amqpvalue_create_timestamp(absolute_expiry_time_value);
AzureIoTClient 28:add19eb7defa 16580 if (absolute_expiry_time_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16581 {
AzureIoTClient 28:add19eb7defa 16582 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16583 }
AzureIoTClient 28:add19eb7defa 16584 else
AzureIoTClient 28:add19eb7defa 16585 {
AzureIoTClient 28:add19eb7defa 16586 if (amqpvalue_set_composite_item(properties_instance->composite_value, 8, absolute_expiry_time_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16587 {
AzureIoTClient 28:add19eb7defa 16588 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16589 }
AzureIoTClient 28:add19eb7defa 16590 else
AzureIoTClient 28:add19eb7defa 16591 {
AzureIoTClient 28:add19eb7defa 16592 result = 0;
AzureIoTClient 28:add19eb7defa 16593 }
AzureIoTClient 28:add19eb7defa 16594
AzureIoTClient 28:add19eb7defa 16595 amqpvalue_destroy(absolute_expiry_time_amqp_value);
AzureIoTClient 28:add19eb7defa 16596 }
AzureIoTClient 28:add19eb7defa 16597 }
AzureIoTClient 28:add19eb7defa 16598
AzureIoTClient 28:add19eb7defa 16599 return result;
Azure.IoT Build 0:6ae2f7bca550 16600 }
Azure.IoT Build 0:6ae2f7bca550 16601
Azure.IoT Build 0:6ae2f7bca550 16602 int properties_get_creation_time(PROPERTIES_HANDLE properties, timestamp* creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16603 {
AzureIoTClient 28:add19eb7defa 16604 int result;
AzureIoTClient 28:add19eb7defa 16605
AzureIoTClient 28:add19eb7defa 16606 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16607 {
AzureIoTClient 28:add19eb7defa 16608 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16609 }
AzureIoTClient 28:add19eb7defa 16610 else
AzureIoTClient 28:add19eb7defa 16611 {
AzureIoTClient 28:add19eb7defa 16612 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16613 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16614 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16615 {
AzureIoTClient 23:1111ee8bcba4 16616 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16617 }
AzureIoTClient 23:1111ee8bcba4 16618 else
AzureIoTClient 23:1111ee8bcba4 16619 {
AzureIoTClient 23:1111ee8bcba4 16620 if (item_count <= 9)
AzureIoTClient 23:1111ee8bcba4 16621 {
AzureIoTClient 28:add19eb7defa 16622 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16623 }
AzureIoTClient 28:add19eb7defa 16624 else
AzureIoTClient 28:add19eb7defa 16625 {
AzureIoTClient 28:add19eb7defa 16626 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 9);
AzureIoTClient 28:add19eb7defa 16627 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16628 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16629 {
AzureIoTClient 28:add19eb7defa 16630 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16631 }
AzureIoTClient 28:add19eb7defa 16632 else
AzureIoTClient 28:add19eb7defa 16633 {
AzureIoTClient 28:add19eb7defa 16634 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16635 if ((get_single_value_result = amqpvalue_get_timestamp(item_value, creation_time_value)) != 0)
AzureIoTClient 28:add19eb7defa 16636 {
AzureIoTClient 28:add19eb7defa 16637 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16638 }
AzureIoTClient 28:add19eb7defa 16639 else
AzureIoTClient 28:add19eb7defa 16640 {
AzureIoTClient 28:add19eb7defa 16641 result = 0;
AzureIoTClient 28:add19eb7defa 16642 }
AzureIoTClient 28:add19eb7defa 16643 }
AzureIoTClient 28:add19eb7defa 16644 }
AzureIoTClient 28:add19eb7defa 16645 }
AzureIoTClient 28:add19eb7defa 16646 }
AzureIoTClient 28:add19eb7defa 16647
AzureIoTClient 28:add19eb7defa 16648 return result;
Azure.IoT Build 0:6ae2f7bca550 16649 }
Azure.IoT Build 0:6ae2f7bca550 16650
Azure.IoT Build 0:6ae2f7bca550 16651 int properties_set_creation_time(PROPERTIES_HANDLE properties, timestamp creation_time_value)
Azure.IoT Build 0:6ae2f7bca550 16652 {
AzureIoTClient 28:add19eb7defa 16653 int result;
AzureIoTClient 28:add19eb7defa 16654
AzureIoTClient 28:add19eb7defa 16655 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16656 {
AzureIoTClient 28:add19eb7defa 16657 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16658 }
AzureIoTClient 28:add19eb7defa 16659 else
AzureIoTClient 28:add19eb7defa 16660 {
AzureIoTClient 28:add19eb7defa 16661 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16662 AMQP_VALUE creation_time_amqp_value = amqpvalue_create_timestamp(creation_time_value);
AzureIoTClient 28:add19eb7defa 16663 if (creation_time_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16664 {
AzureIoTClient 28:add19eb7defa 16665 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16666 }
AzureIoTClient 28:add19eb7defa 16667 else
AzureIoTClient 28:add19eb7defa 16668 {
AzureIoTClient 28:add19eb7defa 16669 if (amqpvalue_set_composite_item(properties_instance->composite_value, 9, creation_time_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16670 {
AzureIoTClient 28:add19eb7defa 16671 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16672 }
AzureIoTClient 28:add19eb7defa 16673 else
AzureIoTClient 28:add19eb7defa 16674 {
AzureIoTClient 28:add19eb7defa 16675 result = 0;
AzureIoTClient 28:add19eb7defa 16676 }
AzureIoTClient 28:add19eb7defa 16677
AzureIoTClient 28:add19eb7defa 16678 amqpvalue_destroy(creation_time_amqp_value);
AzureIoTClient 28:add19eb7defa 16679 }
AzureIoTClient 28:add19eb7defa 16680 }
AzureIoTClient 28:add19eb7defa 16681
AzureIoTClient 28:add19eb7defa 16682 return result;
Azure.IoT Build 0:6ae2f7bca550 16683 }
Azure.IoT Build 0:6ae2f7bca550 16684
Azure.IoT Build 0:6ae2f7bca550 16685 int properties_get_group_id(PROPERTIES_HANDLE properties, const char** group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16686 {
AzureIoTClient 28:add19eb7defa 16687 int result;
AzureIoTClient 28:add19eb7defa 16688
AzureIoTClient 28:add19eb7defa 16689 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16690 {
AzureIoTClient 28:add19eb7defa 16691 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16692 }
AzureIoTClient 28:add19eb7defa 16693 else
AzureIoTClient 28:add19eb7defa 16694 {
AzureIoTClient 28:add19eb7defa 16695 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16696 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16697 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16698 {
AzureIoTClient 23:1111ee8bcba4 16699 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16700 }
AzureIoTClient 23:1111ee8bcba4 16701 else
AzureIoTClient 23:1111ee8bcba4 16702 {
AzureIoTClient 23:1111ee8bcba4 16703 if (item_count <= 10)
AzureIoTClient 23:1111ee8bcba4 16704 {
AzureIoTClient 28:add19eb7defa 16705 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16706 }
AzureIoTClient 28:add19eb7defa 16707 else
AzureIoTClient 28:add19eb7defa 16708 {
AzureIoTClient 28:add19eb7defa 16709 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 10);
AzureIoTClient 28:add19eb7defa 16710 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16711 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16712 {
AzureIoTClient 28:add19eb7defa 16713 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16714 }
AzureIoTClient 28:add19eb7defa 16715 else
AzureIoTClient 28:add19eb7defa 16716 {
AzureIoTClient 28:add19eb7defa 16717 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16718 if ((get_single_value_result = amqpvalue_get_string(item_value, group_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 16719 {
AzureIoTClient 28:add19eb7defa 16720 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16721 }
AzureIoTClient 28:add19eb7defa 16722 else
AzureIoTClient 28:add19eb7defa 16723 {
AzureIoTClient 28:add19eb7defa 16724 result = 0;
AzureIoTClient 28:add19eb7defa 16725 }
AzureIoTClient 28:add19eb7defa 16726 }
AzureIoTClient 28:add19eb7defa 16727 }
AzureIoTClient 28:add19eb7defa 16728 }
AzureIoTClient 28:add19eb7defa 16729 }
AzureIoTClient 28:add19eb7defa 16730
AzureIoTClient 28:add19eb7defa 16731 return result;
Azure.IoT Build 0:6ae2f7bca550 16732 }
Azure.IoT Build 0:6ae2f7bca550 16733
Azure.IoT Build 0:6ae2f7bca550 16734 int properties_set_group_id(PROPERTIES_HANDLE properties, const char* group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16735 {
AzureIoTClient 28:add19eb7defa 16736 int result;
AzureIoTClient 28:add19eb7defa 16737
AzureIoTClient 28:add19eb7defa 16738 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16739 {
AzureIoTClient 28:add19eb7defa 16740 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16741 }
AzureIoTClient 28:add19eb7defa 16742 else
AzureIoTClient 28:add19eb7defa 16743 {
AzureIoTClient 28:add19eb7defa 16744 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16745 AMQP_VALUE group_id_amqp_value = amqpvalue_create_string(group_id_value);
AzureIoTClient 28:add19eb7defa 16746 if (group_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16747 {
AzureIoTClient 28:add19eb7defa 16748 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16749 }
AzureIoTClient 28:add19eb7defa 16750 else
AzureIoTClient 28:add19eb7defa 16751 {
AzureIoTClient 28:add19eb7defa 16752 if (amqpvalue_set_composite_item(properties_instance->composite_value, 10, group_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16753 {
AzureIoTClient 28:add19eb7defa 16754 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16755 }
AzureIoTClient 28:add19eb7defa 16756 else
AzureIoTClient 28:add19eb7defa 16757 {
AzureIoTClient 28:add19eb7defa 16758 result = 0;
AzureIoTClient 28:add19eb7defa 16759 }
AzureIoTClient 28:add19eb7defa 16760
AzureIoTClient 28:add19eb7defa 16761 amqpvalue_destroy(group_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16762 }
AzureIoTClient 28:add19eb7defa 16763 }
AzureIoTClient 28:add19eb7defa 16764
AzureIoTClient 28:add19eb7defa 16765 return result;
Azure.IoT Build 0:6ae2f7bca550 16766 }
Azure.IoT Build 0:6ae2f7bca550 16767
Azure.IoT Build 0:6ae2f7bca550 16768 int properties_get_group_sequence(PROPERTIES_HANDLE properties, sequence_no* group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16769 {
AzureIoTClient 28:add19eb7defa 16770 int result;
AzureIoTClient 28:add19eb7defa 16771
AzureIoTClient 28:add19eb7defa 16772 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16773 {
AzureIoTClient 28:add19eb7defa 16774 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16775 }
AzureIoTClient 28:add19eb7defa 16776 else
AzureIoTClient 28:add19eb7defa 16777 {
AzureIoTClient 28:add19eb7defa 16778 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16779 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16780 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16781 {
AzureIoTClient 23:1111ee8bcba4 16782 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16783 }
AzureIoTClient 23:1111ee8bcba4 16784 else
AzureIoTClient 23:1111ee8bcba4 16785 {
AzureIoTClient 23:1111ee8bcba4 16786 if (item_count <= 11)
AzureIoTClient 23:1111ee8bcba4 16787 {
AzureIoTClient 28:add19eb7defa 16788 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16789 }
AzureIoTClient 28:add19eb7defa 16790 else
AzureIoTClient 28:add19eb7defa 16791 {
AzureIoTClient 28:add19eb7defa 16792 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 11);
AzureIoTClient 28:add19eb7defa 16793 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16794 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16795 {
AzureIoTClient 28:add19eb7defa 16796 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16797 }
AzureIoTClient 28:add19eb7defa 16798 else
AzureIoTClient 28:add19eb7defa 16799 {
AzureIoTClient 28:add19eb7defa 16800 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16801 if ((get_single_value_result = amqpvalue_get_sequence_no(item_value, group_sequence_value)) != 0)
AzureIoTClient 28:add19eb7defa 16802 {
AzureIoTClient 28:add19eb7defa 16803 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16804 }
AzureIoTClient 28:add19eb7defa 16805 else
AzureIoTClient 28:add19eb7defa 16806 {
AzureIoTClient 28:add19eb7defa 16807 result = 0;
AzureIoTClient 28:add19eb7defa 16808 }
AzureIoTClient 28:add19eb7defa 16809 }
AzureIoTClient 28:add19eb7defa 16810 }
AzureIoTClient 28:add19eb7defa 16811 }
AzureIoTClient 28:add19eb7defa 16812 }
AzureIoTClient 28:add19eb7defa 16813
AzureIoTClient 28:add19eb7defa 16814 return result;
Azure.IoT Build 0:6ae2f7bca550 16815 }
Azure.IoT Build 0:6ae2f7bca550 16816
Azure.IoT Build 0:6ae2f7bca550 16817 int properties_set_group_sequence(PROPERTIES_HANDLE properties, sequence_no group_sequence_value)
Azure.IoT Build 0:6ae2f7bca550 16818 {
AzureIoTClient 28:add19eb7defa 16819 int result;
AzureIoTClient 28:add19eb7defa 16820
AzureIoTClient 28:add19eb7defa 16821 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16822 {
AzureIoTClient 28:add19eb7defa 16823 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16824 }
AzureIoTClient 28:add19eb7defa 16825 else
AzureIoTClient 28:add19eb7defa 16826 {
AzureIoTClient 28:add19eb7defa 16827 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16828 AMQP_VALUE group_sequence_amqp_value = amqpvalue_create_sequence_no(group_sequence_value);
AzureIoTClient 28:add19eb7defa 16829 if (group_sequence_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16830 {
AzureIoTClient 28:add19eb7defa 16831 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16832 }
AzureIoTClient 28:add19eb7defa 16833 else
AzureIoTClient 28:add19eb7defa 16834 {
AzureIoTClient 28:add19eb7defa 16835 if (amqpvalue_set_composite_item(properties_instance->composite_value, 11, group_sequence_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16836 {
AzureIoTClient 28:add19eb7defa 16837 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16838 }
AzureIoTClient 28:add19eb7defa 16839 else
AzureIoTClient 28:add19eb7defa 16840 {
AzureIoTClient 28:add19eb7defa 16841 result = 0;
AzureIoTClient 28:add19eb7defa 16842 }
AzureIoTClient 28:add19eb7defa 16843
AzureIoTClient 28:add19eb7defa 16844 amqpvalue_destroy(group_sequence_amqp_value);
AzureIoTClient 28:add19eb7defa 16845 }
AzureIoTClient 28:add19eb7defa 16846 }
AzureIoTClient 28:add19eb7defa 16847
AzureIoTClient 28:add19eb7defa 16848 return result;
Azure.IoT Build 0:6ae2f7bca550 16849 }
Azure.IoT Build 0:6ae2f7bca550 16850
Azure.IoT Build 0:6ae2f7bca550 16851 int properties_get_reply_to_group_id(PROPERTIES_HANDLE properties, const char** reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16852 {
AzureIoTClient 28:add19eb7defa 16853 int result;
AzureIoTClient 28:add19eb7defa 16854
AzureIoTClient 28:add19eb7defa 16855 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16856 {
AzureIoTClient 28:add19eb7defa 16857 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16858 }
AzureIoTClient 28:add19eb7defa 16859 else
AzureIoTClient 28:add19eb7defa 16860 {
AzureIoTClient 28:add19eb7defa 16861 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 16862 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 23:1111ee8bcba4 16863 if (amqpvalue_get_composite_item_count(properties_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 16864 {
AzureIoTClient 23:1111ee8bcba4 16865 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 16866 }
AzureIoTClient 23:1111ee8bcba4 16867 else
AzureIoTClient 23:1111ee8bcba4 16868 {
AzureIoTClient 23:1111ee8bcba4 16869 if (item_count <= 12)
AzureIoTClient 23:1111ee8bcba4 16870 {
AzureIoTClient 28:add19eb7defa 16871 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16872 }
AzureIoTClient 28:add19eb7defa 16873 else
AzureIoTClient 28:add19eb7defa 16874 {
AzureIoTClient 28:add19eb7defa 16875 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(properties_instance->composite_value, 12);
AzureIoTClient 28:add19eb7defa 16876 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 16877 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 16878 {
AzureIoTClient 28:add19eb7defa 16879 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16880 }
AzureIoTClient 28:add19eb7defa 16881 else
AzureIoTClient 28:add19eb7defa 16882 {
AzureIoTClient 28:add19eb7defa 16883 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 16884 if ((get_single_value_result = amqpvalue_get_string(item_value, reply_to_group_id_value)) != 0)
AzureIoTClient 28:add19eb7defa 16885 {
AzureIoTClient 28:add19eb7defa 16886 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16887 }
AzureIoTClient 28:add19eb7defa 16888 else
AzureIoTClient 28:add19eb7defa 16889 {
AzureIoTClient 28:add19eb7defa 16890 result = 0;
AzureIoTClient 28:add19eb7defa 16891 }
AzureIoTClient 28:add19eb7defa 16892 }
AzureIoTClient 28:add19eb7defa 16893 }
AzureIoTClient 28:add19eb7defa 16894 }
AzureIoTClient 28:add19eb7defa 16895 }
AzureIoTClient 28:add19eb7defa 16896
AzureIoTClient 28:add19eb7defa 16897 return result;
Azure.IoT Build 0:6ae2f7bca550 16898 }
Azure.IoT Build 0:6ae2f7bca550 16899
Azure.IoT Build 0:6ae2f7bca550 16900 int properties_set_reply_to_group_id(PROPERTIES_HANDLE properties, const char* reply_to_group_id_value)
Azure.IoT Build 0:6ae2f7bca550 16901 {
AzureIoTClient 28:add19eb7defa 16902 int result;
AzureIoTClient 28:add19eb7defa 16903
AzureIoTClient 28:add19eb7defa 16904 if (properties == NULL)
AzureIoTClient 28:add19eb7defa 16905 {
AzureIoTClient 28:add19eb7defa 16906 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16907 }
AzureIoTClient 28:add19eb7defa 16908 else
AzureIoTClient 28:add19eb7defa 16909 {
AzureIoTClient 28:add19eb7defa 16910 PROPERTIES_INSTANCE* properties_instance = (PROPERTIES_INSTANCE*)properties;
AzureIoTClient 28:add19eb7defa 16911 AMQP_VALUE reply_to_group_id_amqp_value = amqpvalue_create_string(reply_to_group_id_value);
AzureIoTClient 28:add19eb7defa 16912 if (reply_to_group_id_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 16913 {
AzureIoTClient 28:add19eb7defa 16914 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16915 }
AzureIoTClient 28:add19eb7defa 16916 else
AzureIoTClient 28:add19eb7defa 16917 {
AzureIoTClient 28:add19eb7defa 16918 if (amqpvalue_set_composite_item(properties_instance->composite_value, 12, reply_to_group_id_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 16919 {
AzureIoTClient 28:add19eb7defa 16920 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16921 }
AzureIoTClient 28:add19eb7defa 16922 else
AzureIoTClient 28:add19eb7defa 16923 {
AzureIoTClient 28:add19eb7defa 16924 result = 0;
AzureIoTClient 28:add19eb7defa 16925 }
AzureIoTClient 28:add19eb7defa 16926
AzureIoTClient 28:add19eb7defa 16927 amqpvalue_destroy(reply_to_group_id_amqp_value);
AzureIoTClient 28:add19eb7defa 16928 }
AzureIoTClient 28:add19eb7defa 16929 }
AzureIoTClient 28:add19eb7defa 16930
AzureIoTClient 28:add19eb7defa 16931 return result;
Azure.IoT Build 0:6ae2f7bca550 16932 }
Azure.IoT Build 0:6ae2f7bca550 16933
Azure.IoT Build 0:6ae2f7bca550 16934
Azure.IoT Build 0:6ae2f7bca550 16935 /* received */
Azure.IoT Build 0:6ae2f7bca550 16936
Azure.IoT Build 0:6ae2f7bca550 16937 typedef struct RECEIVED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 16938 {
AzureIoTClient 28:add19eb7defa 16939 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 16940 } RECEIVED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 16941
Azure.IoT Build 0:6ae2f7bca550 16942 static RECEIVED_HANDLE received_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 16943 {
AzureIoTClient 28:add19eb7defa 16944 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 16945 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 16946 {
AzureIoTClient 28:add19eb7defa 16947 received_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 16948 }
AzureIoTClient 28:add19eb7defa 16949
AzureIoTClient 28:add19eb7defa 16950 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 16951 }
Azure.IoT Build 0:6ae2f7bca550 16952
Azure.IoT Build 0:6ae2f7bca550 16953 RECEIVED_HANDLE received_create(uint32_t section_number_value, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 16954 {
AzureIoTClient 28:add19eb7defa 16955 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 16956 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 16957 {
AzureIoTClient 28:add19eb7defa 16958 received_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(35);
AzureIoTClient 28:add19eb7defa 16959 if (received_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 16960 {
AzureIoTClient 28:add19eb7defa 16961 free(received_instance);
AzureIoTClient 28:add19eb7defa 16962 received_instance = NULL;
AzureIoTClient 28:add19eb7defa 16963 }
AzureIoTClient 28:add19eb7defa 16964 else
AzureIoTClient 28:add19eb7defa 16965 {
AzureIoTClient 28:add19eb7defa 16966 AMQP_VALUE section_number_amqp_value;
AzureIoTClient 28:add19eb7defa 16967 AMQP_VALUE section_offset_amqp_value;
AzureIoTClient 28:add19eb7defa 16968 int result = 0;
AzureIoTClient 28:add19eb7defa 16969
AzureIoTClient 28:add19eb7defa 16970 section_number_amqp_value = amqpvalue_create_uint(section_number_value);
AzureIoTClient 28:add19eb7defa 16971 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 16972 {
AzureIoTClient 28:add19eb7defa 16973 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16974 }
AzureIoTClient 28:add19eb7defa 16975 section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
AzureIoTClient 28:add19eb7defa 16976 if ((result == 0) && (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0))
AzureIoTClient 28:add19eb7defa 16977 {
AzureIoTClient 28:add19eb7defa 16978 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 16979 }
AzureIoTClient 28:add19eb7defa 16980
AzureIoTClient 28:add19eb7defa 16981 amqpvalue_destroy(section_number_amqp_value);
AzureIoTClient 28:add19eb7defa 16982 amqpvalue_destroy(section_offset_amqp_value);
AzureIoTClient 28:add19eb7defa 16983 }
AzureIoTClient 28:add19eb7defa 16984 }
AzureIoTClient 28:add19eb7defa 16985
AzureIoTClient 28:add19eb7defa 16986 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 16987 }
Azure.IoT Build 0:6ae2f7bca550 16988
Azure.IoT Build 0:6ae2f7bca550 16989 RECEIVED_HANDLE received_clone(RECEIVED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 16990 {
AzureIoTClient 28:add19eb7defa 16991 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)malloc(sizeof(RECEIVED_INSTANCE));
AzureIoTClient 28:add19eb7defa 16992 if (received_instance != NULL)
AzureIoTClient 28:add19eb7defa 16993 {
AzureIoTClient 28:add19eb7defa 16994 received_instance->composite_value = amqpvalue_clone(((RECEIVED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 16995 if (received_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 16996 {
AzureIoTClient 28:add19eb7defa 16997 free(received_instance);
AzureIoTClient 28:add19eb7defa 16998 received_instance = NULL;
AzureIoTClient 28:add19eb7defa 16999 }
AzureIoTClient 28:add19eb7defa 17000 }
AzureIoTClient 28:add19eb7defa 17001
AzureIoTClient 28:add19eb7defa 17002 return received_instance;
Azure.IoT Build 0:6ae2f7bca550 17003 }
Azure.IoT Build 0:6ae2f7bca550 17004
Azure.IoT Build 0:6ae2f7bca550 17005 void received_destroy(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 17006 {
AzureIoTClient 28:add19eb7defa 17007 if (received != NULL)
AzureIoTClient 28:add19eb7defa 17008 {
AzureIoTClient 28:add19eb7defa 17009 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17010 amqpvalue_destroy(received_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17011 free(received_instance);
AzureIoTClient 28:add19eb7defa 17012 }
Azure.IoT Build 0:6ae2f7bca550 17013 }
Azure.IoT Build 0:6ae2f7bca550 17014
Azure.IoT Build 0:6ae2f7bca550 17015 AMQP_VALUE amqpvalue_create_received(RECEIVED_HANDLE received)
Azure.IoT Build 0:6ae2f7bca550 17016 {
AzureIoTClient 28:add19eb7defa 17017 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17018
AzureIoTClient 28:add19eb7defa 17019 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17020 {
AzureIoTClient 28:add19eb7defa 17021 result = NULL;
AzureIoTClient 28:add19eb7defa 17022 }
AzureIoTClient 28:add19eb7defa 17023 else
AzureIoTClient 28:add19eb7defa 17024 {
AzureIoTClient 28:add19eb7defa 17025 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17026 result = amqpvalue_clone(received_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17027 }
AzureIoTClient 28:add19eb7defa 17028
AzureIoTClient 28:add19eb7defa 17029 return result;
Azure.IoT Build 0:6ae2f7bca550 17030 }
Azure.IoT Build 0:6ae2f7bca550 17031
Azure.IoT Build 0:6ae2f7bca550 17032 bool is_received_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17033 {
AzureIoTClient 28:add19eb7defa 17034 bool result;
AzureIoTClient 28:add19eb7defa 17035
AzureIoTClient 28:add19eb7defa 17036 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17037 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17038 (descriptor_ulong == 35))
AzureIoTClient 28:add19eb7defa 17039 {
AzureIoTClient 28:add19eb7defa 17040 result = true;
AzureIoTClient 28:add19eb7defa 17041 }
AzureIoTClient 28:add19eb7defa 17042 else
AzureIoTClient 28:add19eb7defa 17043 {
AzureIoTClient 28:add19eb7defa 17044 result = false;
AzureIoTClient 28:add19eb7defa 17045 }
AzureIoTClient 28:add19eb7defa 17046
AzureIoTClient 28:add19eb7defa 17047 return result;
Azure.IoT Build 0:6ae2f7bca550 17048 }
Azure.IoT Build 0:6ae2f7bca550 17049
Azure.IoT Build 0:6ae2f7bca550 17050
Azure.IoT Build 0:6ae2f7bca550 17051 int amqpvalue_get_received(AMQP_VALUE value, RECEIVED_HANDLE* received_handle)
Azure.IoT Build 0:6ae2f7bca550 17052 {
AzureIoTClient 28:add19eb7defa 17053 int result;
AzureIoTClient 28:add19eb7defa 17054 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received_create_internal();
AzureIoTClient 28:add19eb7defa 17055 *received_handle = received_instance;
AzureIoTClient 28:add19eb7defa 17056 if (*received_handle == NULL)
AzureIoTClient 28:add19eb7defa 17057 {
AzureIoTClient 28:add19eb7defa 17058 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17059 }
AzureIoTClient 28:add19eb7defa 17060 else
AzureIoTClient 28:add19eb7defa 17061 {
AzureIoTClient 28:add19eb7defa 17062 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17063 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17064 {
AzureIoTClient 28:add19eb7defa 17065 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17066 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17067 }
AzureIoTClient 28:add19eb7defa 17068 else
AzureIoTClient 28:add19eb7defa 17069 {
AzureIoTClient 23:1111ee8bcba4 17070 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17071 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17072 {
AzureIoTClient 23:1111ee8bcba4 17073 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17074 }
AzureIoTClient 23:1111ee8bcba4 17075 else
AzureIoTClient 23:1111ee8bcba4 17076 {
AzureIoTClient 28:add19eb7defa 17077 do
AzureIoTClient 28:add19eb7defa 17078 {
AzureIoTClient 28:add19eb7defa 17079 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17080 /* section-number */
AzureIoTClient 28:add19eb7defa 17081 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17082 {
AzureIoTClient 23:1111ee8bcba4 17083 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17084 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17085 {
AzureIoTClient 28:add19eb7defa 17086 {
AzureIoTClient 28:add19eb7defa 17087 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17088 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17089 break;
AzureIoTClient 28:add19eb7defa 17090 }
AzureIoTClient 28:add19eb7defa 17091 }
AzureIoTClient 28:add19eb7defa 17092 else
AzureIoTClient 28:add19eb7defa 17093 {
AzureIoTClient 28:add19eb7defa 17094 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17095 {
AzureIoTClient 28:add19eb7defa 17096 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17097 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17098 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17099 break;
AzureIoTClient 28:add19eb7defa 17100 }
AzureIoTClient 28:add19eb7defa 17101 else
AzureIoTClient 28:add19eb7defa 17102 {
AzureIoTClient 28:add19eb7defa 17103 uint32_t section_number;
AzureIoTClient 28:add19eb7defa 17104 if (amqpvalue_get_uint(item_value, &section_number) != 0)
AzureIoTClient 28:add19eb7defa 17105 {
AzureIoTClient 28:add19eb7defa 17106 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17107 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17108 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17109 break;
AzureIoTClient 28:add19eb7defa 17110 }
AzureIoTClient 28:add19eb7defa 17111 }
AzureIoTClient 28:add19eb7defa 17112
AzureIoTClient 28:add19eb7defa 17113 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17114 }
AzureIoTClient 28:add19eb7defa 17115 }
AzureIoTClient 28:add19eb7defa 17116 else
AzureIoTClient 28:add19eb7defa 17117 {
AzureIoTClient 28:add19eb7defa 17118 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17119 }
AzureIoTClient 28:add19eb7defa 17120 /* section-offset */
AzureIoTClient 28:add19eb7defa 17121 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 17122 {
AzureIoTClient 23:1111ee8bcba4 17123 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 17124 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17125 {
AzureIoTClient 28:add19eb7defa 17126 {
AzureIoTClient 28:add19eb7defa 17127 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17128 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17129 break;
AzureIoTClient 28:add19eb7defa 17130 }
AzureIoTClient 28:add19eb7defa 17131 }
AzureIoTClient 28:add19eb7defa 17132 else
AzureIoTClient 28:add19eb7defa 17133 {
AzureIoTClient 28:add19eb7defa 17134 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17135 {
AzureIoTClient 28:add19eb7defa 17136 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17137 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17138 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17139 break;
AzureIoTClient 28:add19eb7defa 17140 }
AzureIoTClient 28:add19eb7defa 17141 else
AzureIoTClient 28:add19eb7defa 17142 {
AzureIoTClient 28:add19eb7defa 17143 uint64_t section_offset;
AzureIoTClient 28:add19eb7defa 17144 if (amqpvalue_get_ulong(item_value, &section_offset) != 0)
AzureIoTClient 28:add19eb7defa 17145 {
AzureIoTClient 28:add19eb7defa 17146 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17147 received_destroy(*received_handle);
AzureIoTClient 28:add19eb7defa 17148 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17149 break;
AzureIoTClient 28:add19eb7defa 17150 }
AzureIoTClient 28:add19eb7defa 17151 }
AzureIoTClient 28:add19eb7defa 17152
AzureIoTClient 28:add19eb7defa 17153 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17154 }
AzureIoTClient 28:add19eb7defa 17155 }
AzureIoTClient 28:add19eb7defa 17156 else
AzureIoTClient 28:add19eb7defa 17157 {
AzureIoTClient 28:add19eb7defa 17158 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17159 }
AzureIoTClient 28:add19eb7defa 17160
AzureIoTClient 28:add19eb7defa 17161 received_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17162
AzureIoTClient 28:add19eb7defa 17163 result = 0;
AzureIoTClient 28:add19eb7defa 17164 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17165 }
AzureIoTClient 28:add19eb7defa 17166 }
AzureIoTClient 28:add19eb7defa 17167 }
AzureIoTClient 28:add19eb7defa 17168
AzureIoTClient 28:add19eb7defa 17169 return result;
Azure.IoT Build 0:6ae2f7bca550 17170 }
Azure.IoT Build 0:6ae2f7bca550 17171
Azure.IoT Build 0:6ae2f7bca550 17172 int received_get_section_number(RECEIVED_HANDLE received, uint32_t* section_number_value)
Azure.IoT Build 0:6ae2f7bca550 17173 {
AzureIoTClient 28:add19eb7defa 17174 int result;
AzureIoTClient 28:add19eb7defa 17175
AzureIoTClient 28:add19eb7defa 17176 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17177 {
AzureIoTClient 28:add19eb7defa 17178 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17179 }
AzureIoTClient 28:add19eb7defa 17180 else
AzureIoTClient 28:add19eb7defa 17181 {
AzureIoTClient 28:add19eb7defa 17182 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17183 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 17184 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17185 {
AzureIoTClient 23:1111ee8bcba4 17186 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17187 }
AzureIoTClient 23:1111ee8bcba4 17188 else
AzureIoTClient 23:1111ee8bcba4 17189 {
AzureIoTClient 23:1111ee8bcba4 17190 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17191 {
AzureIoTClient 28:add19eb7defa 17192 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17193 }
AzureIoTClient 28:add19eb7defa 17194 else
AzureIoTClient 28:add19eb7defa 17195 {
AzureIoTClient 28:add19eb7defa 17196 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 17197 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17198 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17199 {
AzureIoTClient 28:add19eb7defa 17200 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17201 }
AzureIoTClient 28:add19eb7defa 17202 else
AzureIoTClient 28:add19eb7defa 17203 {
AzureIoTClient 28:add19eb7defa 17204 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17205 if ((get_single_value_result = amqpvalue_get_uint(item_value, section_number_value)) != 0)
AzureIoTClient 28:add19eb7defa 17206 {
AzureIoTClient 28:add19eb7defa 17207 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17208 }
AzureIoTClient 28:add19eb7defa 17209 else
AzureIoTClient 28:add19eb7defa 17210 {
AzureIoTClient 28:add19eb7defa 17211 result = 0;
AzureIoTClient 28:add19eb7defa 17212 }
AzureIoTClient 28:add19eb7defa 17213 }
AzureIoTClient 28:add19eb7defa 17214 }
AzureIoTClient 28:add19eb7defa 17215 }
AzureIoTClient 28:add19eb7defa 17216 }
AzureIoTClient 28:add19eb7defa 17217
AzureIoTClient 28:add19eb7defa 17218 return result;
Azure.IoT Build 0:6ae2f7bca550 17219 }
Azure.IoT Build 0:6ae2f7bca550 17220
Azure.IoT Build 0:6ae2f7bca550 17221 int received_set_section_number(RECEIVED_HANDLE received, uint32_t section_number_value)
Azure.IoT Build 0:6ae2f7bca550 17222 {
AzureIoTClient 28:add19eb7defa 17223 int result;
AzureIoTClient 28:add19eb7defa 17224
AzureIoTClient 28:add19eb7defa 17225 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17226 {
AzureIoTClient 28:add19eb7defa 17227 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17228 }
AzureIoTClient 28:add19eb7defa 17229 else
AzureIoTClient 28:add19eb7defa 17230 {
AzureIoTClient 28:add19eb7defa 17231 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17232 AMQP_VALUE section_number_amqp_value = amqpvalue_create_uint(section_number_value);
AzureIoTClient 28:add19eb7defa 17233 if (section_number_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17234 {
AzureIoTClient 28:add19eb7defa 17235 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17236 }
AzureIoTClient 28:add19eb7defa 17237 else
AzureIoTClient 28:add19eb7defa 17238 {
AzureIoTClient 28:add19eb7defa 17239 if (amqpvalue_set_composite_item(received_instance->composite_value, 0, section_number_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17240 {
AzureIoTClient 28:add19eb7defa 17241 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17242 }
AzureIoTClient 28:add19eb7defa 17243 else
AzureIoTClient 28:add19eb7defa 17244 {
AzureIoTClient 28:add19eb7defa 17245 result = 0;
AzureIoTClient 28:add19eb7defa 17246 }
AzureIoTClient 28:add19eb7defa 17247
AzureIoTClient 28:add19eb7defa 17248 amqpvalue_destroy(section_number_amqp_value);
AzureIoTClient 28:add19eb7defa 17249 }
AzureIoTClient 28:add19eb7defa 17250 }
AzureIoTClient 28:add19eb7defa 17251
AzureIoTClient 28:add19eb7defa 17252 return result;
Azure.IoT Build 0:6ae2f7bca550 17253 }
Azure.IoT Build 0:6ae2f7bca550 17254
Azure.IoT Build 0:6ae2f7bca550 17255 int received_get_section_offset(RECEIVED_HANDLE received, uint64_t* section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17256 {
AzureIoTClient 28:add19eb7defa 17257 int result;
AzureIoTClient 28:add19eb7defa 17258
AzureIoTClient 28:add19eb7defa 17259 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17260 {
AzureIoTClient 28:add19eb7defa 17261 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17262 }
AzureIoTClient 28:add19eb7defa 17263 else
AzureIoTClient 28:add19eb7defa 17264 {
AzureIoTClient 28:add19eb7defa 17265 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17266 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 23:1111ee8bcba4 17267 if (amqpvalue_get_composite_item_count(received_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17268 {
AzureIoTClient 23:1111ee8bcba4 17269 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17270 }
AzureIoTClient 23:1111ee8bcba4 17271 else
AzureIoTClient 23:1111ee8bcba4 17272 {
AzureIoTClient 23:1111ee8bcba4 17273 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 17274 {
AzureIoTClient 28:add19eb7defa 17275 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17276 }
AzureIoTClient 28:add19eb7defa 17277 else
AzureIoTClient 28:add19eb7defa 17278 {
AzureIoTClient 28:add19eb7defa 17279 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(received_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 17280 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17281 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17282 {
AzureIoTClient 28:add19eb7defa 17283 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17284 }
AzureIoTClient 28:add19eb7defa 17285 else
AzureIoTClient 28:add19eb7defa 17286 {
AzureIoTClient 28:add19eb7defa 17287 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17288 if ((get_single_value_result = amqpvalue_get_ulong(item_value, section_offset_value)) != 0)
AzureIoTClient 28:add19eb7defa 17289 {
AzureIoTClient 28:add19eb7defa 17290 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17291 }
AzureIoTClient 28:add19eb7defa 17292 else
AzureIoTClient 28:add19eb7defa 17293 {
AzureIoTClient 28:add19eb7defa 17294 result = 0;
AzureIoTClient 28:add19eb7defa 17295 }
AzureIoTClient 28:add19eb7defa 17296 }
AzureIoTClient 28:add19eb7defa 17297 }
AzureIoTClient 28:add19eb7defa 17298 }
AzureIoTClient 28:add19eb7defa 17299 }
AzureIoTClient 28:add19eb7defa 17300
AzureIoTClient 28:add19eb7defa 17301 return result;
Azure.IoT Build 0:6ae2f7bca550 17302 }
Azure.IoT Build 0:6ae2f7bca550 17303
Azure.IoT Build 0:6ae2f7bca550 17304 int received_set_section_offset(RECEIVED_HANDLE received, uint64_t section_offset_value)
Azure.IoT Build 0:6ae2f7bca550 17305 {
AzureIoTClient 28:add19eb7defa 17306 int result;
AzureIoTClient 28:add19eb7defa 17307
AzureIoTClient 28:add19eb7defa 17308 if (received == NULL)
AzureIoTClient 28:add19eb7defa 17309 {
AzureIoTClient 28:add19eb7defa 17310 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17311 }
AzureIoTClient 28:add19eb7defa 17312 else
AzureIoTClient 28:add19eb7defa 17313 {
AzureIoTClient 28:add19eb7defa 17314 RECEIVED_INSTANCE* received_instance = (RECEIVED_INSTANCE*)received;
AzureIoTClient 28:add19eb7defa 17315 AMQP_VALUE section_offset_amqp_value = amqpvalue_create_ulong(section_offset_value);
AzureIoTClient 28:add19eb7defa 17316 if (section_offset_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17317 {
AzureIoTClient 28:add19eb7defa 17318 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17319 }
AzureIoTClient 28:add19eb7defa 17320 else
AzureIoTClient 28:add19eb7defa 17321 {
AzureIoTClient 28:add19eb7defa 17322 if (amqpvalue_set_composite_item(received_instance->composite_value, 1, section_offset_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17323 {
AzureIoTClient 28:add19eb7defa 17324 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17325 }
AzureIoTClient 28:add19eb7defa 17326 else
AzureIoTClient 28:add19eb7defa 17327 {
AzureIoTClient 28:add19eb7defa 17328 result = 0;
AzureIoTClient 28:add19eb7defa 17329 }
AzureIoTClient 28:add19eb7defa 17330
AzureIoTClient 28:add19eb7defa 17331 amqpvalue_destroy(section_offset_amqp_value);
AzureIoTClient 28:add19eb7defa 17332 }
AzureIoTClient 28:add19eb7defa 17333 }
AzureIoTClient 28:add19eb7defa 17334
AzureIoTClient 28:add19eb7defa 17335 return result;
Azure.IoT Build 0:6ae2f7bca550 17336 }
Azure.IoT Build 0:6ae2f7bca550 17337
Azure.IoT Build 0:6ae2f7bca550 17338
Azure.IoT Build 0:6ae2f7bca550 17339 /* accepted */
Azure.IoT Build 0:6ae2f7bca550 17340
Azure.IoT Build 0:6ae2f7bca550 17341 typedef struct ACCEPTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17342 {
AzureIoTClient 28:add19eb7defa 17343 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17344 } ACCEPTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17345
Azure.IoT Build 0:6ae2f7bca550 17346 static ACCEPTED_HANDLE accepted_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17347 {
AzureIoTClient 28:add19eb7defa 17348 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17349 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17350 {
AzureIoTClient 28:add19eb7defa 17351 accepted_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17352 }
AzureIoTClient 28:add19eb7defa 17353
AzureIoTClient 28:add19eb7defa 17354 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17355 }
Azure.IoT Build 0:6ae2f7bca550 17356
Azure.IoT Build 0:6ae2f7bca550 17357 ACCEPTED_HANDLE accepted_create(void)
Azure.IoT Build 0:6ae2f7bca550 17358 {
AzureIoTClient 28:add19eb7defa 17359 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17360 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17361 {
AzureIoTClient 28:add19eb7defa 17362 accepted_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(36);
AzureIoTClient 28:add19eb7defa 17363 if (accepted_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17364 {
AzureIoTClient 28:add19eb7defa 17365 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17366 accepted_instance = NULL;
AzureIoTClient 28:add19eb7defa 17367 }
AzureIoTClient 28:add19eb7defa 17368 }
AzureIoTClient 28:add19eb7defa 17369
AzureIoTClient 28:add19eb7defa 17370 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17371 }
Azure.IoT Build 0:6ae2f7bca550 17372
Azure.IoT Build 0:6ae2f7bca550 17373 ACCEPTED_HANDLE accepted_clone(ACCEPTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17374 {
AzureIoTClient 28:add19eb7defa 17375 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)malloc(sizeof(ACCEPTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17376 if (accepted_instance != NULL)
AzureIoTClient 28:add19eb7defa 17377 {
AzureIoTClient 28:add19eb7defa 17378 accepted_instance->composite_value = amqpvalue_clone(((ACCEPTED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17379 if (accepted_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17380 {
AzureIoTClient 28:add19eb7defa 17381 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17382 accepted_instance = NULL;
AzureIoTClient 28:add19eb7defa 17383 }
AzureIoTClient 28:add19eb7defa 17384 }
AzureIoTClient 28:add19eb7defa 17385
AzureIoTClient 28:add19eb7defa 17386 return accepted_instance;
Azure.IoT Build 0:6ae2f7bca550 17387 }
Azure.IoT Build 0:6ae2f7bca550 17388
Azure.IoT Build 0:6ae2f7bca550 17389 void accepted_destroy(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 17390 {
AzureIoTClient 28:add19eb7defa 17391 if (accepted != NULL)
AzureIoTClient 28:add19eb7defa 17392 {
AzureIoTClient 28:add19eb7defa 17393 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
AzureIoTClient 28:add19eb7defa 17394 amqpvalue_destroy(accepted_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17395 free(accepted_instance);
AzureIoTClient 28:add19eb7defa 17396 }
Azure.IoT Build 0:6ae2f7bca550 17397 }
Azure.IoT Build 0:6ae2f7bca550 17398
Azure.IoT Build 0:6ae2f7bca550 17399 AMQP_VALUE amqpvalue_create_accepted(ACCEPTED_HANDLE accepted)
Azure.IoT Build 0:6ae2f7bca550 17400 {
AzureIoTClient 28:add19eb7defa 17401 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17402
AzureIoTClient 28:add19eb7defa 17403 if (accepted == NULL)
AzureIoTClient 28:add19eb7defa 17404 {
AzureIoTClient 28:add19eb7defa 17405 result = NULL;
AzureIoTClient 28:add19eb7defa 17406 }
AzureIoTClient 28:add19eb7defa 17407 else
AzureIoTClient 28:add19eb7defa 17408 {
AzureIoTClient 28:add19eb7defa 17409 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted;
AzureIoTClient 28:add19eb7defa 17410 result = amqpvalue_clone(accepted_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17411 }
AzureIoTClient 28:add19eb7defa 17412
AzureIoTClient 28:add19eb7defa 17413 return result;
Azure.IoT Build 0:6ae2f7bca550 17414 }
Azure.IoT Build 0:6ae2f7bca550 17415
Azure.IoT Build 0:6ae2f7bca550 17416 bool is_accepted_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17417 {
AzureIoTClient 28:add19eb7defa 17418 bool result;
AzureIoTClient 28:add19eb7defa 17419
AzureIoTClient 28:add19eb7defa 17420 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17421 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17422 (descriptor_ulong == 36))
AzureIoTClient 28:add19eb7defa 17423 {
AzureIoTClient 28:add19eb7defa 17424 result = true;
AzureIoTClient 28:add19eb7defa 17425 }
AzureIoTClient 28:add19eb7defa 17426 else
AzureIoTClient 28:add19eb7defa 17427 {
AzureIoTClient 28:add19eb7defa 17428 result = false;
AzureIoTClient 28:add19eb7defa 17429 }
AzureIoTClient 28:add19eb7defa 17430
AzureIoTClient 28:add19eb7defa 17431 return result;
Azure.IoT Build 0:6ae2f7bca550 17432 }
Azure.IoT Build 0:6ae2f7bca550 17433
Azure.IoT Build 0:6ae2f7bca550 17434
Azure.IoT Build 0:6ae2f7bca550 17435 int amqpvalue_get_accepted(AMQP_VALUE value, ACCEPTED_HANDLE* accepted_handle)
Azure.IoT Build 0:6ae2f7bca550 17436 {
AzureIoTClient 28:add19eb7defa 17437 int result;
AzureIoTClient 28:add19eb7defa 17438 ACCEPTED_INSTANCE* accepted_instance = (ACCEPTED_INSTANCE*)accepted_create_internal();
AzureIoTClient 28:add19eb7defa 17439 *accepted_handle = accepted_instance;
AzureIoTClient 28:add19eb7defa 17440 if (*accepted_handle == NULL)
AzureIoTClient 28:add19eb7defa 17441 {
AzureIoTClient 28:add19eb7defa 17442 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17443 }
AzureIoTClient 28:add19eb7defa 17444 else
AzureIoTClient 28:add19eb7defa 17445 {
AzureIoTClient 28:add19eb7defa 17446 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17447 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17448 {
AzureIoTClient 28:add19eb7defa 17449 accepted_destroy(*accepted_handle);
AzureIoTClient 28:add19eb7defa 17450 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17451 }
AzureIoTClient 28:add19eb7defa 17452 else
AzureIoTClient 28:add19eb7defa 17453 {
AzureIoTClient 23:1111ee8bcba4 17454 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17455 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17456 {
AzureIoTClient 23:1111ee8bcba4 17457 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17458 }
AzureIoTClient 23:1111ee8bcba4 17459 else
AzureIoTClient 23:1111ee8bcba4 17460 {
AzureIoTClient 28:add19eb7defa 17461 do
AzureIoTClient 28:add19eb7defa 17462 {
AzureIoTClient 28:add19eb7defa 17463
AzureIoTClient 28:add19eb7defa 17464 accepted_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17465
AzureIoTClient 28:add19eb7defa 17466 result = 0;
AzureIoTClient 28:add19eb7defa 17467 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17468 }
AzureIoTClient 28:add19eb7defa 17469 }
AzureIoTClient 28:add19eb7defa 17470 }
AzureIoTClient 28:add19eb7defa 17471
AzureIoTClient 28:add19eb7defa 17472 return result;
Azure.IoT Build 0:6ae2f7bca550 17473 }
Azure.IoT Build 0:6ae2f7bca550 17474
Azure.IoT Build 0:6ae2f7bca550 17475
Azure.IoT Build 0:6ae2f7bca550 17476 /* rejected */
Azure.IoT Build 0:6ae2f7bca550 17477
Azure.IoT Build 0:6ae2f7bca550 17478 typedef struct REJECTED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17479 {
AzureIoTClient 28:add19eb7defa 17480 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17481 } REJECTED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17482
Azure.IoT Build 0:6ae2f7bca550 17483 static REJECTED_HANDLE rejected_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17484 {
AzureIoTClient 28:add19eb7defa 17485 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17486 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17487 {
AzureIoTClient 28:add19eb7defa 17488 rejected_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17489 }
AzureIoTClient 28:add19eb7defa 17490
AzureIoTClient 28:add19eb7defa 17491 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17492 }
Azure.IoT Build 0:6ae2f7bca550 17493
Azure.IoT Build 0:6ae2f7bca550 17494 REJECTED_HANDLE rejected_create(void)
Azure.IoT Build 0:6ae2f7bca550 17495 {
AzureIoTClient 28:add19eb7defa 17496 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17497 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17498 {
AzureIoTClient 28:add19eb7defa 17499 rejected_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(37);
AzureIoTClient 28:add19eb7defa 17500 if (rejected_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17501 {
AzureIoTClient 28:add19eb7defa 17502 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17503 rejected_instance = NULL;
AzureIoTClient 28:add19eb7defa 17504 }
AzureIoTClient 28:add19eb7defa 17505 }
AzureIoTClient 28:add19eb7defa 17506
AzureIoTClient 28:add19eb7defa 17507 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17508 }
Azure.IoT Build 0:6ae2f7bca550 17509
Azure.IoT Build 0:6ae2f7bca550 17510 REJECTED_HANDLE rejected_clone(REJECTED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17511 {
AzureIoTClient 28:add19eb7defa 17512 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)malloc(sizeof(REJECTED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17513 if (rejected_instance != NULL)
AzureIoTClient 28:add19eb7defa 17514 {
AzureIoTClient 28:add19eb7defa 17515 rejected_instance->composite_value = amqpvalue_clone(((REJECTED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17516 if (rejected_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17517 {
AzureIoTClient 28:add19eb7defa 17518 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17519 rejected_instance = NULL;
AzureIoTClient 28:add19eb7defa 17520 }
AzureIoTClient 28:add19eb7defa 17521 }
AzureIoTClient 28:add19eb7defa 17522
AzureIoTClient 28:add19eb7defa 17523 return rejected_instance;
Azure.IoT Build 0:6ae2f7bca550 17524 }
Azure.IoT Build 0:6ae2f7bca550 17525
Azure.IoT Build 0:6ae2f7bca550 17526 void rejected_destroy(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 17527 {
AzureIoTClient 28:add19eb7defa 17528 if (rejected != NULL)
AzureIoTClient 28:add19eb7defa 17529 {
AzureIoTClient 28:add19eb7defa 17530 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17531 amqpvalue_destroy(rejected_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17532 free(rejected_instance);
AzureIoTClient 28:add19eb7defa 17533 }
Azure.IoT Build 0:6ae2f7bca550 17534 }
Azure.IoT Build 0:6ae2f7bca550 17535
Azure.IoT Build 0:6ae2f7bca550 17536 AMQP_VALUE amqpvalue_create_rejected(REJECTED_HANDLE rejected)
Azure.IoT Build 0:6ae2f7bca550 17537 {
AzureIoTClient 28:add19eb7defa 17538 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17539
AzureIoTClient 28:add19eb7defa 17540 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17541 {
AzureIoTClient 28:add19eb7defa 17542 result = NULL;
AzureIoTClient 28:add19eb7defa 17543 }
AzureIoTClient 28:add19eb7defa 17544 else
AzureIoTClient 28:add19eb7defa 17545 {
AzureIoTClient 28:add19eb7defa 17546 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17547 result = amqpvalue_clone(rejected_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17548 }
AzureIoTClient 28:add19eb7defa 17549
AzureIoTClient 28:add19eb7defa 17550 return result;
Azure.IoT Build 0:6ae2f7bca550 17551 }
Azure.IoT Build 0:6ae2f7bca550 17552
Azure.IoT Build 0:6ae2f7bca550 17553 bool is_rejected_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17554 {
AzureIoTClient 28:add19eb7defa 17555 bool result;
AzureIoTClient 28:add19eb7defa 17556
AzureIoTClient 28:add19eb7defa 17557 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17558 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17559 (descriptor_ulong == 37))
AzureIoTClient 28:add19eb7defa 17560 {
AzureIoTClient 28:add19eb7defa 17561 result = true;
AzureIoTClient 28:add19eb7defa 17562 }
AzureIoTClient 28:add19eb7defa 17563 else
AzureIoTClient 28:add19eb7defa 17564 {
AzureIoTClient 28:add19eb7defa 17565 result = false;
AzureIoTClient 28:add19eb7defa 17566 }
AzureIoTClient 28:add19eb7defa 17567
AzureIoTClient 28:add19eb7defa 17568 return result;
Azure.IoT Build 0:6ae2f7bca550 17569 }
Azure.IoT Build 0:6ae2f7bca550 17570
Azure.IoT Build 0:6ae2f7bca550 17571
Azure.IoT Build 0:6ae2f7bca550 17572 int amqpvalue_get_rejected(AMQP_VALUE value, REJECTED_HANDLE* rejected_handle)
Azure.IoT Build 0:6ae2f7bca550 17573 {
AzureIoTClient 28:add19eb7defa 17574 int result;
AzureIoTClient 28:add19eb7defa 17575 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected_create_internal();
AzureIoTClient 28:add19eb7defa 17576 *rejected_handle = rejected_instance;
AzureIoTClient 28:add19eb7defa 17577 if (*rejected_handle == NULL)
AzureIoTClient 28:add19eb7defa 17578 {
AzureIoTClient 28:add19eb7defa 17579 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17580 }
AzureIoTClient 28:add19eb7defa 17581 else
AzureIoTClient 28:add19eb7defa 17582 {
AzureIoTClient 28:add19eb7defa 17583 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17584 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17585 {
AzureIoTClient 28:add19eb7defa 17586 rejected_destroy(*rejected_handle);
AzureIoTClient 28:add19eb7defa 17587 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17588 }
AzureIoTClient 28:add19eb7defa 17589 else
AzureIoTClient 28:add19eb7defa 17590 {
AzureIoTClient 23:1111ee8bcba4 17591 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17592 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17593 {
AzureIoTClient 23:1111ee8bcba4 17594 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17595 }
AzureIoTClient 23:1111ee8bcba4 17596 else
AzureIoTClient 23:1111ee8bcba4 17597 {
AzureIoTClient 28:add19eb7defa 17598 do
AzureIoTClient 28:add19eb7defa 17599 {
AzureIoTClient 28:add19eb7defa 17600 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17601 /* error */
AzureIoTClient 28:add19eb7defa 17602 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17603 {
AzureIoTClient 23:1111ee8bcba4 17604 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17605 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17606 {
AzureIoTClient 28:add19eb7defa 17607 /* do nothing */
AzureIoTClient 28:add19eb7defa 17608 }
AzureIoTClient 28:add19eb7defa 17609 else
AzureIoTClient 28:add19eb7defa 17610 {
AzureIoTClient 28:add19eb7defa 17611 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 17612 {
AzureIoTClient 28:add19eb7defa 17613 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 17614 }
AzureIoTClient 28:add19eb7defa 17615 else
AzureIoTClient 28:add19eb7defa 17616 {
AzureIoTClient 28:add19eb7defa 17617 ERROR_HANDLE error;
AzureIoTClient 28:add19eb7defa 17618 if (amqpvalue_get_error(item_value, &error) != 0)
AzureIoTClient 28:add19eb7defa 17619 {
AzureIoTClient 28:add19eb7defa 17620 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17621 rejected_destroy(*rejected_handle);
AzureIoTClient 28:add19eb7defa 17622 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17623 break;
AzureIoTClient 28:add19eb7defa 17624 }
AzureIoTClient 25:1101516ee67d 17625 else
AzureIoTClient 25:1101516ee67d 17626 {
AzureIoTClient 28:add19eb7defa 17627 error_destroy(error);
AzureIoTClient 28:add19eb7defa 17628 }
AzureIoTClient 28:add19eb7defa 17629 }
AzureIoTClient 28:add19eb7defa 17630
AzureIoTClient 28:add19eb7defa 17631 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 17632 }
AzureIoTClient 28:add19eb7defa 17633 }
AzureIoTClient 28:add19eb7defa 17634
AzureIoTClient 28:add19eb7defa 17635 rejected_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17636
AzureIoTClient 28:add19eb7defa 17637 result = 0;
AzureIoTClient 28:add19eb7defa 17638 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17639 }
AzureIoTClient 28:add19eb7defa 17640 }
AzureIoTClient 28:add19eb7defa 17641 }
AzureIoTClient 28:add19eb7defa 17642
AzureIoTClient 28:add19eb7defa 17643 return result;
Azure.IoT Build 0:6ae2f7bca550 17644 }
Azure.IoT Build 0:6ae2f7bca550 17645
Azure.IoT Build 0:6ae2f7bca550 17646 int rejected_get_error(REJECTED_HANDLE rejected, ERROR_HANDLE* error_value)
Azure.IoT Build 0:6ae2f7bca550 17647 {
AzureIoTClient 28:add19eb7defa 17648 int result;
AzureIoTClient 28:add19eb7defa 17649
AzureIoTClient 28:add19eb7defa 17650 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17651 {
AzureIoTClient 28:add19eb7defa 17652 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17653 }
AzureIoTClient 28:add19eb7defa 17654 else
AzureIoTClient 28:add19eb7defa 17655 {
AzureIoTClient 28:add19eb7defa 17656 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 17657 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 23:1111ee8bcba4 17658 if (amqpvalue_get_composite_item_count(rejected_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17659 {
AzureIoTClient 23:1111ee8bcba4 17660 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17661 }
AzureIoTClient 23:1111ee8bcba4 17662 else
AzureIoTClient 23:1111ee8bcba4 17663 {
AzureIoTClient 23:1111ee8bcba4 17664 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 17665 {
AzureIoTClient 28:add19eb7defa 17666 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17667 }
AzureIoTClient 28:add19eb7defa 17668 else
AzureIoTClient 28:add19eb7defa 17669 {
AzureIoTClient 28:add19eb7defa 17670 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(rejected_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 17671 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 17672 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 17673 {
AzureIoTClient 28:add19eb7defa 17674 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17675 }
AzureIoTClient 28:add19eb7defa 17676 else
AzureIoTClient 28:add19eb7defa 17677 {
AzureIoTClient 28:add19eb7defa 17678 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 17679 if ((get_single_value_result = amqpvalue_get_error(item_value, error_value)) != 0)
AzureIoTClient 28:add19eb7defa 17680 {
AzureIoTClient 28:add19eb7defa 17681 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17682 }
AzureIoTClient 28:add19eb7defa 17683 else
AzureIoTClient 28:add19eb7defa 17684 {
AzureIoTClient 28:add19eb7defa 17685 result = 0;
AzureIoTClient 28:add19eb7defa 17686 }
AzureIoTClient 28:add19eb7defa 17687 }
AzureIoTClient 28:add19eb7defa 17688 }
AzureIoTClient 28:add19eb7defa 17689 }
AzureIoTClient 28:add19eb7defa 17690 }
AzureIoTClient 28:add19eb7defa 17691
AzureIoTClient 28:add19eb7defa 17692 return result;
Azure.IoT Build 0:6ae2f7bca550 17693 }
Azure.IoT Build 0:6ae2f7bca550 17694
Azure.IoT Build 0:6ae2f7bca550 17695 int rejected_set_error(REJECTED_HANDLE rejected, ERROR_HANDLE error_value)
Azure.IoT Build 0:6ae2f7bca550 17696 {
AzureIoTClient 28:add19eb7defa 17697 int result;
AzureIoTClient 28:add19eb7defa 17698
AzureIoTClient 28:add19eb7defa 17699 if (rejected == NULL)
AzureIoTClient 28:add19eb7defa 17700 {
AzureIoTClient 28:add19eb7defa 17701 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17702 }
AzureIoTClient 28:add19eb7defa 17703 else
AzureIoTClient 28:add19eb7defa 17704 {
AzureIoTClient 28:add19eb7defa 17705 REJECTED_INSTANCE* rejected_instance = (REJECTED_INSTANCE*)rejected;
AzureIoTClient 28:add19eb7defa 17706 AMQP_VALUE error_amqp_value = amqpvalue_create_error(error_value);
AzureIoTClient 28:add19eb7defa 17707 if (error_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 17708 {
AzureIoTClient 28:add19eb7defa 17709 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17710 }
AzureIoTClient 28:add19eb7defa 17711 else
AzureIoTClient 28:add19eb7defa 17712 {
AzureIoTClient 28:add19eb7defa 17713 if (amqpvalue_set_composite_item(rejected_instance->composite_value, 0, error_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 17714 {
AzureIoTClient 28:add19eb7defa 17715 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17716 }
AzureIoTClient 28:add19eb7defa 17717 else
AzureIoTClient 28:add19eb7defa 17718 {
AzureIoTClient 28:add19eb7defa 17719 result = 0;
AzureIoTClient 28:add19eb7defa 17720 }
AzureIoTClient 28:add19eb7defa 17721
AzureIoTClient 28:add19eb7defa 17722 amqpvalue_destroy(error_amqp_value);
AzureIoTClient 28:add19eb7defa 17723 }
AzureIoTClient 28:add19eb7defa 17724 }
AzureIoTClient 28:add19eb7defa 17725
AzureIoTClient 28:add19eb7defa 17726 return result;
Azure.IoT Build 0:6ae2f7bca550 17727 }
Azure.IoT Build 0:6ae2f7bca550 17728
Azure.IoT Build 0:6ae2f7bca550 17729
Azure.IoT Build 0:6ae2f7bca550 17730 /* released */
Azure.IoT Build 0:6ae2f7bca550 17731
Azure.IoT Build 0:6ae2f7bca550 17732 typedef struct RELEASED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17733 {
AzureIoTClient 28:add19eb7defa 17734 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17735 } RELEASED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17736
Azure.IoT Build 0:6ae2f7bca550 17737 static RELEASED_HANDLE released_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17738 {
AzureIoTClient 28:add19eb7defa 17739 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17740 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17741 {
AzureIoTClient 28:add19eb7defa 17742 released_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17743 }
AzureIoTClient 28:add19eb7defa 17744
AzureIoTClient 28:add19eb7defa 17745 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17746 }
Azure.IoT Build 0:6ae2f7bca550 17747
Azure.IoT Build 0:6ae2f7bca550 17748 RELEASED_HANDLE released_create(void)
Azure.IoT Build 0:6ae2f7bca550 17749 {
AzureIoTClient 28:add19eb7defa 17750 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17751 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17752 {
AzureIoTClient 28:add19eb7defa 17753 released_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(38);
AzureIoTClient 28:add19eb7defa 17754 if (released_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17755 {
AzureIoTClient 28:add19eb7defa 17756 free(released_instance);
AzureIoTClient 28:add19eb7defa 17757 released_instance = NULL;
AzureIoTClient 28:add19eb7defa 17758 }
AzureIoTClient 28:add19eb7defa 17759 }
AzureIoTClient 28:add19eb7defa 17760
AzureIoTClient 28:add19eb7defa 17761 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17762 }
Azure.IoT Build 0:6ae2f7bca550 17763
Azure.IoT Build 0:6ae2f7bca550 17764 RELEASED_HANDLE released_clone(RELEASED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17765 {
AzureIoTClient 28:add19eb7defa 17766 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)malloc(sizeof(RELEASED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17767 if (released_instance != NULL)
AzureIoTClient 28:add19eb7defa 17768 {
AzureIoTClient 28:add19eb7defa 17769 released_instance->composite_value = amqpvalue_clone(((RELEASED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17770 if (released_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17771 {
AzureIoTClient 28:add19eb7defa 17772 free(released_instance);
AzureIoTClient 28:add19eb7defa 17773 released_instance = NULL;
AzureIoTClient 28:add19eb7defa 17774 }
AzureIoTClient 28:add19eb7defa 17775 }
AzureIoTClient 28:add19eb7defa 17776
AzureIoTClient 28:add19eb7defa 17777 return released_instance;
Azure.IoT Build 0:6ae2f7bca550 17778 }
Azure.IoT Build 0:6ae2f7bca550 17779
Azure.IoT Build 0:6ae2f7bca550 17780 void released_destroy(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17781 {
AzureIoTClient 28:add19eb7defa 17782 if (released != NULL)
AzureIoTClient 28:add19eb7defa 17783 {
AzureIoTClient 28:add19eb7defa 17784 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
AzureIoTClient 28:add19eb7defa 17785 amqpvalue_destroy(released_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17786 free(released_instance);
AzureIoTClient 28:add19eb7defa 17787 }
Azure.IoT Build 0:6ae2f7bca550 17788 }
Azure.IoT Build 0:6ae2f7bca550 17789
Azure.IoT Build 0:6ae2f7bca550 17790 AMQP_VALUE amqpvalue_create_released(RELEASED_HANDLE released)
Azure.IoT Build 0:6ae2f7bca550 17791 {
AzureIoTClient 28:add19eb7defa 17792 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17793
AzureIoTClient 28:add19eb7defa 17794 if (released == NULL)
AzureIoTClient 28:add19eb7defa 17795 {
AzureIoTClient 28:add19eb7defa 17796 result = NULL;
AzureIoTClient 28:add19eb7defa 17797 }
AzureIoTClient 28:add19eb7defa 17798 else
AzureIoTClient 28:add19eb7defa 17799 {
AzureIoTClient 28:add19eb7defa 17800 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released;
AzureIoTClient 28:add19eb7defa 17801 result = amqpvalue_clone(released_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17802 }
AzureIoTClient 28:add19eb7defa 17803
AzureIoTClient 28:add19eb7defa 17804 return result;
Azure.IoT Build 0:6ae2f7bca550 17805 }
Azure.IoT Build 0:6ae2f7bca550 17806
Azure.IoT Build 0:6ae2f7bca550 17807 bool is_released_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17808 {
AzureIoTClient 28:add19eb7defa 17809 bool result;
AzureIoTClient 28:add19eb7defa 17810
AzureIoTClient 28:add19eb7defa 17811 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17812 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17813 (descriptor_ulong == 38))
AzureIoTClient 28:add19eb7defa 17814 {
AzureIoTClient 28:add19eb7defa 17815 result = true;
AzureIoTClient 28:add19eb7defa 17816 }
AzureIoTClient 28:add19eb7defa 17817 else
AzureIoTClient 28:add19eb7defa 17818 {
AzureIoTClient 28:add19eb7defa 17819 result = false;
AzureIoTClient 28:add19eb7defa 17820 }
AzureIoTClient 28:add19eb7defa 17821
AzureIoTClient 28:add19eb7defa 17822 return result;
Azure.IoT Build 0:6ae2f7bca550 17823 }
Azure.IoT Build 0:6ae2f7bca550 17824
Azure.IoT Build 0:6ae2f7bca550 17825
Azure.IoT Build 0:6ae2f7bca550 17826 int amqpvalue_get_released(AMQP_VALUE value, RELEASED_HANDLE* released_handle)
Azure.IoT Build 0:6ae2f7bca550 17827 {
AzureIoTClient 28:add19eb7defa 17828 int result;
AzureIoTClient 28:add19eb7defa 17829 RELEASED_INSTANCE* released_instance = (RELEASED_INSTANCE*)released_create_internal();
AzureIoTClient 28:add19eb7defa 17830 *released_handle = released_instance;
AzureIoTClient 28:add19eb7defa 17831 if (*released_handle == NULL)
AzureIoTClient 28:add19eb7defa 17832 {
AzureIoTClient 28:add19eb7defa 17833 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17834 }
AzureIoTClient 28:add19eb7defa 17835 else
AzureIoTClient 28:add19eb7defa 17836 {
AzureIoTClient 28:add19eb7defa 17837 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17838 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17839 {
AzureIoTClient 28:add19eb7defa 17840 released_destroy(*released_handle);
AzureIoTClient 28:add19eb7defa 17841 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17842 }
AzureIoTClient 28:add19eb7defa 17843 else
AzureIoTClient 28:add19eb7defa 17844 {
AzureIoTClient 23:1111ee8bcba4 17845 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17846 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17847 {
AzureIoTClient 23:1111ee8bcba4 17848 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17849 }
AzureIoTClient 23:1111ee8bcba4 17850 else
AzureIoTClient 23:1111ee8bcba4 17851 {
AzureIoTClient 28:add19eb7defa 17852 do
AzureIoTClient 28:add19eb7defa 17853 {
AzureIoTClient 28:add19eb7defa 17854
AzureIoTClient 28:add19eb7defa 17855 released_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 17856
AzureIoTClient 28:add19eb7defa 17857 result = 0;
AzureIoTClient 28:add19eb7defa 17858 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 17859 }
AzureIoTClient 28:add19eb7defa 17860 }
AzureIoTClient 28:add19eb7defa 17861 }
AzureIoTClient 28:add19eb7defa 17862
AzureIoTClient 28:add19eb7defa 17863 return result;
Azure.IoT Build 0:6ae2f7bca550 17864 }
Azure.IoT Build 0:6ae2f7bca550 17865
Azure.IoT Build 0:6ae2f7bca550 17866
Azure.IoT Build 0:6ae2f7bca550 17867 /* modified */
Azure.IoT Build 0:6ae2f7bca550 17868
Azure.IoT Build 0:6ae2f7bca550 17869 typedef struct MODIFIED_INSTANCE_TAG
Azure.IoT Build 0:6ae2f7bca550 17870 {
AzureIoTClient 28:add19eb7defa 17871 AMQP_VALUE composite_value;
Azure.IoT Build 0:6ae2f7bca550 17872 } MODIFIED_INSTANCE;
Azure.IoT Build 0:6ae2f7bca550 17873
Azure.IoT Build 0:6ae2f7bca550 17874 static MODIFIED_HANDLE modified_create_internal(void)
Azure.IoT Build 0:6ae2f7bca550 17875 {
AzureIoTClient 28:add19eb7defa 17876 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17877 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 17878 {
AzureIoTClient 28:add19eb7defa 17879 modified_instance->composite_value = NULL;
AzureIoTClient 28:add19eb7defa 17880 }
AzureIoTClient 28:add19eb7defa 17881
AzureIoTClient 28:add19eb7defa 17882 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 17883 }
Azure.IoT Build 0:6ae2f7bca550 17884
Azure.IoT Build 0:6ae2f7bca550 17885 MODIFIED_HANDLE modified_create(void)
Azure.IoT Build 0:6ae2f7bca550 17886 {
AzureIoTClient 28:add19eb7defa 17887 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17888 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 17889 {
AzureIoTClient 28:add19eb7defa 17890 modified_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(39);
AzureIoTClient 28:add19eb7defa 17891 if (modified_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17892 {
AzureIoTClient 28:add19eb7defa 17893 free(modified_instance);
AzureIoTClient 28:add19eb7defa 17894 modified_instance = NULL;
AzureIoTClient 28:add19eb7defa 17895 }
AzureIoTClient 28:add19eb7defa 17896 }
AzureIoTClient 28:add19eb7defa 17897
AzureIoTClient 28:add19eb7defa 17898 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 17899 }
Azure.IoT Build 0:6ae2f7bca550 17900
Azure.IoT Build 0:6ae2f7bca550 17901 MODIFIED_HANDLE modified_clone(MODIFIED_HANDLE value)
Azure.IoT Build 0:6ae2f7bca550 17902 {
AzureIoTClient 28:add19eb7defa 17903 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)malloc(sizeof(MODIFIED_INSTANCE));
AzureIoTClient 28:add19eb7defa 17904 if (modified_instance != NULL)
AzureIoTClient 28:add19eb7defa 17905 {
AzureIoTClient 28:add19eb7defa 17906 modified_instance->composite_value = amqpvalue_clone(((MODIFIED_INSTANCE*)value)->composite_value);
AzureIoTClient 28:add19eb7defa 17907 if (modified_instance->composite_value == NULL)
AzureIoTClient 28:add19eb7defa 17908 {
AzureIoTClient 28:add19eb7defa 17909 free(modified_instance);
AzureIoTClient 28:add19eb7defa 17910 modified_instance = NULL;
AzureIoTClient 28:add19eb7defa 17911 }
AzureIoTClient 28:add19eb7defa 17912 }
AzureIoTClient 28:add19eb7defa 17913
AzureIoTClient 28:add19eb7defa 17914 return modified_instance;
Azure.IoT Build 0:6ae2f7bca550 17915 }
Azure.IoT Build 0:6ae2f7bca550 17916
Azure.IoT Build 0:6ae2f7bca550 17917 void modified_destroy(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 17918 {
AzureIoTClient 28:add19eb7defa 17919 if (modified != NULL)
AzureIoTClient 28:add19eb7defa 17920 {
AzureIoTClient 28:add19eb7defa 17921 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 17922 amqpvalue_destroy(modified_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17923 free(modified_instance);
AzureIoTClient 28:add19eb7defa 17924 }
Azure.IoT Build 0:6ae2f7bca550 17925 }
Azure.IoT Build 0:6ae2f7bca550 17926
Azure.IoT Build 0:6ae2f7bca550 17927 AMQP_VALUE amqpvalue_create_modified(MODIFIED_HANDLE modified)
Azure.IoT Build 0:6ae2f7bca550 17928 {
AzureIoTClient 28:add19eb7defa 17929 AMQP_VALUE result;
AzureIoTClient 28:add19eb7defa 17930
AzureIoTClient 28:add19eb7defa 17931 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 17932 {
AzureIoTClient 28:add19eb7defa 17933 result = NULL;
AzureIoTClient 28:add19eb7defa 17934 }
AzureIoTClient 28:add19eb7defa 17935 else
AzureIoTClient 28:add19eb7defa 17936 {
AzureIoTClient 28:add19eb7defa 17937 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 17938 result = amqpvalue_clone(modified_instance->composite_value);
AzureIoTClient 28:add19eb7defa 17939 }
AzureIoTClient 28:add19eb7defa 17940
AzureIoTClient 28:add19eb7defa 17941 return result;
Azure.IoT Build 0:6ae2f7bca550 17942 }
Azure.IoT Build 0:6ae2f7bca550 17943
Azure.IoT Build 0:6ae2f7bca550 17944 bool is_modified_type_by_descriptor(AMQP_VALUE descriptor)
Azure.IoT Build 0:6ae2f7bca550 17945 {
AzureIoTClient 28:add19eb7defa 17946 bool result;
AzureIoTClient 28:add19eb7defa 17947
AzureIoTClient 28:add19eb7defa 17948 uint64_t descriptor_ulong;
AzureIoTClient 28:add19eb7defa 17949 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
AzureIoTClient 28:add19eb7defa 17950 (descriptor_ulong == 39))
AzureIoTClient 28:add19eb7defa 17951 {
AzureIoTClient 28:add19eb7defa 17952 result = true;
AzureIoTClient 28:add19eb7defa 17953 }
AzureIoTClient 28:add19eb7defa 17954 else
AzureIoTClient 28:add19eb7defa 17955 {
AzureIoTClient 28:add19eb7defa 17956 result = false;
AzureIoTClient 28:add19eb7defa 17957 }
AzureIoTClient 28:add19eb7defa 17958
AzureIoTClient 28:add19eb7defa 17959 return result;
Azure.IoT Build 0:6ae2f7bca550 17960 }
Azure.IoT Build 0:6ae2f7bca550 17961
Azure.IoT Build 0:6ae2f7bca550 17962
Azure.IoT Build 0:6ae2f7bca550 17963 int amqpvalue_get_modified(AMQP_VALUE value, MODIFIED_HANDLE* modified_handle)
Azure.IoT Build 0:6ae2f7bca550 17964 {
AzureIoTClient 28:add19eb7defa 17965 int result;
AzureIoTClient 28:add19eb7defa 17966 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified_create_internal();
AzureIoTClient 28:add19eb7defa 17967 *modified_handle = modified_instance;
AzureIoTClient 28:add19eb7defa 17968 if (*modified_handle == NULL)
AzureIoTClient 28:add19eb7defa 17969 {
AzureIoTClient 28:add19eb7defa 17970 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17971 }
AzureIoTClient 28:add19eb7defa 17972 else
AzureIoTClient 28:add19eb7defa 17973 {
AzureIoTClient 28:add19eb7defa 17974 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
AzureIoTClient 28:add19eb7defa 17975 if (list_value == NULL)
AzureIoTClient 28:add19eb7defa 17976 {
AzureIoTClient 28:add19eb7defa 17977 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 17978 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 17979 }
AzureIoTClient 28:add19eb7defa 17980 else
AzureIoTClient 28:add19eb7defa 17981 {
AzureIoTClient 23:1111ee8bcba4 17982 uint32_t list_item_count;
AzureIoTClient 23:1111ee8bcba4 17983 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 17984 {
AzureIoTClient 23:1111ee8bcba4 17985 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 17986 }
AzureIoTClient 23:1111ee8bcba4 17987 else
AzureIoTClient 23:1111ee8bcba4 17988 {
AzureIoTClient 28:add19eb7defa 17989 do
AzureIoTClient 28:add19eb7defa 17990 {
AzureIoTClient 28:add19eb7defa 17991 AMQP_VALUE item_value;
AzureIoTClient 28:add19eb7defa 17992 /* delivery-failed */
AzureIoTClient 28:add19eb7defa 17993 if (list_item_count > 0)
AzureIoTClient 23:1111ee8bcba4 17994 {
AzureIoTClient 23:1111ee8bcba4 17995 item_value = amqpvalue_get_list_item(list_value, 0);
AzureIoTClient 28:add19eb7defa 17996 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 17997 {
AzureIoTClient 28:add19eb7defa 17998 /* do nothing */
AzureIoTClient 28:add19eb7defa 17999 }
AzureIoTClient 28:add19eb7defa 18000 else
AzureIoTClient 28:add19eb7defa 18001 {
AzureIoTClient 28:add19eb7defa 18002 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18003 {
AzureIoTClient 28:add19eb7defa 18004 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18005 }
AzureIoTClient 28:add19eb7defa 18006 else
AzureIoTClient 28:add19eb7defa 18007 {
AzureIoTClient 28:add19eb7defa 18008 bool delivery_failed;
AzureIoTClient 28:add19eb7defa 18009 if (amqpvalue_get_boolean(item_value, &delivery_failed) != 0)
AzureIoTClient 28:add19eb7defa 18010 {
AzureIoTClient 28:add19eb7defa 18011 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18012 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18013 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18014 break;
AzureIoTClient 28:add19eb7defa 18015 }
AzureIoTClient 28:add19eb7defa 18016 }
AzureIoTClient 28:add19eb7defa 18017
AzureIoTClient 28:add19eb7defa 18018 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18019 }
AzureIoTClient 28:add19eb7defa 18020 }
AzureIoTClient 28:add19eb7defa 18021 /* undeliverable-here */
AzureIoTClient 28:add19eb7defa 18022 if (list_item_count > 1)
AzureIoTClient 23:1111ee8bcba4 18023 {
AzureIoTClient 23:1111ee8bcba4 18024 item_value = amqpvalue_get_list_item(list_value, 1);
AzureIoTClient 28:add19eb7defa 18025 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18026 {
AzureIoTClient 28:add19eb7defa 18027 /* do nothing */
AzureIoTClient 28:add19eb7defa 18028 }
AzureIoTClient 28:add19eb7defa 18029 else
AzureIoTClient 28:add19eb7defa 18030 {
AzureIoTClient 28:add19eb7defa 18031 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18032 {
AzureIoTClient 28:add19eb7defa 18033 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18034 }
AzureIoTClient 28:add19eb7defa 18035 else
AzureIoTClient 28:add19eb7defa 18036 {
AzureIoTClient 28:add19eb7defa 18037 bool undeliverable_here;
AzureIoTClient 28:add19eb7defa 18038 if (amqpvalue_get_boolean(item_value, &undeliverable_here) != 0)
AzureIoTClient 28:add19eb7defa 18039 {
AzureIoTClient 28:add19eb7defa 18040 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18041 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18042 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18043 break;
AzureIoTClient 28:add19eb7defa 18044 }
AzureIoTClient 28:add19eb7defa 18045 }
AzureIoTClient 28:add19eb7defa 18046
AzureIoTClient 28:add19eb7defa 18047 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18048 }
AzureIoTClient 28:add19eb7defa 18049 }
AzureIoTClient 28:add19eb7defa 18050 /* message-annotations */
AzureIoTClient 28:add19eb7defa 18051 if (list_item_count > 2)
AzureIoTClient 23:1111ee8bcba4 18052 {
AzureIoTClient 23:1111ee8bcba4 18053 item_value = amqpvalue_get_list_item(list_value, 2);
AzureIoTClient 28:add19eb7defa 18054 if (item_value == NULL)
AzureIoTClient 28:add19eb7defa 18055 {
AzureIoTClient 28:add19eb7defa 18056 /* do nothing */
AzureIoTClient 28:add19eb7defa 18057 }
AzureIoTClient 28:add19eb7defa 18058 else
AzureIoTClient 28:add19eb7defa 18059 {
AzureIoTClient 28:add19eb7defa 18060 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
AzureIoTClient 28:add19eb7defa 18061 {
AzureIoTClient 28:add19eb7defa 18062 /* no error, field is not mandatory */
AzureIoTClient 28:add19eb7defa 18063 }
AzureIoTClient 28:add19eb7defa 18064 else
AzureIoTClient 28:add19eb7defa 18065 {
AzureIoTClient 28:add19eb7defa 18066 fields message_annotations;
AzureIoTClient 28:add19eb7defa 18067 if (amqpvalue_get_fields(item_value, &message_annotations) != 0)
AzureIoTClient 28:add19eb7defa 18068 {
AzureIoTClient 28:add19eb7defa 18069 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18070 modified_destroy(*modified_handle);
AzureIoTClient 28:add19eb7defa 18071 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18072 break;
AzureIoTClient 28:add19eb7defa 18073 }
AzureIoTClient 28:add19eb7defa 18074 }
AzureIoTClient 28:add19eb7defa 18075
AzureIoTClient 28:add19eb7defa 18076 amqpvalue_destroy(item_value);
AzureIoTClient 28:add19eb7defa 18077 }
AzureIoTClient 28:add19eb7defa 18078 }
AzureIoTClient 28:add19eb7defa 18079
AzureIoTClient 28:add19eb7defa 18080 modified_instance->composite_value = amqpvalue_clone(value);
AzureIoTClient 28:add19eb7defa 18081
AzureIoTClient 28:add19eb7defa 18082 result = 0;
AzureIoTClient 28:add19eb7defa 18083 } while((void)0,0);
AzureIoTClient 28:add19eb7defa 18084 }
AzureIoTClient 28:add19eb7defa 18085 }
AzureIoTClient 28:add19eb7defa 18086 }
AzureIoTClient 28:add19eb7defa 18087
AzureIoTClient 28:add19eb7defa 18088 return result;
Azure.IoT Build 0:6ae2f7bca550 18089 }
Azure.IoT Build 0:6ae2f7bca550 18090
Azure.IoT Build 0:6ae2f7bca550 18091 int modified_get_delivery_failed(MODIFIED_HANDLE modified, bool* delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 18092 {
AzureIoTClient 28:add19eb7defa 18093 int result;
AzureIoTClient 28:add19eb7defa 18094
AzureIoTClient 28:add19eb7defa 18095 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18096 {
AzureIoTClient 28:add19eb7defa 18097 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18098 }
AzureIoTClient 28:add19eb7defa 18099 else
AzureIoTClient 28:add19eb7defa 18100 {
AzureIoTClient 28:add19eb7defa 18101 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18102 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18103 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18104 {
AzureIoTClient 23:1111ee8bcba4 18105 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18106 }
AzureIoTClient 23:1111ee8bcba4 18107 else
AzureIoTClient 23:1111ee8bcba4 18108 {
AzureIoTClient 23:1111ee8bcba4 18109 if (item_count <= 0)
AzureIoTClient 23:1111ee8bcba4 18110 {
AzureIoTClient 28:add19eb7defa 18111 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18112 }
AzureIoTClient 28:add19eb7defa 18113 else
AzureIoTClient 28:add19eb7defa 18114 {
AzureIoTClient 28:add19eb7defa 18115 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 0);
AzureIoTClient 28:add19eb7defa 18116 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18117 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18118 {
AzureIoTClient 28:add19eb7defa 18119 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18120 }
AzureIoTClient 28:add19eb7defa 18121 else
AzureIoTClient 28:add19eb7defa 18122 {
AzureIoTClient 28:add19eb7defa 18123 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18124 if ((get_single_value_result = amqpvalue_get_boolean(item_value, delivery_failed_value)) != 0)
AzureIoTClient 28:add19eb7defa 18125 {
AzureIoTClient 28:add19eb7defa 18126 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18127 }
AzureIoTClient 28:add19eb7defa 18128 else
AzureIoTClient 28:add19eb7defa 18129 {
AzureIoTClient 28:add19eb7defa 18130 result = 0;
AzureIoTClient 28:add19eb7defa 18131 }
AzureIoTClient 28:add19eb7defa 18132 }
AzureIoTClient 28:add19eb7defa 18133 }
AzureIoTClient 28:add19eb7defa 18134 }
AzureIoTClient 28:add19eb7defa 18135 }
AzureIoTClient 28:add19eb7defa 18136
AzureIoTClient 28:add19eb7defa 18137 return result;
Azure.IoT Build 0:6ae2f7bca550 18138 }
Azure.IoT Build 0:6ae2f7bca550 18139
Azure.IoT Build 0:6ae2f7bca550 18140 int modified_set_delivery_failed(MODIFIED_HANDLE modified, bool delivery_failed_value)
Azure.IoT Build 0:6ae2f7bca550 18141 {
AzureIoTClient 28:add19eb7defa 18142 int result;
AzureIoTClient 28:add19eb7defa 18143
AzureIoTClient 28:add19eb7defa 18144 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18145 {
AzureIoTClient 28:add19eb7defa 18146 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18147 }
AzureIoTClient 28:add19eb7defa 18148 else
AzureIoTClient 28:add19eb7defa 18149 {
AzureIoTClient 28:add19eb7defa 18150 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18151 AMQP_VALUE delivery_failed_amqp_value = amqpvalue_create_boolean(delivery_failed_value);
AzureIoTClient 28:add19eb7defa 18152 if (delivery_failed_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18153 {
AzureIoTClient 28:add19eb7defa 18154 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18155 }
AzureIoTClient 28:add19eb7defa 18156 else
AzureIoTClient 28:add19eb7defa 18157 {
AzureIoTClient 28:add19eb7defa 18158 if (amqpvalue_set_composite_item(modified_instance->composite_value, 0, delivery_failed_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18159 {
AzureIoTClient 28:add19eb7defa 18160 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18161 }
AzureIoTClient 28:add19eb7defa 18162 else
AzureIoTClient 28:add19eb7defa 18163 {
AzureIoTClient 28:add19eb7defa 18164 result = 0;
AzureIoTClient 28:add19eb7defa 18165 }
AzureIoTClient 28:add19eb7defa 18166
AzureIoTClient 28:add19eb7defa 18167 amqpvalue_destroy(delivery_failed_amqp_value);
AzureIoTClient 28:add19eb7defa 18168 }
AzureIoTClient 28:add19eb7defa 18169 }
AzureIoTClient 28:add19eb7defa 18170
AzureIoTClient 28:add19eb7defa 18171 return result;
Azure.IoT Build 0:6ae2f7bca550 18172 }
Azure.IoT Build 0:6ae2f7bca550 18173
Azure.IoT Build 0:6ae2f7bca550 18174 int modified_get_undeliverable_here(MODIFIED_HANDLE modified, bool* undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 18175 {
AzureIoTClient 28:add19eb7defa 18176 int result;
AzureIoTClient 28:add19eb7defa 18177
AzureIoTClient 28:add19eb7defa 18178 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18179 {
AzureIoTClient 28:add19eb7defa 18180 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18181 }
AzureIoTClient 28:add19eb7defa 18182 else
AzureIoTClient 28:add19eb7defa 18183 {
AzureIoTClient 28:add19eb7defa 18184 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18185 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18186 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18187 {
AzureIoTClient 23:1111ee8bcba4 18188 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18189 }
AzureIoTClient 23:1111ee8bcba4 18190 else
AzureIoTClient 23:1111ee8bcba4 18191 {
AzureIoTClient 23:1111ee8bcba4 18192 if (item_count <= 1)
AzureIoTClient 23:1111ee8bcba4 18193 {
AzureIoTClient 28:add19eb7defa 18194 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18195 }
AzureIoTClient 28:add19eb7defa 18196 else
AzureIoTClient 28:add19eb7defa 18197 {
AzureIoTClient 28:add19eb7defa 18198 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 1);
AzureIoTClient 28:add19eb7defa 18199 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18200 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18201 {
AzureIoTClient 28:add19eb7defa 18202 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18203 }
AzureIoTClient 28:add19eb7defa 18204 else
AzureIoTClient 28:add19eb7defa 18205 {
AzureIoTClient 28:add19eb7defa 18206 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18207 if ((get_single_value_result = amqpvalue_get_boolean(item_value, undeliverable_here_value)) != 0)
AzureIoTClient 28:add19eb7defa 18208 {
AzureIoTClient 28:add19eb7defa 18209 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18210 }
AzureIoTClient 28:add19eb7defa 18211 else
AzureIoTClient 28:add19eb7defa 18212 {
AzureIoTClient 28:add19eb7defa 18213 result = 0;
AzureIoTClient 28:add19eb7defa 18214 }
AzureIoTClient 28:add19eb7defa 18215 }
AzureIoTClient 28:add19eb7defa 18216 }
AzureIoTClient 28:add19eb7defa 18217 }
AzureIoTClient 28:add19eb7defa 18218 }
AzureIoTClient 28:add19eb7defa 18219
AzureIoTClient 28:add19eb7defa 18220 return result;
Azure.IoT Build 0:6ae2f7bca550 18221 }
Azure.IoT Build 0:6ae2f7bca550 18222
Azure.IoT Build 0:6ae2f7bca550 18223 int modified_set_undeliverable_here(MODIFIED_HANDLE modified, bool undeliverable_here_value)
Azure.IoT Build 0:6ae2f7bca550 18224 {
AzureIoTClient 28:add19eb7defa 18225 int result;
AzureIoTClient 28:add19eb7defa 18226
AzureIoTClient 28:add19eb7defa 18227 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18228 {
AzureIoTClient 28:add19eb7defa 18229 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18230 }
AzureIoTClient 28:add19eb7defa 18231 else
AzureIoTClient 28:add19eb7defa 18232 {
AzureIoTClient 28:add19eb7defa 18233 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18234 AMQP_VALUE undeliverable_here_amqp_value = amqpvalue_create_boolean(undeliverable_here_value);
AzureIoTClient 28:add19eb7defa 18235 if (undeliverable_here_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18236 {
AzureIoTClient 28:add19eb7defa 18237 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18238 }
AzureIoTClient 28:add19eb7defa 18239 else
AzureIoTClient 28:add19eb7defa 18240 {
AzureIoTClient 28:add19eb7defa 18241 if (amqpvalue_set_composite_item(modified_instance->composite_value, 1, undeliverable_here_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18242 {
AzureIoTClient 28:add19eb7defa 18243 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18244 }
AzureIoTClient 28:add19eb7defa 18245 else
AzureIoTClient 28:add19eb7defa 18246 {
AzureIoTClient 28:add19eb7defa 18247 result = 0;
AzureIoTClient 28:add19eb7defa 18248 }
AzureIoTClient 28:add19eb7defa 18249
AzureIoTClient 28:add19eb7defa 18250 amqpvalue_destroy(undeliverable_here_amqp_value);
AzureIoTClient 28:add19eb7defa 18251 }
AzureIoTClient 28:add19eb7defa 18252 }
AzureIoTClient 28:add19eb7defa 18253
AzureIoTClient 28:add19eb7defa 18254 return result;
Azure.IoT Build 0:6ae2f7bca550 18255 }
Azure.IoT Build 0:6ae2f7bca550 18256
Azure.IoT Build 0:6ae2f7bca550 18257 int modified_get_message_annotations(MODIFIED_HANDLE modified, fields* message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 18258 {
AzureIoTClient 28:add19eb7defa 18259 int result;
AzureIoTClient 28:add19eb7defa 18260
AzureIoTClient 28:add19eb7defa 18261 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18262 {
AzureIoTClient 28:add19eb7defa 18263 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18264 }
AzureIoTClient 28:add19eb7defa 18265 else
AzureIoTClient 28:add19eb7defa 18266 {
AzureIoTClient 28:add19eb7defa 18267 uint32_t item_count;
AzureIoTClient 28:add19eb7defa 18268 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 23:1111ee8bcba4 18269 if (amqpvalue_get_composite_item_count(modified_instance->composite_value, &item_count) != 0)
AzureIoTClient 23:1111ee8bcba4 18270 {
AzureIoTClient 23:1111ee8bcba4 18271 result = __FAILURE__;
AzureIoTClient 23:1111ee8bcba4 18272 }
AzureIoTClient 23:1111ee8bcba4 18273 else
AzureIoTClient 23:1111ee8bcba4 18274 {
AzureIoTClient 23:1111ee8bcba4 18275 if (item_count <= 2)
AzureIoTClient 23:1111ee8bcba4 18276 {
AzureIoTClient 28:add19eb7defa 18277 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18278 }
AzureIoTClient 28:add19eb7defa 18279 else
AzureIoTClient 28:add19eb7defa 18280 {
AzureIoTClient 28:add19eb7defa 18281 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(modified_instance->composite_value, 2);
AzureIoTClient 28:add19eb7defa 18282 if ((item_value == NULL) ||
AzureIoTClient 28:add19eb7defa 18283 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
AzureIoTClient 28:add19eb7defa 18284 {
AzureIoTClient 28:add19eb7defa 18285 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18286 }
AzureIoTClient 28:add19eb7defa 18287 else
AzureIoTClient 28:add19eb7defa 18288 {
AzureIoTClient 28:add19eb7defa 18289 int get_single_value_result;
AzureIoTClient 28:add19eb7defa 18290 if ((get_single_value_result = amqpvalue_get_fields(item_value, message_annotations_value)) != 0)
AzureIoTClient 28:add19eb7defa 18291 {
AzureIoTClient 28:add19eb7defa 18292 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18293 }
AzureIoTClient 28:add19eb7defa 18294 else
AzureIoTClient 28:add19eb7defa 18295 {
AzureIoTClient 28:add19eb7defa 18296 result = 0;
AzureIoTClient 28:add19eb7defa 18297 }
AzureIoTClient 28:add19eb7defa 18298 }
AzureIoTClient 28:add19eb7defa 18299 }
AzureIoTClient 28:add19eb7defa 18300 }
AzureIoTClient 28:add19eb7defa 18301 }
AzureIoTClient 28:add19eb7defa 18302
AzureIoTClient 28:add19eb7defa 18303 return result;
Azure.IoT Build 0:6ae2f7bca550 18304 }
Azure.IoT Build 0:6ae2f7bca550 18305
Azure.IoT Build 0:6ae2f7bca550 18306 int modified_set_message_annotations(MODIFIED_HANDLE modified, fields message_annotations_value)
Azure.IoT Build 0:6ae2f7bca550 18307 {
AzureIoTClient 28:add19eb7defa 18308 int result;
AzureIoTClient 28:add19eb7defa 18309
AzureIoTClient 28:add19eb7defa 18310 if (modified == NULL)
AzureIoTClient 28:add19eb7defa 18311 {
AzureIoTClient 28:add19eb7defa 18312 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18313 }
AzureIoTClient 28:add19eb7defa 18314 else
AzureIoTClient 28:add19eb7defa 18315 {
AzureIoTClient 28:add19eb7defa 18316 MODIFIED_INSTANCE* modified_instance = (MODIFIED_INSTANCE*)modified;
AzureIoTClient 28:add19eb7defa 18317 AMQP_VALUE message_annotations_amqp_value = amqpvalue_create_fields(message_annotations_value);
AzureIoTClient 28:add19eb7defa 18318 if (message_annotations_amqp_value == NULL)
AzureIoTClient 28:add19eb7defa 18319 {
AzureIoTClient 28:add19eb7defa 18320 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18321 }
AzureIoTClient 28:add19eb7defa 18322 else
AzureIoTClient 28:add19eb7defa 18323 {
AzureIoTClient 28:add19eb7defa 18324 if (amqpvalue_set_composite_item(modified_instance->composite_value, 2, message_annotations_amqp_value) != 0)
AzureIoTClient 28:add19eb7defa 18325 {
AzureIoTClient 28:add19eb7defa 18326 result = __FAILURE__;
AzureIoTClient 28:add19eb7defa 18327 }
AzureIoTClient 28:add19eb7defa 18328 else
AzureIoTClient 28:add19eb7defa 18329 {
AzureIoTClient 28:add19eb7defa 18330 result = 0;
AzureIoTClient 28:add19eb7defa 18331 }
AzureIoTClient 28:add19eb7defa 18332
AzureIoTClient 28:add19eb7defa 18333 amqpvalue_destroy(message_annotations_amqp_value);
AzureIoTClient 28:add19eb7defa 18334 }
AzureIoTClient 28:add19eb7defa 18335 }
AzureIoTClient 28:add19eb7defa 18336
AzureIoTClient 28:add19eb7defa 18337 return result;
AzureIoTClient 28:add19eb7defa 18338 }
AzureIoTClient 28:add19eb7defa 18339
AzureIoTClient 28:add19eb7defa 18340