| {%- import "interface_macros.tmpl" as interface_macros %} |
| class {{interface.name}}Proxy; |
| class {{interface.name}}Stub; |
| class {{interface.name}}_Synchronous; |
| |
| class {{interface.name}}RequestValidator; |
| {%- if interface|has_callbacks %} |
| class {{interface.name}}ResponseValidator; |
| {%- endif %} |
| |
| class {{interface.name}} : public internal::{{interface.name}}_Base { |
| public: |
| virtual ~{{interface.name}}() override {} |
| |
| using Proxy_ = {{interface.name}}Proxy; |
| using Stub_ = {{interface.name}}Stub; |
| |
| {%- for method in interface.methods %} |
| {%- if method.response_parameters != None %} |
| using {{method.name}}Callback = {{interface_macros.declare_callback(method)}}; |
| {%- endif %} |
| virtual void {{method.name}}({{interface_macros.declare_request_params("", method)}}) = 0; |
| {%- endfor %} |
| }; |