| OLD | NEW |
| 1 {%- for method in interface.methods %} | 1 {%- for method in interface.methods %} |
| 2 const int _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name =
{{method.ordinal}}; | 2 const int _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name =
{{method.ordinal}}; |
| 3 {%- endfor %} | 3 {%- endfor %} |
| 4 | 4 |
| 5 {#--- Interface Enums #} | 5 {#--- Interface Enums #} |
| 6 {%- from "enum_definition.tmpl" import enum_def -%} | 6 {%- from "enum_definition.tmpl" import enum_def -%} |
| 7 {%- for enum in interface.enums %} | 7 {%- for enum in interface.enums %} |
| 8 {{ enum_def(enum, typepkg, package) }} | 8 {{ enum_def(enum, typepkg, package) }} |
| 9 {%- endfor %} | 9 {%- endfor %} |
| 10 | 10 |
| 11 class _{{interface|name}}ServiceDescription implements {{descpkg}}ServiceDescrip
tion { | 11 class _{{interface|name}}ServiceDescription implements {{descpkg}}ServiceDescrip
tion { |
| 12 {%- if should_gen_mojom_types and interface.service_name %} | 12 {%- if should_gen_mojom_types and interface.service_name %} |
| 13 dynamic getTopLevelInterface([Function responseFactory]){ | 13 void getTopLevelInterface(Function responder){ |
| 14 var interfaceTypeKey = getRuntimeTypeInfo().services["{{interface.service_na
me}}"]; | 14 var interfaceTypeKey = getRuntimeTypeInfo().services["{{interface.service_na
me}}"]; |
| 15 var userDefinedType = getAllMojomTypeDefinitions()[interfaceTypeKey]; | 15 var userDefinedType = getAllMojomTypeDefinitions()[interfaceTypeKey]; |
| 16 return responseFactory(userDefinedType.interfaceType); | 16 responder(userDefinedType.interfaceType); |
| 17 } | 17 } |
| 18 | 18 |
| 19 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => | 19 void getTypeDefinition(String typeKey, Function responder) { |
| 20 responseFactory(getAllMojomTypeDefinitions()[typeKey]); | 20 responder(getAllMojomTypeDefinitions()[typeKey]); |
| 21 } |
| 21 | 22 |
| 22 dynamic getAllTypeDefinitions([Function responseFactory]) => | 23 void getAllTypeDefinitions(Function responder) { |
| 23 responseFactory(getAllMojomTypeDefinitions()); | 24 responder(getAllMojomTypeDefinitions()); |
| 25 } |
| 24 {%- else %} | 26 {%- else %} |
| 25 dynamic getTopLevelInterface([Function responseFactory]) => | 27 void getTopLevelInterface(Function responder) { |
| 26 responseFactory(null); | 28 responder(null); |
| 29 } |
| 27 | 30 |
| 28 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => | 31 void getTypeDefinition(String typeKey, Function responder) { |
| 29 responseFactory(null); | 32 responder(null); |
| 33 } |
| 30 | 34 |
| 31 dynamic getAllTypeDefinitions([Function responseFactory]) => | 35 void getAllTypeDefinitions(Function responder) { |
| 32 responseFactory(null); | 36 responder(null); |
| 37 } |
| 33 {%- endif %} | 38 {%- endif %} |
| 34 } | 39 } |
| 35 | 40 |
| 36 abstract class {{interface|name}} { | 41 abstract class {{interface|name}} { |
| 37 {%- if interface.service_name %} | 42 {%- if interface.service_name %} |
| 38 static const String serviceName = "{{interface.service_name}}"; | 43 static const String serviceName = "{{interface.service_name}}"; |
| 39 {%- else %} | 44 {%- else %} |
| 40 static const String serviceName = null; | 45 static const String serviceName = null; |
| 41 {%- endif %} | 46 {%- endif %} |
| 42 | 47 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 61 } | 66 } |
| 62 | 67 |
| 63 {%- for method in interface.methods %} | 68 {%- for method in interface.methods %} |
| 64 {%- if method.response_parameters == None %} | 69 {%- if method.response_parameters == None %} |
| 65 void {{method|name}}( | 70 void {{method|name}}( |
| 66 {%- for parameter in method.parameters -%} | 71 {%- for parameter in method.parameters -%} |
| 67 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {%
endif %} | 72 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {%
endif %} |
| 68 {%- endfor -%} | 73 {%- endfor -%} |
| 69 ); | 74 ); |
| 70 {%- else %} | 75 {%- else %} |
| 71 dynamic {{method|name}}( | 76 void {{method|name}}( |
| 72 {%- for parameter in method.parameters -%} | 77 {%- for parameter in method.parameters -%} |
| 73 {{parameter.kind|dart_type}} {{parameter|name}}, | 78 {{parameter.kind|dart_type}} {{parameter|name}}, |
| 74 {%- endfor -%} | 79 {%- endfor -%} |
| 75 [Function responseFactory = null]); | 80 void callback( |
| 81 {%- for param in method.response_parameters -%} |
| 82 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif
%} |
| 83 {%- endfor -%} |
| 84 )); |
| 76 {%- endif %} | 85 {%- endif %} |
| 77 {%- endfor %} | 86 {%- endfor %} |
| 78 | 87 |
| 79 {#--- Interface Constants #} | 88 {#--- Interface Constants #} |
| 80 {%- for constant in interface.constants %} | 89 {%- for constant in interface.constants %} |
| 81 static const {{constant.kind|dart_type}} {{constant|name}} = {{constant.resolv
ed_value}}; | 90 static const {{constant.kind|dart_type}} {{constant|name}} = {{constant.resolv
ed_value}}; |
| 82 {%- endfor %} | 91 {%- endfor %} |
| 83 } | 92 } |
| 84 | 93 |
| 85 abstract class {{interface|name}}Interface | 94 abstract class {{interface|name}}Interface |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 {%- for method in interface.methods %} | 127 {%- for method in interface.methods %} |
| 119 {%- if method.response_parameters != None %} | 128 {%- if method.response_parameters != None %} |
| 120 {%- set response_struct = method.response_param_struct %} | 129 {%- set response_struct = method.response_param_struct %} |
| 121 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: | 130 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: |
| 122 var r = {{response_struct|name}}.deserialize( | 131 var r = {{response_struct|name}}.deserialize( |
| 123 message.payload); | 132 message.payload); |
| 124 if (!message.header.hasRequestId) { | 133 if (!message.header.hasRequestId) { |
| 125 proxyError("Expected a message with a valid request Id."); | 134 proxyError("Expected a message with a valid request Id."); |
| 126 return; | 135 return; |
| 127 } | 136 } |
| 128 Completer c = completerMap[message.header.requestId]; | 137 Function callback = callbackMap[message.header.requestId]; |
| 129 if (c == null) { | 138 if (callback == null) { |
| 130 proxyError( | 139 proxyError( |
| 131 "Message had unknown request Id: ${message.header.requestId}"); | 140 "Message had unknown request Id: ${message.header.requestId}"); |
| 132 return; | 141 return; |
| 133 } | 142 } |
| 134 completerMap.remove(message.header.requestId); | 143 callbackMap.remove(message.header.requestId); |
| 135 if (c.isCompleted) { | 144 callback( |
| 136 proxyError("Response completer already completed"); | 145 {%- for param in method.response_parameters -%} |
| 137 return; | 146 r.{{param|name}} {% if not loop.last %}, {% endif %} |
| 138 } | 147 {%- endfor -%} |
| 139 c.complete(r); | 148 ); |
| 140 break; | 149 break; |
| 141 {%- endif %} | 150 {%- endif %} |
| 142 {%- endfor %} | 151 {%- endfor %} |
| 143 default: | 152 default: |
| 144 proxyError("Unexpected message type: ${message.header.type}"); | 153 proxyError("Unexpected message type: ${message.header.type}"); |
| 145 close(immediate: true); | 154 close(immediate: true); |
| 146 break; | 155 break; |
| 147 } | 156 } |
| 148 } | 157 } |
| 149 | 158 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 } | 203 } |
| 195 var params = new {{request_struct|name}}(); | 204 var params = new {{request_struct|name}}(); |
| 196 {%- for parameter in method.parameters %} | 205 {%- for parameter in method.parameters %} |
| 197 params.{{parameter|name}} = {{parameter|name}}; | 206 params.{{parameter|name}} = {{parameter|name}}; |
| 198 {%- endfor %} | 207 {%- endfor %} |
| 199 ctrl.sendMessage(params, | 208 ctrl.sendMessage(params, |
| 200 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name); | 209 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name); |
| 201 } | 210 } |
| 202 {%- else %} | 211 {%- else %} |
| 203 {%- set request_struct = method.param_struct %} | 212 {%- set request_struct = method.param_struct %} |
| 204 dynamic {{method|name}}( | 213 void {{method|name}}( |
| 205 {%- for parameter in method.parameters -%} | 214 {%- for parameter in method.parameters -%} |
| 206 {{parameter.kind|dart_type}} {{parameter|name}}, | 215 {{parameter.kind|dart_type}} {{parameter|name}}, |
| 207 {%- endfor -%} | 216 {%- endfor -%} |
| 208 [Function responseFactory = null]) { | 217 void callback( |
| 218 {%- for param in method.response_parameters -%} |
| 219 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif
%} |
| 220 {%- endfor -%} |
| 221 )) { |
| 209 var params = new {{request_struct|name}}(); | 222 var params = new {{request_struct|name}}(); |
| 210 {%- for parameter in method.parameters %} | 223 {%- for parameter in method.parameters %} |
| 211 params.{{parameter|name}} = {{parameter|name}}; | 224 params.{{parameter|name}} = {{parameter|name}}; |
| 212 {%- endfor %} | 225 {%- endfor %} |
| 213 return ctrl.sendMessageWithRequestId( | 226 ctrl.sendMessageWithRequestId( |
| 214 params, | 227 params, |
| 215 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name, | 228 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name, |
| 216 -1, | 229 -1, |
| 217 bindings.MessageHeader.kMessageExpectsResponse); | 230 bindings.MessageHeader.kMessageExpectsResponse, |
| 231 callback); |
| 218 } | 232 } |
| 219 {%- endif %} | 233 {%- endif %} |
| 220 {%- endfor %} | 234 {%- endfor %} |
| 221 } | 235 } |
| 222 | 236 |
| 223 class _{{interface|name}}StubControl | 237 class _{{interface|name}}StubControl |
| 224 extends bindings.StubMessageHandler | 238 extends bindings.StubMessageHandler |
| 225 implements bindings.StubControl<{{interface|name}}> { | 239 implements bindings.StubControl<{{interface|name}}> { |
| 226 {{interface|name}} _impl; | 240 {{interface|name}} _impl; |
| 227 | 241 |
| 228 _{{interface|name}}StubControl.fromEndpoint( | 242 _{{interface|name}}StubControl.fromEndpoint( |
| 229 core.MojoMessagePipeEndpoint endpoint, [{{interface|name}} impl]) | 243 core.MojoMessagePipeEndpoint endpoint, [{{interface|name}} impl]) |
| 230 : super.fromEndpoint(endpoint, autoBegin: impl != null) { | 244 : super.fromEndpoint(endpoint, autoBegin: impl != null) { |
| 231 _impl = impl; | 245 _impl = impl; |
| 232 } | 246 } |
| 233 | 247 |
| 234 _{{interface|name}}StubControl.fromHandle( | 248 _{{interface|name}}StubControl.fromHandle( |
| 235 core.MojoHandle handle, [{{interface|name}} impl]) | 249 core.MojoHandle handle, [{{interface|name}} impl]) |
| 236 : super.fromHandle(handle, autoBegin: impl != null) { | 250 : super.fromHandle(handle, autoBegin: impl != null) { |
| 237 _impl = impl; | 251 _impl = impl; |
| 238 } | 252 } |
| 239 | 253 |
| 240 _{{interface|name}}StubControl.unbound([this._impl]) : super.unbound(); | 254 _{{interface|name}}StubControl.unbound([this._impl]) : super.unbound(); |
| 241 | 255 |
| 242 String get serviceName => {{interface|name}}.serviceName; | 256 String get serviceName => {{interface|name}}.serviceName; |
| 243 | 257 |
| 244 {% for method in interface.methods %} | 258 {% for method in interface.methods %} |
| 245 {%- if method.response_parameters != None %} | 259 {%- if method.response_parameters != None %} |
| 246 {%- set response_struct = method.response_param_struct %} | 260 {%- set response_struct = method.response_param_struct %} |
| 247 {{response_struct|name}} _{{response_struct|name|lower_camel}}Factory( | 261 Function _{{response_struct|name|lower_camel}}Responder( |
| 248 {%- for param in method.response_parameters -%} | 262 int requestId) { |
| 249 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif %} | 263 return ( |
| 250 {%- endfor -%} | 264 {%- for param in method.response_parameters -%} |
| 251 ) { | 265 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif
%} |
| 252 var result = new {{response_struct|name}}(); | 266 {%- endfor -%} |
| 253 {%- for param in method.response_parameters %} | 267 ) { |
| 254 result.{{param|name}} = {{param|name}}; | 268 var result = new {{response_struct|name}}(); |
| 255 {%- endfor %} | 269 {%- for param in method.response_parameters %} |
| 256 return result; | 270 result.{{param|name}} = {{param|name}}; |
| 271 {%- endfor %} |
| 272 sendResponse(buildResponseWithId( |
| 273 result, |
| 274 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name, |
| 275 requestId, |
| 276 bindings.MessageHeader.kMessageIsResponse)); |
| 277 }; |
| 257 } | 278 } |
| 258 {%- endif %} | 279 {%- endif %} |
| 259 {%- endfor %} | 280 {%- endfor %} |
| 260 | 281 |
| 261 dynamic handleMessage(bindings.ServiceMessage message) { | 282 void handleMessage(bindings.ServiceMessage message) { |
| 262 if (bindings.ControlMessageHandler.isControlMessage(message)) { | 283 if (bindings.ControlMessageHandler.isControlMessage(message)) { |
| 263 return bindings.ControlMessageHandler.handleMessage(this, | 284 bindings.ControlMessageHandler.handleMessage( |
| 264 {{interface.version}}, | 285 this, {{interface.version}}, message); |
| 265 message); | 286 return; |
| 266 } | 287 } |
| 267 if (_impl == null) { | 288 if (_impl == null) { |
| 268 throw new core.MojoApiError("$this has no implementation set"); | 289 throw new core.MojoApiError("$this has no implementation set"); |
| 269 } | 290 } |
| 270 switch (message.header.type) { | 291 switch (message.header.type) { |
| 271 {%- for method in interface.methods %} | 292 {%- for method in interface.methods %} |
| 272 {%- set request_struct = method.param_struct %} | 293 {%- set request_struct = method.param_struct %} |
| 273 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: | 294 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: |
| 274 {%- if method.parameters %} | 295 {%- if method.parameters %} |
| 275 var params = {{request_struct|name}}.deserialize( | 296 var params = {{request_struct|name}}.deserialize( |
| 276 message.payload); | 297 message.payload); |
| 277 {%- endif %} | 298 {%- endif %} |
| 278 {%- if method.response_parameters == None %} | 299 {%- if method.response_parameters == None %} |
| 279 _impl.{{method|name}}( | 300 _impl.{{method|name}}( |
| 280 {%- for parameter in method.parameters -%} | 301 {%- for parameter in method.parameters -%} |
| 281 params.{{parameter|name}}{% if not loop.last %}, {% endif %} | 302 params.{{parameter|name}}{% if not loop.last %}, {% endif %} |
| 282 {%- endfor -%} | 303 {%- endfor -%} |
| 283 ); | 304 ); |
| 284 {%- else %} | 305 {%- else %} |
| 285 {%- set response_struct = method.response_param_struct %} | 306 {%- set response_struct = method.response_param_struct %} |
| 286 var response = _impl.{{method|name}}( | 307 _impl.{{method|name}}( |
| 287 {%- for parameter in method.parameters -%} | 308 {%- for parameter in method.parameters -%} |
| 288 params.{{parameter|name}}, | 309 params.{{parameter|name}}, {% endfor -%} |
| 289 {%- endfor -%} | 310 _{{response_struct|name|lower_camel}}Responder(message.header.requestI
d)); |
| 290 _{{response_struct|name|lower_camel}}Factory); | |
| 291 if (response is Future) { | |
| 292 return response.then((response) { | |
| 293 if (response != null) { | |
| 294 return buildResponseWithId( | |
| 295 response, | |
| 296 _{{interface|name|lower_camel}}Method{{method|name|upper_camel
}}Name, | |
| 297 message.header.requestId, | |
| 298 bindings.MessageHeader.kMessageIsResponse); | |
| 299 } | |
| 300 }); | |
| 301 } else if (response != null) { | |
| 302 return buildResponseWithId( | |
| 303 response, | |
| 304 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Na
me, | |
| 305 message.header.requestId, | |
| 306 bindings.MessageHeader.kMessageIsResponse); | |
| 307 } | |
| 308 {%- endif %} | 311 {%- endif %} |
| 309 break; | 312 break; |
| 310 {%- endfor %} | 313 {%- endfor %} |
| 311 default: | 314 default: |
| 312 throw new bindings.MojoCodecError("Unexpected message name"); | 315 throw new bindings.MojoCodecError("Unexpected message name"); |
| 313 break; | 316 break; |
| 314 } | 317 } |
| 315 return null; | |
| 316 } | 318 } |
| 317 | 319 |
| 318 {{interface|name}} get impl => _impl; | 320 {{interface|name}} get impl => _impl; |
| 319 set impl({{interface|name}} d) { | 321 set impl({{interface|name}} d) { |
| 320 if (d == null) { | 322 if (d == null) { |
| 321 throw new core.MojoApiError("$this: Cannot set a null implementation"); | 323 throw new core.MojoApiError("$this: Cannot set a null implementation"); |
| 322 } | 324 } |
| 323 if (isBound && (_impl == null)) { | 325 if (isBound && (_impl == null)) { |
| 324 beginHandlingEvents(); | 326 beginHandlingEvents(); |
| 325 } | 327 } |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 372 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en
dif %} | 374 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en
dif %} |
| 373 {%- endfor -%} | 375 {%- endfor -%} |
| 374 ) { | 376 ) { |
| 375 return impl.{{method|name}}( | 377 return impl.{{method|name}}( |
| 376 {%- for parameter in method.parameters -%} | 378 {%- for parameter in method.parameters -%} |
| 377 {{parameter|name}}{% if not loop.last %}, {% endif %} | 379 {{parameter|name}}{% if not loop.last %}, {% endif %} |
| 378 {%- endfor -%} | 380 {%- endfor -%} |
| 379 ); | 381 ); |
| 380 } | 382 } |
| 381 {%- else %} | 383 {%- else %} |
| 382 dynamic {{method|name}}( | 384 void {{method|name}}( |
| 383 {%- for parameter in method.parameters -%} | 385 {%- for parameter in method.parameters -%} |
| 384 {{parameter.kind|dart_type}} {{parameter|name}}, | 386 {{parameter.kind|dart_type}} {{parameter|name}}, |
| 385 {%- endfor -%} | 387 {%- endfor -%} |
| 386 [Function responseFactory = null]) { | 388 void callback( |
| 389 {%- for param in method.response_parameters -%} |
| 390 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif
%} |
| 391 {%- endfor -%} |
| 392 )) { |
| 387 return impl.{{method|name}}( | 393 return impl.{{method|name}}( |
| 388 {%- for parameter in method.parameters -%} | 394 {%- for parameter in method.parameters -%} |
| 389 {{parameter|name}}, | 395 {{parameter|name}}, |
| 390 {%- endfor -%} | 396 {%- endfor -%} |
| 391 responseFactory); | 397 callback); |
| 392 } | 398 } |
| 393 {%- endif %} | 399 {%- endif %} |
| 394 {%- endfor %} | 400 {%- endfor %} |
| 395 } | 401 } |
| OLD | NEW |