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

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

Issue 696373003: Don't GC message pipes that have an in-flight request (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « mojo/public/js/bindings/router.js ('k') | sky/examples/file-browser.sky » ('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(
(...skipping 14 matching lines...) Expand all
25 var message = builder.finish(); 25 var message = builder.finish();
26 this.receiver_.accept(message); 26 this.receiver_.accept(message);
27 {%- else %} 27 {%- else %}
28 return new Promise(function(resolve, reject) { 28 return new Promise(function(resolve, reject) {
29 var builder = new codec.MessageWithRequestIDBuilder( 29 var builder = new codec.MessageWithRequestIDBuilder(
30 k{{interface.name}}_{{method.name}}_Name, 30 k{{interface.name}}_{{method.name}}_Name,
31 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize), 31 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize),
32 codec.kMessageExpectsResponse, 0); 32 codec.kMessageExpectsResponse, 0);
33 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); 33 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params);
34 var message = builder.finish(); 34 var message = builder.finish();
35 this.receiver_.acceptWithResponder(message, { 35 this.receiver_.acceptAndExpectResponse(message).then(function(message) {
36 accept: function(message) { 36 var reader = new codec.MessageReader(message);
37 var reader = new codec.MessageReader(message); 37 var responseParams =
38 var responseParams = 38 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParam s);
39 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseP arams); 39 resolve(responseParams);
40 resolve(responseParams); 40 }).catch(function(result) {
41 }, 41 reject(Error("Connection error: " + result));
42 reject: function(result) { 42 });
43 reject(Error("Connection error: " + result));
44 },
45 }).catch(reject);
46 }.bind(this)); 43 }.bind(this));
47 {%- endif %} 44 {%- endif %}
48 }; 45 };
49 {%- endfor %} 46 {%- endfor %}
50 47
51 function {{interface.name}}Stub() { 48 function {{interface.name}}Stub() {
52 } 49 }
53 50
54 {{interface.name}}Stub.prototype.accept = function(message) { 51 {{interface.name}}Stub.prototype.accept = function(message) {
55 var reader = new codec.MessageReader(message); 52 var reader = new codec.MessageReader(message);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 {%- from "enum_definition.tmpl" import enum_def -%} 187 {%- from "enum_definition.tmpl" import enum_def -%}
191 {%- for enum in interface.enums %} 188 {%- for enum in interface.enums %}
192 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }} 189 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }}
193 {%- endfor %} 190 {%- endfor %}
194 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ; 191 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ;
195 {%- if interface|has_callbacks %} 192 {%- if interface|has_callbacks %}
196 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se; 193 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se;
197 {%- else %} 194 {%- else %}
198 {{interface.name}}Proxy.prototype.validator = null; 195 {{interface.name}}Proxy.prototype.validator = null;
199 {%- endif %} 196 {%- endif %}
OLDNEW
« no previous file with comments | « mojo/public/js/bindings/router.js ('k') | sky/examples/file-browser.sky » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698