def make_wrapper_g_file(cls): body = [] body.append('using System;') body.append('using System.Collections.Generic;') body.append('using System.Diagnostics;') body.append('using System.Runtime.InteropServices;') # body.append('using System.Diagnostics.CodeAnalysis;') body.append('using %s;' % schema.interop_namespace) body.append('') for line in schema.get_overview(cls): body.append('// %s' % line) if schema.is_proxy(cls): body.append('public sealed unsafe partial class %s : IDisposable' % schema.cpp2csname(cls.get_name())) body.append('{') body.append( indent + ('\n' + indent + indent).join( make_proxy_g_body(cls) ) ) body.append('}') if schema.is_handler(cls): body.append('public abstract unsafe partial class %s' % schema.cpp2csname(cls.get_name())) body.append('{') body.append( indent + ('\n' + indent + indent).join( make_handler_g_body(cls) ) ) body.append('}') return make_file_header() + \ """namespace %(namespace)s { %(body)s } """ % { 'namespace': schema.namespace, 'body': indent + ('\n'+indent).join(body) }
def make_wrapper_g_file(cls): body = [] body.append('using System;') body.append('using System.Collections.Generic;') body.append('using System.Diagnostics;') body.append('using System.Runtime.InteropServices;') # body.append('using System.Diagnostics.CodeAnalysis;') body.append('using %s;' % schema.interop_namespace) body.append('') for line in schema.get_overview(cls): body.append('// %s' % line) isRefCounted = cls.get_parent_capi_name() == "cef_base_ref_counted_t" isScoped = cls.get_parent_capi_name() == "cef_base_scoped_t" if schema.is_proxy(cls): proxyBase = None if isRefCounted: proxyBase = " : IDisposable" elif isScoped: proxyBase = "" else: raise Exception("Unknown base class type.") body.append(('public sealed unsafe partial class %s' + proxyBase) % schema.cpp2csname(cls.get_name())) body.append('{') body.append(indent + ('\n' + indent + indent).join(make_proxy_g_body(cls))) body.append('}') if schema.is_handler(cls): body.append('public abstract unsafe partial class %s' % schema.cpp2csname(cls.get_name())) body.append('{') body.append(indent + ('\n' + indent + indent).join(make_handler_g_body(cls))) body.append('}') return make_file_header() + \ """namespace %(namespace)s { %(body)s } """ % { 'namespace': schema.namespace, 'body': indent + ('\n'+indent).join(body) }