diff options
Diffstat (limited to 'mojo/public/js/connection.js')
-rw-r--r-- | mojo/public/js/connection.js | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/mojo/public/js/connection.js b/mojo/public/js/connection.js deleted file mode 100644 index 3976efd..0000000 --- a/mojo/public/js/connection.js +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -define("mojo/public/js/connection", [ - "mojo/public/js/bindings", - "mojo/public/js/connector", - "mojo/public/js/core", - "mojo/public/js/router", -], function(bindings, connector, core, router) { - - var Router = router.Router; - var EmptyProxy = bindings.EmptyProxy; - var EmptyStub = bindings.EmptyStub; - var ProxyBindings = bindings.ProxyBindings; - var StubBindings = bindings.StubBindings; - var TestConnector = connector.TestConnector; - var TestRouter = router.TestRouter; - - // TODO(hansmuller): the proxy receiver_ property should be receiver$ - - function BaseConnection(localStub, remoteProxy, router) { - this.router_ = router; - this.local = localStub; - this.remote = remoteProxy; - - this.router_.setIncomingReceiver(localStub); - if (this.remote) - this.remote.receiver_ = router; - - // Validate incoming messages: remote responses and local requests. - var validateRequest = localStub && localStub.validator; - var validateResponse = remoteProxy && remoteProxy.validator; - var payloadValidators = []; - if (validateRequest) - payloadValidators.push(validateRequest); - if (validateResponse) - payloadValidators.push(validateResponse); - this.router_.setPayloadValidators(payloadValidators); - } - - BaseConnection.prototype.close = function() { - this.router_.close(); - this.router_ = null; - this.local = null; - this.remote = null; - }; - - BaseConnection.prototype.encounteredError = function() { - return this.router_.encounteredError(); - }; - - function Connection( - handle, localFactory, remoteFactory, routerFactory, connectorFactory) { - var routerClass = routerFactory || Router; - var router = new routerClass(handle, connectorFactory); - var remoteProxy = remoteFactory && new remoteFactory(router); - var localStub = localFactory && new localFactory(remoteProxy); - BaseConnection.call(this, localStub, remoteProxy, router); - } - - Connection.prototype = Object.create(BaseConnection.prototype); - - // The TestConnection subclass is only intended to be used in unit tests. - function TestConnection(handle, localFactory, remoteFactory) { - Connection.call(this, - handle, - localFactory, - remoteFactory, - TestRouter, - TestConnector); - } - - TestConnection.prototype = Object.create(Connection.prototype); - - function createOpenConnection( - messagePipeHandle, client, localInterface, remoteInterface) { - var stubClass = (localInterface && localInterface.stubClass) || EmptyStub; - var proxyClass = - (remoteInterface && remoteInterface.proxyClass) || EmptyProxy; - var proxy = new proxyClass; - var stub = new stubClass; - var router = new Router(messagePipeHandle); - var connection = new BaseConnection(stub, proxy, router); - - ProxyBindings(proxy).connection = connection; - ProxyBindings(proxy).local = connection.local; - StubBindings(stub).connection = connection; - StubBindings(proxy).remote = connection.remote; - - var clientImpl = client instanceof Function ? client(proxy) : client; - if (clientImpl) - StubBindings(stub).delegate = clientImpl; - - return connection; - } - - // Return a message pipe handle. - function bindProxyClient(clientImpl, localInterface, remoteInterface) { - var messagePipe = core.createMessagePipe(); - if (messagePipe.result != core.RESULT_OK) - throw new Error("createMessagePipe failed " + messagePipe.result); - - createOpenConnection( - messagePipe.handle0, clientImpl, localInterface, remoteInterface); - return messagePipe.handle1; - } - - // Return a proxy. - function bindProxyHandle(proxyHandle, localInterface, remoteInterface) { - if (!core.isHandle(proxyHandle)) - throw new Error("Not a handle " + proxyHandle); - - var connection = createOpenConnection( - proxyHandle, undefined, localInterface, remoteInterface); - return connection.remote; - } - - var exports = {}; - exports.Connection = Connection; - exports.TestConnection = TestConnection; - exports.bindProxyHandle = bindProxyHandle; - exports.bindProxyClient = bindProxyClient; - return exports; -}); |