| Index: ipc/mojo/ipc_channel_mojo.h
|
| diff --git a/ipc/mojo/ipc_channel_mojo.h b/ipc/mojo/ipc_channel_mojo.h
|
| deleted file mode 100644
|
| index dd5500c75ecb6a1797f1131d2554aead96966967..0000000000000000000000000000000000000000
|
| --- a/ipc/mojo/ipc_channel_mojo.h
|
| +++ /dev/null
|
| @@ -1,124 +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.
|
| -
|
| -#ifndef IPC_IPC_CHANNEL_MOJO_H_
|
| -#define IPC_IPC_CHANNEL_MOJO_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <memory>
|
| -#include <vector>
|
| -
|
| -#include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_vector.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "base/task_runner.h"
|
| -#include "build/build_config.h"
|
| -#include "ipc/ipc_channel.h"
|
| -#include "ipc/ipc_channel_factory.h"
|
| -#include "ipc/ipc_export.h"
|
| -#include "ipc/mojo/ipc_message_pipe_reader.h"
|
| -#include "ipc/mojo/ipc_mojo_bootstrap.h"
|
| -#include "mojo/public/cpp/system/core.h"
|
| -
|
| -namespace IPC {
|
| -
|
| -// Mojo-based IPC::Channel implementation over a Mojo message pipe.
|
| -//
|
| -// ChannelMojo builds a Mojo MessagePipe using the provided message pipe
|
| -// |handle| and builds an associated interface for each direction on the
|
| -// channel.
|
| -//
|
| -// TODO(morrita): Add APIs to create extra MessagePipes to let
|
| -// Mojo-based objects talk over this Channel.
|
| -//
|
| -class IPC_MOJO_EXPORT ChannelMojo
|
| - : public Channel,
|
| - public MojoBootstrap::Delegate,
|
| - public NON_EXPORTED_BASE(internal::MessagePipeReader::Delegate) {
|
| - public:
|
| - // Creates a ChannelMojo.
|
| - static std::unique_ptr<ChannelMojo>
|
| - Create(mojo::ScopedMessagePipeHandle handle, Mode mode, Listener* listener);
|
| -
|
| - // Create a factory object for ChannelMojo.
|
| - // The factory is used to create Mojo-based ChannelProxy family.
|
| - // |host| must not be null.
|
| - static std::unique_ptr<ChannelFactory> CreateServerFactory(
|
| - mojo::ScopedMessagePipeHandle handle);
|
| -
|
| - static std::unique_ptr<ChannelFactory> CreateClientFactory(
|
| - mojo::ScopedMessagePipeHandle handle);
|
| -
|
| - ~ChannelMojo() override;
|
| -
|
| - // Channel implementation
|
| - bool Connect() override;
|
| - void Close() override;
|
| - bool Send(Message* message) override;
|
| - bool IsSendThreadSafe() const override;
|
| - base::ProcessId GetPeerPID() const override;
|
| - base::ProcessId GetSelfPID() const override;
|
| -
|
| -#if defined(OS_POSIX) && !defined(OS_NACL_SFI)
|
| - int GetClientFileDescriptor() const override;
|
| - base::ScopedFD TakeClientFileDescriptor() override;
|
| -#endif // defined(OS_POSIX) && !defined(OS_NACL_SFI)
|
| -
|
| - // These access protected API of IPC::Message, which has ChannelMojo
|
| - // as a friend class.
|
| - static MojoResult WriteToMessageAttachmentSet(
|
| - mojo::Array<mojom::SerializedHandlePtr> handle_buffer,
|
| - Message* message);
|
| - static MojoResult ReadFromMessageAttachmentSet(
|
| - Message* message,
|
| - mojo::Array<mojom::SerializedHandlePtr>* handles);
|
| -
|
| - // MojoBootstrapDelegate implementation
|
| - void OnPipesAvailable(mojom::ChannelAssociatedPtrInfo send_channel,
|
| - mojom::ChannelAssociatedRequest receive_channel,
|
| - int32_t peer_pid) override;
|
| - void OnBootstrapError() override;
|
| -
|
| - // MessagePipeReader::Delegate
|
| - void OnMessageReceived(const Message& message) override;
|
| - void OnPipeError() override;
|
| -
|
| - private:
|
| - ChannelMojo(mojo::ScopedMessagePipeHandle handle,
|
| - Mode mode,
|
| - Listener* listener);
|
| -
|
| - void InitMessageReader(mojom::ChannelAssociatedPtrInfo sender,
|
| - mojom::ChannelAssociatedRequest receiver,
|
| - base::ProcessId peer_pid);
|
| -
|
| - // ChannelMojo needs to kill its MessagePipeReader in delayed manner
|
| - // because the channel wants to kill these readers during the
|
| - // notifications invoked by them.
|
| - typedef internal::MessagePipeReader::DelayedDeleter ReaderDeleter;
|
| -
|
| - // A TaskRunner which runs tasks on the ChannelMojo's owning thread.
|
| - scoped_refptr<base::TaskRunner> task_runner_;
|
| -
|
| - const mojo::MessagePipeHandle pipe_;
|
| - std::unique_ptr<MojoBootstrap> bootstrap_;
|
| - Listener* listener_;
|
| -
|
| - // Guards access to the fields below.
|
| - mutable base::Lock lock_;
|
| - std::unique_ptr<internal::MessagePipeReader, ReaderDeleter> message_reader_;
|
| - std::vector<std::unique_ptr<Message>> pending_messages_;
|
| - bool waiting_connect_;
|
| -
|
| - base::WeakPtrFactory<ChannelMojo> weak_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ChannelMojo);
|
| -};
|
| -
|
| -} // namespace IPC
|
| -
|
| -#endif // IPC_IPC_CHANNEL_MOJO_H_
|
|
|