OLD | NEW |
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 %} |
OLD | NEW |