+ print "class %s : public %s " % (interface_wrap_name(interface), interface.name)
+ print "{"
+ print "public:"
+ print " %s(%s * pInstance);" % (interface_wrap_name(interface), interface.name)
+ print " virtual ~%s();" % interface_wrap_name(interface)
+ print
+ for method in interface.itermethods():
+ print " " + method.prototype() + ";"
+ print
+ #print "private:"
+ print " %s * m_pInstance;" % (interface.name,)
+ print "};"
+ print
+
+ def visit_polymorphic(self, polymorphic):
+ print 'static void _write__%s(int selector, const %s & value) {' % (polymorphic.tag, polymorphic.expr)
+ print ' switch (selector) {'
+ for cases, type in polymorphic.iterswitch():
+ for case in cases:
+ print ' %s:' % case
+ dump_instance(type, 'static_cast<%s>(value)' % (type,))
+ print ' break;'
+ print ' }'
+ print '}'
+ print