Chromium Code Reviews| Index: mojo/public/js/lib/pipe_control_message_proxy.js |
| diff --git a/mojo/public/js/lib/pipe_control_message_proxy.js b/mojo/public/js/lib/pipe_control_message_proxy.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f249e41f189aa7ec178865e390e6d924df6aa0a8 |
| --- /dev/null |
| +++ b/mojo/public/js/lib/pipe_control_message_proxy.js |
| @@ -0,0 +1,56 @@ |
| +// Copyright 2017 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/lib/pipe_control_message_proxy", [ |
| + "mojo/public/interfaces/bindings/pipe_control_messages.mojom", |
| + "mojo/public/js/codec", |
| + "mojo/public/js/interface_types", |
| +], function(pipeControlMessages, codec, types) { |
| + |
| + function constructRunOrClosePipeMessage(runOrClosePipeInput) { |
| + var runOrClosePipeMessageParams = new |
| + pipeControlMessages.RunOrClosePipeMessageParams(); |
| + runOrClosePipeMessageParams.input = runOrClosePipeInput; |
| + |
| + var messageName = pipeControlMessages.kRunOrClosePipeMessageId; |
| + var payloadSize = |
| + pipeControlMessages.RunOrClosePipeMessageParams.encodedSize; |
| + |
| + var builder = new codec.MessageBuilder(messageName, payloadSize); |
| + builder.encodeStruct(pipeControlMessages.RunOrClosePipeMessageParams, |
| + runOrClosePipeMessageParams); |
| + var message = builder.finish(); |
| + message.setInterfaceId(types.kInvalidInterfaceId); |
| + return message; |
| + } |
| + |
| + function PipeControlMessageProxy(receiver) { |
| + this.receiver = receiver; |
|
yzshen1
2017/03/28 00:46:00
if this.receiver is not supposed to be public, it
wangjimmy
2017/03/29 17:01:18
Done.
|
| + } |
| + |
| + PipeControlMessageProxy.prototype.notifyPeerEndpointClosed = function( |
| + interfaceId, reason) { |
| + var message = this.constructPeerEndpointClosedMessage(interfaceId, reason); |
| + this.receiver.accept(message); |
| + }; |
| + |
| + PipeControlMessageProxy.prototype.constructPeerEndpointClosedMessage = |
| + function(interfaceId, reason) { |
| + var event = new pipeControlMessages.PeerAssociatedEndpointClosedEvent(); |
| + event.id = interfaceId; |
| + if (reason) { |
| + event.disconnect_reason = new pipeControlMessages.DisconnectReason({ |
| + custom_reason: reason.custom_reason, |
| + description: reason.description}); |
| + } |
| + var runOrClosePipeInput = new pipeControlMessages.RunOrClosePipeInput(); |
| + runOrClosePipeInput.peer_associated_endpoint_closed_event = event; |
| + return constructRunOrClosePipeMessage(runOrClosePipeInput); |
| + }; |
| + |
| + var exports = {}; |
| + exports.PipeControlMessageProxy = PipeControlMessageProxy; |
| + |
| + return exports; |
| +}); |