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

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

Issue 2889723002: Mojo JavaScript bindings: follow JavaScript naming rules. (Closed)
Patch Set: . Created 3 years, 7 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 {%- set interface_method_id =
3 interface.mojom_name ~ "_" ~ method.mojom_name %}
4 var k{{interface_method_id}}_Name = {{method.ordinal}};
3 {%- endfor %} 5 {%- endfor %}
4 6
5 function {{interface.name}}Ptr(handleOrPtrInfo) { 7 function {{interface.name}}Ptr(handleOrPtrInfo) {
6 this.ptr = new bindings.InterfacePtrController({{interface.name}}, 8 this.ptr = new bindings.InterfacePtrController({{interface.name}},
7 handleOrPtrInfo); 9 handleOrPtrInfo);
8 } 10 }
9 11
10 function Associated{{interface.name}}Ptr(associatedInterfacePtrInfo) { 12 function Associated{{interface.name}}Ptr(associatedInterfacePtrInfo) {
11 this.ptr = new associatedBindings.AssociatedInterfacePtrController( 13 this.ptr = new associatedBindings.AssociatedInterfacePtrController(
12 {{interface.name}}, associatedInterfacePtrInfo); 14 {{interface.name}}, associatedInterfacePtrInfo);
13 } 15 }
14 16
15 Associated{{interface.name}}Ptr.prototype = 17 Associated{{interface.name}}Ptr.prototype =
16 Object.create({{interface.name}}Ptr.prototype); 18 Object.create({{interface.name}}Ptr.prototype);
17 Associated{{interface.name}}Ptr.prototype.constructor = 19 Associated{{interface.name}}Ptr.prototype.constructor =
18 Associated{{interface.name}}Ptr; 20 Associated{{interface.name}}Ptr;
19 21
20 function {{interface.name}}Proxy(receiver) { 22 function {{interface.name}}Proxy(receiver) {
21 this.receiver_ = receiver; 23 this.receiver_ = receiver;
22 } 24 }
23 25
24 {%- for method in interface.methods %} 26 {%- for method in interface.methods %}
25 {{interface.name}}Ptr.prototype.{{method.name|stylize_method}} = function() { 27 {%- set interface_method_id =
26 return {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} 28 interface.mojom_name ~ "_" ~ method.mojom_name %}
29 {{interface.name}}Ptr.prototype.{{method.name}} = function() {
30 return {{interface.name}}Proxy.prototype.{{method.name}}
27 .apply(this.ptr.getProxy(), arguments); 31 .apply(this.ptr.getProxy(), arguments);
28 }; 32 };
29 33
30 {{interface.name}}Proxy.prototype.{{method.name|stylize_method}} = function( 34 {{interface.name}}Proxy.prototype.{{method.name}} = function(
31 {%- for parameter in method.parameters -%} 35 {%- for parameter in method.parameters -%}
32 {{parameter.name}}{% if not loop.last %}, {% endif %} 36 {{parameter.name}}{% if not loop.last %}, {% endif %}
33 {%- endfor -%} 37 {%- endfor -%}
34 ) { 38 ) {
35 var params = new {{interface.name}}_{{method.name}}_Params(); 39 var params = new {{interface_method_id}}_Params();
36 {%- for parameter in method.parameters %} 40 {%- for parameter in method.parameters %}
37 params.{{parameter.name}} = {{parameter.name}}; 41 params.{{parameter.name}} = {{parameter.name}};
38 {%- endfor %} 42 {%- endfor %}
39 43
40 {%- if method.response_parameters == None %} 44 {%- if method.response_parameters == None %}
41 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} 45 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
42 var builder = new codec.MessageV2Builder( 46 var builder = new codec.MessageV2Builder(
43 k{{interface.name}}_{{method.name}}_Name, 47 k{{interface_method_id}}_Name,
44 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); 48 codec.align({{interface_method_id}}_Params.encodedSize));
45 builder.setPayload({{interface.name}}_{{method.name}}_Params, params); 49 builder.setPayload({{interface_method_id}}_Params, params);
46 {%- else %} 50 {%- else %}
47 var builder = new codec.MessageV0Builder( 51 var builder = new codec.MessageV0Builder(
48 k{{interface.name}}_{{method.name}}_Name, 52 k{{interface_method_id}}_Name,
49 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize)); 53 codec.align({{interface_method_id}}_Params.encodedSize));
50 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); 54 builder.encodeStruct({{interface_method_id}}_Params, params);
51 {%- endif %} 55 {%- endif %}
52 var message = builder.finish(); 56 var message = builder.finish();
53 this.receiver_.accept(message); 57 this.receiver_.accept(message);
54 {%- else %} 58 {%- else %}
55 return new Promise(function(resolve, reject) { 59 return new Promise(function(resolve, reject) {
56 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} 60 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
57 var builder = new codec.MessageV2Builder( 61 var builder = new codec.MessageV2Builder(
58 k{{interface.name}}_{{method.name}}_Name, 62 k{{interface_method_id}}_Name,
59 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize), 63 codec.align({{interface_method_id}}_Params.encodedSize),
60 codec.kMessageExpectsResponse, 0); 64 codec.kMessageExpectsResponse, 0);
61 builder.setPayload({{interface.name}}_{{method.name}}_Params, params); 65 builder.setPayload({{interface_method_id}}_Params, params);
62 {%- else %} 66 {%- else %}
63 var builder = new codec.MessageV1Builder( 67 var builder = new codec.MessageV1Builder(
64 k{{interface.name}}_{{method.name}}_Name, 68 k{{interface_method_id}}_Name,
65 codec.align({{interface.name}}_{{method.name}}_Params.encodedSize), 69 codec.align({{interface_method_id}}_Params.encodedSize),
66 codec.kMessageExpectsResponse, 0); 70 codec.kMessageExpectsResponse, 0);
67 builder.encodeStruct({{interface.name}}_{{method.name}}_Params, params); 71 builder.encodeStruct({{interface_method_id}}_Params, params);
68 {%- endif %} 72 {%- endif %}
69 var message = builder.finish(); 73 var message = builder.finish();
70 this.receiver_.acceptAndExpectResponse(message).then(function(message) { 74 this.receiver_.acceptAndExpectResponse(message).then(function(message) {
71 var reader = new codec.MessageReader(message); 75 var reader = new codec.MessageReader(message);
72 var responseParams = 76 var responseParams =
73 reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseParam s); 77 reader.decodeStruct({{interface_method_id}}_ResponseParams);
74 resolve(responseParams); 78 resolve(responseParams);
75 }).catch(function(result) { 79 }).catch(function(result) {
76 reject(Error("Connection error: " + result)); 80 reject(Error("Connection error: " + result));
77 }); 81 });
78 }.bind(this)); 82 }.bind(this));
79 {%- endif %} 83 {%- endif %}
80 }; 84 };
81 {%- endfor %} 85 {%- endfor %}
82 86
83 function {{interface.name}}Stub(delegate) { 87 function {{interface.name}}Stub(delegate) {
84 this.delegate_ = delegate; 88 this.delegate_ = delegate;
85 } 89 }
86 90
87 {%- for method in interface.methods %} 91 {%- for method in interface.methods %}
88 {%- set js_method_name = method.name|stylize_method %} 92 {{interface.name}}Stub.prototype.{{method.name}} = function({{method.parameter s|map(attribute='name')|join(', ')}}) {
89 {{interface.name}}Stub.prototype.{{js_method_name}} = function({{method.parame ters|map(attribute='name')|join(', ')}}) { 93 return this.delegate_ && this.delegate_.{{method.name}} && this.delegate_.{{ method.name}}({{method.parameters|map(attribute='name')|join(', ')}});
90 return this.delegate_ && this.delegate_.{{js_method_name}} && this.delegate_ .{{js_method_name}}({{method.parameters|map(attribute='name')|join(', ')}});
91 } 94 }
92 {%- endfor %} 95 {%- endfor %}
93 96
94 {{interface.name}}Stub.prototype.accept = function(message) { 97 {{interface.name}}Stub.prototype.accept = function(message) {
95 var reader = new codec.MessageReader(message); 98 var reader = new codec.MessageReader(message);
96 switch (reader.messageName) { 99 switch (reader.messageName) {
97 {%- for method in interface.methods %} 100 {%- for method in interface.methods %}
101 {%- set interface_method_id =
102 interface.mojom_name ~ "_" ~ method.mojom_name %}
98 {%- if method.response_parameters == None %} 103 {%- if method.response_parameters == None %}
99 case k{{interface.name}}_{{method.name}}_Name: 104 case k{{interface_method_id}}_Name:
100 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params ); 105 var params = reader.decodeStruct({{interface_method_id}}_Params);
101 this.{{method.name|stylize_method}}( 106 this.{{method.name}}(
102 {%- for parameter in method.parameters -%} 107 {%- for parameter in method.parameters -%}
103 params.{{parameter.name}}{% if not loop.last %}, {% endif %} 108 params.{{parameter.name}}{% if not loop.last %}, {% endif %}
104 {%- endfor %}); 109 {%- endfor %});
105 return true; 110 return true;
106 {%- endif %} 111 {%- endif %}
107 {%- endfor %} 112 {%- endfor %}
108 default: 113 default:
109 return false; 114 return false;
110 } 115 }
111 }; 116 };
112 117
113 {{interface.name}}Stub.prototype.acceptWithResponder = 118 {{interface.name}}Stub.prototype.acceptWithResponder =
114 function(message, responder) { 119 function(message, responder) {
115 var reader = new codec.MessageReader(message); 120 var reader = new codec.MessageReader(message);
116 switch (reader.messageName) { 121 switch (reader.messageName) {
117 {%- for method in interface.methods %} 122 {%- for method in interface.methods %}
123 {%- set interface_method_id =
124 interface.mojom_name ~ "_" ~ method.mojom_name %}
118 {%- if method.response_parameters != None %} 125 {%- if method.response_parameters != None %}
119 case k{{interface.name}}_{{method.name}}_Name: 126 case k{{interface_method_id}}_Name:
120 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Params ); 127 var params = reader.decodeStruct({{interface_method_id}}_Params);
121 this.{{method.name|stylize_method}}( 128 this.{{method.name}}(
122 {%- for parameter in method.parameters -%} 129 {%- for parameter in method.parameters -%}
123 params.{{parameter.name}}{% if not loop.last %}, {% endif -%} 130 params.{{parameter.name}}{% if not loop.last %}, {% endif -%}
124 {%- endfor %}).then(function(response) { 131 {%- endfor %}).then(function(response) {
125 var responseParams = 132 var responseParams =
126 new {{interface.name}}_{{method.name}}_ResponseParams(); 133 new {{interface_method_id}}_ResponseParams();
127 {%- for parameter in method.response_parameters %} 134 {%- for parameter in method.response_parameters %}
128 responseParams.{{parameter.name}} = response.{{parameter.name}}; 135 responseParams.{{parameter.name}} = response.{{parameter.name}};
129 {%- endfor %} 136 {%- endfor %}
130 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %} 137 {%- if method|method_passes_associated_kinds and not use_new_js_bindings %}
131 var builder = new codec.MessageV2Builder( 138 var builder = new codec.MessageV2Builder(
132 k{{interface.name}}_{{method.name}}_Name, 139 k{{interface_method_id}}_Name,
133 codec.align({{interface.name}}_{{method.name}}_ResponseParams 140 codec.align({{interface_method_id}}_ResponseParams
134 .encodedSize), 141 .encodedSize),
135 codec.kMessageIsResponse, reader.requestID); 142 codec.kMessageIsResponse, reader.requestID);
136 builder.setPayload({{interface.name}}_{{method.name}}_ResponseParams, 143 builder.setPayload({{interface_method_id}}_ResponseParams,
137 responseParams); 144 responseParams);
138 {%- else %} 145 {%- else %}
139 var builder = new codec.MessageV1Builder( 146 var builder = new codec.MessageV1Builder(
140 k{{interface.name}}_{{method.name}}_Name, 147 k{{interface_method_id}}_Name,
141 codec.align({{interface.name}}_{{method.name}}_ResponseParams.encode dSize), 148 codec.align({{interface_method_id}}_ResponseParams.encodedSize),
142 codec.kMessageIsResponse, reader.requestID); 149 codec.kMessageIsResponse, reader.requestID);
143 builder.encodeStruct({{interface.name}}_{{method.name}}_ResponseParams, 150 builder.encodeStruct({{interface_method_id}}_ResponseParams,
144 responseParams); 151 responseParams);
145 {%- endif %} 152 {%- endif %}
146 var message = builder.finish(); 153 var message = builder.finish();
147 responder.accept(message); 154 responder.accept(message);
148 }); 155 });
149 return true; 156 return true;
150 {%- endif %} 157 {%- endif %}
151 {%- endfor %} 158 {%- endfor %}
152 default: 159 default:
153 return false; 160 return false;
154 } 161 }
155 }; 162 };
156 163
157 {#--- Validation #} 164 {#--- Validation #}
158 165
159 function validate{{interface.name}}Request(messageValidator) { 166 function validate{{interface.name}}Request(messageValidator) {
160 {%- if not(interface.methods) %} 167 {%- if not(interface.methods) %}
161 return validator.validationError.NONE; 168 return validator.validationError.NONE;
162 {%- else %} 169 {%- else %}
163 var message = messageValidator.message; 170 var message = messageValidator.message;
164 var paramsClass = null; 171 var paramsClass = null;
165 switch (message.getName()) { 172 switch (message.getName()) {
166 {%- for method in interface.methods %} 173 {%- for method in interface.methods %}
167 case k{{interface.name}}_{{method.name}}_Name: 174 {%- set interface_method_id =
175 interface.mojom_name ~ "_" ~ method.mojom_name %}
176 case k{{interface_method_id}}_Name:
168 {%- if method.response_parameters == None %} 177 {%- if method.response_parameters == None %}
169 if (!message.expectsResponse() && !message.isResponse()) 178 if (!message.expectsResponse() && !message.isResponse())
170 paramsClass = {{interface.name}}_{{method.name}}_Params; 179 paramsClass = {{interface_method_id}}_Params;
171 {%- else %} 180 {%- else %}
172 if (message.expectsResponse()) 181 if (message.expectsResponse())
173 paramsClass = {{interface.name}}_{{method.name}}_Params; 182 paramsClass = {{interface_method_id}}_Params;
174 {%- endif %} 183 {%- endif %}
175 break; 184 break;
176 {%- endfor %} 185 {%- endfor %}
177 } 186 }
178 if (paramsClass === null) 187 if (paramsClass === null)
179 return validator.validationError.NONE; 188 return validator.validationError.NONE;
180 return paramsClass.validate(messageValidator, messageValidator.message.getHe aderNumBytes()); 189 return paramsClass.validate(messageValidator, messageValidator.message.getHe aderNumBytes());
181 {%- endif %} 190 {%- endif %}
182 } 191 }
183 192
184 function validate{{interface.name}}Response(messageValidator) { 193 function validate{{interface.name}}Response(messageValidator) {
185 {%- if not(interface|has_callbacks) %} 194 {%- if not(interface|has_callbacks) %}
186 return validator.validationError.NONE; 195 return validator.validationError.NONE;
187 {%- else %} 196 {%- else %}
188 var message = messageValidator.message; 197 var message = messageValidator.message;
189 var paramsClass = null; 198 var paramsClass = null;
190 switch (message.getName()) { 199 switch (message.getName()) {
191 {%- for method in interface.methods %} 200 {%- for method in interface.methods %}
201 {%- set interface_method_id =
202 interface.mojom_name ~ "_" ~ method.mojom_name %}
192 {%- if method.response_parameters != None %} 203 {%- if method.response_parameters != None %}
193 case k{{interface.name}}_{{method.name}}_Name: 204 case k{{interface_method_id}}_Name:
194 if (message.isResponse()) 205 if (message.isResponse())
195 paramsClass = {{interface.name}}_{{method.name}}_ResponseParams; 206 paramsClass = {{interface_method_id}}_ResponseParams;
196 break; 207 break;
197 {%- endif %} 208 {%- endif %}
198 {%- endfor %} 209 {%- endfor %}
199 } 210 }
200 if (paramsClass === null) 211 if (paramsClass === null)
201 return validator.validationError.NONE; 212 return validator.validationError.NONE;
202 return paramsClass.validate(messageValidator, messageValidator.message.getHe aderNumBytes()); 213 return paramsClass.validate(messageValidator, messageValidator.message.getHe aderNumBytes());
203 {%- endif %} 214 {%- endif %}
204 } 215 }
205 216
206 var {{interface.name}} = { 217 var {{interface.name}} = {
207 name: '{{module.namespace|replace(".","::")}}::{{interface.name}}', 218 name: '{{module.mojom_namespace|replace(".","::")}}::{{interface.mojom_name} }',
208 kVersion: {{interface.version}}, 219 kVersion: {{interface.version}},
209 ptrClass: {{interface.name}}Ptr, 220 ptrClass: {{interface.name}}Ptr,
210 proxyClass: {{interface.name}}Proxy, 221 proxyClass: {{interface.name}}Proxy,
211 stubClass: {{interface.name}}Stub, 222 stubClass: {{interface.name}}Stub,
212 validateRequest: validate{{interface.name}}Request, 223 validateRequest: validate{{interface.name}}Request,
213 {%- if interface|has_callbacks %} 224 {%- if interface|has_callbacks %}
214 validateResponse: validate{{interface.name}}Response, 225 validateResponse: validate{{interface.name}}Response,
215 {%- else %} 226 {%- else %}
216 validateResponse: null, 227 validateResponse: null,
217 {%- endif %} 228 {%- endif %}
218 }; 229 };
219 {#--- Interface Constants #} 230 {#--- Interface Constants #}
220 {%- for constant in interface.constants %} 231 {%- for constant in interface.constants %}
221 {{interface.name}}.{{constant.name}} = {{constant.value|expression_to_text}}, 232 {{interface.name}}.{{constant.name}} = {{constant.value|expression_to_text}},
222 {%- endfor %} 233 {%- endfor %}
223 {#--- Interface Enums #} 234 {#--- Interface Enums #}
224 {%- from "enum_definition.tmpl" import enum_def -%} 235 {%- from "enum_definition.tmpl" import enum_def -%}
225 {%- for enum in interface.enums %} 236 {%- for enum in interface.enums %}
226 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }} 237 {{ enum_def("%s.%s"|format(interface.name, enum.name), enum) }}
227 {%- endfor %} 238 {%- endfor %}
228 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ; 239 {{interface.name}}Stub.prototype.validator = validate{{interface.name}}Request ;
229 {%- if interface|has_callbacks %} 240 {%- if interface|has_callbacks %}
230 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se; 241 {{interface.name}}Proxy.prototype.validator = validate{{interface.name}}Respon se;
231 {%- else %} 242 {%- else %}
232 {{interface.name}}Proxy.prototype.validator = null; 243 {{interface.name}}Proxy.prototype.validator = null;
233 {%- endif %} 244 {%- endif %}
OLDNEW
« no previous file with comments | « mojo/public/js/new_bindings/lib/control_message_proxy.js ('k') | mojo/public/tools/bindings/generators/mojom_js_generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698