|
|
|
@ -19,7 +19,7 @@ namespace Templates {
@@ -19,7 +19,7 @@ namespace Templates {
|
|
|
|
|
public partial class CSharpClass : Base { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 283 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 288 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
|
|
|
|
|
private void WriteMethodHeader (Method method, string layoutClass, bool isNonPrimaryOverride, bool @protected) |
|
|
|
|
{ |
|
|
|
@ -674,217 +674,217 @@ private bool IsByVal (CppType t)
@@ -674,217 +674,217 @@ private bool IsByVal (CppType t)
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 182 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n\t\tpublic "); |
|
|
|
|
this.Write("\n\t\tpartial void BeforeDestruct ();\n\t\tpartial void AfterDestruct ();\n\n\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 183 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 186 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( hasBase? "override" : "virtual" )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 183 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" void Dispose ()\n\t\t{\n"); |
|
|
|
|
#line 186 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" void Dispose ()\n\t\t{\n\t\t\tBeforeDestruct ();\n"); |
|
|
|
|
|
|
|
|
|
#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"
|
|
|
|
|
if (Class.Methods.Any (m => m.IsDestructor && !m.IsArtificial)) { |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 186 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 190 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t\timpl.Destruct (Native);\n"); |
|
|
|
|
|
|
|
|
|
#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"
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 188 "/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 192 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t\tNative.Dispose ();\n\t\t\tAfterDestruct ();\n\t\t}\n\n\t\tprivate void __cxxi_LayoutClass ()\n\t\t{\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 193 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 198 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
foreach (var npBase in Class.BaseClasses.Skip (1)) { |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 194 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 199 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t\tnew "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 194 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 199 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 194 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 199 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" (impl.TypeInfo);\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 195 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 200 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 196 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 201 "/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 199 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 204 "/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 201 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 206 "/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 202 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 207 "/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"
|
|
|
|
|
#line 207 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n\t\tprivate class "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 203 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 208 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper + "__" + npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 203 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 208 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" : "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 203 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 208 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 203 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 208 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" {\n\t\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 204 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 209 "/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"
|
|
|
|
|
#line 209 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" instance;\n\t\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 205 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 210 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper + "__" + npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 205 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 210 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" ("); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 205 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 210 "/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"
|
|
|
|
|
#line 210 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" instance)\n\t\t\t\t: base ("); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 206 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 211 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 206 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 211 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(".impl.TypeInfo.Cast (instance, typeof ("); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 206 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 211 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 206 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 211 "/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 208 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 213 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 208 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 213 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(".impl.TypeInfo.InitNonPrimaryBase (this, instance, typeof ("); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 208 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 213 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 208 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 213 "/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 212 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 217 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
PushIndent ("\t\t\t"); |
|
|
|
|
foreach (var method in npBase.Methods.Where (m => m.IsVirtual)) { |
|
|
|
|
|
|
|
|
@ -914,163 +914,163 @@ foreach (var npBase in Class.BaseClasses.Skip (1)) {
@@ -914,163 +914,163 @@ foreach (var npBase in Class.BaseClasses.Skip (1)) {
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 237 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 242 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t}\n\t\tprivate "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 243 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 243 "/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"
|
|
|
|
|
#line 243 "/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"
|
|
|
|
|
#line 243 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" __cxxi_"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 238 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 243 "/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"
|
|
|
|
|
#line 243 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(";\n\t\tpublic "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 239 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 244 "/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"
|
|
|
|
|
#line 244 "/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"
|
|
|
|
|
#line 244 "/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"
|
|
|
|
|
#line 244 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" { get { return __cxxi_"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 239 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 244 "/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"
|
|
|
|
|
#line 244 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("; } }\n\t\tpublic static implicit operator "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 240 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 245 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 240 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 245 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("("); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 240 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 245 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 240 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 245 "/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 242 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 247 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 242 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 247 "/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 244 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 249 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 244 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 249 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("("); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 244 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 249 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 244 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 249 "/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 247 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 252 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper + "__" + npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 247 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 252 "/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 252 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 257 "/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 253 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 258 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
PushIndent ("\t\t"); |
|
|
|
|
foreach (var method in npBase.Methods.Where (m => m.IsVirtual)) { |
|
|
|
|
|
|
|
|
@ -1094,91 +1094,91 @@ if (overrideInitBases || Class.BaseClasses.Count > 1) {
@@ -1094,91 +1094,91 @@ if (overrideInitBases || Class.BaseClasses.Count > 1) {
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 272 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 277 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\tprotected "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 272 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 277 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( overrideInitBases ? "override" : "virtual" )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 272 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 277 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" void __cxxi_InitBases ()\n\t\t{\n\t\t\t"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 274 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 279 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( overrideInitBases? "base.__cxxi_InitBases ();" : "" )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 274 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 279 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 275 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 280 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
foreach (var npBase in Class.BaseClasses.Skip (1)) { |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 276 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 281 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t\t__cxxi_"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 276 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 281 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 276 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 281 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" = new "); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 276 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 281 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(this.ToStringHelper.ToStringWithCulture( wrapper + "__" + npBase.Name )); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 276 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 281 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write(" (this);\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 277 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 282 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 278 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 283 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t\t}\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 279 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 284 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|
#line hidden
|
|
|
|
|
|
|
|
|
|
#line 280 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
#line 285 "/Users/alex/OpenSource/cppinterop/src/generator/Templates/CSharp/CSharpClass.tt"
|
|
|
|
|
this.Write("\t}\n}\n\n"); |
|
|
|
|
|
|
|
|
|
#line default
|
|
|
|
|