| Index: mojo/public/bindings/generators/js_templates/interface_definition.tmpl
|
| diff --git a/mojo/public/bindings/generators/js_templates/interface_definition.tmpl b/mojo/public/bindings/generators/js_templates/interface_definition.tmpl
|
| index df1483d1063bac333be991a66e3a729bb4d19180..fc77059e76ce136790ada9529ba66248916b9a1e 100644
|
| --- a/mojo/public/bindings/generators/js_templates/interface_definition.tmpl
|
| +++ b/mojo/public/bindings/generators/js_templates/interface_definition.tmpl
|
| @@ -10,18 +10,40 @@
|
| {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function(
|
| {%- for parameter in method.parameters -%}
|
| {{parameter.name}}{% if not loop.last %}, {% endif %}
|
| -{%- endfor %}) {
|
| +{%- endfor -%}
|
| +{%- if method.response_parameters != None -%}
|
| +, closure
|
| +{%- endif -%}
|
| +) {
|
| var params = new {{interface.name}}_{{method.name}}_Params();
|
| {%- for parameter in method.parameters %}
|
| params.{{parameter.name}} = {{parameter.name}};
|
| {%- endfor %}
|
|
|
| +{%- if method.response_parameters == None %}
|
| var builder = new codec.MessageBuilder(
|
| k{{interface.name}}_{{method.name}}_Name,
|
| codec.align({{interface.name}}_{{method.name}}_Params.encodedSize));
|
| builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
|
| var message = builder.finish();
|
| this.receiver_.accept(message);
|
| +{%- else %}
|
| + var builder = new codec.MessageWithRequestIDBuilder(
|
| + k{{interface.name}}_{{method.name}}_Name,
|
| + codec.align({{interface.name}}_{{method.name}}_Params.encodedSize),
|
| + codec.kMessageExpectsResponse, 0);
|
| + builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
|
| + var message = builder.finish();
|
| + this.receiver_.acceptWithResponder(message, { accept: function(message) {
|
| + var reader = new codec.MessageReader(message);
|
| + var responseParams =
|
| + reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParams);
|
| + closure(
|
| +{%- for parameter in method.response_parameters -%}
|
| +responseParams.{{parameter.name}}{% if not loop.last %}, {% endif %}
|
| +{%- endfor -%});
|
| + }});
|
| +{%- endif %}
|
| };
|
| {%- endfor %}
|
|
|
| @@ -32,6 +54,7 @@
|
| var reader = new codec.MessageReader(message);
|
| switch (reader.messageName) {
|
| {%- for method in interface.methods %}
|
| +{%- if method.response_parameters == None %}
|
| case k{{interface.name}}_{{method.name}}_Name:
|
| var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params);
|
| this.{{method.name|stylize_method}}(
|
| @@ -39,6 +62,44 @@
|
| params.{{parameter.name}}{% if not loop.last %}, {% endif %}
|
| {%- endfor %});
|
| return true;
|
| +{%- endif %}
|
| +{%- endfor %}
|
| + default:
|
| + return false;
|
| + }
|
| + };
|
| +
|
| + {{interface.name}}Stub.prototype.acceptWithResponder =
|
| + function(message, responder) {
|
| + var reader = new codec.MessageReader(message);
|
| + switch (reader.messageName) {
|
| +{%- for method in interface.methods %}
|
| +{%- if method.response_parameters != None %}
|
| + case k{{interface.name}}_{{method.name}}_Name:
|
| + var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params);
|
| + this.{{method.name|stylize_method}}(
|
| +{%- for parameter in method.parameters -%}
|
| +params.{{parameter.name}},
|
| +{%- endfor %} function (
|
| +{%- for parameter in method.response_parameters -%}
|
| +{{parameter.name}}{% if not loop.last %}, {% endif -%}
|
| +{%- endfor -%}) {
|
| + var responseParams =
|
| + new {{interface.name}}_{{method.name}}_ResponseParams();
|
| +{%- for parameter in method.response_parameters %}
|
| + responseParams.{{parameter.name}} = {{parameter.name}};
|
| +{%- endfor %}
|
| + var builder = new codec.MessageWithRequestIDBuilder(
|
| + k{{interface.name}}_{{method.name}}_Name,
|
| + codec.align({{interface.name}}_{{method.name}}_ResponseParams.encodedSize),
|
| + codec.kMessageIsResponse, reader.requestID);
|
| + builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams,
|
| + responseParams);
|
| + var message = builder.finish();
|
| + responder.accept(message);
|
| + });
|
| + return true;
|
| +{%- endif %}
|
| {%- endfor %}
|
| default:
|
| return false;
|
|
|