| {# Note that goog.provide is understood by the Closure Compiler even if the |
| Closure base library is unavailable. See https://crbug.com/898692 #} |
| goog.provide('{{module.namespace}}.{{interface.name}}'); |
| goog.provide('{{module.namespace}}.{{interface.name}}Interface'); |
| goog.provide('{{module.namespace}}.{{interface.name}}Request'); |
| goog.provide('{{module.namespace}}.{{interface.name}}Proxy'); |
| goog.provide('{{module.namespace}}.{{interface.name}}CallbackRouter'); |
| |
| {% macro generateInterfaceClassBody() -%} |
| {%- for method in interface.methods %} |
| /** |
| {%- for parameter in method.parameters %} |
| * @param { {{parameter.kind|lite_closure_type_with_nullability}} } {{parameter.name|sanitize_identifier}} |
| {%- endfor -%} |
| {%- if method.response_parameters != None %} |
| {%- if method.response_parameters|length == 0 %} |
| * @return {Promise} |
| {%- else %} |
| * @return {Promise<{ |
| {%- for response_parameter in method.response_parameters %} |
| {{response_parameter.name}}: {{response_parameter.kind|lite_closure_type_with_nullability}}, |
| {%- endfor %} |
| * }>} |
| {%- endif %} |
| {%- endif %} |
| */ |
| {{method.name}}( |
| {%- for parameter in method.parameters -%} |
| {{parameter.name|sanitize_identifier}}{% if not loop.last %}, {% endif %} |
| {%- endfor -%} |
| ) {} |
| {%- endfor %} |
| {%- endmacro %} |
| |
| /** @interface */ |
| {{module.namespace}}.{{interface.name}}Interface = class { |
| {{ generateInterfaceClassBody() }} |
| }; |
| |
| {{module.namespace}}.{{interface.name}}Request = class { |
| /** @param {!MojoHandle} handle */ |
| constructor(handle) {} |
| }; |
| |
| /** @implements { {{module.namespace}}.{{interface.name}}Interface } */ |
| {{module.namespace}}.{{interface.name}}Proxy = class { |
| constructor() { |
| /** @public {!mojo.internal.ConnectionErrorEventRouter} */ |
| this.onConnectionError; |
| } |
| {{ generateInterfaceClassBody() }} |
| |
| /** |
| * @return {!{{module.namespace}}.{{interface.name}}Request} |
| */ |
| createRequest() {} |
| |
| /** |
| * @return {Promise} |
| */ |
| flushForTesting() {} |
| }; |
| |
| {{module.namespace}}.{{interface.name}} = class { |
| /** @param {!{{module.namespace}}.{{interface.name}}Interface} impl */ |
| constructor(impl) {} |
| |
| /** |
| * @param {!MojoHandle} handle |
| */ |
| bindHandle(handle) {} |
| |
| /** |
| * @return {!{{module.namespace}}.{{interface.name}}Proxy } |
| */ |
| static getProxy() {} |
| |
| /** |
| * @return {!{{module.namespace}}.{{interface.name}}Proxy } |
| */ |
| createProxy() {} |
| }; |
| |
| /** @const {!string} */ |
| {{module.namespace}}.{{interface.name}}.$interfaceName; |
| |
| {{module.namespace}}.{{interface.name}}CallbackRouter = class { |
| constructor() { |
| {%- for method in interface.methods %} |
| /** @public {!mojo.internal.InterfaceCallbackTarget} */ |
| this.{{method.name}}; |
| {%- endfor %} |
| } |
| |
| /** |
| * @param {!MojoHandle} handle |
| */ |
| bindHandle(handle) {} |
| |
| /** |
| * @return {!{{module.namespace}}.{{interface.name}}Proxy } |
| */ |
| createProxy() {} |
| |
| /** |
| * @param {number} id An ID returned by a prior call to addListener. |
| * @return {boolean} True iff the identified listener was found and removed. |
| */ |
| removeListener(id) {} |
| }; |
| |
| {#--- Enum definitions #} |
| {% for enum in interface.enums %} |
| /** @enum {number} */ |
| {{module.namespace}}.{{interface.name}}.{{enum.name}} = {}; |
| {%- for field in enum.fields %} |
| {{module.namespace}}.{{interface.name}}.{{enum.name}}.{{field.name}}; |
| {%- endfor %} |
| {%- endfor %} |