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.
uamqp/uamqp_generator/amqp_definitions_h.cs@0:f7f1f0d76dd6, 2018-08-23 (annotated)
- 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?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| XinZhangMS | 0:f7f1f0d76dd6 | 1 | // ------------------------------------------------------------------------------ |
| XinZhangMS | 0:f7f1f0d76dd6 | 2 | // <auto-generated> |
| XinZhangMS | 0:f7f1f0d76dd6 | 3 | // This code was generated by a tool. |
| XinZhangMS | 0:f7f1f0d76dd6 | 4 | // Runtime Version: 15.0.0.0 |
| XinZhangMS | 0:f7f1f0d76dd6 | 5 | // |
| XinZhangMS | 0:f7f1f0d76dd6 | 6 | // Changes to this file may cause incorrect behavior and will be lost if |
| XinZhangMS | 0:f7f1f0d76dd6 | 7 | // the code is regenerated. |
| XinZhangMS | 0:f7f1f0d76dd6 | 8 | // </auto-generated> |
| XinZhangMS | 0:f7f1f0d76dd6 | 9 | // ------------------------------------------------------------------------------ |
| XinZhangMS | 0:f7f1f0d76dd6 | 10 | namespace amqplib_generator |
| XinZhangMS | 0:f7f1f0d76dd6 | 11 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 12 | using System.Linq; |
| XinZhangMS | 0:f7f1f0d76dd6 | 13 | using System.Text; |
| XinZhangMS | 0:f7f1f0d76dd6 | 14 | using System.Collections.Generic; |
| XinZhangMS | 0:f7f1f0d76dd6 | 15 | using amqplib_generator; |
| XinZhangMS | 0:f7f1f0d76dd6 | 16 | using System; |
| XinZhangMS | 0:f7f1f0d76dd6 | 17 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 18 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 19 | /// Class to produce the template output |
| XinZhangMS | 0:f7f1f0d76dd6 | 20 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 21 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 22 | #line 1 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 23 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "15.0.0.0")] |
| XinZhangMS | 0:f7f1f0d76dd6 | 24 | public partial class amqp_definitions_h : amqp_definitions_hBase |
| XinZhangMS | 0:f7f1f0d76dd6 | 25 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 26 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 27 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 28 | /// Create the template output |
| XinZhangMS | 0:f7f1f0d76dd6 | 29 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 30 | public virtual string TransformText() |
| XinZhangMS | 0:f7f1f0d76dd6 | 31 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 32 | this.Write("\r\n"); |
| XinZhangMS | 0:f7f1f0d76dd6 | 33 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 34 | #line 8 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 35 | amqp amqp = Program.LoadAMQPTypes(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 36 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 37 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 38 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 39 | this.Write(@" |
| XinZhangMS | 0:f7f1f0d76dd6 | 40 | // Copyright (c) Microsoft. All rights reserved. |
| XinZhangMS | 0:f7f1f0d76dd6 | 41 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. |
| XinZhangMS | 0:f7f1f0d76dd6 | 42 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 43 | // This file is generated. DO NOT EDIT it manually. |
| XinZhangMS | 0:f7f1f0d76dd6 | 44 | // The generator that produces it is located at /uamqp_generator/uamqp_generator.sln |
| XinZhangMS | 0:f7f1f0d76dd6 | 45 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 46 | #ifndef AMQP_DEFINITIONS_H |
| XinZhangMS | 0:f7f1f0d76dd6 | 47 | #define AMQP_DEFINITIONS_H |
| XinZhangMS | 0:f7f1f0d76dd6 | 48 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 49 | #ifdef __cplusplus |
| XinZhangMS | 0:f7f1f0d76dd6 | 50 | #include <cstdint> |
| XinZhangMS | 0:f7f1f0d76dd6 | 51 | extern ""C"" { |
| XinZhangMS | 0:f7f1f0d76dd6 | 52 | #else |
| XinZhangMS | 0:f7f1f0d76dd6 | 53 | #include <stdint.h> |
| XinZhangMS | 0:f7f1f0d76dd6 | 54 | #include <stdbool.h> |
| XinZhangMS | 0:f7f1f0d76dd6 | 55 | #endif |
| XinZhangMS | 0:f7f1f0d76dd6 | 56 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 57 | #include ""azure_uamqp_c/amqpvalue.h"" |
| XinZhangMS | 0:f7f1f0d76dd6 | 58 | #include ""azure_c_shared_utility/umock_c_prod.h"" |
| XinZhangMS | 0:f7f1f0d76dd6 | 59 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 60 | "); |
| XinZhangMS | 0:f7f1f0d76dd6 | 61 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 62 | #line 30 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 63 | foreach (section section in amqp.Items.Where(item => item is section)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 64 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 65 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 66 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 67 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 68 | #line 31 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 69 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 70 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 71 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 72 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 73 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 74 | #line 32 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 75 | List<type> types = new List<type>(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 76 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 77 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 78 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 79 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 80 | #line 33 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 81 | types.AddRange(section.Items.Where(item => item is type).Cast<type>()); |
| XinZhangMS | 0:f7f1f0d76dd6 | 82 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 83 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 84 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 85 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 86 | #line 34 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 87 | foreach (type type in types) |
| XinZhangMS | 0:f7f1f0d76dd6 | 88 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 89 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 90 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 91 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 92 | #line 35 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 93 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 94 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 95 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 96 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 97 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 98 | #line 36 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 99 | string type_name = type.name.ToLower().Replace('-', '_'); |
| XinZhangMS | 0:f7f1f0d76dd6 | 100 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 101 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 102 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 103 | this.Write("#include \""); |
| XinZhangMS | 0:f7f1f0d76dd6 | 104 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 105 | #line 37 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 106 | this.Write(this.ToStringHelper.ToStringWithCulture($"azure_uamqp_c/amqp_definitions_{type_name}.h")); |
| XinZhangMS | 0:f7f1f0d76dd6 | 107 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 108 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 109 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 110 | this.Write("\"\r\n"); |
| XinZhangMS | 0:f7f1f0d76dd6 | 111 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 112 | #line 38 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 113 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 114 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 115 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 116 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 117 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 118 | #line 39 "G:\repos\azure-uamqp-c\uamqp_generator\amqp_definitions_h.tt" |
| XinZhangMS | 0:f7f1f0d76dd6 | 119 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 120 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 121 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 122 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 123 | this.Write("\r\n#ifdef __cplusplus\r\n}\r\n#endif\r\n\r\n#endif /* AMQP_DEFINITIONS_H */\r\n"); |
| XinZhangMS | 0:f7f1f0d76dd6 | 124 | return this.GenerationEnvironment.ToString(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 125 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 126 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 127 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 128 | #line default |
| XinZhangMS | 0:f7f1f0d76dd6 | 129 | #line hidden |
| XinZhangMS | 0:f7f1f0d76dd6 | 130 | #region Base class |
| XinZhangMS | 0:f7f1f0d76dd6 | 131 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 132 | /// Base class for this transformation |
| XinZhangMS | 0:f7f1f0d76dd6 | 133 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 134 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "15.0.0.0")] |
| XinZhangMS | 0:f7f1f0d76dd6 | 135 | public class amqp_definitions_hBase |
| XinZhangMS | 0:f7f1f0d76dd6 | 136 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 137 | #region Fields |
| XinZhangMS | 0:f7f1f0d76dd6 | 138 | private global::System.Text.StringBuilder generationEnvironmentField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 139 | private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 140 | private global::System.Collections.Generic.List<int> indentLengthsField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 141 | private string currentIndentField = ""; |
| XinZhangMS | 0:f7f1f0d76dd6 | 142 | private bool endsWithNewline; |
| XinZhangMS | 0:f7f1f0d76dd6 | 143 | private global::System.Collections.Generic.IDictionary<string, object> sessionField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 144 | #endregion |
| XinZhangMS | 0:f7f1f0d76dd6 | 145 | #region Properties |
| XinZhangMS | 0:f7f1f0d76dd6 | 146 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 147 | /// The string builder that generation-time code is using to assemble generated output |
| XinZhangMS | 0:f7f1f0d76dd6 | 148 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 149 | protected System.Text.StringBuilder GenerationEnvironment |
| XinZhangMS | 0:f7f1f0d76dd6 | 150 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 151 | get |
| XinZhangMS | 0:f7f1f0d76dd6 | 152 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 153 | if ((this.generationEnvironmentField == null)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 154 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 155 | this.generationEnvironmentField = new global::System.Text.StringBuilder(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 156 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 157 | return this.generationEnvironmentField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 158 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 159 | set |
| XinZhangMS | 0:f7f1f0d76dd6 | 160 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 161 | this.generationEnvironmentField = value; |
| XinZhangMS | 0:f7f1f0d76dd6 | 162 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 163 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 164 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 165 | /// The error collection for the generation process |
| XinZhangMS | 0:f7f1f0d76dd6 | 166 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 167 | public System.CodeDom.Compiler.CompilerErrorCollection Errors |
| XinZhangMS | 0:f7f1f0d76dd6 | 168 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 169 | get |
| XinZhangMS | 0:f7f1f0d76dd6 | 170 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 171 | if ((this.errorsField == null)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 172 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 173 | this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 174 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 175 | return this.errorsField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 176 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 177 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 178 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 179 | /// A list of the lengths of each indent that was added with PushIndent |
| XinZhangMS | 0:f7f1f0d76dd6 | 180 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 181 | private System.Collections.Generic.List<int> indentLengths |
| XinZhangMS | 0:f7f1f0d76dd6 | 182 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 183 | get |
| XinZhangMS | 0:f7f1f0d76dd6 | 184 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 185 | if ((this.indentLengthsField == null)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 186 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 187 | this.indentLengthsField = new global::System.Collections.Generic.List<int>(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 188 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 189 | return this.indentLengthsField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 190 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 191 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 192 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 193 | /// Gets the current indent we use when adding lines to the output |
| XinZhangMS | 0:f7f1f0d76dd6 | 194 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 195 | public string CurrentIndent |
| XinZhangMS | 0:f7f1f0d76dd6 | 196 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 197 | get |
| XinZhangMS | 0:f7f1f0d76dd6 | 198 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 199 | return this.currentIndentField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 200 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 201 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 202 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 203 | /// Current transformation session |
| XinZhangMS | 0:f7f1f0d76dd6 | 204 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 205 | public virtual global::System.Collections.Generic.IDictionary<string, object> Session |
| XinZhangMS | 0:f7f1f0d76dd6 | 206 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 207 | get |
| XinZhangMS | 0:f7f1f0d76dd6 | 208 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 209 | return this.sessionField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 210 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 211 | set |
| XinZhangMS | 0:f7f1f0d76dd6 | 212 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 213 | this.sessionField = value; |
| XinZhangMS | 0:f7f1f0d76dd6 | 214 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 215 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 216 | #endregion |
| XinZhangMS | 0:f7f1f0d76dd6 | 217 | #region Transform-time helpers |
| XinZhangMS | 0:f7f1f0d76dd6 | 218 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 219 | /// Write text directly into the generated output |
| XinZhangMS | 0:f7f1f0d76dd6 | 220 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 221 | public void Write(string textToAppend) |
| XinZhangMS | 0:f7f1f0d76dd6 | 222 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 223 | if (string.IsNullOrEmpty(textToAppend)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 224 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 225 | return; |
| XinZhangMS | 0:f7f1f0d76dd6 | 226 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 227 | // If we're starting off, or if the previous text ended with a newline, |
| XinZhangMS | 0:f7f1f0d76dd6 | 228 | // we have to append the current indent first. |
| XinZhangMS | 0:f7f1f0d76dd6 | 229 | if (((this.GenerationEnvironment.Length == 0) |
| XinZhangMS | 0:f7f1f0d76dd6 | 230 | || this.endsWithNewline)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 231 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 232 | this.GenerationEnvironment.Append(this.currentIndentField); |
| XinZhangMS | 0:f7f1f0d76dd6 | 233 | this.endsWithNewline = false; |
| XinZhangMS | 0:f7f1f0d76dd6 | 234 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 235 | // Check if the current text ends with a newline |
| XinZhangMS | 0:f7f1f0d76dd6 | 236 | if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 237 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 238 | this.endsWithNewline = true; |
| XinZhangMS | 0:f7f1f0d76dd6 | 239 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 240 | // This is an optimization. If the current indent is "", then we don't have to do any |
| XinZhangMS | 0:f7f1f0d76dd6 | 241 | // of the more complex stuff further down. |
| XinZhangMS | 0:f7f1f0d76dd6 | 242 | if ((this.currentIndentField.Length == 0)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 243 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 244 | this.GenerationEnvironment.Append(textToAppend); |
| XinZhangMS | 0:f7f1f0d76dd6 | 245 | return; |
| XinZhangMS | 0:f7f1f0d76dd6 | 246 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 247 | // Everywhere there is a newline in the text, add an indent after it |
| XinZhangMS | 0:f7f1f0d76dd6 | 248 | textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField)); |
| XinZhangMS | 0:f7f1f0d76dd6 | 249 | // If the text ends with a newline, then we should strip off the indent added at the very end |
| XinZhangMS | 0:f7f1f0d76dd6 | 250 | // because the appropriate indent will be added when the next time Write() is called |
| XinZhangMS | 0:f7f1f0d76dd6 | 251 | if (this.endsWithNewline) |
| XinZhangMS | 0:f7f1f0d76dd6 | 252 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 253 | this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length)); |
| XinZhangMS | 0:f7f1f0d76dd6 | 254 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 255 | else |
| XinZhangMS | 0:f7f1f0d76dd6 | 256 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 257 | this.GenerationEnvironment.Append(textToAppend); |
| XinZhangMS | 0:f7f1f0d76dd6 | 258 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 259 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 260 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 261 | /// Write text directly into the generated output |
| XinZhangMS | 0:f7f1f0d76dd6 | 262 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 263 | public void WriteLine(string textToAppend) |
| XinZhangMS | 0:f7f1f0d76dd6 | 264 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 265 | this.Write(textToAppend); |
| XinZhangMS | 0:f7f1f0d76dd6 | 266 | this.GenerationEnvironment.AppendLine(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 267 | this.endsWithNewline = true; |
| XinZhangMS | 0:f7f1f0d76dd6 | 268 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 269 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 270 | /// Write formatted text directly into the generated output |
| XinZhangMS | 0:f7f1f0d76dd6 | 271 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 272 | public void Write(string format, params object[] args) |
| XinZhangMS | 0:f7f1f0d76dd6 | 273 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 274 | this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); |
| XinZhangMS | 0:f7f1f0d76dd6 | 275 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 276 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 277 | /// Write formatted text directly into the generated output |
| XinZhangMS | 0:f7f1f0d76dd6 | 278 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 279 | public void WriteLine(string format, params object[] args) |
| XinZhangMS | 0:f7f1f0d76dd6 | 280 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 281 | this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); |
| XinZhangMS | 0:f7f1f0d76dd6 | 282 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 283 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 284 | /// Raise an error |
| XinZhangMS | 0:f7f1f0d76dd6 | 285 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 286 | public void Error(string message) |
| XinZhangMS | 0:f7f1f0d76dd6 | 287 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 288 | System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 289 | error.ErrorText = message; |
| XinZhangMS | 0:f7f1f0d76dd6 | 290 | this.Errors.Add(error); |
| XinZhangMS | 0:f7f1f0d76dd6 | 291 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 292 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 293 | /// Raise a warning |
| XinZhangMS | 0:f7f1f0d76dd6 | 294 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 295 | public void Warning(string message) |
| XinZhangMS | 0:f7f1f0d76dd6 | 296 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 297 | System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 298 | error.ErrorText = message; |
| XinZhangMS | 0:f7f1f0d76dd6 | 299 | error.IsWarning = true; |
| XinZhangMS | 0:f7f1f0d76dd6 | 300 | this.Errors.Add(error); |
| XinZhangMS | 0:f7f1f0d76dd6 | 301 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 302 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 303 | /// Increase the indent |
| XinZhangMS | 0:f7f1f0d76dd6 | 304 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 305 | public void PushIndent(string indent) |
| XinZhangMS | 0:f7f1f0d76dd6 | 306 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 307 | if ((indent == null)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 308 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 309 | throw new global::System.ArgumentNullException("indent"); |
| XinZhangMS | 0:f7f1f0d76dd6 | 310 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 311 | this.currentIndentField = (this.currentIndentField + indent); |
| XinZhangMS | 0:f7f1f0d76dd6 | 312 | this.indentLengths.Add(indent.Length); |
| XinZhangMS | 0:f7f1f0d76dd6 | 313 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 314 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 315 | /// Remove the last indent that was added with PushIndent |
| XinZhangMS | 0:f7f1f0d76dd6 | 316 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 317 | public string PopIndent() |
| XinZhangMS | 0:f7f1f0d76dd6 | 318 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 319 | string returnValue = ""; |
| XinZhangMS | 0:f7f1f0d76dd6 | 320 | if ((this.indentLengths.Count > 0)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 321 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 322 | int indentLength = this.indentLengths[(this.indentLengths.Count - 1)]; |
| XinZhangMS | 0:f7f1f0d76dd6 | 323 | this.indentLengths.RemoveAt((this.indentLengths.Count - 1)); |
| XinZhangMS | 0:f7f1f0d76dd6 | 324 | if ((indentLength > 0)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 325 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 326 | returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength)); |
| XinZhangMS | 0:f7f1f0d76dd6 | 327 | this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength)); |
| XinZhangMS | 0:f7f1f0d76dd6 | 328 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 329 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 330 | return returnValue; |
| XinZhangMS | 0:f7f1f0d76dd6 | 331 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 332 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 333 | /// Remove any indentation |
| XinZhangMS | 0:f7f1f0d76dd6 | 334 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 335 | public void ClearIndent() |
| XinZhangMS | 0:f7f1f0d76dd6 | 336 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 337 | this.indentLengths.Clear(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 338 | this.currentIndentField = ""; |
| XinZhangMS | 0:f7f1f0d76dd6 | 339 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 340 | #endregion |
| XinZhangMS | 0:f7f1f0d76dd6 | 341 | #region ToString Helpers |
| XinZhangMS | 0:f7f1f0d76dd6 | 342 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 343 | /// Utility class to produce culture-oriented representation of an object as a string. |
| XinZhangMS | 0:f7f1f0d76dd6 | 344 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 345 | public class ToStringInstanceHelper |
| XinZhangMS | 0:f7f1f0d76dd6 | 346 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 347 | private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; |
| XinZhangMS | 0:f7f1f0d76dd6 | 348 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 349 | /// Gets or sets format provider to be used by ToStringWithCulture method. |
| XinZhangMS | 0:f7f1f0d76dd6 | 350 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 351 | public System.IFormatProvider FormatProvider |
| XinZhangMS | 0:f7f1f0d76dd6 | 352 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 353 | get |
| XinZhangMS | 0:f7f1f0d76dd6 | 354 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 355 | return this.formatProviderField ; |
| XinZhangMS | 0:f7f1f0d76dd6 | 356 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 357 | set |
| XinZhangMS | 0:f7f1f0d76dd6 | 358 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 359 | if ((value != null)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 360 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 361 | this.formatProviderField = value; |
| XinZhangMS | 0:f7f1f0d76dd6 | 362 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 363 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 364 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 365 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 366 | /// This is called from the compile/run appdomain to convert objects within an expression block to a string |
| XinZhangMS | 0:f7f1f0d76dd6 | 367 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 368 | public string ToStringWithCulture(object objectToConvert) |
| XinZhangMS | 0:f7f1f0d76dd6 | 369 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 370 | if ((objectToConvert == null)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 371 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 372 | throw new global::System.ArgumentNullException("objectToConvert"); |
| XinZhangMS | 0:f7f1f0d76dd6 | 373 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 374 | System.Type t = objectToConvert.GetType(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 375 | System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] { |
| XinZhangMS | 0:f7f1f0d76dd6 | 376 | typeof(System.IFormatProvider)}); |
| XinZhangMS | 0:f7f1f0d76dd6 | 377 | if ((method == null)) |
| XinZhangMS | 0:f7f1f0d76dd6 | 378 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 379 | return objectToConvert.ToString(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 380 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 381 | else |
| XinZhangMS | 0:f7f1f0d76dd6 | 382 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 383 | return ((string)(method.Invoke(objectToConvert, new object[] { |
| XinZhangMS | 0:f7f1f0d76dd6 | 384 | this.formatProviderField }))); |
| XinZhangMS | 0:f7f1f0d76dd6 | 385 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 386 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 387 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 388 | private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper(); |
| XinZhangMS | 0:f7f1f0d76dd6 | 389 | /// <summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 390 | /// Helper to produce culture-oriented representation of an object as a string |
| XinZhangMS | 0:f7f1f0d76dd6 | 391 | /// </summary> |
| XinZhangMS | 0:f7f1f0d76dd6 | 392 | public ToStringInstanceHelper ToStringHelper |
| XinZhangMS | 0:f7f1f0d76dd6 | 393 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 394 | get |
| XinZhangMS | 0:f7f1f0d76dd6 | 395 | { |
| XinZhangMS | 0:f7f1f0d76dd6 | 396 | return this.toStringHelperField; |
| XinZhangMS | 0:f7f1f0d76dd6 | 397 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 398 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 399 | #endregion |
| XinZhangMS | 0:f7f1f0d76dd6 | 400 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 401 | #endregion |
| XinZhangMS | 0:f7f1f0d76dd6 | 402 | } |