Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Side by Side Diff: mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl

Issue 2556353004: Mojo JS bindings: code generator maps interface ptr and request to InterfacePtr and InterfaceReques… (Closed)
Patch Set: . Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 {%- for method in interface.methods %} 1 {%- for method in interface.methods %}
2 var k{{interface.name}}_{{method.name}}_Name = {{method.ordinal}}; 2 var k{{interface.name}}_{{method.name}}_Name = {{method.ordinal}};
3 {%- endfor %} 3 {%- endfor %}
4 4
5 function {{interface.name}}Ptr() { 5 function {{interface.name}}Ptr() {
6 this.ptr = new bindings.InterfacePtrController({{interface.name}}); 6 this.ptr = new bindings.InterfacePtrController({{interface.name}});
7 } 7 }
8 8
9 function {{interface.name}}Proxy(receiver) { 9 function {{interface.name}}Proxy(receiver) {
10 bindings.ProxyBase.call(this, receiver); 10 bindings.ProxyBase.call(this, receiver);
11 } 11 }
12 {{interface.name}}Proxy.prototype = Object.create(bindings.ProxyBase.prototype ); 12 {{interface.name}}Proxy.prototype = Object.create(bindings.ProxyBase.prototype );
13 13
14 {%- for method in interface.methods %} 14 {%- for method in interface.methods %}
15 {{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() { 15 {{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() {
16 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} 16 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}}
17 .apply(this.ptr.getProxy(), arguments); 17 .apply(this.ptr.getProxy(), arguments);
18 }; 18 };
19 19
20 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function( 20 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function(
21 {%- for parameter in method.parameters -%} 21 {%- for parameter in method.parameters -%}
22 {{parameter.name}}{% if not loop.last %}, {% endif %} 22 {{parameter.name}}{% if not loop.last %}, {% endif %}
23 {%- endfor -%} 23 {%- endfor -%}
24 ) { 24 ) {
25 var params = new {{interface.name}}_{{method.name}}_Params(); 25 var params = new {{interface.name}}_{{method.name}}_Params();
26 {%- for parameter in method.parameters %} 26 {%- for parameter in method.parameters %}
27 params.{{parameter.name}} = {{parameter|js_proxy_method_parameter_value}}; 27 params.{{parameter.name}} = {{parameter.name}};
28 {%- endfor %} 28 {%- endfor %}
29 29
30 {%- if method.response_parameters == None %} 30 {%- if method.response_parameters == None %}
31 var builder = new codec.MessageBuilder( 31 var builder = new codec.MessageBuilder(
32 k{{interface.name}}_{{method.name}}_Name, 32 k{{interface.name}}_{{method.name}}_Name,
33 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); 33 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize));
34 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); 34 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
35 var message = builder.finish(); 35 var message = builder.finish();
36 this.receiver_.accept(message); 36 this.receiver_.accept(message);
37 {%- else %} 37 {%- else %}
(...skipping 19 matching lines...) Expand all
57 57
58 function {{interface.name}}Stub(delegate) { 58 function {{interface.name}}Stub(delegate) {
59 bindings.StubBase.call(this, delegate); 59 bindings.StubBase.call(this, delegate);
60 } 60 }
61 {{interface.name}}Stub.prototype = Object.create(bindings.StubBase.prototype); 61 {{interface.name}}Stub.prototype = Object.create(bindings.StubBase.prototype);
62 62
63 {%- for method in interface.methods %} 63 {%- for method in interface.methods %}
64 {%- set js_method_name = method.name|stylize_method %} 64 {%- set js_method_name = method.name|stylize_method %}
65 {%- set delegate_expr = "bindings.StubBindings(this).delegate" %} 65 {%- set delegate_expr = "bindings.StubBindings(this).delegate" %}
66 {{interface.name}}Stub.prototype.{{js_method_name}} = function({{method.parame ters|map(attribute='name')|join(', ')}}) { 66 {{interface.name}}Stub.prototype.{{js_method_name}} = function({{method.parame ters|map(attribute='name')|join(', ')}}) {
67 return {{delegate_expr}} && {{delegate_expr}}.{{js_method_name}} && {{delega te_expr}}.{{js_method_name}}({{method.parameters|map('js_stub_method_parameter_v alue')|join(', ')}}); 67 return {{delegate_expr}} && {{delegate_expr}}.{{js_method_name}} && {{delega te_expr}}.{{js_method_name}}({{method.parameters|map(attribute='name')|join(', ' )}});
68 } 68 }
69 {%- endfor %} 69 {%- endfor %}
70 70
71 {{interface.name}}Stub.prototype.accept = function(message) { 71 {{interface.name}}Stub.prototype.accept = function(message) {
72 var reader = new codec.MessageReader(message); 72 var reader = new codec.MessageReader(message);
73 switch (reader.messageName) { 73 switch (reader.messageName) {
74 {%- for method in interface.methods %} 74 {%- for method in interface.methods %}
75 {%- if method.response_parameters == None %} 75 {%- if method.response_parameters == None %}
76 case k{{interface.name}}_{{method.name}}_Name: 76 case k{{interface.name}}_{{method.name}}_Name:
77 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params ); 77 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params );
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 {%- endfor %} 164 {%- endfor %}
165 } 165 }
166 if (paramsClass === null) 166 if (paramsClass === null)
167 return validator.validationError.NONE; 167 return validator.validationError.NONE;
168 return paramsClass.validate(messageValidator, messageValidator.message.getHe aderNumBytes()); 168 return paramsClass.validate(messageValidator, messageValidator.message.getHe aderNumBytes());
169 {%- endif %} 169 {%- endif %}
170 } 170 }
171 171
172 var {{interface.name}} = { 172 var {{interface.name}} = {
173 name: '{{namespace|replace(".","::")}}::{{interface.name}}', 173 name: '{{namespace|replace(".","::")}}::{{interface.name}}',
174 ptrClass: {{interface.name}}Ptr,
174 proxyClass: {{interface.name}}Proxy, 175 proxyClass: {{interface.name}}Proxy,
175 stubClass: {{interface.name}}Stub, 176 stubClass: {{interface.name}}Stub,
176 validateRequest: validate{{interface.name}}Request, 177 validateRequest: validate{{interface.name}}Request,
177 {%- if interface|has_callbacks %} 178 {%- if interface|has_callbacks %}
178 validateResponse: validate{{interface.name}}Response, 179 validateResponse: validate{{interface.name}}Response,
179 {%- else %} 180 {%- else %}
180 validateResponse: null, 181 validateResponse: null,
181 {%- endif %} 182 {%- endif %}
182 }; 183 };
183 {#--- Interface Constants #} 184 {#--- Interface Constants #}
184 {%- for constant in interface.constants %} 185 {%- for constant in interface.constants %}
185 {{interface.name}}.{{constant.name}} = {{constant.value|expression_to_text}}, 186 {{interface.name}}.{{constant.name}} = {{constant.value|expression_to_text}},
186 {%- endfor %} 187 {%- endfor %}
187 {#--- Interface Enums #} 188 {#--- Interface Enums #}
188 {%- from "enum_definition.tmpl" import enum_def -%} 189 {%- from "enum_definition.tmpl" import enum_def -%}
189 {%- for enum in interface.enums %} 190 {%- for enum in interface.enums %}
190 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }} 191 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }}
191 {%- endfor %} 192 {%- endfor %}
192 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ; 193 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ;
193 {%- if interface|has_callbacks %} 194 {%- if interface|has_callbacks %}
194 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se; 195 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se;
195 {%- else %} 196 {%- else %}
196 {{interface.name}}Proxy.prototype.validator = null; 197 {{interface.name}}Proxy.prototype.validator = null;
197 {%- endif %} 198 {%- endif %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698