diff options
Diffstat (limited to 'chromium/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl')
-rw-r--r-- | chromium/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/chromium/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl b/chromium/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl new file mode 100644 index 00000000000..30d20d8993e --- /dev/null +++ b/chromium/mojo/public/tools/bindings/generators/cpp_templates/interface_declaration.tmpl @@ -0,0 +1,49 @@ +{%- import "interface_macros.tmpl" as interface_macros %} +class {{interface.name}}Proxy; +class {{interface.name}}Stub; + +class {{interface.name}}RequestValidator; +{%- if interface|has_callbacks %} +class {{interface.name}}ResponseValidator; +{%- endif %} +{% if interface.client %} +class {{interface.client}}; +{% endif %} + +class {{interface.name}} { + public: + static const char* Name_; + + typedef {{interface.name}}Proxy Proxy_; + typedef {{interface.name}}Stub Stub_; + + typedef {{interface.name}}RequestValidator RequestValidator_; +{%- if interface|has_callbacks %} + typedef {{interface.name}}ResponseValidator ResponseValidator_; +{%- else %} + typedef mojo::PassThroughFilter ResponseValidator_; +{%- endif %} +{% if interface.client %} + typedef {{interface.client}} Client; +{% else %} + typedef mojo::NoInterface Client; +{% endif %} + +{#--- Constants #} +{%- for constant in interface.constants %} + static const {{constant.kind|cpp_pod_type}} {{constant.name}}; +{%- endfor %} + +{#--- Enums #} +{%- for enum in interface.enums %} +{% macro enum_def() %}{% include "enum_declaration.tmpl" %}{% endmacro %} + {{enum_def()|indent(2)}} +{%- endfor %} + +{#--- Methods #} + virtual ~{{interface.name}}() {} + +{%- for method in interface.methods %} + virtual void {{method.name}}({{interface_macros.declare_request_params("", method)}}) = 0; +{%- endfor %} +}; |