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

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

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

Powered by Google App Engine
This is Rietveld 408576698