| Index: mojo/edk/system/remote_message_pipe_bootstrap.h
|
| diff --git a/mojo/edk/system/remote_message_pipe_bootstrap.h b/mojo/edk/system/remote_message_pipe_bootstrap.h
|
| deleted file mode 100644
|
| index 2a24680d5768b5d8149d6977486cc0323e33e95e..0000000000000000000000000000000000000000
|
| --- a/mojo/edk/system/remote_message_pipe_bootstrap.h
|
| +++ /dev/null
|
| @@ -1,89 +0,0 @@
|
| -// Copyright 2016 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.
|
| -
|
| -#ifndef MOJO_EDK_SYSTEM_REMOTE_MESSAGE_PIPE_BOOTSTRAP_H_
|
| -#define MOJO_EDK_SYSTEM_REMOTE_MESSAGE_PIPE_BOOTSTRAP_H_
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/task_runner.h"
|
| -#include "mojo/edk/embedder/scoped_platform_handle.h"
|
| -#include "mojo/edk/system/channel.h"
|
| -#include "mojo/edk/system/ports/name.h"
|
| -#include "mojo/edk/system/ports/port_ref.h"
|
| -
|
| -namespace mojo {
|
| -namespace edk {
|
| -
|
| -class NodeController;
|
| -
|
| -// This is used by Core to negotiate a new cross-process message pipe given
|
| -// an arbitrary platform channel. Both ends of the channel must be passed to
|
| -// RemoteMessagePipeBootstrap::Create() in their respective processes.
|
| -//
|
| -// The bootstrapping procedure the same on either end:
|
| -//
|
| -// 1. Select a local port P to be merged with a remote port.
|
| -// 2. Write the local node name and P's name to the bootstrap pipe.
|
| -// 3. When a message is read from the pipe:
|
| -// - If it's the first message read, extract the remote node+port name and
|
| -// and send an empty ACK message on the pipe.
|
| -// - If it's the second message read, close the channel, and delete |this|.
|
| -// 4. When an error occus on the pipe, delete |this|.
|
| -//
|
| -// Excluding irrecoverable error conditions such as either process dying,
|
| -// armageddon, etc., this ensures neither end closes the channel until both ends
|
| -// are aware of each other's port-to-merge.
|
| -//
|
| -// At step 3, one side of the channel is chosen to issue a message at the Ports
|
| -// layer which eventually merges the two ports.
|
| -class RemoteMessagePipeBootstrap
|
| - : public Channel::Delegate,
|
| - public base::MessageLoop::DestructionObserver {
|
| - public:
|
| - ~RemoteMessagePipeBootstrap() override;
|
| -
|
| - // |port| must be a reference to an uninitialized local port.
|
| - static void Create(NodeController* node_controller,
|
| - ScopedPlatformHandle platform_handle,
|
| - const ports::PortRef& port);
|
| -
|
| - protected:
|
| - explicit RemoteMessagePipeBootstrap(NodeController* node_controller,
|
| - ScopedPlatformHandle platform_handle,
|
| - const ports::PortRef& port);
|
| -
|
| - void ShutDown();
|
| -
|
| - bool shutting_down_ = false;
|
| - NodeController* node_controller_;
|
| - const ports::PortRef local_port_;
|
| -
|
| - scoped_refptr<base::TaskRunner> io_task_runner_;
|
| - scoped_refptr<Channel> channel_;
|
| -
|
| - bool peer_info_received_ = false;
|
| -
|
| - private:
|
| - // base::MessageLoop::DestructionObserver:
|
| - void WillDestroyCurrentMessageLoop() override;
|
| -
|
| - // Channel::Delegate:
|
| - void OnChannelMessage(const void* payload,
|
| - size_t payload_size,
|
| - ScopedPlatformHandleVectorPtr handles) override;
|
| - void OnChannelError() override;
|
| -
|
| - void ShutDownNow();
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(RemoteMessagePipeBootstrap);
|
| -};
|
| -
|
| -} // namespace edk
|
| -} // namespace mojo
|
| -
|
| -#endif // MOJO_EDK_SYSTEM_REMOTE_MESSAGE_PIPE_BOOTSTRAP_H_
|
|
|