mirror of https://github.com/mono/CppSharp.git
c-sharpdotnetmonobindingsbridgecclangcpluspluscppsharpglueinteropparserparsingpinvokeswigsyntax-treevisitorsxamarinxamarin-bindings
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1179 lines
43 KiB
1179 lines
43 KiB
// ------------------------------------------------------------------------------ |
|
// <autogenerated> |
|
// This code was generated by a tool. |
|
// Mono Runtime Version: 4.0.30319.1 |
|
// |
|
// Changes to this file may cause incorrect behavior and will be lost if |
|
// the code is regenerated. |
|
// </autogenerated> |
|
// ------------------------------------------------------------------------------ |
|
|
|
namespace Templates { |
|
using System.IO; |
|
using System.Linq; |
|
using System.Collections.Generic; |
|
using Mono.Cxxi; |
|
using System; |
|
|
|
|
|
public partial class CSharpClass : Base { |
|
|
|
|
|
#line 280 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
|
|
private void WriteMethodHeader (Method method, string layoutClass, bool isNonPrimaryOverride, bool @protected) |
|
{ |
|
var returnType = CSharpLanguage.TypeName (method.ReturnType, Context.Wrapper | Context.Return); |
|
|
|
if (!isNonPrimaryOverride && method.IsVirtual) |
|
WriteLine ("[OverrideNative (\"{0}\")]", method.Name); |
|
|
|
Write (CurrentIndent + (@protected? "protected " : "public ")); |
|
if (method.IsConstructor) { |
|
Write (method.FormattedName); |
|
} else { |
|
if (method.IsStatic) Write ("static "); |
|
if (method.IsVirtual && (!isNonPrimaryOverride || layoutClass != null)) Write ("virtual "); |
|
else if (isNonPrimaryOverride) Write ("override "); |
|
// ...? |
|
Write (returnType); |
|
Write (" "); |
|
Write (isNonPrimaryOverride && layoutClass != null? layoutClass : method.FormattedName); |
|
} |
|
|
|
Write (" ("); |
|
WriteParameters (method.Parameters, true, false); |
|
Write (")\n"); |
|
|
|
if (method.IsConstructor && layoutClass != null) |
|
WriteLine (layoutClass); |
|
else |
|
WriteLine ("{"); |
|
|
|
PushIndent ("\t"); |
|
Write (CurrentIndent); |
|
|
|
if (returnType != "void") |
|
Write ("return "); |
|
} |
|
|
|
private void WriteParameters (IList<Parameter> parameters, bool writeType, bool writeAttributes) |
|
{ |
|
for (var i = 0; i < parameters.Count; i++) { |
|
if (i != 0) |
|
Write (", "); |
|
|
|
var type = CSharpLanguage.TypeName (parameters [i].Type, Context.Parameter); |
|
|
|
if (writeAttributes) { |
|
var mangleAs = parameters [i].Type.ToString (); |
|
if (mangleAs != "" && mangleAs != type) |
|
Write ("[MangleAs (\"{0}\")] ", mangleAs); |
|
if (IsByVal (parameters [i].Type)) |
|
Write ("[ByVal] "); |
|
} |
|
|
|
if (writeType) { |
|
Write (type); |
|
Write (" "); |
|
} else { |
|
if (type.StartsWith ("ref ")) |
|
Write ("ref "); |
|
} |
|
|
|
Write (CSharpLanguage.SafeIdentifier (parameters [i].Name)); |
|
} |
|
} |
|
|
|
private string GetBaseString () |
|
{ |
|
if (Class.BaseClasses.Count == 0) |
|
return "ICppObject"; |
|
|
|
var str = Class.BaseClasses [0].Name; |
|
if (Class.BaseClasses.Count > 1) { |
|
str = string.Format ("{0} /*, {1} */", str, string.Join (", ", Class.BaseClasses.Skip (1).Select (bc => bc.Name).ToArray ())); |
|
} |
|
|
|
return str; |
|
} |
|
|
|
private bool IsByVal (CppType t) |
|
{ |
|
return ((t.ElementType == CppTypes.Class || t.ElementType == CppTypes.Struct) && |
|
!t.Modifiers.Contains (CppModifiers.Pointer) && |
|
!t.Modifiers.Contains (CppModifiers.Reference) && |
|
!t.Modifiers.Contains (CppModifiers.Array)); |
|
} |
|
|
|
#line default |
|
#line hidden |
|
|
|
public override string TransformText() { |
|
this.GenerationEnvironment = null; |
|
|
|
#line 6 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
|
|
var hasBase = Class.BaseClasses.Count > 0; |
|
var wrapper = Class.Name; |
|
var iface = "I" + Class.Name; |
|
var layout = "_" + Class.Name; |
|
var layoutClass = (hasBase? "\t: base (impl.TypeInfo)\n\t\t{" : "{") + "\n\t\t\t__cxxi_LayoutClass ();"; |
|
var initBases = (Class.BaseClasses.Count > 1 ? "\t__cxxi_InitBases ();\n\t\t}" : "}"); |
|
|
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 14 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("// -------------------------------------------------------------------------\n// Managed wrapper for "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 15 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( Class.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 15 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n// Generated from "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 16 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( Path.GetFileName (Generator.InputFileName) )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 16 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" on "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 16 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( DateTime.Now )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 16 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n//\n// This file was auto generated. Do not edit.\n// -------------------------------------------------------------------------\n\nusing System;\nusing Mono.Cxxi;\n\nnamespace "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 24 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( Generator.Namespace )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 24 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" {\n\n\tpublic partial class "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 26 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 26 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" : "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 26 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( GetBaseString () )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 26 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" {\n\n\t\tprivate static readonly "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 28 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( iface )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 28 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" impl = Libs."); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 28 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( Generator.LibBaseName )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 28 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(".GetClass<"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 28 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( iface + "," + layout + "," + wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 28 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("> (\""); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 28 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( Class.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 28 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\");\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 29 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
if (!hasBase) { |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 30 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\tpublic CppInstancePtr Native { get; protected set; }\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 31 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
} |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 32 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 33 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Interface */ |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 34 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\tpublic interface "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 34 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( iface )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 34 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" : ICppClassOverridable<"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 34 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 34 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("> {\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 35 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
PushIndent ("\t\t\t"); |
|
foreach (var method in Class.Methods) { |
|
Write (CurrentIndent); |
|
|
|
if (method.IsVirtual) Write ("[Virtual] "); |
|
if (method.IsStatic) Write ("[Static] "); |
|
if (method.IsArtificial) Write ("[Artificial] "); |
|
if (method.IsInline) Write ("[Inline] "); |
|
if (method.IsConst) Write ("[Const] "); |
|
if (method.IsConstructor) Write ("[Constructor] "); |
|
if (method.IsDestructor) Write ("[Destructor] "); |
|
if (method.IsCopyCtor) Write ("[CopyConstructor] "); |
|
|
|
if (IsByVal (method.ReturnType)) { |
|
Write ("[return: ByVal] "); |
|
} |
|
if (method.IsConstructor) |
|
Write ("CppInstancePtr"); |
|
else |
|
Write (CSharpLanguage.TypeName (method.ReturnType, Context.Interface | Context.Return)); |
|
Write (" "); |
|
Write (CSharpLanguage.SafeIdentifier (method.Name)); |
|
|
|
Write (" ("); |
|
if (!method.IsStatic) { |
|
Write ("CppInstancePtr @this"); |
|
if (method.Parameters.Count != 0) |
|
Write (", "); |
|
} |
|
|
|
WriteParameters (method.Parameters, true, !method.IsVirtual); |
|
Write (");\n"); |
|
} |
|
foreach (var field in Class.Fields.Where (f => f.Access != Access.@private)) { |
|
WriteLine ("CppField<{0}> {1} {{ get; }}", CSharpLanguage.TypeName (field.Type, Context.Generic), CSharpLanguage.SafeIdentifier (field.Name)); |
|
} |
|
ClearIndent (); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 72 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t}\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 73 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Native layout */ |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 74 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\tprivate struct "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 74 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( layout )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 74 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" {\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 75 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
foreach (var field in Class.Fields) { |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 76 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t\tpublic "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 76 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( CSharpLanguage.TypeName (field.Type, Context.Generic) )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 76 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 76 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( CSharpLanguage.SafeIdentifier (field.Name) )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 76 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(";\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 77 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
} |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 78 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t}\n\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 80 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Native fields */ |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 81 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
PushIndent ("\t\t"); |
|
foreach (var field in Class.Fields.Where (f => f.Access != Access.@private)) { |
|
var fieldName = CSharpLanguage.SafeIdentifier (field.Name); |
|
WriteLine ("{0} {1} {2} {{", field.Access, CSharpLanguage.TypeName (field.Type, Context.Wrapper | Context.Return), fieldName); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 85 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t\tget {\n\t\t\t\treturn impl."); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 86 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( fieldName )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 86 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" [Native];\n\t\t\t}\n\t\t\tset {\n\t\t\t\timpl."); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 89 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( fieldName )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 89 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" [Native] = value;\n\t\t\t}\n\t\t}\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 92 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
} ClearIndent(); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 93 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 94 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Subclass constructor */ |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 95 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\tpublic "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 95 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 95 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" (CppTypeInfo subClass)\n\t\t"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 96 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( layoutClass )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 96 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n\t\t\tsubClass.AddBase (impl.TypeInfo);\n\t\t"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 98 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( initBases )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 98 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 100 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Native constructor */ |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 101 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\tpublic "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 101 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 101 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" (CppInstancePtr native)\n\t\t"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 102 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( layoutClass )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 102 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n\t\t\tNative = native;\n\t\t"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 104 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( initBases )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 104 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 106 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Wrapper methods */ |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 107 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
PushIndent ("\t\t"); |
|
foreach (var method in Class.Methods.Where (m => m.GenWrapperMethod)) { |
|
var methodName = CSharpLanguage.SafeIdentifier (method.Name); |
|
WriteMethodHeader (method, layoutClass, false, false); |
|
|
|
if (method.IsConstructor) |
|
Write ("Native = "); |
|
|
|
Write ("impl.{0} (", methodName); |
|
if (!method.IsStatic) { |
|
if (method.IsConstructor) |
|
Write ("impl.Alloc (this)"); |
|
else |
|
Write ("Native"); |
|
if (method.Parameters.Count != 0) |
|
Write (", "); |
|
} |
|
|
|
WriteParameters (method.Parameters, false, false); |
|
Write (");\n"); |
|
PopIndent (); |
|
|
|
if (method.IsConstructor) |
|
WriteLine (initBases); |
|
else |
|
WriteLine ("}"); |
|
} |
|
ClearIndent (); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 135 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 136 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Wrapper properties */ |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 137 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
PushIndent ("\t\t"); |
|
foreach (var prop in Class.Properties) { |
|
var propName = CSharpLanguage.SafeIdentifier (prop.Name); |
|
var type = CSharpLanguage.TypeName (prop.Type, Context.Wrapper | Context.Return); |
|
|
|
Write (CurrentIndent + "public "); |
|
|
|
if ((prop.GetMethod == null || prop.GetMethod.IsVirtual) && |
|
(prop.SetMethod == null || prop.SetMethod.IsVirtual)) |
|
Write ("virtual "); |
|
|
|
Write (type); |
|
Write (" "); |
|
Write (propName); |
|
Write (" {\n"); |
|
|
|
PushIndent ("\t"); |
|
Write (CurrentIndent); |
|
|
|
if (prop.GetMethod != null) { |
|
if (prop.GetMethod.IsVirtual) |
|
Write ("[OverrideNative (\"{0}\")] ", prop.GetMethod.Name); |
|
|
|
Write ("get {\n"); |
|
PushIndent ("\t"); |
|
WriteLine ("return impl.{0} (Native);", prop.GetMethod.Name); |
|
PopIndent (); |
|
WriteLine ("}"); |
|
} |
|
if (prop.SetMethod != null) { |
|
if (prop.SetMethod.IsVirtual) |
|
Write ("[OverrideNative (\"{0}\")] ", prop.SetMethod.Name); |
|
|
|
WriteLine ("set {"); |
|
PushIndent ("\t"); |
|
WriteLine ("impl.{0} (Native, value);", prop.SetMethod.Name); |
|
PopIndent (); |
|
WriteLine ("}"); |
|
} |
|
|
|
PopIndent (); |
|
WriteLine ("}\n"); |
|
} |
|
ClearIndent (); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 181 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n\t\tpublic "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 182 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( hasBase? "override" : "virtual" )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 182 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" void Dispose ()\n\t\t{\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 184 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
if (Class.Methods.Any (m => m.IsDestructor && !m.IsArtificial)) { |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 185 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t\timpl.Destruct (Native);\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 186 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
} |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 187 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t\tNative.Dispose ();\n\t\t}\n\n\t\tprivate void __cxxi_LayoutClass ()\n\t\t{\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
foreach (var npBase in Class.BaseClasses.Skip (1)) { |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 193 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t\tnew "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 193 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 193 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" (impl.TypeInfo);\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 194 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
} |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 195 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t\timpl.TypeInfo.CompleteType ();\n\t\t}\n\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 198 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Make this wrapper castable to non-primary bases */ |
|
foreach (var npBase in Class.BaseClasses.Skip (1)) { |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 200 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n#region Non-primary base class implementation for "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 201 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 201 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\n\t\tprivate class "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 202 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper + "__" + npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 202 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" : "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 202 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 202 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" {\n\t\t\tpublic "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 203 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 203 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" instance;\n\t\t\tpublic "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 204 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper + "__" + npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 204 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" ("); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 204 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 204 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" instance)\n\t\t\t\t: base ("); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 205 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 205 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(".impl.TypeInfo.Cast (instance, typeof ("); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 205 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 205 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(")))\n\t\t\t{\n\t\t\t\t"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 207 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 207 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(".impl.TypeInfo.InitNonPrimaryBase (this, instance, typeof ("); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 207 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 207 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("));\n\t\t\t\tthis.instance = instance;\n\t\t\t}\n\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 211 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
PushIndent ("\t\t\t"); |
|
foreach (var method in npBase.Methods.Where (m => m.IsVirtual)) { |
|
|
|
if (!method.GenWrapperMethod || Class.Methods.Any (m => m.Node.CheckValue ("overrides", method.Node.Id))) |
|
continue; |
|
|
|
/* this is the managed override that has to call the subclass's method */ |
|
WriteMethodHeader (method, null, true, false); |
|
|
|
Write ("instance.{0} (", npBase.Name + "__" + method.FormattedName); |
|
|
|
WriteParameters (method.Parameters, false, false); |
|
PopIndent (); |
|
Write (");\n{0}}}\n\n", CurrentIndent); |
|
|
|
/* this is the method that calls the base implementation that the subclass will use */ |
|
WriteMethodHeader (method, npBase.Name + "__" + method.FormattedName, true, false); |
|
|
|
Write ("base.{0} (", method.FormattedName); |
|
|
|
WriteParameters (method.Parameters, false, false); |
|
PopIndent (); |
|
Write (");\n{0}}}\n\n", CurrentIndent); |
|
} |
|
ClearIndent (); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 236 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t}\n\t\tprivate "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 237 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 237 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("__"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 237 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 237 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" __cxxi_"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 237 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 237 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(";\n\t\tpublic "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" { get { return __cxxi_"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("; } }\n\t\tpublic static implicit operator "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 239 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 239 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("("); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 239 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 239 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" subClass)\n\t\t{\n\t\t\treturn subClass."); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 241 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 241 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(";\n\t\t}\n\t\tpublic static explicit operator "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 243 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 243 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("("); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 243 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 243 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" baseClass)\n\t\t{\n\t\t\tif (baseClass == null) return null;\n\t\t\tvar obj = baseClass as "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 246 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper + "__" + npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 246 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(";\n\t\t\tif (obj == null) throw new InvalidCastException ();\n\t\t\treturn obj.instance;\n\t\t}\n\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 251 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
/* Add virtual methods of non-primary bases to this class proper so they can be overridden */ |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 252 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
PushIndent ("\t\t"); |
|
foreach (var method in npBase.Methods.Where (m => m.IsVirtual)) { |
|
|
|
if (!method.GenWrapperMethod || Class.Methods.Any (m => m.Node.CheckValue ("overrides", method.Node.Id))) |
|
continue; |
|
|
|
WriteMethodHeader (method, npBase.Name + "__" + method.FormattedName, true, true); |
|
|
|
Write ("{0}.{1} (", "__cxxi_" + npBase.Name, npBase.Name + "__" + method.FormattedName); |
|
|
|
WriteParameters (method.Parameters, false, false); |
|
PopIndent (); |
|
Write (");\n{0}}}\n\n", CurrentIndent); |
|
} |
|
ClearIndent (); |
|
WriteLine ("#endregion"); |
|
} |
|
if (Class.BaseClasses.Count > 1) { |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 270 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\tprivate void __cxxi_InitBases ()\n\t\t{\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 272 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
foreach (var npBase in Class.BaseClasses.Skip (1)) { |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 273 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t\t__cxxi_"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 273 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 273 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" = new "); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 273 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper + "__" + npBase.Name )); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 273 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write(" (this);\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 274 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
} |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 275 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t\t}\n"); |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 276 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
} |
|
|
|
#line default |
|
#line hidden |
|
|
|
#line 277 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt" |
|
this.Write("\t}\n}\n\n"); |
|
|
|
#line default |
|
#line hidden |
|
return this.GenerationEnvironment.ToString(); |
|
} |
|
|
|
protected override void Initialize() { |
|
base.Initialize(); |
|
} |
|
} |
|
}
|
|
|