| Index: mojo/public/dart/src/application_connection.dart
|
| diff --git a/mojo/public/dart/src/application_connection.dart b/mojo/public/dart/src/application_connection.dart
|
| index 5d98896ce60660131df841c6cab68b23efd7d393..7c8bdb95b729bc0e4a60e3678a6ebc1e62ebec6c 100644
|
| --- a/mojo/public/dart/src/application_connection.dart
|
| +++ b/mojo/public/dart/src/application_connection.dart
|
| @@ -14,21 +14,15 @@ class LocalServiceProvider implements ServiceProvider {
|
| ServiceProviderStub _stub;
|
|
|
| LocalServiceProvider(this.connection, this._stub) {
|
| + assert(_stub.isOpen);
|
| _stub.impl = this;
|
| }
|
|
|
| - listen({Function onClosed}) => _stub.listen(onClosed: _closer(onClosed));
|
| -
|
| - Function _closer(Function onClosed) {
|
| - return (() {
|
| - if (onClosed != null) {
|
| - onClosed();
|
| - }
|
| - close();
|
| - });
|
| + set onError(Function f) {
|
| + _stub.onError = f;
|
| }
|
|
|
| - void close({bool nodefer: false}) => _stub.close(nodefer: nodefer);
|
| + void close({bool nodefer : false}) => _stub.close(nodefer: nodefer);
|
|
|
| void connectToService(String interfaceName,
|
| core.MojoMessagePipeEndpoint pipe) {
|
| @@ -72,15 +66,17 @@ class ApplicationConnection {
|
| LocalServiceProvider _localServiceProvider;
|
| final _nameToServiceFactory = new Map<String, ServiceFactory>();
|
| FallbackServiceFactory _fallbackServiceFactory;
|
| + core.ErrorHandler onError;
|
|
|
| - ApplicationConnection(ServiceProviderStub stub, ServiceProviderProxy proxy)
|
| - : remoteServiceProvider = proxy {
|
| - if (stub != null) _localServiceProvider =
|
| - new LocalServiceProvider(this, stub);
|
| + ApplicationConnection(ServiceProviderStub stub, this.remoteServiceProvider) {
|
| + if (stub != null) {
|
| + _localServiceProvider = new LocalServiceProvider(this, stub);
|
| + _localServiceProvider.onError = _errorHandler;
|
| + }
|
| }
|
|
|
| FallbackServiceFactory get fallbackServiceFactory => _fallbackServiceFactory;
|
| - set fallbackServiceFactory(FallbackServiceFactory f) {
|
| + set fallbackServiceFactory(FallbackServiceFactory f) {
|
| assert(_localServiceProvider != null);
|
| _fallbackServiceFactory = f;
|
| }
|
| @@ -100,18 +96,9 @@ class ApplicationConnection {
|
| _nameToServiceFactory[interfaceName] = factory;
|
| }
|
|
|
| - void listen({Function onClosed}) {
|
| - assert(_localServiceProvider != null);
|
| - _localServiceProvider.listen(onClosed: _closer(onClosed));
|
| - }
|
| -
|
| - Function _closer(Function onClosed) {
|
| - return (() {
|
| - if (onClosed != null) {
|
| - onClosed();
|
| - }
|
| - close();
|
| - });
|
| + void _errorHandler() {
|
| + if (onError != null) onError();
|
| + close();
|
| }
|
|
|
| void close({bool nodefer: false}) {
|
|
|