| 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 part of bindings; | 5 part of bindings; |
| 6 | 6 |
| 7 class ProxyError { | 7 class ProxyError { |
| 8 final String message; | 8 final String message; |
| 9 ProxyError(this.message); | 9 ProxyError(this.message); |
| 10 String toString() => "ProxyError: $message"; | 10 String toString() => "ProxyError: $message"; |
| 11 } | 11 } |
| 12 | 12 |
| 13 abstract class Proxy extends core.MojoEventStreamListener { | 13 abstract class Proxy extends core.MojoEventHandler { |
| 14 final Map<int, Completer> _completerMap = {}; | 14 Map<int, Completer> _completerMap = {}; |
| 15 Completer _errorCompleter = new Completer(); | 15 Completer _errorCompleter = new Completer(); |
| 16 Set<Completer> _errorCompleters; | 16 Set<Completer> _errorCompleters; |
| 17 int _nextId = 0; | 17 int _nextId = 0; |
| 18 int _version = 0; | 18 int _version = 0; |
| 19 int _pendingCount = 0; | 19 int _pendingCount = 0; |
| 20 | 20 |
| 21 Proxy.fromEndpoint(core.MojoMessagePipeEndpoint endpoint) | 21 Proxy.fromEndpoint(core.MojoMessagePipeEndpoint endpoint) |
| 22 : super.fromEndpoint(endpoint); | 22 : super.fromEndpoint(endpoint); |
| 23 | 23 |
| 24 Proxy.fromHandle(core.MojoHandle handle) : super.fromHandle(handle); | 24 Proxy.fromHandle(core.MojoHandle handle) : super.fromHandle(handle); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 | 73 |
| 74 return super.close(immediate: immediate); | 74 return super.close(immediate: immediate); |
| 75 } | 75 } |
| 76 | 76 |
| 77 void sendMessage(Struct message, int name) { | 77 void sendMessage(Struct message, int name) { |
| 78 if (!isBound) { | 78 if (!isBound) { |
| 79 proxyError("The Proxy is closed."); | 79 proxyError("The Proxy is closed."); |
| 80 return; | 80 return; |
| 81 } | 81 } |
| 82 if (!isOpen) { | 82 if (!isOpen) { |
| 83 listen(); | 83 beginHandlingEvents(); |
| 84 } | 84 } |
| 85 var header = new MessageHeader(name); | 85 var header = new MessageHeader(name); |
| 86 | |
| 87 var serviceMessage = message.serializeWithHeader(header); | 86 var serviceMessage = message.serializeWithHeader(header); |
| 88 endpoint.write(serviceMessage.buffer, serviceMessage.buffer.lengthInBytes, | 87 endpoint.write(serviceMessage.buffer, serviceMessage.buffer.lengthInBytes, |
| 89 serviceMessage.handles); | 88 serviceMessage.handles); |
| 90 if (!endpoint.status.isOk) { | 89 if (!endpoint.status.isOk) { |
| 91 proxyError("Write to message pipe endpoint failed."); | 90 proxyError("Write to message pipe endpoint failed."); |
| 92 } | 91 } |
| 93 } | 92 } |
| 94 | 93 |
| 95 Future sendMessageWithRequestId(Struct message, int name, int id, int flags) { | 94 Future sendMessageWithRequestId(Struct message, int name, int id, int flags) { |
| 96 var completer = new Completer(); | 95 var completer = new Completer(); |
| 97 if (!isBound) { | 96 if (!isBound) { |
| 98 proxyError("The Proxy is closed."); | 97 proxyError("The Proxy is closed."); |
| 99 return completer.future; | 98 return completer.future; |
| 100 } | 99 } |
| 101 if (!isOpen) { | 100 if (!isOpen) { |
| 102 listen(); | 101 beginHandlingEvents(); |
| 103 } | 102 } |
| 104 if (id == -1) { | 103 if (id == -1) { |
| 105 id = _nextId++; | 104 id = _nextId++; |
| 106 } | 105 } |
| 107 | 106 |
| 108 var header = new MessageHeader.withRequestId(name, flags, id); | 107 var header = new MessageHeader.withRequestId(name, flags, id); |
| 109 var serviceMessage = message.serializeWithHeader(header); | 108 var serviceMessage = message.serializeWithHeader(header); |
| 110 endpoint.write(serviceMessage.buffer, serviceMessage.buffer.lengthInBytes, | 109 endpoint.write(serviceMessage.buffer, serviceMessage.buffer.lengthInBytes, |
| 111 serviceMessage.handles); | 110 serviceMessage.handles); |
| 112 | 111 |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 | 239 |
| 241 // Generated Proxy classes implement this interface. | 240 // Generated Proxy classes implement this interface. |
| 242 abstract class ProxyBase { | 241 abstract class ProxyBase { |
| 243 final Proxy impl = null; | 242 final Proxy impl = null; |
| 244 final String name = null; | 243 final String name = null; |
| 245 } | 244 } |
| 246 | 245 |
| 247 abstract class ServiceConnector { | 246 abstract class ServiceConnector { |
| 248 void connectToService(String url, ProxyBase proxy); | 247 void connectToService(String url, ProxyBase proxy); |
| 249 } | 248 } |
| OLD | NEW |