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