Xin Zhang / azure-iot-c-sdk-f767zi

Dependents:   samplemqtt

Committer:
XinZhangMS
Date:
Thu Aug 23 06:52:14 2018 +0000
Revision:
0:f7f1f0d76dd6
azure-c-sdk for mbed os supporting NUCLEO_F767ZI

Who changed what in which revision?

UserRevisionLine numberNew contents of line
XinZhangMS 0:f7f1f0d76dd6 1 <#@ template language="C#" #>
XinZhangMS 0:f7f1f0d76dd6 2 <#@ assembly name="System.Core" #>
XinZhangMS 0:f7f1f0d76dd6 3 <#@ import namespace="System.Linq" #>
XinZhangMS 0:f7f1f0d76dd6 4 <#@ import namespace="System.Text" #>
XinZhangMS 0:f7f1f0d76dd6 5 <#@ import namespace="System.Collections.Generic" #>
XinZhangMS 0:f7f1f0d76dd6 6 <#@ import namespace="amqplib_generator" #>
XinZhangMS 0:f7f1f0d76dd6 7
XinZhangMS 0:f7f1f0d76dd6 8 <# amqp amqp = Program.LoadAMQPTypes(); #>
XinZhangMS 0:f7f1f0d76dd6 9
XinZhangMS 0:f7f1f0d76dd6 10 // Copyright (c) Microsoft. All rights reserved.
XinZhangMS 0:f7f1f0d76dd6 11 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
XinZhangMS 0:f7f1f0d76dd6 12
XinZhangMS 0:f7f1f0d76dd6 13 // This file is generated. DO NOT EDIT it manually.
XinZhangMS 0:f7f1f0d76dd6 14 // The generator that produces it is located at /uamqp_generator/uamqp_generator.sln
XinZhangMS 0:f7f1f0d76dd6 15
XinZhangMS 0:f7f1f0d76dd6 16 #include <stdlib.h>
XinZhangMS 0:f7f1f0d76dd6 17 #include "azure_c_shared_utility/optimize_size.h"
XinZhangMS 0:f7f1f0d76dd6 18 #include "azure_c_shared_utility/gballoc.h"
XinZhangMS 0:f7f1f0d76dd6 19 #include "azure_uamqp_c/amqpvalue.h"
XinZhangMS 0:f7f1f0d76dd6 20 #include "azure_uamqp_c/amqp_definitions.h"
XinZhangMS 0:f7f1f0d76dd6 21 #include <stdlib.h>
XinZhangMS 0:f7f1f0d76dd6 22 #include <stdbool.h>
XinZhangMS 0:f7f1f0d76dd6 23
XinZhangMS 0:f7f1f0d76dd6 24 <# foreach (section section in amqp.Items.Where(item => item is section)) #>
XinZhangMS 0:f7f1f0d76dd6 25 <# { #>
XinZhangMS 0:f7f1f0d76dd6 26 <# List<type> types = new List<type>(); #>
XinZhangMS 0:f7f1f0d76dd6 27 <# types.AddRange(section.Items.Where(item => item is type).Cast<type>()); #>
XinZhangMS 0:f7f1f0d76dd6 28 <# foreach (type type in types) #>
XinZhangMS 0:f7f1f0d76dd6 29 <# { #>
XinZhangMS 0:f7f1f0d76dd6 30 <# string type_name = type.name.ToLower().Replace('-', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 31 <# if (type.@class == typeClass.composite) #>
XinZhangMS 0:f7f1f0d76dd6 32 <# { #>
XinZhangMS 0:f7f1f0d76dd6 33 <# var descriptor = type.Items.Where(item => item is descriptor).First() as descriptor; #>
XinZhangMS 0:f7f1f0d76dd6 34 /* <#= type.name #> */
XinZhangMS 0:f7f1f0d76dd6 35
XinZhangMS 0:f7f1f0d76dd6 36 typedef struct <#= type_name.ToUpper() #>_INSTANCE_TAG
XinZhangMS 0:f7f1f0d76dd6 37 {
XinZhangMS 0:f7f1f0d76dd6 38 AMQP_VALUE composite_value;
XinZhangMS 0:f7f1f0d76dd6 39 } <#= type_name.ToUpper() #>_INSTANCE;
XinZhangMS 0:f7f1f0d76dd6 40
XinZhangMS 0:f7f1f0d76dd6 41 <# string arg_list = Program.GetMandatoryArgList(type); #>
XinZhangMS 0:f7f1f0d76dd6 42 <# KeyValuePair<field, int>[] mandatory_args = Program.GetMandatoryArgs(type).ToArray(); #>
XinZhangMS 0:f7f1f0d76dd6 43 static <#= type_name.ToUpper() #>_HANDLE <#= type_name #>_create_internal(void)
XinZhangMS 0:f7f1f0d76dd6 44 {
XinZhangMS 0:f7f1f0d76dd6 45 <#= type_name.ToUpper() #>_INSTANCE* <#= type_name #>_instance = (<#= type_name.ToUpper() #>_INSTANCE*)malloc(sizeof(<#= type_name.ToUpper() #>_INSTANCE));
XinZhangMS 0:f7f1f0d76dd6 46 if (<#= type_name #>_instance != NULL)
XinZhangMS 0:f7f1f0d76dd6 47 {
XinZhangMS 0:f7f1f0d76dd6 48 <#= type_name #>_instance->composite_value = NULL;
XinZhangMS 0:f7f1f0d76dd6 49 }
XinZhangMS 0:f7f1f0d76dd6 50
XinZhangMS 0:f7f1f0d76dd6 51 return <#= type_name #>_instance;
XinZhangMS 0:f7f1f0d76dd6 52 }
XinZhangMS 0:f7f1f0d76dd6 53
XinZhangMS 0:f7f1f0d76dd6 54 <#= type_name.ToUpper() #>_HANDLE <#= type_name #>_create(<#= arg_list #>)
XinZhangMS 0:f7f1f0d76dd6 55 {
XinZhangMS 0:f7f1f0d76dd6 56 <#= type_name.ToUpper() #>_INSTANCE* <#= type_name #>_instance = (<#= type_name.ToUpper() #>_INSTANCE*)malloc(sizeof(<#= type_name.ToUpper() #>_INSTANCE));
XinZhangMS 0:f7f1f0d76dd6 57 if (<#= type_name #>_instance != NULL)
XinZhangMS 0:f7f1f0d76dd6 58 {
XinZhangMS 0:f7f1f0d76dd6 59 <#= type_name #>_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor(<#= Program.GetDescriptorCode(Program.GetDescriptor(type)) #>);
XinZhangMS 0:f7f1f0d76dd6 60 if (<#= type_name #>_instance->composite_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 61 {
XinZhangMS 0:f7f1f0d76dd6 62 free(<#= type_name #>_instance);
XinZhangMS 0:f7f1f0d76dd6 63 <#= type_name #>_instance = NULL;
XinZhangMS 0:f7f1f0d76dd6 64 }
XinZhangMS 0:f7f1f0d76dd6 65 <# if (mandatory_args.Count() > 0) #>
XinZhangMS 0:f7f1f0d76dd6 66 <# { #>
XinZhangMS 0:f7f1f0d76dd6 67 else
XinZhangMS 0:f7f1f0d76dd6 68 {
XinZhangMS 0:f7f1f0d76dd6 69 <# for (int i = 0; i < mandatory_args.Count(); i++) #>
XinZhangMS 0:f7f1f0d76dd6 70 <# { #>
XinZhangMS 0:f7f1f0d76dd6 71 <# string mandatory_arg_name = mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 72 AMQP_VALUE <#= mandatory_arg_name #>_amqp_value;
XinZhangMS 0:f7f1f0d76dd6 73 <# } #>
XinZhangMS 0:f7f1f0d76dd6 74 int result = 0;
XinZhangMS 0:f7f1f0d76dd6 75
XinZhangMS 0:f7f1f0d76dd6 76 <# for (int i = 0; i < mandatory_args.Count(); i++) #>
XinZhangMS 0:f7f1f0d76dd6 77 <# { #>
XinZhangMS 0:f7f1f0d76dd6 78 <# string mandatory_arg_type = Program.GetCType(mandatory_args[i].Key.type.ToLower(), mandatory_args[i].Key.multiple == "true").Replace('-', '_').Replace(':', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 79 <# string mandatory_arg_name = mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 80 <# if (mandatory_args[i].Key.multiple != "true") #>
XinZhangMS 0:f7f1f0d76dd6 81 <# { #>
XinZhangMS 0:f7f1f0d76dd6 82 <#= mandatory_arg_name #>_amqp_value = amqpvalue_create_<#= mandatory_args[i].Key.type.ToLower().Replace('-', '_').Replace(':', '_') #>(<#= mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_') #>_value);
XinZhangMS 0:f7f1f0d76dd6 83 <# } #>
XinZhangMS 0:f7f1f0d76dd6 84 <# else #>
XinZhangMS 0:f7f1f0d76dd6 85 <# { #>
XinZhangMS 0:f7f1f0d76dd6 86 <#= mandatory_arg_name #>_amqp_value = <#= mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_') #>_value;
XinZhangMS 0:f7f1f0d76dd6 87 <# } #>
XinZhangMS 0:f7f1f0d76dd6 88 if ((result == 0) && (amqpvalue_set_composite_item(<#= type_name #>_instance->composite_value, <#= mandatory_args[i].Value #>, <#= mandatory_arg_name #>_amqp_value) != 0))
XinZhangMS 0:f7f1f0d76dd6 89 {
XinZhangMS 0:f7f1f0d76dd6 90 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 91 }
XinZhangMS 0:f7f1f0d76dd6 92 <# } #>
XinZhangMS 0:f7f1f0d76dd6 93
XinZhangMS 0:f7f1f0d76dd6 94 <# for (int i = 0; i < mandatory_args.Count(); i++) #>
XinZhangMS 0:f7f1f0d76dd6 95 <# { #>
XinZhangMS 0:f7f1f0d76dd6 96 <# string mandatory_arg_name = mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 97 amqpvalue_destroy(<#= mandatory_arg_name #>_amqp_value);
XinZhangMS 0:f7f1f0d76dd6 98 <# } #>
XinZhangMS 0:f7f1f0d76dd6 99 }
XinZhangMS 0:f7f1f0d76dd6 100 <# } #>
XinZhangMS 0:f7f1f0d76dd6 101 }
XinZhangMS 0:f7f1f0d76dd6 102
XinZhangMS 0:f7f1f0d76dd6 103 return <#= type_name #>_instance;
XinZhangMS 0:f7f1f0d76dd6 104 }
XinZhangMS 0:f7f1f0d76dd6 105
XinZhangMS 0:f7f1f0d76dd6 106 <#= type_name.ToUpper() #>_HANDLE <#= type_name #>_clone(<#= type_name.ToUpper() #>_HANDLE value)
XinZhangMS 0:f7f1f0d76dd6 107 {
XinZhangMS 0:f7f1f0d76dd6 108 <#= type_name.ToUpper() #>_INSTANCE* <#= type_name #>_instance = (<#= type_name.ToUpper() #>_INSTANCE*)malloc(sizeof(<#= type_name.ToUpper() #>_INSTANCE));
XinZhangMS 0:f7f1f0d76dd6 109 if (<#= type_name #>_instance != NULL)
XinZhangMS 0:f7f1f0d76dd6 110 {
XinZhangMS 0:f7f1f0d76dd6 111 <#= type_name #>_instance->composite_value = amqpvalue_clone(((<#= type_name.ToUpper() #>_INSTANCE*)value)->composite_value);
XinZhangMS 0:f7f1f0d76dd6 112 if (<#= type_name #>_instance->composite_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 113 {
XinZhangMS 0:f7f1f0d76dd6 114 free(<#= type_name #>_instance);
XinZhangMS 0:f7f1f0d76dd6 115 <#= type_name #>_instance = NULL;
XinZhangMS 0:f7f1f0d76dd6 116 }
XinZhangMS 0:f7f1f0d76dd6 117 }
XinZhangMS 0:f7f1f0d76dd6 118
XinZhangMS 0:f7f1f0d76dd6 119 return <#= type_name #>_instance;
XinZhangMS 0:f7f1f0d76dd6 120 }
XinZhangMS 0:f7f1f0d76dd6 121
XinZhangMS 0:f7f1f0d76dd6 122 void <#= type_name #>_destroy(<#= type_name.ToUpper() #>_HANDLE <#= type_name #>)
XinZhangMS 0:f7f1f0d76dd6 123 {
XinZhangMS 0:f7f1f0d76dd6 124 if (<#= type_name #> != NULL)
XinZhangMS 0:f7f1f0d76dd6 125 {
XinZhangMS 0:f7f1f0d76dd6 126 <#= type_name.ToUpper() #>_INSTANCE* <#= type_name #>_instance = (<#= type_name.ToUpper() #>_INSTANCE*)<#= type_name #>;
XinZhangMS 0:f7f1f0d76dd6 127 amqpvalue_destroy(<#= type_name #>_instance->composite_value);
XinZhangMS 0:f7f1f0d76dd6 128 free(<#= type_name #>_instance);
XinZhangMS 0:f7f1f0d76dd6 129 }
XinZhangMS 0:f7f1f0d76dd6 130 }
XinZhangMS 0:f7f1f0d76dd6 131
XinZhangMS 0:f7f1f0d76dd6 132 AMQP_VALUE amqpvalue_create_<#= type_name #>(<#= type_name.ToUpper() #>_HANDLE <#= type_name #>)
XinZhangMS 0:f7f1f0d76dd6 133 {
XinZhangMS 0:f7f1f0d76dd6 134 AMQP_VALUE result;
XinZhangMS 0:f7f1f0d76dd6 135
XinZhangMS 0:f7f1f0d76dd6 136 if (<#= type_name #> == NULL)
XinZhangMS 0:f7f1f0d76dd6 137 {
XinZhangMS 0:f7f1f0d76dd6 138 result = NULL;
XinZhangMS 0:f7f1f0d76dd6 139 }
XinZhangMS 0:f7f1f0d76dd6 140 else
XinZhangMS 0:f7f1f0d76dd6 141 {
XinZhangMS 0:f7f1f0d76dd6 142 <#= type_name.ToUpper() #>_INSTANCE* <#= type_name #>_instance = (<#= type_name.ToUpper() #>_INSTANCE*)<#= type_name #>;
XinZhangMS 0:f7f1f0d76dd6 143 result = amqpvalue_clone(<#= type_name #>_instance->composite_value);
XinZhangMS 0:f7f1f0d76dd6 144 }
XinZhangMS 0:f7f1f0d76dd6 145
XinZhangMS 0:f7f1f0d76dd6 146 return result;
XinZhangMS 0:f7f1f0d76dd6 147 }
XinZhangMS 0:f7f1f0d76dd6 148
XinZhangMS 0:f7f1f0d76dd6 149 bool is_<#= type_name #>_type_by_descriptor(AMQP_VALUE descriptor)
XinZhangMS 0:f7f1f0d76dd6 150 {
XinZhangMS 0:f7f1f0d76dd6 151 bool result;
XinZhangMS 0:f7f1f0d76dd6 152
XinZhangMS 0:f7f1f0d76dd6 153 uint64_t descriptor_ulong;
XinZhangMS 0:f7f1f0d76dd6 154 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
XinZhangMS 0:f7f1f0d76dd6 155 (descriptor_ulong == <#= Program.GetDescriptorCode(descriptor).ToString() #>))
XinZhangMS 0:f7f1f0d76dd6 156 {
XinZhangMS 0:f7f1f0d76dd6 157 result = true;
XinZhangMS 0:f7f1f0d76dd6 158 }
XinZhangMS 0:f7f1f0d76dd6 159 else
XinZhangMS 0:f7f1f0d76dd6 160 {
XinZhangMS 0:f7f1f0d76dd6 161 result = false;
XinZhangMS 0:f7f1f0d76dd6 162 }
XinZhangMS 0:f7f1f0d76dd6 163
XinZhangMS 0:f7f1f0d76dd6 164 return result;
XinZhangMS 0:f7f1f0d76dd6 165 }
XinZhangMS 0:f7f1f0d76dd6 166
XinZhangMS 0:f7f1f0d76dd6 167
XinZhangMS 0:f7f1f0d76dd6 168 int amqpvalue_get_<#= type_name #>(AMQP_VALUE value, <#= type_name.ToUpper() #>_HANDLE* <#= type_name.ToLower() #>_handle)
XinZhangMS 0:f7f1f0d76dd6 169 {
XinZhangMS 0:f7f1f0d76dd6 170 int result;
XinZhangMS 0:f7f1f0d76dd6 171 <#= type_name.ToUpper() #>_INSTANCE* <#= type_name.ToLower() #>_instance = (<#= type_name.ToUpper() #>_INSTANCE*)<#= type_name #>_create_internal();
XinZhangMS 0:f7f1f0d76dd6 172 *<#= type_name.ToLower() #>_handle = <#= type_name.ToLower() #>_instance;
XinZhangMS 0:f7f1f0d76dd6 173 if (*<#= type_name.ToLower() #>_handle == NULL)
XinZhangMS 0:f7f1f0d76dd6 174 {
XinZhangMS 0:f7f1f0d76dd6 175 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 176 }
XinZhangMS 0:f7f1f0d76dd6 177 else
XinZhangMS 0:f7f1f0d76dd6 178 {
XinZhangMS 0:f7f1f0d76dd6 179 AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);
XinZhangMS 0:f7f1f0d76dd6 180 if (list_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 181 {
XinZhangMS 0:f7f1f0d76dd6 182 <#= type_name #>_destroy(*<#= type_name.ToLower() #>_handle);
XinZhangMS 0:f7f1f0d76dd6 183 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 184 }
XinZhangMS 0:f7f1f0d76dd6 185 else
XinZhangMS 0:f7f1f0d76dd6 186 {
XinZhangMS 0:f7f1f0d76dd6 187 uint32_t list_item_count;
XinZhangMS 0:f7f1f0d76dd6 188 if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0)
XinZhangMS 0:f7f1f0d76dd6 189 {
XinZhangMS 0:f7f1f0d76dd6 190 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 191 }
XinZhangMS 0:f7f1f0d76dd6 192 else
XinZhangMS 0:f7f1f0d76dd6 193 {
XinZhangMS 0:f7f1f0d76dd6 194 do
XinZhangMS 0:f7f1f0d76dd6 195 {
XinZhangMS 0:f7f1f0d76dd6 196 <# int k = 0; #>
XinZhangMS 0:f7f1f0d76dd6 197 <# bool first_one = true; #>
XinZhangMS 0:f7f1f0d76dd6 198 <# foreach (field field in type.Items.Where(item => item is field)) #>
XinZhangMS 0:f7f1f0d76dd6 199 <# { #>
XinZhangMS 0:f7f1f0d76dd6 200 <# string field_name = field.name.ToLower().Replace('-', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 201 <# string c_type = Program.GetCType(field.type, false).Replace('-', '_').Replace(':', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 202 <# type field_type = Program.GetTypeByName(field.type); #>
XinZhangMS 0:f7f1f0d76dd6 203 <# if ((field_type != null) && (field_type.@class == typeClass.composite)) c_type = field_type.name.ToUpper().Replace('-', '_').Replace(':', '_') + "_HANDLE"; #>
XinZhangMS 0:f7f1f0d76dd6 204 <# if (first_one) #>
XinZhangMS 0:f7f1f0d76dd6 205 <# { #>
XinZhangMS 0:f7f1f0d76dd6 206 <# first_one = false; #>
XinZhangMS 0:f7f1f0d76dd6 207 AMQP_VALUE item_value;
XinZhangMS 0:f7f1f0d76dd6 208 <# } #>
XinZhangMS 0:f7f1f0d76dd6 209 /* <#= field.name #> */
XinZhangMS 0:f7f1f0d76dd6 210 if (list_item_count > <#= k #>)
XinZhangMS 0:f7f1f0d76dd6 211 {
XinZhangMS 0:f7f1f0d76dd6 212 item_value = amqpvalue_get_list_item(list_value, <#= k #>);
XinZhangMS 0:f7f1f0d76dd6 213 if (item_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 214 {
XinZhangMS 0:f7f1f0d76dd6 215 <# if (field.mandatory == "true") #>
XinZhangMS 0:f7f1f0d76dd6 216 <# { #>
XinZhangMS 0:f7f1f0d76dd6 217 {
XinZhangMS 0:f7f1f0d76dd6 218 <#= type_name #>_destroy(*<#= type_name.ToLower() #>_handle);
XinZhangMS 0:f7f1f0d76dd6 219 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 220 break;
XinZhangMS 0:f7f1f0d76dd6 221 }
XinZhangMS 0:f7f1f0d76dd6 222 <# } #>
XinZhangMS 0:f7f1f0d76dd6 223 <# else #>
XinZhangMS 0:f7f1f0d76dd6 224 <# { #>
XinZhangMS 0:f7f1f0d76dd6 225 /* do nothing */
XinZhangMS 0:f7f1f0d76dd6 226 <# } #>
XinZhangMS 0:f7f1f0d76dd6 227 }
XinZhangMS 0:f7f1f0d76dd6 228 else
XinZhangMS 0:f7f1f0d76dd6 229 {
XinZhangMS 0:f7f1f0d76dd6 230 <# if (field.type != "*") #>
XinZhangMS 0:f7f1f0d76dd6 231 <# { #>
XinZhangMS 0:f7f1f0d76dd6 232 if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)
XinZhangMS 0:f7f1f0d76dd6 233 {
XinZhangMS 0:f7f1f0d76dd6 234 <# if (field.mandatory == "true") #>
XinZhangMS 0:f7f1f0d76dd6 235 <# { #>
XinZhangMS 0:f7f1f0d76dd6 236 amqpvalue_destroy(item_value);
XinZhangMS 0:f7f1f0d76dd6 237 <#= type_name #>_destroy(*<#= type_name.ToLower() #>_handle);
XinZhangMS 0:f7f1f0d76dd6 238 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 239 break;
XinZhangMS 0:f7f1f0d76dd6 240 <# } #>
XinZhangMS 0:f7f1f0d76dd6 241 <# else #>
XinZhangMS 0:f7f1f0d76dd6 242 <# { #>
XinZhangMS 0:f7f1f0d76dd6 243 /* no error, field is not mandatory */
XinZhangMS 0:f7f1f0d76dd6 244 <# } #>
XinZhangMS 0:f7f1f0d76dd6 245 }
XinZhangMS 0:f7f1f0d76dd6 246 else
XinZhangMS 0:f7f1f0d76dd6 247 {
XinZhangMS 0:f7f1f0d76dd6 248 <# if (field.multiple != "true") #>
XinZhangMS 0:f7f1f0d76dd6 249 <# { #>
XinZhangMS 0:f7f1f0d76dd6 250 <#= c_type #> <#= field_name #>;
XinZhangMS 0:f7f1f0d76dd6 251 if (amqpvalue_get_<#= field.type.ToLower().Replace('-', '_').Replace(':', '_') #>(item_value, &<#= field_name #>) != 0)
XinZhangMS 0:f7f1f0d76dd6 252 <# } #>
XinZhangMS 0:f7f1f0d76dd6 253 <# else #>
XinZhangMS 0:f7f1f0d76dd6 254 <# { #>
XinZhangMS 0:f7f1f0d76dd6 255 <#= c_type #> <#= field_name #> = NULL;
XinZhangMS 0:f7f1f0d76dd6 256 AMQP_VALUE <#= field_name #>_array;
XinZhangMS 0:f7f1f0d76dd6 257 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &<#= field_name #>_array) != 0)) &&
XinZhangMS 0:f7f1f0d76dd6 258 (amqpvalue_get_<#= field.type.ToLower().Replace('-', '_').Replace(':', '_') #>(item_value, &<#= field_name #>) != 0))
XinZhangMS 0:f7f1f0d76dd6 259 <# } #>
XinZhangMS 0:f7f1f0d76dd6 260 {
XinZhangMS 0:f7f1f0d76dd6 261 amqpvalue_destroy(item_value);
XinZhangMS 0:f7f1f0d76dd6 262 <#= type_name #>_destroy(*<#= type_name.ToLower() #>_handle);
XinZhangMS 0:f7f1f0d76dd6 263 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 264 break;
XinZhangMS 0:f7f1f0d76dd6 265 }
XinZhangMS 0:f7f1f0d76dd6 266 <# if (c_type == "ERROR_HANDLE") #>
XinZhangMS 0:f7f1f0d76dd6 267 <# { #>
XinZhangMS 0:f7f1f0d76dd6 268 else
XinZhangMS 0:f7f1f0d76dd6 269 {
XinZhangMS 0:f7f1f0d76dd6 270 error_destroy(<#= field_name.ToLower() #>);
XinZhangMS 0:f7f1f0d76dd6 271 }
XinZhangMS 0:f7f1f0d76dd6 272 <# } #>
XinZhangMS 0:f7f1f0d76dd6 273 }
XinZhangMS 0:f7f1f0d76dd6 274
XinZhangMS 0:f7f1f0d76dd6 275 <# } #>
XinZhangMS 0:f7f1f0d76dd6 276 <# else #>
XinZhangMS 0:f7f1f0d76dd6 277 <# { #>
XinZhangMS 0:f7f1f0d76dd6 278 <# } #>
XinZhangMS 0:f7f1f0d76dd6 279 amqpvalue_destroy(item_value);
XinZhangMS 0:f7f1f0d76dd6 280 }
XinZhangMS 0:f7f1f0d76dd6 281 }
XinZhangMS 0:f7f1f0d76dd6 282 <# if (field.mandatory == "true") #>
XinZhangMS 0:f7f1f0d76dd6 283 <# { #>
XinZhangMS 0:f7f1f0d76dd6 284 else
XinZhangMS 0:f7f1f0d76dd6 285 {
XinZhangMS 0:f7f1f0d76dd6 286 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 287 }
XinZhangMS 0:f7f1f0d76dd6 288 <# } #>
XinZhangMS 0:f7f1f0d76dd6 289 <# k++; #>
XinZhangMS 0:f7f1f0d76dd6 290 <# } #>
XinZhangMS 0:f7f1f0d76dd6 291
XinZhangMS 0:f7f1f0d76dd6 292 <#= type_name.ToLower() #>_instance->composite_value = amqpvalue_clone(value);
XinZhangMS 0:f7f1f0d76dd6 293
XinZhangMS 0:f7f1f0d76dd6 294 result = 0;
XinZhangMS 0:f7f1f0d76dd6 295 } while((void)0,0);
XinZhangMS 0:f7f1f0d76dd6 296 }
XinZhangMS 0:f7f1f0d76dd6 297 }
XinZhangMS 0:f7f1f0d76dd6 298 }
XinZhangMS 0:f7f1f0d76dd6 299
XinZhangMS 0:f7f1f0d76dd6 300 return result;
XinZhangMS 0:f7f1f0d76dd6 301 }
XinZhangMS 0:f7f1f0d76dd6 302
XinZhangMS 0:f7f1f0d76dd6 303 <# int j = 0; #>
XinZhangMS 0:f7f1f0d76dd6 304 <# foreach (field field in type.Items.Where(item => item is field)) #>
XinZhangMS 0:f7f1f0d76dd6 305 <# { #>
XinZhangMS 0:f7f1f0d76dd6 306 <# string field_name = field.name.ToLower().Replace('-', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 307 <# string c_type = Program.GetCType(field.type, field.multiple == "true").Replace('-', '_').Replace(':', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 308 <# string single_value_c_type = Program.GetCType(field.type, false).Replace('-', '_').Replace(':', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 309 <# type field_type = Program.GetTypeByName(field.type); #>
XinZhangMS 0:f7f1f0d76dd6 310 <# if ((field_type != null) && (field_type.@class == typeClass.composite)) c_type = field_type.name.ToUpper().Replace('-', '_').Replace(':', '_') + "_HANDLE"; #>
XinZhangMS 0:f7f1f0d76dd6 311 int <#= type_name #>_get_<#= field_name #>(<#= type_name.ToUpper() #>_HANDLE <#= type_name #>, <#= c_type #>* <#= field_name #>_value)
XinZhangMS 0:f7f1f0d76dd6 312 {
XinZhangMS 0:f7f1f0d76dd6 313 int result;
XinZhangMS 0:f7f1f0d76dd6 314
XinZhangMS 0:f7f1f0d76dd6 315 if (<#= type_name #> == NULL)
XinZhangMS 0:f7f1f0d76dd6 316 {
XinZhangMS 0:f7f1f0d76dd6 317 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 318 }
XinZhangMS 0:f7f1f0d76dd6 319 else
XinZhangMS 0:f7f1f0d76dd6 320 {
XinZhangMS 0:f7f1f0d76dd6 321 uint32_t item_count;
XinZhangMS 0:f7f1f0d76dd6 322 <#= type_name.ToUpper() #>_INSTANCE* <#= type_name #>_instance = (<#= type_name.ToUpper() #>_INSTANCE*)<#= type_name #>;
XinZhangMS 0:f7f1f0d76dd6 323 if (amqpvalue_get_composite_item_count(<#= type_name #>_instance->composite_value, &item_count) != 0)
XinZhangMS 0:f7f1f0d76dd6 324 {
XinZhangMS 0:f7f1f0d76dd6 325 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 326 }
XinZhangMS 0:f7f1f0d76dd6 327 else
XinZhangMS 0:f7f1f0d76dd6 328 {
XinZhangMS 0:f7f1f0d76dd6 329 if (item_count <= <#= j #>)
XinZhangMS 0:f7f1f0d76dd6 330 {
XinZhangMS 0:f7f1f0d76dd6 331 <# if (field.@default != null) #>
XinZhangMS 0:f7f1f0d76dd6 332 <# { #>
XinZhangMS 0:f7f1f0d76dd6 333 <# if ((field_type != null) && (field_type.@class == typeClass.restricted) && (field_type.Items != null)) #>
XinZhangMS 0:f7f1f0d76dd6 334 <# { #>
XinZhangMS 0:f7f1f0d76dd6 335 *<#= field_name #>_value = <#= field_type.@name.Replace('-', '_').Replace(':', '_') #>_<#= field.@default.Replace('-', '_').Replace(':', '_') #>;
XinZhangMS 0:f7f1f0d76dd6 336 <# } #>
XinZhangMS 0:f7f1f0d76dd6 337 <# else #>
XinZhangMS 0:f7f1f0d76dd6 338 <# { #>
XinZhangMS 0:f7f1f0d76dd6 339 *<#= field_name #>_value = <#= field.@default #>;
XinZhangMS 0:f7f1f0d76dd6 340 <# } #>
XinZhangMS 0:f7f1f0d76dd6 341 result = 0;
XinZhangMS 0:f7f1f0d76dd6 342 <# } #>
XinZhangMS 0:f7f1f0d76dd6 343 <# else #>
XinZhangMS 0:f7f1f0d76dd6 344 <# { #>
XinZhangMS 0:f7f1f0d76dd6 345 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 346 <# } #>
XinZhangMS 0:f7f1f0d76dd6 347 }
XinZhangMS 0:f7f1f0d76dd6 348 else
XinZhangMS 0:f7f1f0d76dd6 349 {
XinZhangMS 0:f7f1f0d76dd6 350 AMQP_VALUE item_value = amqpvalue_get_composite_item_in_place(<#= type_name #>_instance->composite_value, <#= j #>);
XinZhangMS 0:f7f1f0d76dd6 351 if ((item_value == NULL) ||
XinZhangMS 0:f7f1f0d76dd6 352 (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL))
XinZhangMS 0:f7f1f0d76dd6 353 {
XinZhangMS 0:f7f1f0d76dd6 354 <# if (field.@default != null) #>
XinZhangMS 0:f7f1f0d76dd6 355 <# { #>
XinZhangMS 0:f7f1f0d76dd6 356 <# if ((field_type != null) && (field_type.@class == typeClass.restricted) && (field_type.Items != null)) #>
XinZhangMS 0:f7f1f0d76dd6 357 <# { #>
XinZhangMS 0:f7f1f0d76dd6 358 *<#= field_name #>_value = <#= field_type.@name.Replace('-', '_').Replace(':', '_') #>_<#= field.@default.Replace('-', '_').Replace(':', '_') #>;
XinZhangMS 0:f7f1f0d76dd6 359 <# } #>
XinZhangMS 0:f7f1f0d76dd6 360 <# else #>
XinZhangMS 0:f7f1f0d76dd6 361 <# { #>
XinZhangMS 0:f7f1f0d76dd6 362 *<#= field_name #>_value = <#= field.@default #>;
XinZhangMS 0:f7f1f0d76dd6 363 <# } #>
XinZhangMS 0:f7f1f0d76dd6 364 result = 0;
XinZhangMS 0:f7f1f0d76dd6 365 <# } #>
XinZhangMS 0:f7f1f0d76dd6 366 <# else #>
XinZhangMS 0:f7f1f0d76dd6 367 <# { #>
XinZhangMS 0:f7f1f0d76dd6 368 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 369 <# } #>
XinZhangMS 0:f7f1f0d76dd6 370 }
XinZhangMS 0:f7f1f0d76dd6 371 else
XinZhangMS 0:f7f1f0d76dd6 372 {
XinZhangMS 0:f7f1f0d76dd6 373 <# if (field.multiple == "true") #>
XinZhangMS 0:f7f1f0d76dd6 374 <# { #>
XinZhangMS 0:f7f1f0d76dd6 375 <#= single_value_c_type #> <#= field_name #>_single_value;
XinZhangMS 0:f7f1f0d76dd6 376 <# } #>
XinZhangMS 0:f7f1f0d76dd6 377 <# if (field.type.Replace('-', '_').Replace(':', '_') == "*") #>
XinZhangMS 0:f7f1f0d76dd6 378 <# { #>
XinZhangMS 0:f7f1f0d76dd6 379 *<#= field_name #>_value = item_value;
XinZhangMS 0:f7f1f0d76dd6 380 result = 0;
XinZhangMS 0:f7f1f0d76dd6 381 <# } #>
XinZhangMS 0:f7f1f0d76dd6 382 <# else #>
XinZhangMS 0:f7f1f0d76dd6 383 <# { #>
XinZhangMS 0:f7f1f0d76dd6 384 <# if (field.multiple != "true") #>
XinZhangMS 0:f7f1f0d76dd6 385 <# { #>
XinZhangMS 0:f7f1f0d76dd6 386 int get_single_value_result = amqpvalue_get_<#= field.type.Replace('-', '_').Replace(':', '_') #>(item_value, <#= field_name #>_value);
XinZhangMS 0:f7f1f0d76dd6 387 if (get_single_value_result != 0)
XinZhangMS 0:f7f1f0d76dd6 388 <# } #>
XinZhangMS 0:f7f1f0d76dd6 389 <# else #>
XinZhangMS 0:f7f1f0d76dd6 390 <# { #>
XinZhangMS 0:f7f1f0d76dd6 391 int get_single_value_result;
XinZhangMS 0:f7f1f0d76dd6 392 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
XinZhangMS 0:f7f1f0d76dd6 393 {
XinZhangMS 0:f7f1f0d76dd6 394 get_single_value_result = amqpvalue_get_<#= field.type.ToLower().Replace('-', '_').Replace(':', '_') #>(item_value, &<#= field_name #>_single_value);
XinZhangMS 0:f7f1f0d76dd6 395 }
XinZhangMS 0:f7f1f0d76dd6 396 else
XinZhangMS 0:f7f1f0d76dd6 397 {
XinZhangMS 0:f7f1f0d76dd6 398 (void)memset((void*)&<#= field_name #>_single_value, 0, sizeof(<#= field_name #>_single_value));
XinZhangMS 0:f7f1f0d76dd6 399 get_single_value_result = 1;
XinZhangMS 0:f7f1f0d76dd6 400 }
XinZhangMS 0:f7f1f0d76dd6 401
XinZhangMS 0:f7f1f0d76dd6 402 if (((amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, <#= field_name #>_value) != 0)) &&
XinZhangMS 0:f7f1f0d76dd6 403 (get_single_value_result != 0))
XinZhangMS 0:f7f1f0d76dd6 404 <# } #>
XinZhangMS 0:f7f1f0d76dd6 405 {
XinZhangMS 0:f7f1f0d76dd6 406 <# if (field.@default != null) #>
XinZhangMS 0:f7f1f0d76dd6 407 <# { #>
XinZhangMS 0:f7f1f0d76dd6 408 if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)
XinZhangMS 0:f7f1f0d76dd6 409 {
XinZhangMS 0:f7f1f0d76dd6 410 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 411 }
XinZhangMS 0:f7f1f0d76dd6 412 else
XinZhangMS 0:f7f1f0d76dd6 413 {
XinZhangMS 0:f7f1f0d76dd6 414 <# if ((field_type != null) && (field_type.@class == typeClass.restricted) && (field_type.Items != null)) #>
XinZhangMS 0:f7f1f0d76dd6 415 <# { #>
XinZhangMS 0:f7f1f0d76dd6 416 *<#= field_name #>_value = <#= field_type.@name.Replace('-', '_').Replace(':', '_') #>_<#= field.@default.Replace('-', '_').Replace(':', '_') #>;
XinZhangMS 0:f7f1f0d76dd6 417 <# } #>
XinZhangMS 0:f7f1f0d76dd6 418 <# else #>
XinZhangMS 0:f7f1f0d76dd6 419 <# { #>
XinZhangMS 0:f7f1f0d76dd6 420 *<#= field_name #>_value = <#= field.@default #>;
XinZhangMS 0:f7f1f0d76dd6 421 <# } #>
XinZhangMS 0:f7f1f0d76dd6 422 result = 0;
XinZhangMS 0:f7f1f0d76dd6 423 }
XinZhangMS 0:f7f1f0d76dd6 424 <# } #>
XinZhangMS 0:f7f1f0d76dd6 425 <# else #>
XinZhangMS 0:f7f1f0d76dd6 426 <# { #>
XinZhangMS 0:f7f1f0d76dd6 427 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 428 <# } #>
XinZhangMS 0:f7f1f0d76dd6 429 }
XinZhangMS 0:f7f1f0d76dd6 430 else
XinZhangMS 0:f7f1f0d76dd6 431 {
XinZhangMS 0:f7f1f0d76dd6 432 <# if (field.multiple == "true") #>
XinZhangMS 0:f7f1f0d76dd6 433 <# { #>
XinZhangMS 0:f7f1f0d76dd6 434 if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)
XinZhangMS 0:f7f1f0d76dd6 435 {
XinZhangMS 0:f7f1f0d76dd6 436 *<#= field_name #>_value = amqpvalue_create_array();
XinZhangMS 0:f7f1f0d76dd6 437 if (*<#= field_name #>_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 438 {
XinZhangMS 0:f7f1f0d76dd6 439 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 440 }
XinZhangMS 0:f7f1f0d76dd6 441 else
XinZhangMS 0:f7f1f0d76dd6 442 {
XinZhangMS 0:f7f1f0d76dd6 443 AMQP_VALUE single_amqp_value = amqpvalue_create_<#= field.type.ToLower().Replace('-', '_').Replace(':', '_') #>(<#= field_name #>_single_value);
XinZhangMS 0:f7f1f0d76dd6 444 if (single_amqp_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 445 {
XinZhangMS 0:f7f1f0d76dd6 446 amqpvalue_destroy(*<#= field_name #>_value);
XinZhangMS 0:f7f1f0d76dd6 447 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 448 }
XinZhangMS 0:f7f1f0d76dd6 449 else
XinZhangMS 0:f7f1f0d76dd6 450 {
XinZhangMS 0:f7f1f0d76dd6 451 if (amqpvalue_add_array_item(*<#= field_name #>_value, single_amqp_value) != 0)
XinZhangMS 0:f7f1f0d76dd6 452 {
XinZhangMS 0:f7f1f0d76dd6 453 amqpvalue_destroy(*<#= field_name #>_value);
XinZhangMS 0:f7f1f0d76dd6 454 amqpvalue_destroy(single_amqp_value);
XinZhangMS 0:f7f1f0d76dd6 455 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 456 }
XinZhangMS 0:f7f1f0d76dd6 457 else
XinZhangMS 0:f7f1f0d76dd6 458 {
XinZhangMS 0:f7f1f0d76dd6 459 if (amqpvalue_set_composite_item(<#= type_name #>_instance->composite_value, <#= j #>, *<#= field_name #>_value) != 0)
XinZhangMS 0:f7f1f0d76dd6 460 {
XinZhangMS 0:f7f1f0d76dd6 461 amqpvalue_destroy(*<#= field_name #>_value);
XinZhangMS 0:f7f1f0d76dd6 462 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 463 }
XinZhangMS 0:f7f1f0d76dd6 464 else
XinZhangMS 0:f7f1f0d76dd6 465 {
XinZhangMS 0:f7f1f0d76dd6 466 result = 0;
XinZhangMS 0:f7f1f0d76dd6 467 }
XinZhangMS 0:f7f1f0d76dd6 468 }
XinZhangMS 0:f7f1f0d76dd6 469
XinZhangMS 0:f7f1f0d76dd6 470 amqpvalue_destroy(single_amqp_value);
XinZhangMS 0:f7f1f0d76dd6 471 }
XinZhangMS 0:f7f1f0d76dd6 472 amqpvalue_destroy(*<#= field_name #>_value);
XinZhangMS 0:f7f1f0d76dd6 473 }
XinZhangMS 0:f7f1f0d76dd6 474 }
XinZhangMS 0:f7f1f0d76dd6 475 else
XinZhangMS 0:f7f1f0d76dd6 476 {
XinZhangMS 0:f7f1f0d76dd6 477 result = 0;
XinZhangMS 0:f7f1f0d76dd6 478 }
XinZhangMS 0:f7f1f0d76dd6 479 <# } #>
XinZhangMS 0:f7f1f0d76dd6 480 <# else #>
XinZhangMS 0:f7f1f0d76dd6 481 <# { #>
XinZhangMS 0:f7f1f0d76dd6 482 result = 0;
XinZhangMS 0:f7f1f0d76dd6 483 <# } #>
XinZhangMS 0:f7f1f0d76dd6 484 }
XinZhangMS 0:f7f1f0d76dd6 485 <# } #>
XinZhangMS 0:f7f1f0d76dd6 486 }
XinZhangMS 0:f7f1f0d76dd6 487 }
XinZhangMS 0:f7f1f0d76dd6 488 }
XinZhangMS 0:f7f1f0d76dd6 489 }
XinZhangMS 0:f7f1f0d76dd6 490
XinZhangMS 0:f7f1f0d76dd6 491 return result;
XinZhangMS 0:f7f1f0d76dd6 492 }
XinZhangMS 0:f7f1f0d76dd6 493
XinZhangMS 0:f7f1f0d76dd6 494 int <#= type_name #>_set_<#= field_name #>(<#= type_name.ToUpper() #>_HANDLE <#= type_name #>, <#= c_type #> <#= field_name #>_value)
XinZhangMS 0:f7f1f0d76dd6 495 {
XinZhangMS 0:f7f1f0d76dd6 496 int result;
XinZhangMS 0:f7f1f0d76dd6 497
XinZhangMS 0:f7f1f0d76dd6 498 if (<#= type_name #> == NULL)
XinZhangMS 0:f7f1f0d76dd6 499 {
XinZhangMS 0:f7f1f0d76dd6 500 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 501 }
XinZhangMS 0:f7f1f0d76dd6 502 else
XinZhangMS 0:f7f1f0d76dd6 503 {
XinZhangMS 0:f7f1f0d76dd6 504 <#= type_name.ToUpper() #>_INSTANCE* <#= type_name #>_instance = (<#= type_name.ToUpper() #>_INSTANCE*)<#= type_name #>;
XinZhangMS 0:f7f1f0d76dd6 505 <# if (c_type != "AMQP_VALUE") #>
XinZhangMS 0:f7f1f0d76dd6 506 <# { #>
XinZhangMS 0:f7f1f0d76dd6 507 AMQP_VALUE <#= field_name #>_amqp_value = amqpvalue_create_<#= field.type.ToLower().Replace('-', '_').Replace(':', '_') #>(<#= field_name #>_value);
XinZhangMS 0:f7f1f0d76dd6 508 <# } #>
XinZhangMS 0:f7f1f0d76dd6 509 <# else #>
XinZhangMS 0:f7f1f0d76dd6 510 <# { #>
XinZhangMS 0:f7f1f0d76dd6 511 AMQP_VALUE <#= field_name #>_amqp_value;
XinZhangMS 0:f7f1f0d76dd6 512 if (<#= field_name #>_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 513 {
XinZhangMS 0:f7f1f0d76dd6 514 <#= field_name #>_amqp_value = NULL;
XinZhangMS 0:f7f1f0d76dd6 515 }
XinZhangMS 0:f7f1f0d76dd6 516 else
XinZhangMS 0:f7f1f0d76dd6 517 {
XinZhangMS 0:f7f1f0d76dd6 518 <#= field_name #>_amqp_value = amqpvalue_clone(<#= field_name #>_value);
XinZhangMS 0:f7f1f0d76dd6 519 }
XinZhangMS 0:f7f1f0d76dd6 520 <# } #>
XinZhangMS 0:f7f1f0d76dd6 521 if (<#= field_name #>_amqp_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 522 {
XinZhangMS 0:f7f1f0d76dd6 523 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 524 }
XinZhangMS 0:f7f1f0d76dd6 525 else
XinZhangMS 0:f7f1f0d76dd6 526 {
XinZhangMS 0:f7f1f0d76dd6 527 if (amqpvalue_set_composite_item(<#= type_name #>_instance->composite_value, <#= j #>, <#= field_name #>_amqp_value) != 0)
XinZhangMS 0:f7f1f0d76dd6 528 {
XinZhangMS 0:f7f1f0d76dd6 529 result = __FAILURE__;
XinZhangMS 0:f7f1f0d76dd6 530 }
XinZhangMS 0:f7f1f0d76dd6 531 else
XinZhangMS 0:f7f1f0d76dd6 532 {
XinZhangMS 0:f7f1f0d76dd6 533 result = 0;
XinZhangMS 0:f7f1f0d76dd6 534 }
XinZhangMS 0:f7f1f0d76dd6 535
XinZhangMS 0:f7f1f0d76dd6 536 amqpvalue_destroy(<#= field_name #>_amqp_value);
XinZhangMS 0:f7f1f0d76dd6 537 }
XinZhangMS 0:f7f1f0d76dd6 538 }
XinZhangMS 0:f7f1f0d76dd6 539
XinZhangMS 0:f7f1f0d76dd6 540 return result;
XinZhangMS 0:f7f1f0d76dd6 541 }
XinZhangMS 0:f7f1f0d76dd6 542
XinZhangMS 0:f7f1f0d76dd6 543 <# j++; #>
XinZhangMS 0:f7f1f0d76dd6 544 <# } #>
XinZhangMS 0:f7f1f0d76dd6 545
XinZhangMS 0:f7f1f0d76dd6 546 <# } #>
XinZhangMS 0:f7f1f0d76dd6 547 <# else if (type.@class == typeClass.restricted) #>
XinZhangMS 0:f7f1f0d76dd6 548 <# { #>
XinZhangMS 0:f7f1f0d76dd6 549 <# string c_type = Program.GetCType(type.source, false).Replace('-', '_').Replace(':', '_'); #>
XinZhangMS 0:f7f1f0d76dd6 550 <# bool hasDescriptor = (type.Items != null) && (type.Items.Where(item => item is descriptor).Count() > 0); #>
XinZhangMS 0:f7f1f0d76dd6 551 /* <#= type.name #> */
XinZhangMS 0:f7f1f0d76dd6 552
XinZhangMS 0:f7f1f0d76dd6 553 <# if (c_type != "AMQP_VALUE") #>
XinZhangMS 0:f7f1f0d76dd6 554 <# { #>
XinZhangMS 0:f7f1f0d76dd6 555 <# if (!hasDescriptor) #>
XinZhangMS 0:f7f1f0d76dd6 556 <# { #>
XinZhangMS 0:f7f1f0d76dd6 557 AMQP_VALUE amqpvalue_create_<#= type_name.ToLower() #>(<#= type_name.ToLower() #> value)
XinZhangMS 0:f7f1f0d76dd6 558 {
XinZhangMS 0:f7f1f0d76dd6 559 return amqpvalue_create_<#= type.source.ToLower().Replace('-', '_').Replace(':', '_') #>(value);
XinZhangMS 0:f7f1f0d76dd6 560 }
XinZhangMS 0:f7f1f0d76dd6 561 <# } #>
XinZhangMS 0:f7f1f0d76dd6 562 <# else #>
XinZhangMS 0:f7f1f0d76dd6 563 <# { #>
XinZhangMS 0:f7f1f0d76dd6 564 AMQP_VALUE amqpvalue_create_<#= type_name.ToLower() #>(<#= type_name.ToLower() #> value)
XinZhangMS 0:f7f1f0d76dd6 565 {
XinZhangMS 0:f7f1f0d76dd6 566 AMQP_VALUE result;
XinZhangMS 0:f7f1f0d76dd6 567 AMQP_VALUE described_value = amqpvalue_create_<#= type.source.ToLower().Replace('-', '_').Replace(':', '_') #>(value);
XinZhangMS 0:f7f1f0d76dd6 568 if (described_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 569 {
XinZhangMS 0:f7f1f0d76dd6 570 result = NULL;
XinZhangMS 0:f7f1f0d76dd6 571 }
XinZhangMS 0:f7f1f0d76dd6 572 else
XinZhangMS 0:f7f1f0d76dd6 573 {
XinZhangMS 0:f7f1f0d76dd6 574 AMQP_VALUE descriptor = amqpvalue_create_ulong(<#= Program.GetDescriptorCode(Program.GetDescriptor(type)) #>);
XinZhangMS 0:f7f1f0d76dd6 575 if (descriptor == NULL)
XinZhangMS 0:f7f1f0d76dd6 576 {
XinZhangMS 0:f7f1f0d76dd6 577 result = NULL;
XinZhangMS 0:f7f1f0d76dd6 578 }
XinZhangMS 0:f7f1f0d76dd6 579 else
XinZhangMS 0:f7f1f0d76dd6 580 {
XinZhangMS 0:f7f1f0d76dd6 581 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
XinZhangMS 0:f7f1f0d76dd6 582
XinZhangMS 0:f7f1f0d76dd6 583 amqpvalue_destroy(descriptor);
XinZhangMS 0:f7f1f0d76dd6 584 }
XinZhangMS 0:f7f1f0d76dd6 585
XinZhangMS 0:f7f1f0d76dd6 586 amqpvalue_destroy(described_value);
XinZhangMS 0:f7f1f0d76dd6 587 }
XinZhangMS 0:f7f1f0d76dd6 588
XinZhangMS 0:f7f1f0d76dd6 589 return result;
XinZhangMS 0:f7f1f0d76dd6 590 }
XinZhangMS 0:f7f1f0d76dd6 591
XinZhangMS 0:f7f1f0d76dd6 592 bool is_<#= type_name.ToLower() #>_type_by_descriptor(AMQP_VALUE descriptor)
XinZhangMS 0:f7f1f0d76dd6 593 {
XinZhangMS 0:f7f1f0d76dd6 594 bool result;
XinZhangMS 0:f7f1f0d76dd6 595
XinZhangMS 0:f7f1f0d76dd6 596 uint64_t descriptor_ulong;
XinZhangMS 0:f7f1f0d76dd6 597 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
XinZhangMS 0:f7f1f0d76dd6 598 (descriptor_ulong == <#= Program.GetDescriptorCode(Program.GetDescriptor(type)).ToString() #>))
XinZhangMS 0:f7f1f0d76dd6 599 {
XinZhangMS 0:f7f1f0d76dd6 600 result = true;
XinZhangMS 0:f7f1f0d76dd6 601 }
XinZhangMS 0:f7f1f0d76dd6 602 else
XinZhangMS 0:f7f1f0d76dd6 603 {
XinZhangMS 0:f7f1f0d76dd6 604 result = false;
XinZhangMS 0:f7f1f0d76dd6 605 }
XinZhangMS 0:f7f1f0d76dd6 606
XinZhangMS 0:f7f1f0d76dd6 607 return result;
XinZhangMS 0:f7f1f0d76dd6 608 }
XinZhangMS 0:f7f1f0d76dd6 609 <# } #>
XinZhangMS 0:f7f1f0d76dd6 610 <# } #>
XinZhangMS 0:f7f1f0d76dd6 611 <# else #>
XinZhangMS 0:f7f1f0d76dd6 612 <# { #>
XinZhangMS 0:f7f1f0d76dd6 613 <# if (!hasDescriptor) #>
XinZhangMS 0:f7f1f0d76dd6 614 <# { #>
XinZhangMS 0:f7f1f0d76dd6 615 AMQP_VALUE amqpvalue_create_<#= type_name.ToLower() #>(AMQP_VALUE value)
XinZhangMS 0:f7f1f0d76dd6 616 {
XinZhangMS 0:f7f1f0d76dd6 617 return amqpvalue_clone(value);
XinZhangMS 0:f7f1f0d76dd6 618 }
XinZhangMS 0:f7f1f0d76dd6 619 <# } #>
XinZhangMS 0:f7f1f0d76dd6 620 <# else #>
XinZhangMS 0:f7f1f0d76dd6 621 <# { #>
XinZhangMS 0:f7f1f0d76dd6 622 AMQP_VALUE amqpvalue_create_<#= type_name.ToLower() #>(AMQP_VALUE value)
XinZhangMS 0:f7f1f0d76dd6 623 {
XinZhangMS 0:f7f1f0d76dd6 624 AMQP_VALUE result;
XinZhangMS 0:f7f1f0d76dd6 625 AMQP_VALUE described_value = amqpvalue_clone(value);
XinZhangMS 0:f7f1f0d76dd6 626 if (described_value == NULL)
XinZhangMS 0:f7f1f0d76dd6 627 {
XinZhangMS 0:f7f1f0d76dd6 628 result = NULL;
XinZhangMS 0:f7f1f0d76dd6 629 }
XinZhangMS 0:f7f1f0d76dd6 630 else
XinZhangMS 0:f7f1f0d76dd6 631 {
XinZhangMS 0:f7f1f0d76dd6 632 AMQP_VALUE descriptor = amqpvalue_create_ulong(<#= Program.GetDescriptorCode(Program.GetDescriptor(type)) #>);
XinZhangMS 0:f7f1f0d76dd6 633 if (descriptor == NULL)
XinZhangMS 0:f7f1f0d76dd6 634 {
XinZhangMS 0:f7f1f0d76dd6 635 result = NULL;
XinZhangMS 0:f7f1f0d76dd6 636 }
XinZhangMS 0:f7f1f0d76dd6 637 else
XinZhangMS 0:f7f1f0d76dd6 638 {
XinZhangMS 0:f7f1f0d76dd6 639 result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value));
XinZhangMS 0:f7f1f0d76dd6 640
XinZhangMS 0:f7f1f0d76dd6 641 amqpvalue_destroy(descriptor);
XinZhangMS 0:f7f1f0d76dd6 642 }
XinZhangMS 0:f7f1f0d76dd6 643
XinZhangMS 0:f7f1f0d76dd6 644 amqpvalue_destroy(described_value);
XinZhangMS 0:f7f1f0d76dd6 645 }
XinZhangMS 0:f7f1f0d76dd6 646
XinZhangMS 0:f7f1f0d76dd6 647 return result;
XinZhangMS 0:f7f1f0d76dd6 648 }
XinZhangMS 0:f7f1f0d76dd6 649
XinZhangMS 0:f7f1f0d76dd6 650 bool is_<#= type_name.ToLower() #>_type_by_descriptor(AMQP_VALUE descriptor)
XinZhangMS 0:f7f1f0d76dd6 651 {
XinZhangMS 0:f7f1f0d76dd6 652 bool result;
XinZhangMS 0:f7f1f0d76dd6 653
XinZhangMS 0:f7f1f0d76dd6 654 uint64_t descriptor_ulong;
XinZhangMS 0:f7f1f0d76dd6 655 if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) == 0) &&
XinZhangMS 0:f7f1f0d76dd6 656 (descriptor_ulong == <#= Program.GetDescriptorCode(Program.GetDescriptor(type)).ToString() #>))
XinZhangMS 0:f7f1f0d76dd6 657 {
XinZhangMS 0:f7f1f0d76dd6 658 result = true;
XinZhangMS 0:f7f1f0d76dd6 659 }
XinZhangMS 0:f7f1f0d76dd6 660 else
XinZhangMS 0:f7f1f0d76dd6 661 {
XinZhangMS 0:f7f1f0d76dd6 662 result = false;
XinZhangMS 0:f7f1f0d76dd6 663 }
XinZhangMS 0:f7f1f0d76dd6 664
XinZhangMS 0:f7f1f0d76dd6 665 return result;
XinZhangMS 0:f7f1f0d76dd6 666 }
XinZhangMS 0:f7f1f0d76dd6 667 <# } #>
XinZhangMS 0:f7f1f0d76dd6 668 <# } #>
XinZhangMS 0:f7f1f0d76dd6 669
XinZhangMS 0:f7f1f0d76dd6 670 <# } #>
XinZhangMS 0:f7f1f0d76dd6 671 <# } #>
XinZhangMS 0:f7f1f0d76dd6 672 <# } #>