|
|
|
@ -19,7 +19,7 @@ namespace Templates {
@@ -19,7 +19,7 @@ namespace Templates {
|
|
|
|
|
public partial class CSharpClass : Base { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 227 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 231 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
|
|
|
|
|
private void WriteMethodHeader (Method method, string initBases) |
|
|
|
|
{ |
|
|
|
@ -368,6 +368,9 @@ private bool IsByVal (CppType t)
@@ -368,6 +368,9 @@ private bool IsByVal (CppType t)
|
|
|
|
|
if (IsByVal (method.ReturnType)) { |
|
|
|
|
Write ("[return: ByVal] "); |
|
|
|
|
} |
|
|
|
|
if (method.IsConstructor) |
|
|
|
|
Write ("CppInstancePtr"); |
|
|
|
|
else |
|
|
|
|
Write (GetCSharpType (method.ReturnType)); |
|
|
|
|
Write (" "); |
|
|
|
|
Write (method.Name); |
|
|
|
@ -390,91 +393,91 @@ private bool IsByVal (CppType t)
@@ -390,91 +393,91 @@ private bool IsByVal (CppType t)
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 75 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 78 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t}\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 76 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 79 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
/* Native layout */ |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 77 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 80 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\tprivate struct "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 77 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 80 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( layout )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 77 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 80 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" {\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 78 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 81 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
foreach (var field in Class.Fields) { |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 79 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 82 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 79 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 82 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( GetCSharpType (field.Type) )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 79 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 82 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 79 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 82 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( field.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 79 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 82 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(";\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 80 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 83 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 81 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 84 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t}\n\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 83 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 86 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
/* Native fields */ |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 84 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 87 "/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)) { |
|
|
|
|
WriteLine ("{0} {1} {2} {{", field.Access, GetCSharpType (field.Type), field.Name); |
|
|
|
@ -482,140 +485,141 @@ private bool IsByVal (CppType t)
@@ -482,140 +485,141 @@ private bool IsByVal (CppType t)
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 87 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 90 "/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 88 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 91 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( field.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 88 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 91 "/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 91 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 94 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( field.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 91 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 94 "/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 94 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 97 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
} |
|
|
|
|
ClearIndent(); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 96 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 99 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 97 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 100 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
/* Native constructor */ |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 98 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 101 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 98 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 101 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 98 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 101 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" (CppInstancePtr native)\n\t\t"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 99 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 102 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( initBases )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 99 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 102 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n\t\t\tNative = native;\n\t\t}\n\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 103 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 106 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
/* Subclass constructor */ |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 104 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 107 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 104 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 107 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 104 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 107 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" (CppTypeInfo subClass)\n\t\t"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 105 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 108 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( initBases )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 105 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 108 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n\t\t\tsubClass.AddBase (impl.TypeInfo);\n\t\t}\n\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 109 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 112 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
/* Wrapper methods */ |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 110 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 113 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
PushIndent ("\t\t"); |
|
|
|
|
foreach (var method in Class.Methods.Where (m => m.GenWrapperMethod)) { |
|
|
|
|
|
|
|
|
|
WriteMethodHeader (method, initBases); |
|
|
|
|
|
|
|
|
|
if (method.IsConstructor) { |
|
|
|
|
Write ("Native = impl.Alloc (this);\n"); |
|
|
|
|
Write (CurrentIndent); |
|
|
|
|
} |
|
|
|
|
if (method.IsConstructor) |
|
|
|
|
Write ("Native = "); |
|
|
|
|
|
|
|
|
|
Write ("impl.{0} (", method.Name); |
|
|
|
|
if (!method.IsStatic) { |
|
|
|
|
if (method.IsConstructor) |
|
|
|
|
Write ("impl.Alloc (this)"); |
|
|
|
|
else |
|
|
|
|
Write ("Native"); |
|
|
|
|
if (method.Parameters.Count != 0) |
|
|
|
|
Write (", "); |
|
|
|
@ -630,19 +634,19 @@ private bool IsByVal (CppType t)
@@ -630,19 +634,19 @@ private bool IsByVal (CppType t)
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 132 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 136 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 133 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 137 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
/* Wrapper properties */ |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 134 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 138 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
PushIndent ("\t\t"); |
|
|
|
|
foreach (var prop in Class.Properties) { |
|
|
|
|
var type = GetCSharpType (prop.Type); |
|
|
|
@ -690,13 +694,13 @@ private bool IsByVal (CppType t)
@@ -690,13 +694,13 @@ private bool IsByVal (CppType t)
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 177 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 181 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 178 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 182 "/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)) { |
|
|
|
|
var prop = npBase.Name; |
|
|
|
@ -706,157 +710,157 @@ foreach (var npBase in Class.BaseClasses.Skip (1)) {
@@ -706,157 +710,157 @@ foreach (var npBase in Class.BaseClasses.Skip (1)) {
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 183 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 187 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t// Non-primary base class implementation for "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 183 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 187 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 183 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 187 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(":\n\t\tprivate "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 184 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 188 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 184 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 188 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 184 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 188 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( field )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 184 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 188 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(";\n\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 185 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 189 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 185 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 189 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 185 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 189 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( prop )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 185 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 189 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" {\n\t\t\tget {\n\t\t\t\tif ("); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 187 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 191 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( field )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 187 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 191 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" == null)\n\t\t\t\t\t"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 188 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( field )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 188 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" = impl.TypeInfo.Cast<"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 188 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 188 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("> (this);\n\t\t\t\treturn "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 189 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 193 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( field )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 189 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 193 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(";\n\t\t\t}\n\t\t}\n\t\tpublic static implicit operator "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 196 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 196 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("("); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 196 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 196 "/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 194 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 198 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( prop )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 194 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 198 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(";\n\t\t}\n\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 197 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 201 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
PushIndent ("\t\t"); |
|
|
|
|
foreach (var method in npBase.Methods) { |
|
|
|
|
// With the exception of virtual methods that have been overridden, these methods must be called
|
|
|
|
@ -879,43 +883,43 @@ foreach (var npBase in Class.BaseClasses.Skip (1)) {
@@ -879,43 +883,43 @@ foreach (var npBase in Class.BaseClasses.Skip (1)) {
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 215 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 219 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 216 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 220 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( hasBase? "override" : "virtual" )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 216 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 220 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" void Dispose ()\n\t\t{\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 218 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 222 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
if (Class.Methods.Any (m => m.IsDestructor && !m.IsArtificial)) { |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 219 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 223 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t\timpl.Destruct (Native);\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 220 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 224 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 221 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 225 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t\tNative.Dispose ();\n\t\t}\n\n\t}\n}\n\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|