| Index: services/dart/test/pingpong/main.dart
|
| diff --git a/services/dart/test/pingpong/main.dart b/services/dart/test/pingpong/main.dart
|
| index 40f53057a56b84764586c609e274791b4e5c424e..01dd1cb95cce6bd5b101c3a4da5d7c214bbc850f 100644
|
| --- a/services/dart/test/pingpong/main.dart
|
| +++ b/services/dart/test/pingpong/main.dart
|
| @@ -9,95 +9,102 @@ import 'mojo:core';
|
|
|
| import 'package:services/dart/test/pingpong_service.mojom.dart';
|
|
|
| -class PingPongClientImpl extends PingPongClient {
|
| +class PingPongClientImpl implements PingPongClient {
|
| + final PingPongClientStub stub;
|
| Completer _completer;
|
| int _count;
|
|
|
| - PingPongClientImpl.unbound(this._count, this._completer) : super.unbound() {
|
| - super.delegate = this;
|
| + PingPongClientImpl.unbound(this._count, this._completer)
|
| + : stub = new PingPongClientStub.unbound() {
|
| + stub.delegate = this;
|
| }
|
|
|
| void pong(int pongValue) {
|
| if (pongValue == _count) {
|
| _completer.complete(null);
|
| - close();
|
| + stub.close();
|
| }
|
| }
|
| }
|
|
|
| -class PingPongServiceImpl extends PingPongService {
|
| +class PingPongServiceImpl implements PingPongService {
|
| + PingPongServiceStub _stub;
|
| Application _application;
|
| - PingPongClientProxy _proxy;
|
| + PingPongClientProxy _pingPongClient;
|
|
|
| PingPongServiceImpl(Application application, MojoMessagePipeEndpoint endpoint)
|
| - : _application = application, super(endpoint) {
|
| - super.delegate = this;
|
| + : _application = application {
|
| + _stub = new PingPongServiceStub.fromEndpoint(endpoint)
|
| + ..delegate = this
|
| + ..listen();
|
| }
|
|
|
| - PingPongServiceImpl.fromStub(PingPongServiceStub stub)
|
| - : super.fromStub(stub) {
|
| - super.delegate = this;
|
| + PingPongServiceImpl.fromStub(this._stub) {
|
| + _stub.delegate = this;
|
| }
|
|
|
| - void setClient(PingPongClientProxy proxy) {
|
| - assert(_proxy == null);
|
| - _proxy = proxy;
|
| + listen() => _stub.listen();
|
| +
|
| + void setClient(ProxyBase proxyBase) {
|
| + assert(_pingPongClient== null);
|
| + _pingPongClient = proxyBase;
|
| }
|
|
|
| void ping(int pingValue) {
|
| - if (_proxy != null) {
|
| - _proxy.pong(pingValue + 1);
|
| + if (_pingPongClient != null) {
|
| + _pingPongClient.ptr.pong(pingValue + 1);
|
| }
|
| }
|
|
|
| - pingTargetUrl(String url, int count, Function responseFactory) async {
|
| + Future pingTargetUrl(String url, int count, Function responseFactory) async {
|
| if (_application == null) {
|
| return responseFactory(false);
|
| }
|
| var completer = new Completer();
|
| - var pingPongService = new PingPongServiceProxy.unbound();
|
| + var pingPongService= new PingPongServiceProxy.unbound();
|
| _application.connectToService(url, pingPongService);
|
|
|
| var pingPongClient = new PingPongClientImpl.unbound(count, completer);
|
| - pingPongService.setClient(pingPongClient.stub);
|
| - pingPongClient.listen();
|
| + pingPongService.ptr.setClient(pingPongClient.stub);
|
| + pingPongClient.stub.listen();
|
|
|
| for (var i = 0; i < count; i++) {
|
| - pingPongService.ping(i);
|
| + pingPongService.ptr.ping(i);
|
| }
|
| await completer.future;
|
| - pingPongService.quit();
|
| + pingPongService.ptr.quit();
|
|
|
| return responseFactory(true);
|
| }
|
|
|
| - pingTargetService(PingPongServiceProxy pingPongService,
|
| - int count,
|
| - Function responseFactory) async {
|
| + Future pingTargetService(ProxyBase proxyBase,
|
| + int count,
|
| + Function responseFactory) async {
|
| + var pingPongService = proxyBase;
|
| var completer = new Completer();
|
| var client = new PingPongClientImpl.unbound(count, completer);
|
| - pingPongService.setClient(client.stub);
|
| - client.listen();
|
| + pingPongService.ptr.setClient(client.stub);
|
| + client.stub.listen();
|
|
|
| for (var i = 0; i < count; i++) {
|
| - pingPongService.ping(i);
|
| + pingPongService.ptr.ping(i);
|
| }
|
| await completer.future;
|
| - pingPongService.quit();
|
| + pingPongService.ptr.quit();
|
|
|
| return responseFactory(true);
|
| }
|
|
|
| getPingPongService(PingPongServiceStub serviceStub) {
|
| - var pingPongService = new PingPongServiceImpl.fromStub(serviceStub);
|
| - pingPongService.listen();
|
| + new PingPongServiceImpl.fromStub(serviceStub)..listen();
|
| }
|
|
|
| void quit() {
|
| - if (_proxy != null) {
|
| - _proxy.close();
|
| + if (_pingPongClient != null) {
|
| + _pingPongClient.close();
|
| + _pingPongClient = null;
|
| }
|
| - super.close();
|
| + _stub.close();
|
| if (_application != null) {
|
| _application.close();
|
| }
|
| @@ -108,7 +115,7 @@ class PingPongApplication extends Application {
|
| PingPongApplication.fromHandle(MojoHandle handle) : super.fromHandle(handle);
|
|
|
| void acceptConnection(String requestorUrl, ApplicationConnection connection) {
|
| - connection.provideService(PingPongService.name,
|
| + connection.provideService(PingPongServiceName,
|
| (endpoint) => new PingPongServiceImpl(this, endpoint));
|
| connection.listen();
|
| }
|
| @@ -117,6 +124,5 @@ class PingPongApplication extends Application {
|
| main(List args) {
|
| MojoHandle appHandle = new MojoHandle(args[0]);
|
| String url = args[1];
|
| - var pingPongApplication = new PingPongApplication.fromHandle(appHandle);
|
| - pingPongApplication.listen();
|
| + new PingPongApplication.fromHandle(appHandle);
|
| }
|
|
|