Index: blimp/net/thread_pipe_manager.cc |
diff --git a/blimp/net/thread_pipe_manager.cc b/blimp/net/thread_pipe_manager.cc |
deleted file mode 100644 |
index 60fccf7c4b298358e0925bafc04eb42f0e58cdd6..0000000000000000000000000000000000000000 |
--- a/blimp/net/thread_pipe_manager.cc |
+++ /dev/null |
@@ -1,123 +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. |
- |
-#include "blimp/net/thread_pipe_manager.h" |
- |
-#include "base/location.h" |
-#include "base/sequenced_task_runner.h" |
-#include "base/threading/sequenced_task_runner_handle.h" |
-#include "blimp/net/blimp_message_processor.h" |
-#include "blimp/net/blimp_message_thread_pipe.h" |
-#include "blimp/net/browser_connection_handler.h" |
- |
-namespace blimp { |
- |
-// ConnectionThreadPipeManager manages ThreadPipeManager resources used on the |
-// connection thread. It is created on the caller thread, and then has pipe |
-// and proxy pairs passed to it on the connection thread, to register with |
-// the supplied |connection_handler|. It is finally deleted on the connection |
-// thread. |
-class ConnectionThreadPipeManager { |
- public: |
- explicit ConnectionThreadPipeManager( |
- BrowserConnectionHandler* connection_handler); |
- virtual ~ConnectionThreadPipeManager(); |
- |
- // Connects message pipes between the specified feature and the network layer, |
- // using |incoming_proxy| as the incoming message processor, and connecting |
- // |outgoing_pipe| to the actual message sender. |
- void RegisterFeature(BlimpMessage::FeatureCase feature_case, |
- std::unique_ptr<BlimpMessageThreadPipe> outgoing_pipe, |
- std::unique_ptr<BlimpMessageProcessor> incoming_proxy); |
- |
- private: |
- BrowserConnectionHandler* connection_handler_; |
- |
- // Container for the feature-specific MessageProcessors. |
- // connection-side proxy for sending messages to caller thread. |
- std::vector<std::unique_ptr<BlimpMessageProcessor>> incoming_proxies_; |
- |
- // Containers for the MessageProcessors used to write feature-specific |
- // messages to the network, and the thread-pipe endpoints through which |
- // they are used from the caller thread. |
- std::vector<std::unique_ptr<BlimpMessageProcessor>> |
- outgoing_message_processors_; |
- std::vector<std::unique_ptr<BlimpMessageThreadPipe>> outgoing_pipes_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ConnectionThreadPipeManager); |
-}; |
- |
-ConnectionThreadPipeManager::ConnectionThreadPipeManager( |
- BrowserConnectionHandler* connection_handler) |
- : connection_handler_(connection_handler) { |
- DCHECK(connection_handler_); |
-} |
- |
-ConnectionThreadPipeManager::~ConnectionThreadPipeManager() {} |
- |
-void ConnectionThreadPipeManager::RegisterFeature( |
- BlimpMessage::FeatureCase feature_case, |
- std::unique_ptr<BlimpMessageThreadPipe> outgoing_pipe, |
- std::unique_ptr<BlimpMessageProcessor> incoming_proxy) { |
- // Registers |incoming_proxy| as the message processor for incoming |
- // messages with |feature_case|. Sets the returned outgoing message processor |
- // as the target of the |outgoing_pipe|. |
- std::unique_ptr<BlimpMessageProcessor> outgoing_message_processor = |
- connection_handler_->RegisterFeature(feature_case, incoming_proxy.get()); |
- outgoing_pipe->set_target_processor(outgoing_message_processor.get()); |
- |
- // This object manages the lifetimes of the pipe, proxy and target processor. |
- incoming_proxies_.push_back(std::move(incoming_proxy)); |
- outgoing_pipes_.push_back(std::move(outgoing_pipe)); |
- outgoing_message_processors_.push_back(std::move(outgoing_message_processor)); |
-} |
- |
-ThreadPipeManager::ThreadPipeManager( |
- const scoped_refptr<base::SequencedTaskRunner>& connection_task_runner, |
- BrowserConnectionHandler* connection_handler) |
- : connection_task_runner_(connection_task_runner), |
- connection_pipe_manager_( |
- new ConnectionThreadPipeManager(connection_handler)) {} |
- |
-ThreadPipeManager::~ThreadPipeManager() { |
- DCHECK(sequence_checker_.CalledOnValidSequence()); |
- |
- connection_task_runner_->DeleteSoon(FROM_HERE, |
- connection_pipe_manager_.release()); |
-} |
- |
-std::unique_ptr<BlimpMessageProcessor> ThreadPipeManager::RegisterFeature( |
- BlimpMessage::FeatureCase feature_case, |
- BlimpMessageProcessor* incoming_processor) { |
- DCHECK(sequence_checker_.CalledOnValidSequence()); |
- |
- // Creates an outgoing pipe and a proxy for forwarding messages |
- // from features on the caller thread to network components on the |
- // connection thread. |
- std::unique_ptr<BlimpMessageThreadPipe> outgoing_pipe( |
- new BlimpMessageThreadPipe(connection_task_runner_)); |
- std::unique_ptr<BlimpMessageProcessor> outgoing_proxy = |
- outgoing_pipe->CreateProxy(); |
- |
- // Creates an incoming pipe and a proxy for receiving messages |
- // from network components on the connection thread. |
- std::unique_ptr<BlimpMessageThreadPipe> incoming_pipe( |
- new BlimpMessageThreadPipe(base::SequencedTaskRunnerHandle::Get())); |
- incoming_pipe->set_target_processor(incoming_processor); |
- std::unique_ptr<BlimpMessageProcessor> incoming_proxy = |
- incoming_pipe->CreateProxy(); |
- |
- // Finishes registration on connection thread. |
- connection_task_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&ConnectionThreadPipeManager::RegisterFeature, |
- base::Unretained(connection_pipe_manager_.get()), feature_case, |
- base::Passed(std::move(outgoing_pipe)), |
- base::Passed(std::move(incoming_proxy)))); |
- |
- incoming_pipes_.push_back(std::move(incoming_pipe)); |
- return outgoing_proxy; |
-} |
- |
-} // namespace blimp |