| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 library input_mojom; | 5 library input_mojom; |
| 6 import 'dart:async'; | 6 import 'dart:async'; |
| 7 import 'package:mojo/bindings.dart' as bindings; | 7 import 'package:mojo/bindings.dart' as bindings; |
| 8 import 'package:mojo/core.dart' as core; | 8 import 'package:mojo/core.dart' as core; |
| 9 import 'package:mojo/mojo/bindings/types/service_describer.mojom.dart' as servic
e_describer; | 9 import 'package:mojo/mojo/bindings/types/service_describer.mojom.dart' as servic
e_describer; |
| 10 | 10 |
| 11 | 11 |
| 12 | 12 |
| 13 class _InputClientOnBackButtonParams extends bindings.Struct { | 13 class _InputClientOnBackButtonParams extends bindings.Struct { |
| 14 static const List<bindings.StructDataHeader> kVersions = const [ | 14 static const List<bindings.StructDataHeader> kVersions = const [ |
| 15 const bindings.StructDataHeader(8, 0) | 15 const bindings.StructDataHeader(8, 0) |
| 16 ]; | 16 ]; |
| 17 | 17 |
| 18 _InputClientOnBackButtonParams() : super(kVersions.last.size); | 18 _InputClientOnBackButtonParams() : super(kVersions.last.size); |
| 19 | 19 |
| 20 _InputClientOnBackButtonParams.init( |
| 21 ) : super(kVersions.last.size); |
| 22 |
| 20 static _InputClientOnBackButtonParams deserialize(bindings.Message message) { | 23 static _InputClientOnBackButtonParams deserialize(bindings.Message message) { |
| 21 var decoder = new bindings.Decoder(message); | 24 var decoder = new bindings.Decoder(message); |
| 22 var result = decode(decoder); | 25 var result = decode(decoder); |
| 23 if (decoder.excessHandles != null) { | 26 if (decoder.excessHandles != null) { |
| 24 decoder.excessHandles.forEach((h) => h.close()); | 27 decoder.excessHandles.forEach((h) => h.close()); |
| 25 } | 28 } |
| 26 return result; | 29 return result; |
| 27 } | 30 } |
| 28 | 31 |
| 29 static _InputClientOnBackButtonParams decode(bindings.Decoder decoder0) { | 32 static _InputClientOnBackButtonParams decode(bindings.Decoder decoder0) { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 } | 71 } |
| 69 | 72 |
| 70 | 73 |
| 71 class InputClientOnBackButtonResponseParams extends bindings.Struct { | 74 class InputClientOnBackButtonResponseParams extends bindings.Struct { |
| 72 static const List<bindings.StructDataHeader> kVersions = const [ | 75 static const List<bindings.StructDataHeader> kVersions = const [ |
| 73 const bindings.StructDataHeader(8, 0) | 76 const bindings.StructDataHeader(8, 0) |
| 74 ]; | 77 ]; |
| 75 | 78 |
| 76 InputClientOnBackButtonResponseParams() : super(kVersions.last.size); | 79 InputClientOnBackButtonResponseParams() : super(kVersions.last.size); |
| 77 | 80 |
| 81 InputClientOnBackButtonResponseParams.init( |
| 82 ) : super(kVersions.last.size); |
| 83 |
| 78 static InputClientOnBackButtonResponseParams deserialize(bindings.Message mess
age) { | 84 static InputClientOnBackButtonResponseParams deserialize(bindings.Message mess
age) { |
| 79 var decoder = new bindings.Decoder(message); | 85 var decoder = new bindings.Decoder(message); |
| 80 var result = decode(decoder); | 86 var result = decode(decoder); |
| 81 if (decoder.excessHandles != null) { | 87 if (decoder.excessHandles != null) { |
| 82 decoder.excessHandles.forEach((h) => h.close()); | 88 decoder.excessHandles.forEach((h) => h.close()); |
| 83 } | 89 } |
| 84 return result; | 90 return result; |
| 85 } | 91 } |
| 86 | 92 |
| 87 static InputClientOnBackButtonResponseParams decode(bindings.Decoder decoder0)
{ | 93 static InputClientOnBackButtonResponseParams decode(bindings.Decoder decoder0)
{ |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 | 133 |
| 128 | 134 |
| 129 class _InputServiceSetClientParams extends bindings.Struct { | 135 class _InputServiceSetClientParams extends bindings.Struct { |
| 130 static const List<bindings.StructDataHeader> kVersions = const [ | 136 static const List<bindings.StructDataHeader> kVersions = const [ |
| 131 const bindings.StructDataHeader(16, 0) | 137 const bindings.StructDataHeader(16, 0) |
| 132 ]; | 138 ]; |
| 133 InputClientInterface client = null; | 139 InputClientInterface client = null; |
| 134 | 140 |
| 135 _InputServiceSetClientParams() : super(kVersions.last.size); | 141 _InputServiceSetClientParams() : super(kVersions.last.size); |
| 136 | 142 |
| 143 _InputServiceSetClientParams.init( |
| 144 InputClientInterface this.client |
| 145 ) : super(kVersions.last.size); |
| 146 |
| 137 static _InputServiceSetClientParams deserialize(bindings.Message message) { | 147 static _InputServiceSetClientParams deserialize(bindings.Message message) { |
| 138 var decoder = new bindings.Decoder(message); | 148 var decoder = new bindings.Decoder(message); |
| 139 var result = decode(decoder); | 149 var result = decode(decoder); |
| 140 if (decoder.excessHandles != null) { | 150 if (decoder.excessHandles != null) { |
| 141 decoder.excessHandles.forEach((h) => h.close()); | 151 decoder.excessHandles.forEach((h) => h.close()); |
| 142 } | 152 } |
| 143 return result; | 153 return result; |
| 144 } | 154 } |
| 145 | 155 |
| 146 static _InputServiceSetClientParams decode(bindings.Decoder decoder0) { | 156 static _InputServiceSetClientParams decode(bindings.Decoder decoder0) { |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 | 202 |
| 193 Map toJson() { | 203 Map toJson() { |
| 194 throw new bindings.MojoCodecError( | 204 throw new bindings.MojoCodecError( |
| 195 'Object containing handles cannot be encoded to JSON.'); | 205 'Object containing handles cannot be encoded to JSON.'); |
| 196 } | 206 } |
| 197 } | 207 } |
| 198 | 208 |
| 199 const int _inputClientMethodOnBackButtonName = 0; | 209 const int _inputClientMethodOnBackButtonName = 0; |
| 200 | 210 |
| 201 class _InputClientServiceDescription implements service_describer.ServiceDescrip
tion { | 211 class _InputClientServiceDescription implements service_describer.ServiceDescrip
tion { |
| 202 dynamic getTopLevelInterface([Function responseFactory]) => | 212 void getTopLevelInterface(Function responder) { |
| 203 responseFactory(null); | 213 responder(null); |
| 214 } |
| 204 | 215 |
| 205 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => | 216 void getTypeDefinition(String typeKey, Function responder) { |
| 206 responseFactory(null); | 217 responder(null); |
| 218 } |
| 207 | 219 |
| 208 dynamic getAllTypeDefinitions([Function responseFactory]) => | 220 void getAllTypeDefinitions(Function responder) { |
| 209 responseFactory(null); | 221 responder(null); |
| 222 } |
| 210 } | 223 } |
| 211 | 224 |
| 212 abstract class InputClient { | 225 abstract class InputClient { |
| 213 static const String serviceName = null; | 226 static const String serviceName = null; |
| 214 | 227 |
| 215 static service_describer.ServiceDescription _cachedServiceDescription; | 228 static service_describer.ServiceDescription _cachedServiceDescription; |
| 216 static service_describer.ServiceDescription get serviceDescription { | 229 static service_describer.ServiceDescription get serviceDescription { |
| 217 if (_cachedServiceDescription == null) { | 230 if (_cachedServiceDescription == null) { |
| 218 _cachedServiceDescription = new _InputClientServiceDescription(); | 231 _cachedServiceDescription = new _InputClientServiceDescription(); |
| 219 } | 232 } |
| 220 return _cachedServiceDescription; | 233 return _cachedServiceDescription; |
| 221 } | 234 } |
| 222 | 235 |
| 223 static InputClientProxy connectToService( | 236 static InputClientProxy connectToService( |
| 224 bindings.ServiceConnector s, String url, [String serviceName]) { | 237 bindings.ServiceConnector s, String url, [String serviceName]) { |
| 225 InputClientProxy p = new InputClientProxy.unbound(); | 238 InputClientProxy p = new InputClientProxy.unbound(); |
| 226 String name = serviceName ?? InputClient.serviceName; | 239 String name = serviceName ?? InputClient.serviceName; |
| 227 if ((name == null) || name.isEmpty) { | 240 if ((name == null) || name.isEmpty) { |
| 228 throw new core.MojoApiError( | 241 throw new core.MojoApiError( |
| 229 "If an interface has no ServiceName, then one must be provided."); | 242 "If an interface has no ServiceName, then one must be provided."); |
| 230 } | 243 } |
| 231 s.connectToService(url, p, name); | 244 s.connectToService(url, p, name); |
| 232 return p; | 245 return p; |
| 233 } | 246 } |
| 234 dynamic onBackButton([Function responseFactory = null]); | 247 void onBackButton(void callback()); |
| 235 } | 248 } |
| 236 | 249 |
| 237 abstract class InputClientInterface | 250 abstract class InputClientInterface |
| 238 implements bindings.MojoInterface<InputClient>, | 251 implements bindings.MojoInterface<InputClient>, |
| 239 InputClient { | 252 InputClient { |
| 240 factory InputClientInterface([InputClient impl]) => | 253 factory InputClientInterface([InputClient impl]) => |
| 241 new InputClientStub.unbound(impl); | 254 new InputClientStub.unbound(impl); |
| 242 factory InputClientInterface.fromEndpoint( | 255 factory InputClientInterface.fromEndpoint( |
| 243 core.MojoMessagePipeEndpoint endpoint, | 256 core.MojoMessagePipeEndpoint endpoint, |
| 244 [InputClient impl]) => | 257 [InputClient impl]) => |
| (...skipping 22 matching lines...) Expand all Loading... |
| 267 | 280 |
| 268 void handleResponse(bindings.ServiceMessage message) { | 281 void handleResponse(bindings.ServiceMessage message) { |
| 269 switch (message.header.type) { | 282 switch (message.header.type) { |
| 270 case _inputClientMethodOnBackButtonName: | 283 case _inputClientMethodOnBackButtonName: |
| 271 var r = InputClientOnBackButtonResponseParams.deserialize( | 284 var r = InputClientOnBackButtonResponseParams.deserialize( |
| 272 message.payload); | 285 message.payload); |
| 273 if (!message.header.hasRequestId) { | 286 if (!message.header.hasRequestId) { |
| 274 proxyError("Expected a message with a valid request Id."); | 287 proxyError("Expected a message with a valid request Id."); |
| 275 return; | 288 return; |
| 276 } | 289 } |
| 277 Completer c = completerMap[message.header.requestId]; | 290 Function callback = callbackMap[message.header.requestId]; |
| 278 if (c == null) { | 291 if (callback == null) { |
| 279 proxyError( | 292 proxyError( |
| 280 "Message had unknown request Id: ${message.header.requestId}"); | 293 "Message had unknown request Id: ${message.header.requestId}"); |
| 281 return; | 294 return; |
| 282 } | 295 } |
| 283 completerMap.remove(message.header.requestId); | 296 callbackMap.remove(message.header.requestId); |
| 284 if (c.isCompleted) { | 297 callback(); |
| 285 proxyError("Response completer already completed"); | |
| 286 return; | |
| 287 } | |
| 288 c.complete(r); | |
| 289 break; | 298 break; |
| 290 default: | 299 default: |
| 291 proxyError("Unexpected message type: ${message.header.type}"); | 300 proxyError("Unexpected message type: ${message.header.type}"); |
| 292 close(immediate: true); | 301 close(immediate: true); |
| 293 break; | 302 break; |
| 294 } | 303 } |
| 295 } | 304 } |
| 296 | 305 |
| 297 InputClient get impl => null; | 306 InputClient get impl => null; |
| 298 set impl(InputClient _) { | 307 set impl(InputClient _) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 321 InputClientProxy.unbound() | 330 InputClientProxy.unbound() |
| 322 : super(new _InputClientProxyControl.unbound()); | 331 : super(new _InputClientProxyControl.unbound()); |
| 323 | 332 |
| 324 static InputClientProxy newFromEndpoint( | 333 static InputClientProxy newFromEndpoint( |
| 325 core.MojoMessagePipeEndpoint endpoint) { | 334 core.MojoMessagePipeEndpoint endpoint) { |
| 326 assert(endpoint.setDescription("For InputClientProxy")); | 335 assert(endpoint.setDescription("For InputClientProxy")); |
| 327 return new InputClientProxy.fromEndpoint(endpoint); | 336 return new InputClientProxy.fromEndpoint(endpoint); |
| 328 } | 337 } |
| 329 | 338 |
| 330 | 339 |
| 331 dynamic onBackButton([Function responseFactory = null]) { | 340 void onBackButton(void callback()) { |
| 332 var params = new _InputClientOnBackButtonParams(); | 341 var params = new _InputClientOnBackButtonParams(); |
| 333 return ctrl.sendMessageWithRequestId( | 342 ctrl.sendMessageWithRequestId( |
| 334 params, | 343 params, |
| 335 _inputClientMethodOnBackButtonName, | 344 _inputClientMethodOnBackButtonName, |
| 336 -1, | 345 -1, |
| 337 bindings.MessageHeader.kMessageExpectsResponse); | 346 bindings.MessageHeader.kMessageExpectsResponse, |
| 347 callback); |
| 338 } | 348 } |
| 339 } | 349 } |
| 340 | 350 |
| 341 class _InputClientStubControl | 351 class _InputClientStubControl |
| 342 extends bindings.StubMessageHandler | 352 extends bindings.StubMessageHandler |
| 343 implements bindings.StubControl<InputClient> { | 353 implements bindings.StubControl<InputClient> { |
| 344 InputClient _impl; | 354 InputClient _impl; |
| 345 | 355 |
| 346 _InputClientStubControl.fromEndpoint( | 356 _InputClientStubControl.fromEndpoint( |
| 347 core.MojoMessagePipeEndpoint endpoint, [InputClient impl]) | 357 core.MojoMessagePipeEndpoint endpoint, [InputClient impl]) |
| 348 : super.fromEndpoint(endpoint, autoBegin: impl != null) { | 358 : super.fromEndpoint(endpoint, autoBegin: impl != null) { |
| 349 _impl = impl; | 359 _impl = impl; |
| 350 } | 360 } |
| 351 | 361 |
| 352 _InputClientStubControl.fromHandle( | 362 _InputClientStubControl.fromHandle( |
| 353 core.MojoHandle handle, [InputClient impl]) | 363 core.MojoHandle handle, [InputClient impl]) |
| 354 : super.fromHandle(handle, autoBegin: impl != null) { | 364 : super.fromHandle(handle, autoBegin: impl != null) { |
| 355 _impl = impl; | 365 _impl = impl; |
| 356 } | 366 } |
| 357 | 367 |
| 358 _InputClientStubControl.unbound([this._impl]) : super.unbound(); | 368 _InputClientStubControl.unbound([this._impl]) : super.unbound(); |
| 359 | 369 |
| 360 String get serviceName => InputClient.serviceName; | 370 String get serviceName => InputClient.serviceName; |
| 361 | 371 |
| 362 | 372 |
| 363 InputClientOnBackButtonResponseParams _inputClientOnBackButtonResponseParamsFa
ctory() { | 373 Function _inputClientOnBackButtonResponseParamsResponder( |
| 364 var result = new InputClientOnBackButtonResponseParams(); | 374 int requestId) { |
| 365 return result; | 375 return () { |
| 376 var result = new InputClientOnBackButtonResponseParams(); |
| 377 sendResponse(buildResponseWithId( |
| 378 result, |
| 379 _inputClientMethodOnBackButtonName, |
| 380 requestId, |
| 381 bindings.MessageHeader.kMessageIsResponse)); |
| 382 }; |
| 366 } | 383 } |
| 367 | 384 |
| 368 dynamic handleMessage(bindings.ServiceMessage message) { | 385 void handleMessage(bindings.ServiceMessage message) { |
| 369 if (bindings.ControlMessageHandler.isControlMessage(message)) { | 386 if (bindings.ControlMessageHandler.isControlMessage(message)) { |
| 370 return bindings.ControlMessageHandler.handleMessage(this, | 387 bindings.ControlMessageHandler.handleMessage( |
| 371 0, | 388 this, 0, message); |
| 372 message); | 389 return; |
| 373 } | 390 } |
| 374 if (_impl == null) { | 391 if (_impl == null) { |
| 375 throw new core.MojoApiError("$this has no implementation set"); | 392 throw new core.MojoApiError("$this has no implementation set"); |
| 376 } | 393 } |
| 377 switch (message.header.type) { | 394 switch (message.header.type) { |
| 378 case _inputClientMethodOnBackButtonName: | 395 case _inputClientMethodOnBackButtonName: |
| 379 var response = _impl.onBackButton(_inputClientOnBackButtonResponseParams
Factory); | 396 _impl.onBackButton(_inputClientOnBackButtonResponseParamsResponder(messa
ge.header.requestId)); |
| 380 if (response is Future) { | |
| 381 return response.then((response) { | |
| 382 if (response != null) { | |
| 383 return buildResponseWithId( | |
| 384 response, | |
| 385 _inputClientMethodOnBackButtonName, | |
| 386 message.header.requestId, | |
| 387 bindings.MessageHeader.kMessageIsResponse); | |
| 388 } | |
| 389 }); | |
| 390 } else if (response != null) { | |
| 391 return buildResponseWithId( | |
| 392 response, | |
| 393 _inputClientMethodOnBackButtonName, | |
| 394 message.header.requestId, | |
| 395 bindings.MessageHeader.kMessageIsResponse); | |
| 396 } | |
| 397 break; | 397 break; |
| 398 default: | 398 default: |
| 399 throw new bindings.MojoCodecError("Unexpected message name"); | 399 throw new bindings.MojoCodecError("Unexpected message name"); |
| 400 break; | 400 break; |
| 401 } | 401 } |
| 402 return null; | |
| 403 } | 402 } |
| 404 | 403 |
| 405 InputClient get impl => _impl; | 404 InputClient get impl => _impl; |
| 406 set impl(InputClient d) { | 405 set impl(InputClient d) { |
| 407 if (d == null) { | 406 if (d == null) { |
| 408 throw new core.MojoApiError("$this: Cannot set a null implementation"); | 407 throw new core.MojoApiError("$this: Cannot set a null implementation"); |
| 409 } | 408 } |
| 410 if (isBound && (_impl == null)) { | 409 if (isBound && (_impl == null)) { |
| 411 beginHandlingEvents(); | 410 beginHandlingEvents(); |
| 412 } | 411 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 core.MojoHandle handle, [InputClient impl]) | 445 core.MojoHandle handle, [InputClient impl]) |
| 447 : super(new _InputClientStubControl.fromHandle(handle, impl)); | 446 : super(new _InputClientStubControl.fromHandle(handle, impl)); |
| 448 | 447 |
| 449 static InputClientStub newFromEndpoint( | 448 static InputClientStub newFromEndpoint( |
| 450 core.MojoMessagePipeEndpoint endpoint) { | 449 core.MojoMessagePipeEndpoint endpoint) { |
| 451 assert(endpoint.setDescription("For InputClientStub")); | 450 assert(endpoint.setDescription("For InputClientStub")); |
| 452 return new InputClientStub.fromEndpoint(endpoint); | 451 return new InputClientStub.fromEndpoint(endpoint); |
| 453 } | 452 } |
| 454 | 453 |
| 455 | 454 |
| 456 dynamic onBackButton([Function responseFactory = null]) { | 455 void onBackButton(void callback()) { |
| 457 return impl.onBackButton(responseFactory); | 456 return impl.onBackButton(callback); |
| 458 } | 457 } |
| 459 } | 458 } |
| 460 | 459 |
| 461 const int _inputServiceMethodSetClientName = 0; | 460 const int _inputServiceMethodSetClientName = 0; |
| 462 | 461 |
| 463 class _InputServiceServiceDescription implements service_describer.ServiceDescri
ption { | 462 class _InputServiceServiceDescription implements service_describer.ServiceDescri
ption { |
| 464 dynamic getTopLevelInterface([Function responseFactory]) => | 463 void getTopLevelInterface(Function responder) { |
| 465 responseFactory(null); | 464 responder(null); |
| 465 } |
| 466 | 466 |
| 467 dynamic getTypeDefinition(String typeKey, [Function responseFactory]) => | 467 void getTypeDefinition(String typeKey, Function responder) { |
| 468 responseFactory(null); | 468 responder(null); |
| 469 } |
| 469 | 470 |
| 470 dynamic getAllTypeDefinitions([Function responseFactory]) => | 471 void getAllTypeDefinitions(Function responder) { |
| 471 responseFactory(null); | 472 responder(null); |
| 473 } |
| 472 } | 474 } |
| 473 | 475 |
| 474 abstract class InputService { | 476 abstract class InputService { |
| 475 static const String serviceName = "input::InputService"; | 477 static const String serviceName = "input::InputService"; |
| 476 | 478 |
| 477 static service_describer.ServiceDescription _cachedServiceDescription; | 479 static service_describer.ServiceDescription _cachedServiceDescription; |
| 478 static service_describer.ServiceDescription get serviceDescription { | 480 static service_describer.ServiceDescription get serviceDescription { |
| 479 if (_cachedServiceDescription == null) { | 481 if (_cachedServiceDescription == null) { |
| 480 _cachedServiceDescription = new _InputServiceServiceDescription(); | 482 _cachedServiceDescription = new _InputServiceServiceDescription(); |
| 481 } | 483 } |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 : super.fromHandle(handle, autoBegin: impl != null) { | 600 : super.fromHandle(handle, autoBegin: impl != null) { |
| 599 _impl = impl; | 601 _impl = impl; |
| 600 } | 602 } |
| 601 | 603 |
| 602 _InputServiceStubControl.unbound([this._impl]) : super.unbound(); | 604 _InputServiceStubControl.unbound([this._impl]) : super.unbound(); |
| 603 | 605 |
| 604 String get serviceName => InputService.serviceName; | 606 String get serviceName => InputService.serviceName; |
| 605 | 607 |
| 606 | 608 |
| 607 | 609 |
| 608 dynamic handleMessage(bindings.ServiceMessage message) { | 610 void handleMessage(bindings.ServiceMessage message) { |
| 609 if (bindings.ControlMessageHandler.isControlMessage(message)) { | 611 if (bindings.ControlMessageHandler.isControlMessage(message)) { |
| 610 return bindings.ControlMessageHandler.handleMessage(this, | 612 bindings.ControlMessageHandler.handleMessage( |
| 611 0, | 613 this, 0, message); |
| 612 message); | 614 return; |
| 613 } | 615 } |
| 614 if (_impl == null) { | 616 if (_impl == null) { |
| 615 throw new core.MojoApiError("$this has no implementation set"); | 617 throw new core.MojoApiError("$this has no implementation set"); |
| 616 } | 618 } |
| 617 switch (message.header.type) { | 619 switch (message.header.type) { |
| 618 case _inputServiceMethodSetClientName: | 620 case _inputServiceMethodSetClientName: |
| 619 var params = _InputServiceSetClientParams.deserialize( | 621 var params = _InputServiceSetClientParams.deserialize( |
| 620 message.payload); | 622 message.payload); |
| 621 _impl.setClient(params.client); | 623 _impl.setClient(params.client); |
| 622 break; | 624 break; |
| 623 default: | 625 default: |
| 624 throw new bindings.MojoCodecError("Unexpected message name"); | 626 throw new bindings.MojoCodecError("Unexpected message name"); |
| 625 break; | 627 break; |
| 626 } | 628 } |
| 627 return null; | |
| 628 } | 629 } |
| 629 | 630 |
| 630 InputService get impl => _impl; | 631 InputService get impl => _impl; |
| 631 set impl(InputService d) { | 632 set impl(InputService d) { |
| 632 if (d == null) { | 633 if (d == null) { |
| 633 throw new core.MojoApiError("$this: Cannot set a null implementation"); | 634 throw new core.MojoApiError("$this: Cannot set a null implementation"); |
| 634 } | 635 } |
| 635 if (isBound && (_impl == null)) { | 636 if (isBound && (_impl == null)) { |
| 636 beginHandlingEvents(); | 637 beginHandlingEvents(); |
| 637 } | 638 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 } | 679 } |
| 679 | 680 |
| 680 | 681 |
| 681 void setClient(InputClientInterface client) { | 682 void setClient(InputClientInterface client) { |
| 682 return impl.setClient(client); | 683 return impl.setClient(client); |
| 683 } | 684 } |
| 684 } | 685 } |
| 685 | 686 |
| 686 | 687 |
| 687 | 688 |
| OLD | NEW |