| {% import "struct_macros.tmpl" as struct_macros -%} |
| {% import "interface_macros.tmpl" as interface_macros -%} |
| {%- set header_guard = "%s_SYNC_H_"| |
| format(module.path|upper|replace("/","_")|replace(".","_")) -%} |
| |
| // NOTE: This file was generated by the Mojo bindings generator. |
| #ifndef {{header_guard}} |
| #define {{header_guard}} |
| |
| #include <stdint.h> |
| |
| #include "mojo/public/cpp/bindings/array.h" |
| #include "mojo/public/cpp/bindings/callback.h" |
| #include "mojo/public/cpp/bindings/interface_handle.h" |
| #include "mojo/public/cpp/bindings/interface_request.h" |
| #include "mojo/public/cpp/bindings/map.h" |
| #include "mojo/public/cpp/bindings/message_validator.h" |
| #include "mojo/public/cpp/bindings/string.h" |
| #include "mojo/public/cpp/bindings/struct_ptr.h" |
| #include "mojo/public/cpp/bindings/lib/synchronous_connector.h" |
| #include "{{module.path}}-internal.h" |
| #include "{{module.path}}-common.h" |
| |
| {%- for import in imports %} |
| #include "{{import.module.path}}.h" |
| {%- endfor %} |
| |
| {% for namespace in namespaces_as_array %} |
| namespace {{namespace}} { |
| {%- endfor %} |
| |
| // --- Synchronous interface declaration --- |
| {% for interface in interfaces %} |
| class {{interface.name}}_SynchronousProxy; |
| class {{interface.name}}_Synchronous |
| : public internal::{{interface.name}}_Base { |
| public: |
| virtual ~{{interface.name}}_Synchronous() override {} |
| |
| using Proxy_ = {{interface.name}}_SynchronousProxy; |
| |
| {%- for method in interface.methods %} |
| virtual bool {{method.name}}( |
| {{interface_macros.declare_sync_request_params(method)}}) |
| {%- if method.response_parameters == None -%} const {%- endif -%} |
| = 0; |
| {%- endfor %} |
| }; |
| |
| class {{interface.name}}_SynchronousProxy |
| : public {{interface.name}}_Synchronous { |
| public: |
| explicit {{interface.name}}_SynchronousProxy( |
| mojo::internal::SynchronousConnector* connector, |
| mojo::internal::MessageValidatorList&& validators); |
| |
| {%- for method in interface.methods %} |
| bool {{method.name}}({{interface_macros.declare_sync_request_params(method)}}) |
| {%- if method.response_parameters == None %} const {% endif %} override; |
| {%- endfor %} |
| |
| private: |
| // |connector_| is passed to us, and is not owned by us. |
| mojo::internal::SynchronousConnector* const connector_; |
| mojo::internal::MessageValidatorList const validators_; |
| }; |
| {% endfor %} |
| |
| {%- for namespace in namespaces_as_array|reverse %} |
| } // namespace {{namespace}} |
| {%- endfor %} |
| |
| #endif // {{header_guard}} |