| 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
|
|
|