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

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

Issue 2820783002: Add associated interfaces & bindings. (Closed)
Patch Set: Change Router.prototype.accept. Add a TODO for endpoint client not attached. 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
15 Associated{{interface.name}}Ptr.prototype =
16 Object.create({{interface.name}}Ptr.prototype);
17 Associated{{interface.name}}Ptr.prototype.constructor =
18 Associated{{interface.name}}Ptr;
19
10 function {{interface.name}}Proxy(receiver) { 20 function {{interface.name}}Proxy(receiver) {
11 this.receiver_ = receiver; 21 this.receiver_ = receiver;
12 } 22 }
13 23
14 {%- for method in interface.methods %} 24 {%- for method in interface.methods %}
15 {{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() { 25 {{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() {
16 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} 26 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}}
17 .apply(this.ptr.getProxy(), arguments); 27 .apply(this.ptr.getProxy(), arguments);
18 }; 28 };
19 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 %}
31 var builder = new codec.MessageBuilder( 41 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
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 %}
47 var builder = new codec.MessageV0Builder(
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) {
39 var builder = new codec.MessageWithRequestIDBuilder( 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 %}
63 var builder = new codec.MessageV1Builder(
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 %}
105 var builder = new codec.MessageWithRequestIDBuilder( 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
134 .encodedSize),
135 codec.kMessageIsResponse, reader.requestID);
136 builder.setPayload({{interface.name}}_{{method.name}}_ResponseParams,
137 responseParams);
138 {%- else %}
139 var builder = new codec.MessageV1Builder(
106 k{{interface.name}}_{{method.name}}_Name, 140 k{{interface.name}}_{{method.name}}_Name,
107 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode dSize), 141 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode dSize),
108 codec.kMessageIsResponse, reader.requestID); 142 codec.kMessageIsResponse, reader.requestID);
109 builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams, 143 builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams,
110 responseParams); 144 responseParams);
145 {%- endif %}
111 var message = builder.finish(); 146 var message = builder.finish();
112 responder.accept(message); 147 responder.accept(message);
113 }); 148 });
114 return true; 149 return true;
115 {%- endif %} 150 {%- endif %}
116 {%- endfor %} 151 {%- endfor %}
117 default: 152 default:
118 return false; 153 return false;
119 } 154 }
120 }; 155 };
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 {%- from "enum_definition.tmpl" import enum_def -%} 224 {%- from "enum_definition.tmpl" import enum_def -%}
190 {%- for enum in interface.enums %} 225 {%- for enum in interface.enums %}
191 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }} 226 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }}
192 {%- endfor %} 227 {%- endfor %}
193 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ; 228 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ;
194 {%- if interface|has_callbacks %} 229 {%- if interface|has_callbacks %}
195 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se; 230 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se;
196 {%- else %} 231 {%- else %}
197 {{interface.name}}Proxy.prototype.validator = null; 232 {{interface.name}}Proxy.prototype.validator = null;
198 {%- endif %} 233 {%- endif %}
OLDNEW
« no previous file with comments | « mojo/public/js/validator.js ('k') | mojo/public/tools/bindings/generators/js_templates/module_definition.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698