Index: third_party/mojo/src/mojo/edk/system/ipc_support.cc |
diff --git a/third_party/mojo/src/mojo/edk/system/ipc_support.cc b/third_party/mojo/src/mojo/edk/system/ipc_support.cc |
deleted file mode 100644 |
index 26a551193c36f2ebc2a6331753a6f97d748ba76d..0000000000000000000000000000000000000000 |
--- a/third_party/mojo/src/mojo/edk/system/ipc_support.cc |
+++ /dev/null |
@@ -1,164 +0,0 @@ |
-// Copyright 2015 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. |
- |
-#include "third_party/mojo/src/mojo/edk/system/ipc_support.h" |
- |
-#include <utility> |
- |
-#include "base/logging.h" |
-#include "third_party/mojo/src/mojo/edk/embedder/master_process_delegate.h" |
-#include "third_party/mojo/src/mojo/edk/embedder/slave_process_delegate.h" |
-#include "third_party/mojo/src/mojo/edk/system/channel_manager.h" |
-#include "third_party/mojo/src/mojo/edk/system/master_connection_manager.h" |
-#include "third_party/mojo/src/mojo/edk/system/message_pipe_dispatcher.h" |
-#include "third_party/mojo/src/mojo/edk/system/slave_connection_manager.h" |
- |
-namespace mojo { |
-namespace system { |
- |
-IPCSupport::IPCSupport(embedder::PlatformSupport* platform_support, |
- embedder::ProcessType process_type, |
- embedder::ProcessDelegate* process_delegate, |
- scoped_refptr<base::TaskRunner> io_thread_task_runner, |
- embedder::ScopedPlatformHandle platform_handle) |
- : process_type_(process_type), |
- process_delegate_(process_delegate), |
- io_thread_task_runner_(std::move(io_thread_task_runner)) { |
- DCHECK(io_thread_task_runner_); |
- |
- switch (process_type_) { |
- case embedder::ProcessType::UNINITIALIZED: |
- CHECK(false); |
- break; |
- case embedder::ProcessType::NONE: |
- DCHECK(!platform_handle.is_valid()); // We wouldn't do anything with it. |
- // Nothing to do. |
- break; |
- case embedder::ProcessType::MASTER: |
- DCHECK(!platform_handle.is_valid()); // We wouldn't do anything with it. |
- connection_manager_.reset( |
- new system::MasterConnectionManager(platform_support)); |
- static_cast<system::MasterConnectionManager*>(connection_manager_.get()) |
- ->Init( |
- static_cast<embedder::MasterProcessDelegate*>(process_delegate_)); |
- break; |
- case embedder::ProcessType::SLAVE: |
- connection_manager_.reset( |
- new system::SlaveConnectionManager(platform_support)); |
- static_cast<system::SlaveConnectionManager*>(connection_manager_.get()) |
- ->Init( |
- static_cast<embedder::SlaveProcessDelegate*>(process_delegate_), |
- std::move(platform_handle)); |
- break; |
- } |
- |
- channel_manager_.reset(new ChannelManager( |
- platform_support, io_thread_task_runner_, connection_manager_.get())); |
-} |
- |
-IPCSupport::~IPCSupport() { |
- DCHECK_EQ(process_type_, embedder::ProcessType::UNINITIALIZED); |
-} |
- |
-void IPCSupport::ShutdownOnIOThread() { |
- DCHECK_NE(process_type_, embedder::ProcessType::UNINITIALIZED); |
- |
- channel_manager_->ShutdownOnIOThread(); |
- channel_manager_.reset(); |
- |
- if (connection_manager_) { |
- connection_manager_->Shutdown(); |
- connection_manager_.reset(); |
- } |
- |
- io_thread_task_runner_ = nullptr; |
- process_delegate_ = nullptr; |
- process_type_ = embedder::ProcessType::UNINITIALIZED; |
-} |
- |
-ConnectionIdentifier IPCSupport::GenerateConnectionIdentifier() { |
- return connection_manager()->GenerateConnectionIdentifier(); |
-} |
- |
-scoped_refptr<system::MessagePipeDispatcher> IPCSupport::ConnectToSlave( |
- const ConnectionIdentifier& connection_id, |
- embedder::SlaveInfo slave_info, |
- embedder::ScopedPlatformHandle platform_handle, |
- const base::Closure& callback, |
- scoped_refptr<base::TaskRunner> callback_thread_task_runner, |
- ChannelId* channel_id) { |
- DCHECK(channel_id); |
- |
- // We rely on |ChannelId| and |ProcessIdentifier| being identical types. |
- // TODO(vtl): Use std::is_same instead when we are allowed to (C++11 library). |
- static_assert(sizeof(ChannelId) == sizeof(ProcessIdentifier), |
- "ChannelId and ProcessIdentifier types don't match"); |
- |
- embedder::ScopedPlatformHandle platform_connection_handle = |
- ConnectToSlaveInternal(connection_id, slave_info, |
- std::move(platform_handle), channel_id); |
- return channel_manager()->CreateChannel( |
- *channel_id, std::move(platform_connection_handle), callback, |
- callback_thread_task_runner); |
-} |
- |
-scoped_refptr<system::MessagePipeDispatcher> IPCSupport::ConnectToMaster( |
- const ConnectionIdentifier& connection_id, |
- const base::Closure& callback, |
- scoped_refptr<base::TaskRunner> callback_thread_task_runner, |
- ChannelId* channel_id) { |
- DCHECK(channel_id); |
- |
- // TODO(vtl): Use std::is_same instead when we are allowed to (C++11 library). |
- static_assert(sizeof(ChannelId) == sizeof(ProcessIdentifier), |
- "ChannelId and ProcessIdentifier types don't match"); |
- embedder::ScopedPlatformHandle platform_connection_handle = |
- ConnectToMasterInternal(connection_id); |
- *channel_id = kMasterProcessIdentifier; |
- return channel_manager()->CreateChannel( |
- *channel_id, std::move(platform_connection_handle), callback, |
- callback_thread_task_runner); |
-} |
- |
-embedder::ScopedPlatformHandle IPCSupport::ConnectToSlaveInternal( |
- const ConnectionIdentifier& connection_id, |
- embedder::SlaveInfo slave_info, |
- embedder::ScopedPlatformHandle platform_handle, |
- ProcessIdentifier* slave_process_identifier) { |
- DCHECK(slave_process_identifier); |
- DCHECK_EQ(process_type_, embedder::ProcessType::MASTER); |
- |
- *slave_process_identifier = |
- static_cast<system::MasterConnectionManager*>(connection_manager()) |
- ->AddSlaveAndBootstrap(slave_info, std::move(platform_handle), |
- connection_id); |
- |
- system::ProcessIdentifier peer_id = system::kInvalidProcessIdentifier; |
- bool is_first; |
- embedder::ScopedPlatformHandle platform_connection_handle; |
- CHECK_EQ(connection_manager()->Connect(connection_id, &peer_id, &is_first, |
- &platform_connection_handle), |
- ConnectionManager::Result::SUCCESS_CONNECT_NEW_CONNECTION); |
- DCHECK_EQ(peer_id, *slave_process_identifier); |
- DCHECK(platform_connection_handle.is_valid()); |
- return platform_connection_handle; |
-} |
- |
-embedder::ScopedPlatformHandle IPCSupport::ConnectToMasterInternal( |
- const ConnectionIdentifier& connection_id) { |
- DCHECK_EQ(process_type_, embedder::ProcessType::SLAVE); |
- |
- system::ProcessIdentifier peer_id = system::kInvalidProcessIdentifier; |
- bool is_first; |
- embedder::ScopedPlatformHandle platform_connection_handle; |
- CHECK_EQ(connection_manager()->Connect(connection_id, &peer_id, &is_first, |
- &platform_connection_handle), |
- ConnectionManager::Result::SUCCESS_CONNECT_NEW_CONNECTION); |
- DCHECK_EQ(peer_id, system::kMasterProcessIdentifier); |
- DCHECK(platform_connection_handle.is_valid()); |
- return platform_connection_handle; |
-} |
- |
-} // namespace system |
-} // namespace mojo |