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

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

Issue 215883004: Revert of Mojo: add javascript bindings for request/response (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 months 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 | Annotate | Revision Log
« no previous file with comments | « mojo/apps/js/test/run_apps_js_tests.cc ('k') | mojo/public/bindings/js/codec.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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}}Proxy(receiver) { 5 function {{interface.name}}Proxy(receiver) {
6 this.receiver_ = receiver; 6 this.receiver_ = receiver;
7 } 7 }
8 8
9 {%- for method in interface.methods %} 9 {%- for method in interface.methods %}
10 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function( 10 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function(
11 {%- for parameter in method.parameters -%} 11 {%- for parameter in method.parameters -%}
12 {{parameter.name}}{% if not loop.last %}, {% endif %} 12 {{parameter.name}}{% if not loop.last %}, {% endif %}
13 {%- endfor -%} 13 {%- endfor %}) {
14 {%- if method.response_parameters != None -%}
15 , closure
16 {%- endif -%}
17 ) {
18 var params = new {{interface.name}}_{{method.name}}_Params(); 14 var params = new {{interface.name}}_{{method.name}}_Params();
19 {%- for parameter in method.parameters %} 15 {%- for parameter in method.parameters %}
20 params.{{parameter.name}} = {{parameter.name}}; 16 params.{{parameter.name}} = {{parameter.name}};
21 {%- endfor %} 17 {%- endfor %}
22 18
23 {%- if method.response_parameters == None %}
24 var builder = new codec.MessageBuilder( 19 var builder = new codec.MessageBuilder(
25 k{{interface.name}}_{{method.name}}_Name, 20 k{{interface.name}}_{{method.name}}_Name,
26 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); 21 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize));
27 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); 22 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
28 var message = builder.finish(); 23 var message = builder.finish();
29 this.receiver_.accept(message); 24 this.receiver_.accept(message);
30 {%- else %}
31 var builder = new codec.MessageWithRequestIDBuilder(
32 k{{interface.name}}_{{method.name}}_Name,
33 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize),
34 codec.kMessageExpectsResponse, 0);
35 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
36 var message = builder.finish();
37 this.receiver_.acceptWithResponder(message, { accept: function(message) {
38 var reader = new codec.MessageReader(message);
39 var responseParams =
40 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParams) ;
41 closure(
42 {%- for parameter in method.response_parameters -%}
43 responseParams.{{parameter.name}}{% if not loop.last %}, {% endif %}
44 {%- endfor -%});
45 }});
46 {%- endif %}
47 }; 25 };
48 {%- endfor %} 26 {%- endfor %}
49 27
50 function {{interface.name}}Stub() { 28 function {{interface.name}}Stub() {
51 } 29 }
52 30
53 {{interface.name}}Stub.prototype.accept = function(message) { 31 {{interface.name}}Stub.prototype.accept = function(message) {
54 var reader = new codec.MessageReader(message); 32 var reader = new codec.MessageReader(message);
55 switch (reader.messageName) { 33 switch (reader.messageName) {
56 {%- for method in interface.methods %} 34 {%- for method in interface.methods %}
57 {%- if method.response_parameters == None %}
58 case k{{interface.name}}_{{method.name}}_Name: 35 case k{{interface.name}}_{{method.name}}_Name:
59 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params ); 36 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params );
60 this.{{method.name|stylize_method}}( 37 this.{{method.name|stylize_method}}(
61 {%- for parameter in method.parameters -%} 38 {%- for parameter in method.parameters -%}
62 params.{{parameter.name}}{% if not loop.last %}, {% endif %} 39 params.{{parameter.name}}{% if not loop.last %}, {% endif %}
63 {%- endfor %}); 40 {%- endfor %});
64 return true; 41 return true;
65 {%- endif %}
66 {%- endfor %} 42 {%- endfor %}
67 default: 43 default:
68 return false; 44 return false;
69 }
70 };
71
72 {{interface.name}}Stub.prototype.acceptWithResponder =
73 function(message, responder) {
74 var reader = new codec.MessageReader(message);
75 switch (reader.messageName) {
76 {%- for method in interface.methods %}
77 {%- if method.response_parameters != None %}
78 case k{{interface.name}}_{{method.name}}_Name:
79 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params );
80 this.{{method.name|stylize_method}}(
81 {%- for parameter in method.parameters -%}
82 params.{{parameter.name}},
83 {%- endfor %} function (
84 {%- for parameter in method.response_parameters -%}
85 {{parameter.name}}{% if not loop.last %}, {% endif -%}
86 {%- endfor -%}) {
87 var responseParams =
88 new {{interface.name}}_{{method.name}}_ResponseParams();
89 {%- for parameter in method.response_parameters %}
90 responseParams.{{parameter.name}} = {{parameter.name}};
91 {%- endfor %}
92 var builder = new codec.MessageWithRequestIDBuilder(
93 k{{interface.name}}_{{method.name}}_Name,
94 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode dSize),
95 codec.kMessageIsResponse, reader.requestID);
96 builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams,
97 responseParams);
98 var message = builder.finish();
99 responder.accept(message);
100 });
101 return true;
102 {%- endif %}
103 {%- endfor %}
104 default:
105 return false;
106 } 45 }
107 }; 46 };
108 47
109 {#--- Enums #} 48 {#--- Enums #}
110 {% from "enum_definition.tmpl" import enum_def -%} 49 {% from "enum_definition.tmpl" import enum_def -%}
111 {% for enum in interface.enums %} 50 {% for enum in interface.enums %}
112 {{enum_def("%sProxy.%s"|format(interface.name, enum.name), enum, module)}} 51 {{enum_def("%sProxy.%s"|format(interface.name, enum.name), enum, module)}}
113 {{interface.name}}Stub.{{enum.name}} = {{interface.name}}Proxy.{{enum.name}}; 52 {{interface.name}}Stub.{{enum.name}} = {{interface.name}}Proxy.{{enum.name}};
114 {%- endfor %} 53 {%- endfor %}
OLDNEW
« no previous file with comments | « mojo/apps/js/test/run_apps_js_tests.cc ('k') | mojo/public/bindings/js/codec.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698