| 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 {%- for method in interface.methods %} | 134 {%- for method in interface.methods %} |
| 126 {%- if method.response_parameters != None %} | 135 {%- if method.response_parameters != None %} |
| 127 {%- set response_struct = method.response_param_struct %} | 136 {%- set response_struct = method.response_param_struct %} |
| 128 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: | 137 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: |
| 129 var r = {{response_struct|name}}.deserialize( | 138 var r = {{response_struct|name}}.deserialize( |
| 130 message.payload); | 139 message.payload); |
| 131 if (!message.header.hasRequestId) { | 140 if (!message.header.hasRequestId) { |
| 132 proxyError("Expected a message with a valid request Id."); | 141 proxyError("Expected a message with a valid request Id."); |
| 133 return; | 142 return; |
| 134 } | 143 } |
| 135 Completer c = completerMap[message.header.requestId]; | 144 Function callback = callbackMap[message.header.requestId]; |
| 136 if (c == null) { | 145 if (callback == null) { |
| 137 proxyError( | 146 proxyError( |
| 138 "Message had unknown request Id: ${message.header.requestId}"); | 147 "Message had unknown request Id: ${message.header.requestId}"); |
| 139 return; | 148 return; |
| 140 } | 149 } |
| 141 completerMap.remove(message.header.requestId); | 150 callbackMap.remove(message.header.requestId); |
| 142 if (c.isCompleted) { | 151 callback( |
| 143 proxyError("Response completer already completed"); | 152 {%- for param in method.response_parameters -%} |
| 144 return; | 153 r.{{param|name}} {% if not loop.last %}, {% endif %} |
| 145 } | 154 {%- endfor -%} |
| 146 c.complete(r); | 155 ); |
| 147 break; | 156 break; |
| 148 {%- endif %} | 157 {%- endif %} |
| 149 {%- endfor %} | 158 {%- endfor %} |
| 150 default: | 159 default: |
| 151 proxyError("Unexpected message type: ${message.header.type}"); | 160 proxyError("Unexpected message type: ${message.header.type}"); |
| 152 close(immediate: true); | 161 close(immediate: true); |
| 153 break; | 162 break; |
| 154 } | 163 } |
| 155 } | 164 } |
| 156 | 165 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 var params = new {{request_struct|name}}(); | 221 var params = new {{request_struct|name}}(); |
| 213 {%- for parameter in method.parameters %} | 222 {%- for parameter in method.parameters %} |
| 214 params.{{parameter|name}} = {{parameter|name}}; | 223 params.{{parameter|name}} = {{parameter|name}}; |
| 215 {%- endfor %} | 224 {%- endfor %} |
| 216 ctrl.sendMessage(params, | 225 ctrl.sendMessage(params, |
| 217 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name); | 226 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name); |
| 218 } | 227 } |
| 219 {%- else %} | 228 {%- else %} |
| 220 {%- set request_struct = method.param_struct %} | 229 {%- set request_struct = method.param_struct %} |
| 221 {%- set response_struct = method.response_param_struct %} | 230 {%- set response_struct = method.response_param_struct %} |
| 222 dynamic {{method|name}}( | 231 void {{method|name}}( |
| 223 {%- for parameter in method.parameters -%} | 232 {%- for parameter in method.parameters -%} |
| 224 {{parameter.kind|dart_type}} {{parameter|name}}, | 233 {{parameter.kind|dart_type}} {{parameter|name}}, |
| 225 {%- endfor -%} | 234 {%- endfor -%} |
| 226 [Function responseFactory = null]) { | 235 void callback( |
| 236 {%- for param in method.response_parameters -%} |
| 237 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif
%} |
| 238 {%- endfor -%} |
| 239 )) { |
| 227 if (impl != null) { | 240 if (impl != null) { |
| 228 return new Future(() => impl.{{method|name}}( | 241 impl.{{method|name}}( |
| 229 {%- for parameter in method.parameters -%} | 242 {%- for parameter in method.parameters -%} |
| 230 {{parameter|name}}, | 243 {{parameter|name}}, |
| 231 {%- endfor -%} | 244 {%- endfor -%} |
| 232 _{{interface|name}}StubControl._{{response_struct|name|lower_camel}}Fact
ory)); | 245 callback); |
| 246 return; |
| 233 } | 247 } |
| 234 var params = new {{request_struct|name}}(); | 248 var params = new {{request_struct|name}}(); |
| 235 {%- for parameter in method.parameters %} | 249 {%- for parameter in method.parameters %} |
| 236 params.{{parameter|name}} = {{parameter|name}}; | 250 params.{{parameter|name}} = {{parameter|name}}; |
| 237 {%- endfor %} | 251 {%- endfor %} |
| 238 return ctrl.sendMessageWithRequestId( | 252 ctrl.sendMessageWithRequestId( |
| 239 params, | 253 params, |
| 240 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name, | 254 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name, |
| 241 -1, | 255 -1, |
| 242 bindings.MessageHeader.kMessageExpectsResponse); | 256 bindings.MessageHeader.kMessageExpectsResponse, |
| 257 callback); |
| 243 } | 258 } |
| 244 {%- endif %} | 259 {%- endif %} |
| 245 {%- endfor %} | 260 {%- endfor %} |
| 246 } | 261 } |
| 247 | 262 |
| 248 class _{{interface|name}}StubControl | 263 class _{{interface|name}}StubControl |
| 249 extends bindings.StubMessageHandler | 264 extends bindings.StubMessageHandler |
| 250 implements bindings.StubControl<{{interface|name}}> { | 265 implements bindings.StubControl<{{interface|name}}> { |
| 251 {{interface|name}} _impl; | 266 {{interface|name}} _impl; |
| 252 | 267 |
| 253 _{{interface|name}}StubControl.fromEndpoint( | 268 _{{interface|name}}StubControl.fromEndpoint( |
| 254 core.MojoMessagePipeEndpoint endpoint, [{{interface|name}} impl]) | 269 core.MojoMessagePipeEndpoint endpoint, [{{interface|name}} impl]) |
| 255 : super.fromEndpoint(endpoint, autoBegin: impl != null) { | 270 : super.fromEndpoint(endpoint, autoBegin: impl != null) { |
| 256 _impl = impl; | 271 _impl = impl; |
| 257 } | 272 } |
| 258 | 273 |
| 259 _{{interface|name}}StubControl.fromHandle( | 274 _{{interface|name}}StubControl.fromHandle( |
| 260 core.MojoHandle handle, [{{interface|name}} impl]) | 275 core.MojoHandle handle, [{{interface|name}} impl]) |
| 261 : super.fromHandle(handle, autoBegin: impl != null) { | 276 : super.fromHandle(handle, autoBegin: impl != null) { |
| 262 _impl = impl; | 277 _impl = impl; |
| 263 } | 278 } |
| 264 | 279 |
| 265 _{{interface|name}}StubControl.unbound([this._impl]) : super.unbound(); | 280 _{{interface|name}}StubControl.unbound([this._impl]) : super.unbound(); |
| 266 | 281 |
| 267 String get serviceName => {{interface|name}}.serviceName; | 282 String get serviceName => {{interface|name}}.serviceName; |
| 268 | 283 |
| 269 {% for method in interface.methods %} | 284 {% for method in interface.methods %} |
| 270 {%- if method.response_parameters != None %} | 285 {%- if method.response_parameters != None %} |
| 271 {%- set response_struct = method.response_param_struct %} | 286 {%- set response_struct = method.response_param_struct %} |
| 272 static {{response_struct|name}} _{{response_struct|name|lower_camel}}Factory( | 287 Function _{{response_struct|name|lower_camel}}Responder( |
| 273 {%- for param in method.response_parameters -%} | 288 int requestId) { |
| 274 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif %} | 289 return ( |
| 275 {%- endfor -%} | 290 {%- for param in method.response_parameters -%} |
| 276 ) { | 291 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif
%} |
| 277 var result = new {{response_struct|name}}(); | 292 {%- endfor -%} |
| 278 {%- for param in method.response_parameters %} | 293 ) { |
| 279 result.{{param|name}} = {{param|name}}; | 294 var result = new {{response_struct|name}}(); |
| 280 {%- endfor %} | 295 {%- for param in method.response_parameters %} |
| 281 return result; | 296 result.{{param|name}} = {{param|name}}; |
| 297 {%- endfor %} |
| 298 sendResponse(buildResponseWithId( |
| 299 result, |
| 300 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name, |
| 301 requestId, |
| 302 bindings.MessageHeader.kMessageIsResponse)); |
| 303 }; |
| 282 } | 304 } |
| 283 {%- endif %} | 305 {%- endif %} |
| 284 {%- endfor %} | 306 {%- endfor %} |
| 285 | 307 |
| 286 dynamic handleMessage(bindings.ServiceMessage message) { | 308 void handleMessage(bindings.ServiceMessage message) { |
| 287 if (bindings.ControlMessageHandler.isControlMessage(message)) { | 309 if (bindings.ControlMessageHandler.isControlMessage(message)) { |
| 288 return bindings.ControlMessageHandler.handleMessage(this, | 310 bindings.ControlMessageHandler.handleMessage( |
| 289 {{interface.version}}, | 311 this, {{interface.version}}, message); |
| 290 message); | 312 return; |
| 291 } | 313 } |
| 292 if (_impl == null) { | 314 if (_impl == null) { |
| 293 throw new core.MojoApiError("$this has no implementation set"); | 315 throw new core.MojoApiError("$this has no implementation set"); |
| 294 } | 316 } |
| 295 switch (message.header.type) { | 317 switch (message.header.type) { |
| 296 {%- for method in interface.methods %} | 318 {%- for method in interface.methods %} |
| 297 {%- set request_struct = method.param_struct %} | 319 {%- set request_struct = method.param_struct %} |
| 298 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: | 320 case _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Name: |
| 299 {%- if method.parameters %} | 321 {%- if method.parameters %} |
| 300 var params = {{request_struct|name}}.deserialize( | 322 var params = {{request_struct|name}}.deserialize( |
| 301 message.payload); | 323 message.payload); |
| 302 {%- endif %} | 324 {%- endif %} |
| 303 {%- if method.response_parameters == None %} | 325 {%- if method.response_parameters == None %} |
| 304 _impl.{{method|name}}( | 326 _impl.{{method|name}}( |
| 305 {%- for parameter in method.parameters -%} | 327 {%- for parameter in method.parameters -%} |
| 306 params.{{parameter|name}}{% if not loop.last %}, {% endif %} | 328 params.{{parameter|name}}{% if not loop.last %}, {% endif %} |
| 307 {%- endfor -%} | 329 {%- endfor -%} |
| 308 ); | 330 ); |
| 309 {%- else %} | 331 {%- else %} |
| 310 {%- set response_struct = method.response_param_struct %} | 332 {%- set response_struct = method.response_param_struct %} |
| 311 var response = _impl.{{method|name}}( | 333 _impl.{{method|name}}( |
| 312 {%- for parameter in method.parameters -%} | 334 {%- for parameter in method.parameters -%} |
| 313 params.{{parameter|name}}, | 335 params.{{parameter|name}}, {% endfor -%} |
| 314 {%- endfor -%} | 336 _{{response_struct|name|lower_camel}}Responder(message.header.requestI
d)); |
| 315 _{{response_struct|name|lower_camel}}Factory); | |
| 316 if (response is Future) { | |
| 317 return response.then((response) { | |
| 318 if (response != null) { | |
| 319 return buildResponseWithId( | |
| 320 response, | |
| 321 _{{interface|name|lower_camel}}Method{{method|name|upper_camel
}}Name, | |
| 322 message.header.requestId, | |
| 323 bindings.MessageHeader.kMessageIsResponse); | |
| 324 } | |
| 325 }); | |
| 326 } else if (response != null) { | |
| 327 return buildResponseWithId( | |
| 328 response, | |
| 329 _{{interface|name|lower_camel}}Method{{method|name|upper_camel}}Na
me, | |
| 330 message.header.requestId, | |
| 331 bindings.MessageHeader.kMessageIsResponse); | |
| 332 } | |
| 333 {%- endif %} | 337 {%- endif %} |
| 334 break; | 338 break; |
| 335 {%- endfor %} | 339 {%- endfor %} |
| 336 default: | 340 default: |
| 337 throw new bindings.MojoCodecError("Unexpected message name"); | 341 throw new bindings.MojoCodecError("Unexpected message name"); |
| 338 break; | 342 break; |
| 339 } | 343 } |
| 340 return null; | |
| 341 } | 344 } |
| 342 | 345 |
| 343 {{interface|name}} get impl => _impl; | 346 {{interface|name}} get impl => _impl; |
| 344 set impl({{interface|name}} d) { | 347 set impl({{interface|name}} d) { |
| 345 if (d == null) { | 348 if (d == null) { |
| 346 throw new core.MojoApiError("$this: Cannot set a null implementation"); | 349 throw new core.MojoApiError("$this: Cannot set a null implementation"); |
| 347 } | 350 } |
| 348 if (isBound && (_impl == null)) { | 351 if (isBound && (_impl == null)) { |
| 349 beginHandlingEvents(); | 352 beginHandlingEvents(); |
| 350 } | 353 } |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en
dif %} | 400 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en
dif %} |
| 398 {%- endfor -%} | 401 {%- endfor -%} |
| 399 ) { | 402 ) { |
| 400 return impl.{{method|name}}( | 403 return impl.{{method|name}}( |
| 401 {%- for parameter in method.parameters -%} | 404 {%- for parameter in method.parameters -%} |
| 402 {{parameter|name}}{% if not loop.last %}, {% endif %} | 405 {{parameter|name}}{% if not loop.last %}, {% endif %} |
| 403 {%- endfor -%} | 406 {%- endfor -%} |
| 404 ); | 407 ); |
| 405 } | 408 } |
| 406 {%- else %} | 409 {%- else %} |
| 407 dynamic {{method|name}}( | 410 void {{method|name}}( |
| 408 {%- for parameter in method.parameters -%} | 411 {%- for parameter in method.parameters -%} |
| 409 {{parameter.kind|dart_type}} {{parameter|name}}, | 412 {{parameter.kind|dart_type}} {{parameter|name}}, |
| 410 {%- endfor -%} | 413 {%- endfor -%} |
| 411 [Function responseFactory = null]) { | 414 void callback( |
| 415 {%- for param in method.response_parameters -%} |
| 416 {{param.kind|dart_type}} {{param|name}}{% if not loop.last %}, {% endif
%} |
| 417 {%- endfor -%} |
| 418 )) { |
| 412 return impl.{{method|name}}( | 419 return impl.{{method|name}}( |
| 413 {%- for parameter in method.parameters -%} | 420 {%- for parameter in method.parameters -%} |
| 414 {{parameter|name}}, | 421 {{parameter|name}}, |
| 415 {%- endfor -%} | 422 {%- endfor -%} |
| 416 responseFactory); | 423 callback); |
| 417 } | 424 } |
| 418 {%- endif %} | 425 {%- endif %} |
| 419 {%- endfor %} | 426 {%- endfor %} |
| 420 } | 427 } |
| OLD | NEW |