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

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

Issue 2820783002: Add associated interfaces & bindings. (Closed)
Patch Set: Remove changes to vibration-iframe-expected.txt because it was removed in master. Created 3 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
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(handleOrPtrInfo) { 5 function {{interface.name}}Ptr(handleOrPtrInfo) {
6 this.ptr = new bindings.InterfacePtrController({{interface.name}}, 6 this.ptr = new bindings.InterfacePtrController({{interface.name}},
7 handleOrPtrInfo); 7 handleOrPtrInfo);
8 } 8 }
9 9
10 function Associated{{interface.name}}Ptr(associatedInterfacePtrInfo) {
11 this.ptr = new associatedBindings.AssociatedInterfacePtrController(
12 {{interface.name}}, associatedInterfacePtrInfo);
13 }
14
10 function {{interface.name}}Proxy(receiver) { 15 function {{interface.name}}Proxy(receiver) {
11 this.receiver_ = receiver; 16 this.receiver_ = receiver;
12 } 17 }
13 18
14 {%- for method in interface.methods %} 19 {%- for method in interface.methods %}
15 {{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() { 20 {{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() {
16 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} 21 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}}
17 .apply(this.ptr.getProxy(), arguments); 22 .apply(this.ptr.getProxy(), arguments);
18 }; 23 };
19 24
25 Associated{{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = fun ction() {
yzshen1 2017/04/19 21:11:34 (1) < 80 chars please. (2) The definition is exact
wangjimmy 2017/04/20 15:36:44 Removed and done using inheritance. + Associated{{
26 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}}
27 .apply(this.ptr.getProxy(), arguments);
28 };
29
20 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function( 30 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function(
21 {%- for parameter in method.parameters -%} 31 {%- for parameter in method.parameters -%}
22 {{parameter.name}}{% if not loop.last %}, {% endif %} 32 {{parameter.name}}{% if not loop.last %}, {% endif %}
23 {%- endfor -%} 33 {%- endfor -%}
24 ) { 34 ) {
25 var params = new {{interface.name}}_{{method.name}}_Params(); 35 var params = new {{interface.name}}_{{method.name}}_Params();
26 {%- for parameter in method.parameters %} 36 {%- for parameter in method.parameters %}
27 params.{{parameter.name}} = {{parameter.name}}; 37 params.{{parameter.name}} = {{parameter.name}};
28 {%- endfor %} 38 {%- endfor %}
29 39
30 {%- if method.response_parameters == None %} 40 {%- if method.response_parameters == None %}
41 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
yzshen1 2017/04/19 21:11:34 Two more spaces indent in front of "if", like this
wangjimmy 2017/04/20 15:36:44 Done.
yzshen1 2017/04/20 18:12:13 This comment hasn't been completely addressed.
42 var builder = new codec.MessageV2Builder(
43 k{{interface.name}}_{{method.name}}_Name,
44 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize));
45 builder.setPayload({{interface.name}}_{{method.name}}_Params, params);
46 {%- else %}
31 var builder = new codec.MessageBuilder( 47 var builder = new codec.MessageBuilder(
32 k{{interface.name}}_{{method.name}}_Name, 48 k{{interface.name}}_{{method.name}}_Name,
33 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); 49 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize));
34 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); 50 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
51 {%- endif %}
35 var message = builder.finish(); 52 var message = builder.finish();
36 this.receiver_.accept(message); 53 this.receiver_.accept(message);
37 {%- else %} 54 {%- else %}
38 return new Promise(function(resolve, reject) { 55 return new Promise(function(resolve, reject) {
56 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
57 var builder = new codec.MessageV2Builder(
58 k{{interface.name}}_{{method.name}}_Name,
59 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize),
60 codec.kMessageExpectsResponse, 0);
61 builder.setPayload({{interface.name}}_{{method.name}}_Params, params);
62 {%- else %}
39 var builder = new codec.MessageWithRequestIDBuilder( 63 var builder = new codec.MessageWithRequestIDBuilder(
40 k{{interface.name}}_{{method.name}}_Name, 64 k{{interface.name}}_{{method.name}}_Name,
41 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize), 65 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize),
42 codec.kMessageExpectsResponse, 0); 66 codec.kMessageExpectsResponse, 0);
43 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); 67 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
68 {%- endif %}
44 var message = builder.finish(); 69 var message = builder.finish();
45 this.receiver_.acceptAndExpectResponse(message).then(function(message) { 70 this.receiver_.acceptAndExpectResponse(message).then(function(message) {
46 var reader = new codec.MessageReader(message); 71 var reader = new codec.MessageReader(message);
47 var responseParams = 72 var responseParams =
48 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParam s); 73 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParam s);
49 resolve(responseParams); 74 resolve(responseParams);
50 }).catch(function(result) { 75 }).catch(function(result) {
51 reject(Error("Connection error: " + result)); 76 reject(Error("Connection error: " + result));
52 }); 77 });
53 }.bind(this)); 78 }.bind(this));
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params ); 120 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params );
96 this.{{method.name|stylize_method}}( 121 this.{{method.name|stylize_method}}(
97 {%- for parameter in method.parameters -%} 122 {%- for parameter in method.parameters -%}
98 params.{{parameter.name}}{% if not loop.last %}, {% endif -%} 123 params.{{parameter.name}}{% if not loop.last %}, {% endif -%}
99 {%- endfor %}).then(function(response) { 124 {%- endfor %}).then(function(response) {
100 var responseParams = 125 var responseParams =
101 new {{interface.name}}_{{method.name}}_ResponseParams(); 126 new {{interface.name}}_{{method.name}}_ResponseParams();
102 {%- for parameter in method.response_parameters %} 127 {%- for parameter in method.response_parameters %}
103 responseParams.{{parameter.name}} = response.{{parameter.name}}; 128 responseParams.{{parameter.name}} = response.{{parameter.name}};
104 {%- endfor %} 129 {%- endfor %}
130 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
131 var builder = new codec.MessageV2Builder(
132 k{{interface.name}}_{{method.name}}_Name,
133 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode dSize),
yzshen1 2017/04/19 21:11:34 80 chars, please. (I understand the existing code
wangjimmy 2017/04/20 15:36:44 Acknowledged. Do you want me to line break this co
yzshen1 2017/04/20 18:12:13 Sounds good. Yeah, I understand that the generate
134 codec.kMessageIsResponse, reader.requestID);
135 builder.setPayload({{interface.name}}_{{method.name}}_ResponseParams,
136 responseParams);
137 {%- else %}
105 var builder = new codec.MessageWithRequestIDBuilder( 138 var builder = new codec.MessageWithRequestIDBuilder(
106 k{{interface.name}}_{{method.name}}_Name, 139 k{{interface.name}}_{{method.name}}_Name,
107 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode dSize), 140 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode dSize),
108 codec.kMessageIsResponse, reader.requestID); 141 codec.kMessageIsResponse, reader.requestID);
109 builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams, 142 builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams,
110 responseParams); 143 responseParams);
144 {%- endif %}
111 var message = builder.finish(); 145 var message = builder.finish();
112 responder.accept(message); 146 responder.accept(message);
113 }); 147 });
114 return true; 148 return true;
115 {%- endif %} 149 {%- endif %}
116 {%- endfor %} 150 {%- endfor %}
117 default: 151 default:
118 return false; 152 return false;
119 } 153 }
120 }; 154 };
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 {%- from "enum_definition.tmpl" import enum_def -%} 223 {%- from "enum_definition.tmpl" import enum_def -%}
190 {%- for enum in interface.enums %} 224 {%- for enum in interface.enums %}
191 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }} 225 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }}
192 {%- endfor %} 226 {%- endfor %}
193 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ; 227 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ;
194 {%- if interface|has_callbacks %} 228 {%- if interface|has_callbacks %}
195 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se; 229 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se;
196 {%- else %} 230 {%- else %}
197 {{interface.name}}Proxy.prototype.validator = null; 231 {{interface.name}}Proxy.prototype.validator = null;
198 {%- endif %} 232 {%- endif %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698