Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: uamqp/uamqp_generator/amqp_definitions_c.cs
- Revision:
- 0:f7f1f0d76dd6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uamqp/uamqp_generator/amqp_definitions_c.cs Thu Aug 23 06:52:14 2018 +0000 @@ -0,0 +1,2957 @@ +// ------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version: 15.0.0.0 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +// ------------------------------------------------------------------------------ +namespace amqplib_generator +{ + using System.Linq; + using System.Text; + using System.Collections.Generic; + using amqplib_generator; + using System; + + /// <summary> + /// Class to produce the template output + /// </summary> + + #line 1 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "15.0.0.0")] + public partial class amqp_definitions_c : amqp_definitions_cBase + { +#line hidden + /// <summary> + /// Create the template output + /// </summary> + public virtual string TransformText() + { + this.Write("\r\n"); + + #line 8 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + amqp amqp = Program.LoadAMQPTypes(); + + #line default + #line hidden + this.Write(@" +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +// This file is generated. DO NOT EDIT it manually. +// The generator that produces it is located at /uamqp_generator/uamqp_generator.sln + +#include <stdlib.h> +#include ""azure_c_shared_utility/optimize_size.h"" +#include ""azure_c_shared_utility/gballoc.h"" +#include ""azure_uamqp_c/amqpvalue.h"" +#include ""azure_uamqp_c/amqp_definitions.h"" +#include <stdlib.h> +#include <stdbool.h> + +"); + + #line 21 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + foreach (section section in amqp.Items.Where(item => item is section)) + + #line default + #line hidden + + #line 22 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 23 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + List<type> types = new List<type>(); + + #line default + #line hidden + + #line 24 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + types.AddRange(section.Items.Where(item => item is type).Cast<type>()); + + #line default + #line hidden + + #line 25 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + foreach (type type in types) + + #line default + #line hidden + + #line 26 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 27 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string type_name = type.name.ToLower().Replace('-', '_'); + + #line default + #line hidden + + #line 28 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (type.@class == typeClass.composite) + + #line default + #line hidden + + #line 29 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 30 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + var descriptor = type.Items.Where(item => item is descriptor).First() as descriptor; + + #line default + #line hidden + this.Write("/* "); + + #line 31 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type.name)); + + #line default + #line hidden + this.Write(" */\r\n\r\ntypedef struct "); + + #line 33 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE_TAG\r\n{\r\n AMQP_VALUE composite_value;\r\n} "); + + #line 36 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE;\r\n\r\n"); + + #line 38 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string arg_list = Program.GetMandatoryArgList(type); + + #line default + #line hidden + + #line 39 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + KeyValuePair<field, int>[] mandatory_args = Program.GetMandatoryArgs(type).ToArray(); + + #line default + #line hidden + this.Write("static "); + + #line 40 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE "); + + #line 40 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_create_internal(void)\r\n{\r\n "); + + #line 42 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE* "); + + #line 42 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = ("); + + #line 42 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)malloc(sizeof("); + + #line 42 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE));\r\n if ("); + + #line 43 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance != NULL)\r\n {\r\n "); + + #line 45 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value = NULL;\r\n }\r\n\r\n return "); + + #line 48 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance;\r\n}\r\n\r\n"); + + #line 51 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE "); + + #line 51 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_create("); + + #line 51 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(arg_list)); + + #line default + #line hidden + this.Write(")\r\n{\r\n "); + + #line 53 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE* "); + + #line 53 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = ("); + + #line 53 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)malloc(sizeof("); + + #line 53 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE));\r\n if ("); + + #line 54 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance != NULL)\r\n {\r\n "); + + #line 56 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value = amqpvalue_create_composite_with_ulong_descriptor("); + + #line 56 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(Program.GetDescriptorCode(Program.GetDescriptor(type)))); + + #line default + #line hidden + this.Write(");\r\n if ("); + + #line 57 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value == NULL)\r\n {\r\n free("); + + #line 59 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance);\r\n "); + + #line 60 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = NULL;\r\n }\r\n"); + + #line 62 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (mandatory_args.Count() > 0) + + #line default + #line hidden + + #line 63 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" else\r\n {\r\n"); + + #line 66 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + for (int i = 0; i < mandatory_args.Count(); i++) + + #line default + #line hidden + + #line 67 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 68 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string mandatory_arg_name = mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_'); + + #line default + #line hidden + this.Write(" AMQP_VALUE "); + + #line 69 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_arg_name)); + + #line default + #line hidden + this.Write("_amqp_value;\r\n"); + + #line 70 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" int result = 0;\r\n\r\n"); + + #line 73 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + for (int i = 0; i < mandatory_args.Count(); i++) + + #line default + #line hidden + + #line 74 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 75 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string mandatory_arg_type = Program.GetCType(mandatory_args[i].Key.type.ToLower(), mandatory_args[i].Key.multiple == "true").Replace('-', '_').Replace(':', '_'); + + #line default + #line hidden + + #line 76 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string mandatory_arg_name = mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_'); + + #line default + #line hidden + + #line 77 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (mandatory_args[i].Key.multiple != "true") + + #line default + #line hidden + + #line 78 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" "); + + #line 79 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_arg_name)); + + #line default + #line hidden + this.Write("_amqp_value = amqpvalue_create_"); + + #line 79 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_args[i].Key.type.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("("); + + #line 79 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("_value);\r\n"); + + #line 80 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 81 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 82 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" "); + + #line 83 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_arg_name)); + + #line default + #line hidden + this.Write("_amqp_value = "); + + #line 83 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("_value;\r\n"); + + #line 84 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" if ((result == 0) && (amqpvalue_set_composite_item("); + + #line 85 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value, "); + + #line 85 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_args[i].Value)); + + #line default + #line hidden + this.Write(", "); + + #line 85 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_arg_name)); + + #line default + #line hidden + this.Write("_amqp_value) != 0))\r\n {\r\n result = __FAILURE__;\r\n " + + " }\r\n"); + + #line 89 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write("\r\n"); + + #line 91 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + for (int i = 0; i < mandatory_args.Count(); i++) + + #line default + #line hidden + + #line 92 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 93 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string mandatory_arg_name = mandatory_args[i].Key.name.ToLower().Replace('-', '_').Replace(':', '_'); + + #line default + #line hidden + this.Write(" amqpvalue_destroy("); + + #line 94 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(mandatory_arg_name)); + + #line default + #line hidden + this.Write("_amqp_value);\r\n"); + + #line 95 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n"); + + #line 97 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n\r\n return "); + + #line 100 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance;\r\n}\r\n\r\n"); + + #line 103 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE "); + + #line 103 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_clone("); + + #line 103 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE value)\r\n{\r\n "); + + #line 105 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE* "); + + #line 105 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = ("); + + #line 105 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)malloc(sizeof("); + + #line 105 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE));\r\n if ("); + + #line 106 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance != NULL)\r\n {\r\n "); + + #line 108 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value = amqpvalue_clone((("); + + #line 108 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)value)->composite_value);\r\n if ("); + + #line 109 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value == NULL)\r\n {\r\n free("); + + #line 111 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance);\r\n "); + + #line 112 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = NULL;\r\n }\r\n }\r\n\r\n return "); + + #line 116 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance;\r\n}\r\n\r\nvoid "); + + #line 119 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_destroy("); + + #line 119 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE "); + + #line 119 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(")\r\n{\r\n if ("); + + #line 121 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(" != NULL)\r\n {\r\n "); + + #line 123 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE* "); + + #line 123 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = ("); + + #line 123 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)"); + + #line 123 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(";\r\n amqpvalue_destroy("); + + #line 124 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value);\r\n free("); + + #line 125 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance);\r\n }\r\n}\r\n\r\nAMQP_VALUE amqpvalue_create_"); + + #line 129 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("("); + + #line 129 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE "); + + #line 129 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(")\r\n{\r\n AMQP_VALUE result;\r\n\r\n if ("); + + #line 133 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(" == NULL)\r\n {\r\n result = NULL;\r\n }\r\n else\r\n {\r\n "); + + #line 139 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE* "); + + #line 139 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = ("); + + #line 139 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)"); + + #line 139 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(";\r\n result = amqpvalue_clone("); + + #line 140 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nbool is_"); + + #line 146 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_type_by_descriptor(AMQP_VALUE descriptor)\r\n{\r\n bool result;\r\n\r\n uint64_t d" + + "escriptor_ulong;\r\n if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) ==" + + " 0) &&\r\n (descriptor_ulong == "); + + #line 152 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(Program.GetDescriptorCode(descriptor).ToString())); + + #line default + #line hidden + this.Write("))\r\n {\r\n result = true;\r\n }\r\n else\r\n {\r\n result = false" + + ";\r\n }\r\n\r\n return result;\r\n}\r\n\r\n\r\nint amqpvalue_get_"); + + #line 165 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("(AMQP_VALUE value, "); + + #line 165 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE* "); + + #line 165 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_handle)\r\n{\r\n int result;\r\n "); + + #line 168 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE* "); + + #line 168 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_instance = ("); + + #line 168 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)"); + + #line 168 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_create_internal();\r\n *"); + + #line 169 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_handle = "); + + #line 169 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_instance;\r\n if (*"); + + #line 170 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_handle == NULL)\r\n {\r\n result = __FAILURE__;\r\n }\r\n else\r\n {\r\n " + + " AMQP_VALUE list_value = amqpvalue_get_inplace_described_value(value);\r\n " + + " if (list_value == NULL)\r\n {\r\n "); + + #line 179 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_destroy(*"); + + #line 179 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write(@"_handle); + result = __FAILURE__; + } + else + { + uint32_t list_item_count; + if (amqpvalue_get_list_item_count(list_value, &list_item_count) != 0) + { + result = __FAILURE__; + } + else + { + do + { +"); + + #line 193 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + int k = 0; + + #line default + #line hidden + + #line 194 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + bool first_one = true; + + #line default + #line hidden + + #line 195 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + foreach (field field in type.Items.Where(item => item is field)) + + #line default + #line hidden + + #line 196 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 197 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string field_name = field.name.ToLower().Replace('-', '_'); + + #line default + #line hidden + + #line 198 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string c_type = Program.GetCType(field.type, false).Replace('-', '_').Replace(':', '_'); + + #line default + #line hidden + + #line 199 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + type field_type = Program.GetTypeByName(field.type); + + #line default + #line hidden + + #line 200 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if ((field_type != null) && (field_type.@class == typeClass.composite)) c_type = field_type.name.ToUpper().Replace('-', '_').Replace(':', '_') + "_HANDLE"; + + #line default + #line hidden + + #line 201 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (first_one) + + #line default + #line hidden + + #line 202 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 203 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + first_one = false; + + #line default + #line hidden + this.Write(" AMQP_VALUE item_value;\r\n"); + + #line 205 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" /* "); + + #line 206 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.name)); + + #line default + #line hidden + this.Write(" */\r\n if (list_item_count > "); + + #line 207 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(k)); + + #line default + #line hidden + this.Write(")\r\n {\r\n item_value = amqpvalue_get_list" + + "_item(list_value, "); + + #line 209 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(k)); + + #line default + #line hidden + this.Write(");\r\n if (item_value == NULL)\r\n {\r\n"); + + #line 212 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.mandatory == "true") + + #line default + #line hidden + + #line 213 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" {\r\n "); + + #line 215 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_destroy(*"); + + #line 215 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_handle);\r\n result = __FAILURE__;\r\n " + + " break;\r\n }\r\n"); + + #line 219 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 220 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 221 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" /* do nothing */\r\n"); + + #line 223 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n else\r\n " + + "{\r\n"); + + #line 227 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.type != "*") + + #line default + #line hidden + + #line 228 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" if (amqpvalue_get_type(item_value) == AMQP_TYPE_NULL)" + + "\r\n {\r\n"); + + #line 231 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.mandatory == "true") + + #line default + #line hidden + + #line 232 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" amqpvalue_destroy(item_value);\r\n " + + " "); + + #line 234 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_destroy(*"); + + #line 234 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_handle);\r\n result = __FAILURE__;\r\n " + + " break;\r\n"); + + #line 237 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 238 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 239 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" /* no error, field is not mandatory */\r\n"); + + #line 241 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n else\r\n " + + " {\r\n"); + + #line 245 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.multiple != "true") + + #line default + #line hidden + + #line 246 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" "); + + #line 247 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(c_type)); + + #line default + #line hidden + this.Write(" "); + + #line 247 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write(";\r\n if (amqpvalue_get_"); + + #line 248 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.type.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("(item_value, &"); + + #line 248 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write(") != 0)\r\n"); + + #line 249 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 250 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 251 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" "); + + #line 252 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(c_type)); + + #line default + #line hidden + this.Write(" "); + + #line 252 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write(" = NULL;\r\n AMQP_VALUE "); + + #line 253 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_array;\r\n if (((amqpvalue_get_type(item_value) != " + + "AMQP_TYPE_ARRAY) || (amqpvalue_get_array(item_value, &"); + + #line 254 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_array) != 0)) &&\r\n (amqpvalue_get_"); + + #line 255 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.type.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("(item_value, &"); + + #line 255 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write(") != 0))\r\n"); + + #line 256 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" {\r\n amqpvalue_" + + "destroy(item_value);\r\n "); + + #line 259 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_destroy(*"); + + #line 259 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_handle);\r\n result = __FAILURE__;\r\n " + + " break;\r\n }\r\n"); + + #line 263 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (c_type == "ERROR_HANDLE") + + #line default + #line hidden + + #line 264 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" else\r\n {\r\n " + + " error_destroy("); + + #line 267 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name.ToLower())); + + #line default + #line hidden + this.Write(");\r\n }\r\n"); + + #line 269 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n\r\n"); + + #line 272 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 273 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 274 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 275 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" amqpvalue_destroy(item_value);\r\n " + + " }\r\n }\r\n"); + + #line 279 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.mandatory == "true") + + #line default + #line hidden + + #line 280 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" else\r\n {\r\n result =" + + " __FAILURE__;\r\n }\r\n"); + + #line 285 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 286 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + k++; + + #line default + #line hidden + + #line 287 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write("\r\n "); + + #line 289 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_instance->composite_value = amqpvalue_clone(value);\r\n\r\n resul" + + "t = 0;\r\n } while((void)0,0);\r\n }\r\n }\r\n }\r\n\r\n" + + " return result;\r\n}\r\n\r\n"); + + #line 300 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + int j = 0; + + #line default + #line hidden + + #line 301 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + foreach (field field in type.Items.Where(item => item is field)) + + #line default + #line hidden + + #line 302 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 303 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string field_name = field.name.ToLower().Replace('-', '_'); + + #line default + #line hidden + + #line 304 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string c_type = Program.GetCType(field.type, field.multiple == "true").Replace('-', '_').Replace(':', '_'); + + #line default + #line hidden + + #line 305 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string single_value_c_type = Program.GetCType(field.type, false).Replace('-', '_').Replace(':', '_'); + + #line default + #line hidden + + #line 306 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + type field_type = Program.GetTypeByName(field.type); + + #line default + #line hidden + + #line 307 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if ((field_type != null) && (field_type.@class == typeClass.composite)) c_type = field_type.name.ToUpper().Replace('-', '_').Replace(':', '_') + "_HANDLE"; + + #line default + #line hidden + this.Write("int "); + + #line 308 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_get_"); + + #line 308 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("("); + + #line 308 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE "); + + #line 308 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(", "); + + #line 308 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(c_type)); + + #line default + #line hidden + this.Write("* "); + + #line 308 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value)\r\n{\r\n int result;\r\n\r\n if ("); + + #line 312 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(" == NULL)\r\n {\r\n result = __FAILURE__;\r\n }\r\n else\r\n {\r\n " + + "uint32_t item_count;\r\n "); + + #line 319 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE* "); + + #line 319 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = ("); + + #line 319 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)"); + + #line 319 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(";\r\n if (amqpvalue_get_composite_item_count("); + + #line 320 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value, &item_count) != 0)\r\n {\r\n result = _" + + "_FAILURE__;\r\n }\r\n else\r\n {\r\n if (item_count <= "); + + #line 326 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(j)); + + #line default + #line hidden + this.Write(")\r\n {\r\n"); + + #line 328 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.@default != null) + + #line default + #line hidden + + #line 329 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 330 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if ((field_type != null) && (field_type.@class == typeClass.restricted) && (field_type.Items != null)) + + #line default + #line hidden + + #line 331 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" *"); + + #line 332 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value = "); + + #line 332 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_type.@name.Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("_"); + + #line 332 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.@default.Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write(";\r\n"); + + #line 333 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 334 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 335 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" *"); + + #line 336 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value = "); + + #line 336 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.@default)); + + #line default + #line hidden + this.Write(";\r\n"); + + #line 337 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" result = 0;\r\n"); + + #line 339 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 340 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 341 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" result = __FAILURE__;\r\n"); + + #line 343 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n else\r\n {\r\n AMQP_VALUE item_v" + + "alue = amqpvalue_get_composite_item_in_place("); + + #line 347 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value, "); + + #line 347 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(j)); + + #line default + #line hidden + this.Write(");\r\n if ((item_value == NULL) ||\r\n (amqpvalue_g" + + "et_type(item_value) == AMQP_TYPE_NULL))\r\n {\r\n"); + + #line 351 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.@default != null) + + #line default + #line hidden + + #line 352 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 353 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if ((field_type != null) && (field_type.@class == typeClass.restricted) && (field_type.Items != null)) + + #line default + #line hidden + + #line 354 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" *"); + + #line 355 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value = "); + + #line 355 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_type.@name.Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("_"); + + #line 355 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.@default.Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write(";\r\n"); + + #line 356 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 357 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 358 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" *"); + + #line 359 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value = "); + + #line 359 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.@default)); + + #line default + #line hidden + this.Write(";\r\n"); + + #line 360 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" result = 0;\r\n"); + + #line 362 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 363 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 364 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" result = __FAILURE__;\r\n"); + + #line 366 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n else\r\n {\r\n"); + + #line 370 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.multiple == "true") + + #line default + #line hidden + + #line 371 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" "); + + #line 372 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(single_value_c_type)); + + #line default + #line hidden + this.Write(" "); + + #line 372 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_single_value;\r\n"); + + #line 373 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 374 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.type.Replace('-', '_').Replace(':', '_') == "*") + + #line default + #line hidden + + #line 375 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" *"); + + #line 376 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value = item_value;\r\n result = 0;\r\n"); + + #line 378 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 379 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 380 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 382 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.multiple != "true") + + #line default + #line hidden + + #line 383 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" int get_single_value_result = amqpvalue_get_"); + + #line 384 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.type.Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("(item_value, "); + + #line 384 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value);\r\n if (get_single_value_result != 0)\r\n"); + + #line 385 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 386 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 387 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" int get_single_value_result;\r\n if (amqpval" + + "ue_get_type(item_value) != AMQP_TYPE_ARRAY)\r\n {\r\n " + + " get_single_value_result = amqpvalue_get_"); + + #line 390 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.type.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("(item_value, &"); + + #line 390 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_single_value);\r\n }\r\n else\r\n " + + " {\r\n (void)memset((void*)&"); + + #line 394 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_single_value, 0, sizeof("); + + #line 394 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_single_value));\r\n get_single_value_result = 1;\r\n " + + " }\r\n\r\n if (((amqpvalue_get_type(item_value) != AMQP" + + "_TYPE_ARRAY) || (amqpvalue_get_array(item_value, "); + + #line 398 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value) != 0)) &&\r\n (get_single_value_result != 0))\r\n"); + + #line 400 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" {\r\n"); + + #line 402 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.@default != null) + + #line default + #line hidden + + #line 403 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" if (amqpvalue_get_type(item_value) != AMQP_TYPE_NULL)\r\n " + + " {\r\n result = __FAILURE__;\r\n " + + " }\r\n else\r\n {\r\n" + + ""); + + #line 410 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if ((field_type != null) && (field_type.@class == typeClass.restricted) && (field_type.Items != null)) + + #line default + #line hidden + + #line 411 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" *"); + + #line 412 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value = "); + + #line 412 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_type.@name.Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("_"); + + #line 412 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.@default.Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write(";\r\n"); + + #line 413 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 414 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 415 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" *"); + + #line 416 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value = "); + + #line 416 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.@default)); + + #line default + #line hidden + this.Write(";\r\n"); + + #line 417 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" result = 0;\r\n }\r\n"); + + #line 420 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 421 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 422 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" result = __FAILURE__;\r\n"); + + #line 424 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n else\r\n {\r\n"); + + #line 428 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (field.multiple == "true") + + #line default + #line hidden + + #line 429 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" if (amqpvalue_get_type(item_value) != AMQP_TYPE_ARRAY)\r\n " + + " {\r\n *"); + + #line 432 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value = amqpvalue_create_array();\r\n if (*"); + + #line 433 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write(@"_value == NULL) + { + result = __FAILURE__; + } + else + { + AMQP_VALUE single_amqp_value = amqpvalue_create_"); + + #line 439 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.type.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("("); + + #line 439 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_single_value);\r\n if (single_amqp_value == NULL)\r\n" + + " {\r\n amqpvalue" + + "_destroy(*"); + + #line 442 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value);\r\n result = __FAILURE__;\r\n " + + " }\r\n else\r\n " + + " {\r\n if (amqpvalue_add_array_item" + + "(*"); + + #line 447 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value, single_amqp_value) != 0)\r\n {\r\n " + + " amqpvalue_destroy(*"); + + #line 449 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write(@"_value); + amqpvalue_destroy(single_amqp_value); + result = __FAILURE__; + } + else + { + if (amqpvalue_set_composite_item("); + + #line 455 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value, "); + + #line 455 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(j)); + + #line default + #line hidden + this.Write(", *"); + + #line 455 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value) != 0)\r\n {\r\n " + + " amqpvalue_destroy(*"); + + #line 457 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write(@"_value); + result = __FAILURE__; + } + else + { + result = 0; + } + } + + amqpvalue_destroy(single_amqp_value); + } + amqpvalue_destroy(*"); + + #line 468 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value);\r\n }\r\n }\r\n " + + " else\r\n {\r\n result =" + + " 0;\r\n }\r\n"); + + #line 475 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 476 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 477 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" result = 0;\r\n"); + + #line 479 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n"); + + #line 481 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nin" + + "t "); + + #line 490 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_set_"); + + #line 490 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("("); + + #line 490 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_HANDLE "); + + #line 490 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(", "); + + #line 490 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(c_type)); + + #line default + #line hidden + this.Write(" "); + + #line 490 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value)\r\n{\r\n int result;\r\n\r\n if ("); + + #line 494 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(" == NULL)\r\n {\r\n result = __FAILURE__;\r\n }\r\n else\r\n {\r\n " + + ""); + + #line 500 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE* "); + + #line 500 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance = ("); + + #line 500 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToUpper())); + + #line default + #line hidden + this.Write("_INSTANCE*)"); + + #line 500 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write(";\r\n"); + + #line 501 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (c_type != "AMQP_VALUE") + + #line default + #line hidden + + #line 502 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" AMQP_VALUE "); + + #line 503 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_amqp_value = amqpvalue_create_"); + + #line 503 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field.type.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("("); + + #line 503 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value);\r\n"); + + #line 504 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 505 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 506 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write(" AMQP_VALUE "); + + #line 507 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_amqp_value;\r\n if ("); + + #line 508 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value == NULL)\r\n {\r\n "); + + #line 510 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_amqp_value = NULL;\r\n }\r\n else\r\n {\r\n "); + + #line 514 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_amqp_value = amqpvalue_clone("); + + #line 514 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_value);\r\n }\r\n"); + + #line 516 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write(" if ("); + + #line 517 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_amqp_value == NULL)\r\n {\r\n result = __FAILURE__;\r\n }\r\n " + + " else\r\n {\r\n if (amqpvalue_set_composite_item("); + + #line 523 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name)); + + #line default + #line hidden + this.Write("_instance->composite_value, "); + + #line 523 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(j)); + + #line default + #line hidden + this.Write(", "); + + #line 523 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_amqp_value) != 0)\r\n {\r\n result = __FAILURE__;\r\n " + + " }\r\n else\r\n {\r\n result = 0;\r\n " + + " }\r\n\r\n amqpvalue_destroy("); + + #line 532 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(field_name)); + + #line default + #line hidden + this.Write("_amqp_value);\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n"); + + #line 539 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + j++; + + #line default + #line hidden + + #line 540 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write("\r\n"); + + #line 542 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 543 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else if (type.@class == typeClass.restricted) + + #line default + #line hidden + + #line 544 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 545 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + string c_type = Program.GetCType(type.source, false).Replace('-', '_').Replace(':', '_'); + + #line default + #line hidden + + #line 546 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + bool hasDescriptor = (type.Items != null) && (type.Items.Where(item => item is descriptor).Count() > 0); + + #line default + #line hidden + this.Write("/* "); + + #line 547 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type.name)); + + #line default + #line hidden + this.Write(" */\r\n\r\n"); + + #line 549 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (c_type != "AMQP_VALUE") + + #line default + #line hidden + + #line 550 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 551 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (!hasDescriptor) + + #line default + #line hidden + + #line 552 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write("AMQP_VALUE amqpvalue_create_"); + + #line 553 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("("); + + #line 553 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write(" value)\r\n{\r\n return amqpvalue_create_"); + + #line 555 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type.source.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("(value);\r\n}\r\n"); + + #line 557 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 558 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 559 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write("AMQP_VALUE amqpvalue_create_"); + + #line 560 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("("); + + #line 560 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write(" value)\r\n{\r\n AMQP_VALUE result;\r\n AMQP_VALUE described_value = amqpvalue_cr" + + "eate_"); + + #line 563 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type.source.ToLower().Replace('-', '_').Replace(':', '_'))); + + #line default + #line hidden + this.Write("(value);\r\n if (described_value == NULL)\r\n {\r\n result = NULL;\r\n }\r" + + "\n else\r\n {\r\n AMQP_VALUE descriptor = amqpvalue_create_ulong("); + + #line 570 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(Program.GetDescriptorCode(Program.GetDescriptor(type)))); + + #line default + #line hidden + this.Write(@"); + if (descriptor == NULL) + { + result = NULL; + } + else + { + result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value)); + + amqpvalue_destroy(descriptor); + } + + amqpvalue_destroy(described_value); + } + + return result; +} + +bool is_"); + + #line 588 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_type_by_descriptor(AMQP_VALUE descriptor)\r\n{\r\n bool result;\r\n\r\n uint64_t d" + + "escriptor_ulong;\r\n if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) ==" + + " 0) &&\r\n (descriptor_ulong == "); + + #line 594 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(Program.GetDescriptorCode(Program.GetDescriptor(type)).ToString())); + + #line default + #line hidden + this.Write("))\r\n {\r\n result = true;\r\n }\r\n else\r\n {\r\n result = false" + + ";\r\n }\r\n\r\n return result;\r\n}\r\n"); + + #line 605 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 606 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 607 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 608 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + + #line 609 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + if (!hasDescriptor) + + #line default + #line hidden + + #line 610 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write("AMQP_VALUE amqpvalue_create_"); + + #line 611 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("(AMQP_VALUE value)\r\n{\r\n return amqpvalue_clone(value);\r\n}\r\n"); + + #line 615 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 616 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + else + + #line default + #line hidden + + #line 617 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + { + + #line default + #line hidden + this.Write("AMQP_VALUE amqpvalue_create_"); + + #line 618 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("(AMQP_VALUE value)\r\n{\r\n AMQP_VALUE result;\r\n AMQP_VALUE described_value = a" + + "mqpvalue_clone(value);\r\n if (described_value == NULL)\r\n {\r\n result " + + "= NULL;\r\n }\r\n else\r\n {\r\n AMQP_VALUE descriptor = amqpvalue_creat" + + "e_ulong("); + + #line 628 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(Program.GetDescriptorCode(Program.GetDescriptor(type)))); + + #line default + #line hidden + this.Write(@"); + if (descriptor == NULL) + { + result = NULL; + } + else + { + result = amqpvalue_create_described(amqpvalue_clone(descriptor), amqpvalue_clone(described_value)); + + amqpvalue_destroy(descriptor); + } + + amqpvalue_destroy(described_value); + } + + return result; +} + +bool is_"); + + #line 646 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(type_name.ToLower())); + + #line default + #line hidden + this.Write("_type_by_descriptor(AMQP_VALUE descriptor)\r\n{\r\n bool result;\r\n\r\n uint64_t d" + + "escriptor_ulong;\r\n if ((amqpvalue_get_ulong(descriptor, &descriptor_ulong) ==" + + " 0) &&\r\n (descriptor_ulong == "); + + #line 652 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(Program.GetDescriptorCode(Program.GetDescriptor(type)).ToString())); + + #line default + #line hidden + this.Write("))\r\n {\r\n result = true;\r\n }\r\n else\r\n {\r\n result = false" + + ";\r\n }\r\n\r\n return result;\r\n}\r\n"); + + #line 663 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 664 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + this.Write("\r\n"); + + #line 666 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 667 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + + #line 668 "E:\iot\azure-iot-sdk-c\uamqp\uamqp_generator\amqp_definitions_c.tt" + } + + #line default + #line hidden + return this.GenerationEnvironment.ToString(); + } + } + + #line default + #line hidden + #region Base class + /// <summary> + /// Base class for this transformation + /// </summary> + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "15.0.0.0")] + public class amqp_definitions_cBase + { + #region Fields + private global::System.Text.StringBuilder generationEnvironmentField; + private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField; + private global::System.Collections.Generic.List<int> indentLengthsField; + private string currentIndentField = ""; + private bool endsWithNewline; + private global::System.Collections.Generic.IDictionary<string, object> sessionField; + #endregion + #region Properties + /// <summary> + /// The string builder that generation-time code is using to assemble generated output + /// </summary> + protected System.Text.StringBuilder GenerationEnvironment + { + get + { + if ((this.generationEnvironmentField == null)) + { + this.generationEnvironmentField = new global::System.Text.StringBuilder(); + } + return this.generationEnvironmentField; + } + set + { + this.generationEnvironmentField = value; + } + } + /// <summary> + /// The error collection for the generation process + /// </summary> + public System.CodeDom.Compiler.CompilerErrorCollection Errors + { + get + { + if ((this.errorsField == null)) + { + this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection(); + } + return this.errorsField; + } + } + /// <summary> + /// A list of the lengths of each indent that was added with PushIndent + /// </summary> + private System.Collections.Generic.List<int> indentLengths + { + get + { + if ((this.indentLengthsField == null)) + { + this.indentLengthsField = new global::System.Collections.Generic.List<int>(); + } + return this.indentLengthsField; + } + } + /// <summary> + /// Gets the current indent we use when adding lines to the output + /// </summary> + public string CurrentIndent + { + get + { + return this.currentIndentField; + } + } + /// <summary> + /// Current transformation session + /// </summary> + public virtual global::System.Collections.Generic.IDictionary<string, object> Session + { + get + { + return this.sessionField; + } + set + { + this.sessionField = value; + } + } + #endregion + #region Transform-time helpers + /// <summary> + /// Write text directly into the generated output + /// </summary> + public void Write(string textToAppend) + { + if (string.IsNullOrEmpty(textToAppend)) + { + return; + } + // If we're starting off, or if the previous text ended with a newline, + // we have to append the current indent first. + if (((this.GenerationEnvironment.Length == 0) + || this.endsWithNewline)) + { + this.GenerationEnvironment.Append(this.currentIndentField); + this.endsWithNewline = false; + } + // Check if the current text ends with a newline + if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture)) + { + this.endsWithNewline = true; + } + // This is an optimization. If the current indent is "", then we don't have to do any + // of the more complex stuff further down. + if ((this.currentIndentField.Length == 0)) + { + this.GenerationEnvironment.Append(textToAppend); + return; + } + // Everywhere there is a newline in the text, add an indent after it + textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField)); + // If the text ends with a newline, then we should strip off the indent added at the very end + // because the appropriate indent will be added when the next time Write() is called + if (this.endsWithNewline) + { + this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length)); + } + else + { + this.GenerationEnvironment.Append(textToAppend); + } + } + /// <summary> + /// Write text directly into the generated output + /// </summary> + public void WriteLine(string textToAppend) + { + this.Write(textToAppend); + this.GenerationEnvironment.AppendLine(); + this.endsWithNewline = true; + } + /// <summary> + /// Write formatted text directly into the generated output + /// </summary> + public void Write(string format, params object[] args) + { + this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); + } + /// <summary> + /// Write formatted text directly into the generated output + /// </summary> + public void WriteLine(string format, params object[] args) + { + this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); + } + /// <summary> + /// Raise an error + /// </summary> + public void Error(string message) + { + System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); + error.ErrorText = message; + this.Errors.Add(error); + } + /// <summary> + /// Raise a warning + /// </summary> + public void Warning(string message) + { + System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); + error.ErrorText = message; + error.IsWarning = true; + this.Errors.Add(error); + } + /// <summary> + /// Increase the indent + /// </summary> + public void PushIndent(string indent) + { + if ((indent == null)) + { + throw new global::System.ArgumentNullException("indent"); + } + this.currentIndentField = (this.currentIndentField + indent); + this.indentLengths.Add(indent.Length); + } + /// <summary> + /// Remove the last indent that was added with PushIndent + /// </summary> + public string PopIndent() + { + string returnValue = ""; + if ((this.indentLengths.Count > 0)) + { + int indentLength = this.indentLengths[(this.indentLengths.Count - 1)]; + this.indentLengths.RemoveAt((this.indentLengths.Count - 1)); + if ((indentLength > 0)) + { + returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength)); + this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength)); + } + } + return returnValue; + } + /// <summary> + /// Remove any indentation + /// </summary> + public void ClearIndent() + { + this.indentLengths.Clear(); + this.currentIndentField = ""; + } + #endregion + #region ToString Helpers + /// <summary> + /// Utility class to produce culture-oriented representation of an object as a string. + /// </summary> + public class ToStringInstanceHelper + { + private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; + /// <summary> + /// Gets or sets format provider to be used by ToStringWithCulture method. + /// </summary> + public System.IFormatProvider FormatProvider + { + get + { + return this.formatProviderField ; + } + set + { + if ((value != null)) + { + this.formatProviderField = value; + } + } + } + /// <summary> + /// This is called from the compile/run appdomain to convert objects within an expression block to a string + /// </summary> + public string ToStringWithCulture(object objectToConvert) + { + if ((objectToConvert == null)) + { + throw new global::System.ArgumentNullException("objectToConvert"); + } + System.Type t = objectToConvert.GetType(); + System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] { + typeof(System.IFormatProvider)}); + if ((method == null)) + { + return objectToConvert.ToString(); + } + else + { + return ((string)(method.Invoke(objectToConvert, new object[] { + this.formatProviderField }))); + } + } + } + private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper(); + /// <summary> + /// Helper to produce culture-oriented representation of an object as a string + /// </summary> + public ToStringInstanceHelper ToStringHelper + { + get + { + return this.toStringHelperField; + } + } + #endregion + } + #endregion +}