class {{interface.name}}Proxy; class {{interface.name}}Stub; class {{interface.peer}}; class {{interface.name}} { public: typedef {{interface.name}}Proxy _Proxy; typedef {{interface.name}}Stub _Stub; typedef {{interface.peer}} _Peer; {#--- Enums #} {%- for enum in interface.enums %} {% macro enum_def() %}{% include "enum_declaration.tmpl" %}{% endmacro %} {{enum_def()|indent(2)}} {%- endfor %} {#--- Methods #} {% for method in interface.methods %} virtual void {{method.name}}( {%- for param in method.parameters -%} {{param.kind|cpp_const_wrapper_type}} {{param.name}} {%- if not loop.last %}, {% endif -%} {%- endfor -%} ) = 0; {%- endfor %} };