A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Revision:
16:22a72cf8e416
Parent:
0:6ae2f7bca550
Child:
17:923575db8b2d
--- a/amqp_definitions.c	Sun Jan 08 11:12:13 2017 -0800
+++ b/amqp_definitions.c	Fri Jan 13 18:40:42 2017 -0800
@@ -330,7 +330,7 @@
 		{
 			if (amqpvalue_get_symbol(item_value, condition_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -396,7 +396,7 @@
 		{
 			if (amqpvalue_get_string(item_value, description_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -462,7 +462,7 @@
 		{
 			if (amqpvalue_get_fields(item_value, info_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -918,7 +918,7 @@
 		{
 			if (amqpvalue_get_string(item_value, container_id_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -984,7 +984,7 @@
 		{
 			if (amqpvalue_get_string(item_value, hostname_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -1044,13 +1044,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 2);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*max_frame_size_value = 4294967295u;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_uint(item_value, max_frame_size_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *max_frame_size_value = 4294967295u;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -1110,13 +1119,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(open_instance->composite_value, 3);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*channel_max_value = 65535;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_ushort(item_value, channel_max_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *channel_max_value = 65535;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -1182,7 +1200,7 @@
 		{
 			if (amqpvalue_get_milliseconds(item_value, idle_time_out_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -1248,7 +1266,7 @@
 		{
 			if (amqpvalue_get_array(item_value, outgoing_locales_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -1314,7 +1332,7 @@
 		{
 			if (amqpvalue_get_array(item_value, incoming_locales_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -1380,7 +1398,7 @@
 		{
 			if (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -1446,7 +1464,7 @@
 		{
 			if (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -1512,7 +1530,7 @@
 		{
 			if (amqpvalue_get_fields(item_value, properties_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -1910,7 +1928,7 @@
 		{
 			if (amqpvalue_get_ushort(item_value, remote_channel_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -1976,7 +1994,7 @@
 		{
 			if (amqpvalue_get_transfer_number(item_value, next_outgoing_id_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -2042,7 +2060,7 @@
 		{
 			if (amqpvalue_get_uint(item_value, incoming_window_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -2108,7 +2126,7 @@
 		{
 			if (amqpvalue_get_uint(item_value, outgoing_window_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -2168,13 +2186,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(begin_instance->composite_value, 4);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*handle_max_value = 4294967295u;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_handle(item_value, handle_max_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *handle_max_value = 4294967295u;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -2240,7 +2267,7 @@
 		{
 			if (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -2306,7 +2333,7 @@
 		{
 			if (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -2372,7 +2399,7 @@
 		{
 			if (amqpvalue_get_fields(item_value, properties_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -2874,7 +2901,7 @@
 		{
 			if (amqpvalue_get_string(item_value, name_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -2940,7 +2967,7 @@
 		{
 			if (amqpvalue_get_handle(item_value, handle_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -3006,7 +3033,7 @@
 		{
 			if (amqpvalue_get_role(item_value, role_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -3066,13 +3093,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 3);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+            *snd_settle_mode_value = sender_settle_mode_mixed;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_sender_settle_mode(item_value, snd_settle_mode_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+                    *snd_settle_mode_value = sender_settle_mode_mixed;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -3132,13 +3168,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 4);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+            *rcv_settle_mode_value = receiver_settle_mode_first;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+                    *rcv_settle_mode_value = receiver_settle_mode_first;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -3324,7 +3369,7 @@
 		{
 			if (amqpvalue_get_map(item_value, unsettled_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -3384,13 +3429,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(attach_instance->composite_value, 8);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*incomplete_unsettled_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, incomplete_unsettled_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *incomplete_unsettled_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -3456,7 +3510,7 @@
 		{
 			if (amqpvalue_get_sequence_no(item_value, initial_delivery_count_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -3522,7 +3576,7 @@
 		{
 			if (amqpvalue_get_ulong(item_value, max_message_size_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -3588,7 +3642,7 @@
 		{
 			if (amqpvalue_get_array(item_value, offered_capabilities_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -3654,7 +3708,7 @@
 		{
 			if (amqpvalue_get_array(item_value, desired_capabilities_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -3720,7 +3774,7 @@
 		{
 			if (amqpvalue_get_fields(item_value, properties_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4177,7 +4231,7 @@
 		{
 			if (amqpvalue_get_transfer_number(item_value, next_incoming_id_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4243,7 +4297,7 @@
 		{
 			if (amqpvalue_get_uint(item_value, incoming_window_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4309,7 +4363,7 @@
 		{
 			if (amqpvalue_get_transfer_number(item_value, next_outgoing_id_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4375,7 +4429,7 @@
 		{
 			if (amqpvalue_get_uint(item_value, outgoing_window_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4441,7 +4495,7 @@
 		{
 			if (amqpvalue_get_handle(item_value, handle_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4507,7 +4561,7 @@
 		{
 			if (amqpvalue_get_sequence_no(item_value, delivery_count_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4573,7 +4627,7 @@
 		{
 			if (amqpvalue_get_uint(item_value, link_credit_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4639,7 +4693,7 @@
 		{
 			if (amqpvalue_get_uint(item_value, available_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -4699,13 +4753,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 8);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*drain_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, drain_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *drain_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -4765,13 +4828,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(flow_instance->composite_value, 9);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*echo_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, echo_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *echo_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -4837,7 +4909,7 @@
 		{
 			if (amqpvalue_get_fields(item_value, properties_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -5267,7 +5339,7 @@
 		{
 			if (amqpvalue_get_handle(item_value, handle_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -5333,7 +5405,7 @@
 		{
 			if (amqpvalue_get_delivery_number(item_value, delivery_id_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -5399,7 +5471,7 @@
 		{
 			if (amqpvalue_get_delivery_tag(item_value, delivery_tag_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -5465,7 +5537,7 @@
 		{
 			if (amqpvalue_get_message_format(item_value, message_format_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -5531,7 +5603,7 @@
 		{
 			if (amqpvalue_get_boolean(item_value, settled_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -5591,13 +5663,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 5);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*more_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, more_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *more_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -5663,7 +5744,7 @@
 		{
 			if (amqpvalue_get_receiver_settle_mode(item_value, rcv_settle_mode_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -5783,13 +5864,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 8);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*resume_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, resume_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *resume_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -5849,13 +5939,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 9);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*aborted_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, aborted_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *aborted_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -5915,13 +6014,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(transfer_instance->composite_value, 10);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*batchable_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, batchable_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *batchable_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -6254,7 +6362,7 @@
 		{
 			if (amqpvalue_get_role(item_value, role_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -6320,7 +6428,7 @@
 		{
 			if (amqpvalue_get_delivery_number(item_value, first_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -6386,7 +6494,7 @@
 		{
 			if (amqpvalue_get_delivery_number(item_value, last_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -6446,13 +6554,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 3);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*settled_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, settled_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *settled_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -6572,13 +6689,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(disposition_instance->composite_value, 5);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*batchable_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, batchable_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *batchable_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -6851,7 +6977,7 @@
 		{
 			if (amqpvalue_get_handle(item_value, handle_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -6911,13 +7037,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(detach_instance->composite_value, 1);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*closed_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, closed_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *closed_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -6983,7 +7118,7 @@
 		{
 			if (amqpvalue_get_error(item_value, error_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -7200,7 +7335,7 @@
 		{
 			if (amqpvalue_get_error(item_value, error_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -7417,7 +7552,7 @@
 		{
 			if (amqpvalue_get_error(item_value, error_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -7657,7 +7792,7 @@
 		{
 			if (amqpvalue_get_array(item_value, sasl_server_mechanisms_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -7930,7 +8065,7 @@
 		{
 			if (amqpvalue_get_symbol(item_value, mechanism_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -7996,7 +8131,7 @@
 		{
 			if (amqpvalue_get_binary(item_value, initial_response_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -8062,7 +8197,7 @@
 		{
 			if (amqpvalue_get_string(item_value, hostname_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -8293,7 +8428,7 @@
 		{
 			if (amqpvalue_get_binary(item_value, challenge_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -8524,7 +8659,7 @@
 		{
 			if (amqpvalue_get_binary(item_value, response_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -8776,7 +8911,7 @@
 		{
 			if (amqpvalue_get_sasl_code(item_value, code_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -8842,7 +8977,7 @@
 		{
 			if (amqpvalue_get_binary(item_value, additional_data_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -9333,13 +9468,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 1);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+            *durable_value = terminus_durability_none;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_terminus_durability(item_value, durable_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+                    *durable_value = terminus_durability_none;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -9399,13 +9543,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 2);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+            *expiry_policy_value = terminus_expiry_policy_session_end;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+                    *expiry_policy_value = terminus_expiry_policy_session_end;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -9465,13 +9618,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 3);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*timeout_value = 0;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_seconds(item_value, timeout_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *timeout_value = 0;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -9531,13 +9693,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(source_instance->composite_value, 4);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*dynamic_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, dynamic_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *dynamic_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -9603,7 +9774,7 @@
 		{
 			if (amqpvalue_get_node_properties(item_value, dynamic_node_properties_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -9669,7 +9840,7 @@
 		{
 			if (amqpvalue_get_symbol(item_value, distribution_mode_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -9735,7 +9906,7 @@
 		{
 			if (amqpvalue_get_filter_set(item_value, filter_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -9861,7 +10032,7 @@
 		{
 			if (amqpvalue_get_array(item_value, outcomes_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -9927,7 +10098,7 @@
 		{
 			if (amqpvalue_get_array(item_value, capabilities_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -10315,13 +10486,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 1);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+            *durable_value = terminus_durability_none;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_terminus_durability(item_value, durable_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+                    *durable_value = terminus_durability_none;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -10381,13 +10561,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 2);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+            *expiry_policy_value = terminus_expiry_policy_session_end;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_terminus_expiry_policy(item_value, expiry_policy_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+                    *expiry_policy_value = terminus_expiry_policy_session_end;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -10447,13 +10636,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 3);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*timeout_value = 0;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_seconds(item_value, timeout_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *timeout_value = 0;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -10513,13 +10711,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(target_instance->composite_value, 4);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*dynamic_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, dynamic_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *dynamic_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -10585,7 +10792,7 @@
 		{
 			if (amqpvalue_get_node_properties(item_value, dynamic_node_properties_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -10651,7 +10858,7 @@
 		{
 			if (amqpvalue_get_array(item_value, capabilities_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -10988,13 +11195,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 0);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*durable_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, durable_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *durable_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -11054,13 +11270,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 1);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*priority_value = 4;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_ubyte(item_value, priority_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *priority_value = 4;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -11126,7 +11351,7 @@
 		{
 			if (amqpvalue_get_milliseconds(item_value, ttl_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -11186,13 +11411,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 3);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*first_acquirer_value = false;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_boolean(item_value, first_acquirer_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *first_acquirer_value = false;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -11252,13 +11486,22 @@
 		AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(header_instance->composite_value, 4);
 		if (item_value == NULL)
 		{
-			result = __LINE__;
+			*delivery_count_value = 0;
+            result = 0;
 		}
 		else
 		{
 			if (amqpvalue_get_uint(item_value, delivery_count_value) != 0)
 			{
-				result = __LINE__;
+                if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
+                {
+    			    result = __LINE__;
+                }
+                else
+                {
+			        *delivery_count_value = 0;
+                    result = 0;
+                }
 			}
 			else
 			{
@@ -12079,7 +12322,7 @@
 		{
 			if (amqpvalue_get_binary(item_value, user_id_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -12205,7 +12448,7 @@
 		{
 			if (amqpvalue_get_string(item_value, subject_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -12391,7 +12634,7 @@
 		{
 			if (amqpvalue_get_symbol(item_value, content_type_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -12457,7 +12700,7 @@
 		{
 			if (amqpvalue_get_symbol(item_value, content_encoding_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -12523,7 +12766,7 @@
 		{
 			if (amqpvalue_get_timestamp(item_value, absolute_expiry_time_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -12589,7 +12832,7 @@
 		{
 			if (amqpvalue_get_timestamp(item_value, creation_time_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -12655,7 +12898,7 @@
 		{
 			if (amqpvalue_get_string(item_value, group_id_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -12721,7 +12964,7 @@
 		{
 			if (amqpvalue_get_sequence_no(item_value, group_sequence_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -12787,7 +13030,7 @@
 		{
 			if (amqpvalue_get_string(item_value, reply_to_group_id_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -13047,7 +13290,7 @@
 		{
 			if (amqpvalue_get_uint(item_value, section_number_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -13113,7 +13356,7 @@
 		{
 			if (amqpvalue_get_ulong(item_value, section_offset_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -13459,7 +13702,7 @@
 		{
 			if (amqpvalue_get_error(item_value, error_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -13847,7 +14090,7 @@
 		{
 			if (amqpvalue_get_boolean(item_value, delivery_failed_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -13913,7 +14156,7 @@
 		{
 			if (amqpvalue_get_boolean(item_value, undeliverable_here_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{
@@ -13979,7 +14222,7 @@
 		{
 			if (amqpvalue_get_fields(item_value, message_annotations_value) != 0)
 			{
-				result = __LINE__;
+			    result = __LINE__;
 			}
 			else
 			{