Commit cb6c60f7 authored by Kyle Horimoto's avatar Kyle Horimoto Committed by Commit Bot

[CrOS Tether] Add a factory to CrashRecoveryManager.

This will be used to aid testing in a follow-up CL.

Bug: 761532, 672263
Change-Id: Icd54139447b13f6a8ec1feb6f4345701ff4e115d
Reviewed-on: https://chromium-review.googlesource.com/724080Reviewed-by: default avatarRyan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509565}
parent 2f8faea9
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "chromeos/components/tether/crash_recovery_manager.h" #include "chromeos/components/tether/crash_recovery_manager.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/memory/ptr_util.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "chromeos/components/tether/host_scan_cache.h" #include "chromeos/components/tether/host_scan_cache.h"
#include "chromeos/network/network_state.h" #include "chromeos/network/network_state.h"
...@@ -16,6 +17,37 @@ namespace chromeos { ...@@ -16,6 +17,37 @@ namespace chromeos {
namespace tether { namespace tether {
// static
CrashRecoveryManager::Factory*
CrashRecoveryManager::Factory::factory_instance_ = nullptr;
// static
std::unique_ptr<CrashRecoveryManager>
CrashRecoveryManager::Factory::NewInstance(
NetworkStateHandler* network_state_handler,
ActiveHost* active_host,
HostScanCache* host_scan_cache) {
if (!factory_instance_)
factory_instance_ = new Factory();
return factory_instance_->BuildInstance(network_state_handler, active_host,
host_scan_cache);
}
// static
void CrashRecoveryManager::Factory::SetInstanceForTesting(Factory* factory) {
factory_instance_ = factory;
}
std::unique_ptr<CrashRecoveryManager>
CrashRecoveryManager::Factory::BuildInstance(
NetworkStateHandler* network_state_handler,
ActiveHost* active_host,
HostScanCache* host_scan_cache) {
return base::MakeUnique<CrashRecoveryManager>(network_state_handler,
active_host, host_scan_cache);
}
CrashRecoveryManager::CrashRecoveryManager( CrashRecoveryManager::CrashRecoveryManager(
NetworkStateHandler* network_state_handler, NetworkStateHandler* network_state_handler,
ActiveHost* active_host, ActiveHost* active_host,
......
...@@ -22,6 +22,25 @@ class HostScanCache; ...@@ -22,6 +22,25 @@ class HostScanCache;
// Restores Tether state after a browser crash. // Restores Tether state after a browser crash.
class CrashRecoveryManager { class CrashRecoveryManager {
public: public:
class Factory {
public:
static std::unique_ptr<CrashRecoveryManager> NewInstance(
NetworkStateHandler* network_state_handler,
ActiveHost* active_host,
HostScanCache* host_scan_cache);
static void SetInstanceForTesting(Factory* factory);
protected:
virtual std::unique_ptr<CrashRecoveryManager> BuildInstance(
NetworkStateHandler* network_state_handler,
ActiveHost* active_host,
HostScanCache* host_scan_cache);
private:
static Factory* factory_instance_;
};
CrashRecoveryManager(NetworkStateHandler* network_state_handler, CrashRecoveryManager(NetworkStateHandler* network_state_handler,
ActiveHost* active_host, ActiveHost* active_host,
HostScanCache* host_scan_cache); HostScanCache* host_scan_cache);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment