Index: mojo/service_manager/background_service_loader.cc |
diff --git a/mojo/service_manager/background_service_loader.cc b/mojo/service_manager/background_service_loader.cc |
deleted file mode 100644 |
index 8c60a2cc00696df313e989933dcf63d6875d480f..0000000000000000000000000000000000000000 |
--- a/mojo/service_manager/background_service_loader.cc |
+++ /dev/null |
@@ -1,105 +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. |
- |
-#include "mojo/service_manager/background_service_loader.h" |
- |
-#include "base/bind.h" |
-#include "mojo/service_manager/service_manager.h" |
- |
-namespace mojo { |
- |
-class BackgroundServiceLoader::BackgroundLoader { |
- public: |
- explicit BackgroundLoader(ServiceLoader* loader) : loader_(loader) {} |
- ~BackgroundLoader() {} |
- |
- void LoadService(ServiceManager* manager, |
- const GURL& url, |
- ScopedMessagePipeHandle shell_handle) { |
- loader_->LoadService(manager, url, shell_handle.Pass()); |
- } |
- |
- void OnServiceError(ServiceManager* manager, const GURL& url) { |
- loader_->OnServiceError(manager, url); |
- } |
- |
- private: |
- base::MessageLoop::Type message_loop_type_; |
- ServiceLoader* loader_; // Owned by BackgroundServiceLoader |
- |
- DISALLOW_COPY_AND_ASSIGN(BackgroundLoader); |
-}; |
- |
-BackgroundServiceLoader::BackgroundServiceLoader( |
- scoped_ptr<ServiceLoader> real_loader, |
- const char* thread_name, |
- base::MessageLoop::Type message_loop_type) |
- : loader_(real_loader.Pass()), |
- thread_(thread_name), |
- message_loop_type_(message_loop_type), |
- background_loader_(NULL) { |
-} |
- |
-BackgroundServiceLoader::~BackgroundServiceLoader() { |
- if (thread_.IsRunning()) { |
- thread_.message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&BackgroundServiceLoader::ShutdownOnBackgroundThread, |
- base::Unretained(this))); |
- } |
- thread_.Stop(); |
-} |
- |
-void BackgroundServiceLoader::LoadService( |
- ServiceManager* manager, |
- const GURL& url, |
- ScopedMessagePipeHandle shell_handle) { |
- const int kDefaultStackSize = 0; |
- if (!thread_.IsRunning()) { |
- thread_.StartWithOptions( |
- base::Thread::Options(message_loop_type_, kDefaultStackSize)); |
- } |
- thread_.message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&BackgroundServiceLoader::LoadServiceOnBackgroundThread, |
- base::Unretained(this), manager, url, |
- base::Owned( |
- new ScopedMessagePipeHandle(shell_handle.Pass())))); |
-} |
- |
-void BackgroundServiceLoader::OnServiceError(ServiceManager* manager, |
- const GURL& url) { |
- if (!thread_.IsRunning()) |
- thread_.Start(); |
- thread_.message_loop()->PostTask( |
- FROM_HERE, |
- base::Bind(&BackgroundServiceLoader::OnServiceErrorOnBackgroundThread, |
- base::Unretained(this), manager, url)); |
-} |
- |
-void BackgroundServiceLoader::LoadServiceOnBackgroundThread( |
- ServiceManager* manager, |
- const GURL& url, |
- ScopedMessagePipeHandle* shell_handle) { |
- if (!background_loader_) |
- background_loader_ = new BackgroundLoader(loader_.get()); |
- background_loader_->LoadService( |
- manager, url, shell_handle->Pass()); |
-} |
- |
-void BackgroundServiceLoader::OnServiceErrorOnBackgroundThread( |
- ServiceManager* manager, |
- const GURL& url) { |
- if (!background_loader_) |
- background_loader_ = new BackgroundLoader(loader_.get()); |
- background_loader_->OnServiceError(manager, url); |
-} |
- |
-void BackgroundServiceLoader::ShutdownOnBackgroundThread() { |
- delete background_loader_; |
- // Destroy |loader_| on the thread it's actually used on. |
- loader_.reset(); |
-} |
- |
-} // namespace mojo |