diff options
Diffstat (limited to 'mojo/public/js/new_bindings/connector.js')
-rw-r--r-- | mojo/public/js/new_bindings/connector.js | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/mojo/public/js/new_bindings/connector.js b/mojo/public/js/new_bindings/connector.js deleted file mode 100644 index 7fa4822..0000000 --- a/mojo/public/js/new_bindings/connector.js +++ /dev/null @@ -1,104 +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. - -(function() { - var internal = mojo.internal; - - function Connector(handle) { - if (!(handle instanceof MojoHandle)) - throw new Error("Connector: not a handle " + handle); - this.handle_ = handle; - this.dropWrites_ = false; - this.error_ = false; - this.incomingReceiver_ = null; - this.readWatcher_ = null; - this.errorHandler_ = null; - - if (handle) { - this.readWatcher_ = handle.watch({readable: true}, - this.readMore_.bind(this)); - } - } - - Connector.prototype.close = function() { - if (this.readWatcher_) { - this.readWatcher_.cancel(); - this.readWatcher_ = null; - } - if (this.handle_ != null) { - this.handle_.close(); - this.handle_ = null; - } - }; - - Connector.prototype.accept = function(message) { - if (this.error_) - return false; - - if (this.dropWrites_) - return true; - - var result = this.handle_.writeMessage( - new Uint8Array(message.buffer.arrayBuffer), message.handles); - switch (result) { - case Mojo.RESULT_OK: - // The handles were successfully transferred, so we don't own them - // anymore. - message.handles = []; - break; - case Mojo.RESULT_FAILED_PRECONDITION: - // There's no point in continuing to write to this pipe since the other - // end is gone. Avoid writing any future messages. Hide write failures - // from the caller since we'd like them to continue consuming any - // backlog of incoming messages before regarding the message pipe as - // closed. - this.dropWrites_ = true; - break; - default: - // This particular write was rejected, presumably because of bad input. - // The pipe is not necessarily in a bad state. - return false; - } - return true; - }; - - Connector.prototype.setIncomingReceiver = function(receiver) { - this.incomingReceiver_ = receiver; - }; - - Connector.prototype.setErrorHandler = function(handler) { - this.errorHandler_ = handler; - }; - - Connector.prototype.encounteredError = function() { - return this.error_; - }; - - Connector.prototype.waitForNextMessageForTesting = function() { - // TODO(yzshen): Change the tests that use this method. - throw new Error("Not supported!"); - }; - - Connector.prototype.readMore_ = function(result) { - for (;;) { - var read = this.handle_.readMessage(); - if (this.handle_ == null) // The connector has been closed. - return; - if (read.result == Mojo.RESULT_SHOULD_WAIT) - return; - if (read.result != Mojo.RESULT_OK) { - this.error_ = true; - if (this.errorHandler_) - this.errorHandler_.onError(read.result); - return; - } - var messageBuffer = new internal.Buffer(read.buffer); - var message = new internal.Message(messageBuffer, read.handles); - if (this.incomingReceiver_) - this.incomingReceiver_.accept(message); - } - }; - - internal.Connector = Connector; -})(); |