summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/cros/cros_library.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/cros/cros_library.cc')
-rw-r--r--chrome/browser/chromeos/cros/cros_library.cc274
1 files changed, 91 insertions, 183 deletions
diff --git a/chrome/browser/chromeos/cros/cros_library.cc b/chrome/browser/chromeos/cros/cros_library.cc
index a9e469d..9065304 100644
--- a/chrome/browser/chromeos/cros/cros_library.cc
+++ b/chrome/browser/chromeos/cros/cros_library.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/chromeos/cros/cros_library.h"
+#include "chrome/browser/chromeos/cros/burn_library.h"
#include "chrome/browser/chromeos/cros/cros_library_loader.h"
#include "chrome/browser/chromeos/cros/cryptohome_library.h"
#include "chrome/browser/chromeos/cros/input_method_library.h"
@@ -14,77 +15,24 @@
#include "chrome/browser/chromeos/cros/power_library.h"
#include "chrome/browser/chromeos/cros/screen_lock_library.h"
#include "chrome/browser/chromeos/cros/speech_synthesis_library.h"
-#include "chrome/browser/chromeos/cros/synaptics_library.h"
#include "chrome/browser/chromeos/cros/syslogs_library.h"
#include "chrome/browser/chromeos/cros/system_library.h"
+#include "chrome/browser/chromeos/cros/touchpad_library.h"
#include "chrome/browser/chromeos/cros/update_library.h"
namespace chromeos {
CrosLibrary::CrosLibrary() : library_loader_(NULL),
- crypto_lib_(NULL),
- keyboard_lib_(NULL),
- input_method_lib_(NULL),
- login_lib_(NULL),
- mount_lib_(NULL),
- network_lib_(NULL),
- power_lib_(NULL),
- screen_lock_lib_(NULL),
- speech_synthesis_lib_(NULL),
- synaptics_lib_(NULL),
- syslogs_lib_(NULL),
- system_lib_(NULL),
- update_lib_(NULL),
- own_library_loader_(true),
- own_cryptohome_lib_(true),
- own_keyboard_lib_(true),
- own_input_method_lib_(true),
- own_login_lib_(true),
- own_mount_lib_(true),
- own_network_lib_(true),
- own_power_lib_(true),
- own_screen_lock_lib_(true),
- own_speech_synthesis_lib_(true),
- own_synaptics_lib_(true),
- own_syslogs_lib_(true),
- own_system_lib_(true),
- own_update_lib_(true),
+ own_library_loader_(false),
+ use_stub_impl_(false),
loaded_(false),
load_error_(false),
test_api_(NULL) {
-
}
CrosLibrary::~CrosLibrary() {
if (own_library_loader_)
delete library_loader_;
- if (own_cryptohome_lib_)
- delete crypto_lib_;
- if (own_keyboard_lib_)
- delete keyboard_lib_;
- if (own_input_method_lib_)
- delete input_method_lib_;
- if (own_login_lib_)
- delete login_lib_;
- if (own_mount_lib_)
- delete mount_lib_;
- if (own_network_lib_)
- delete network_lib_;
- if (own_power_lib_)
- delete power_lib_;
- if (own_screen_lock_lib_)
- delete screen_lock_lib_;
- if (own_speech_synthesis_lib_)
- delete speech_synthesis_lib_;
- if (own_synaptics_lib_)
- delete synaptics_lib_;
- if (own_syslogs_lib_)
- delete syslogs_lib_;
- if (own_system_lib_)
- delete system_lib_;
- if (own_update_lib_)
- delete update_lib_;
- delete test_api_;
}
// static
@@ -92,88 +40,71 @@ CrosLibrary* CrosLibrary::Get() {
return Singleton<CrosLibrary>::get();
}
+BurnLibrary* CrosLibrary::GetBurnLibrary() {
+ return burn_lib_.GetDefaultImpl(use_stub_impl_);
+}
+
CryptohomeLibrary* CrosLibrary::GetCryptohomeLibrary() {
- if (!crypto_lib_)
- crypto_lib_ = new CryptohomeLibraryImpl();
- return crypto_lib_;
+ return crypto_lib_.GetDefaultImpl(use_stub_impl_);
}
KeyboardLibrary* CrosLibrary::GetKeyboardLibrary() {
- if (!keyboard_lib_)
- keyboard_lib_ = new KeyboardLibraryImpl();
- return keyboard_lib_;
+ return keyboard_lib_.GetDefaultImpl(use_stub_impl_);
}
InputMethodLibrary* CrosLibrary::GetInputMethodLibrary() {
- if (!input_method_lib_)
- input_method_lib_ = new InputMethodLibraryImpl();
- return input_method_lib_;
+ return input_method_lib_.GetDefaultImpl(use_stub_impl_);
}
LoginLibrary* CrosLibrary::GetLoginLibrary() {
- if (!login_lib_)
- login_lib_ = new LoginLibraryImpl();
- return login_lib_;
+ return login_lib_.GetDefaultImpl(use_stub_impl_);
}
MountLibrary* CrosLibrary::GetMountLibrary() {
- if (!mount_lib_)
- mount_lib_ = new MountLibraryImpl();
- return mount_lib_;
+ return mount_lib_.GetDefaultImpl(use_stub_impl_);
}
NetworkLibrary* CrosLibrary::GetNetworkLibrary() {
- if (!network_lib_)
- network_lib_ = new NetworkLibraryImpl();
- return network_lib_;
+ return network_lib_.GetDefaultImpl(use_stub_impl_);
}
PowerLibrary* CrosLibrary::GetPowerLibrary() {
- if (!power_lib_)
- power_lib_ = new PowerLibraryImpl();
- return power_lib_;
+ return power_lib_.GetDefaultImpl(use_stub_impl_);
}
ScreenLockLibrary* CrosLibrary::GetScreenLockLibrary() {
- if (!screen_lock_lib_)
- screen_lock_lib_ = new ScreenLockLibraryImpl();
- return screen_lock_lib_;
+ return screen_lock_lib_.GetDefaultImpl(use_stub_impl_);
}
SpeechSynthesisLibrary* CrosLibrary::GetSpeechSynthesisLibrary() {
- if (!speech_synthesis_lib_)
- speech_synthesis_lib_ = new SpeechSynthesisLibraryImpl();
- return speech_synthesis_lib_;
-}
-
-SynapticsLibrary* CrosLibrary::GetSynapticsLibrary() {
- if (!synaptics_lib_)
- synaptics_lib_ = new SynapticsLibraryImpl();
- return synaptics_lib_;
+ return speech_synthesis_lib_.GetDefaultImpl(use_stub_impl_);
}
SyslogsLibrary* CrosLibrary::GetSyslogsLibrary() {
- if (!syslogs_lib_)
- syslogs_lib_ = new SyslogsLibraryImpl();
- return syslogs_lib_;
+ return syslogs_lib_.GetDefaultImpl(use_stub_impl_);
}
SystemLibrary* CrosLibrary::GetSystemLibrary() {
- if (!system_lib_)
- system_lib_ = new SystemLibraryImpl();
- return system_lib_;
+ return system_lib_.GetDefaultImpl(use_stub_impl_);
+}
+
+TouchpadLibrary* CrosLibrary::GetTouchpadLibrary() {
+ return touchpad_lib_.GetDefaultImpl(use_stub_impl_);
}
UpdateLibrary* CrosLibrary::GetUpdateLibrary() {
- if (!update_lib_)
- update_lib_ = new UpdateLibraryImpl();
- return update_lib_;
+ return update_lib_.GetDefaultImpl(use_stub_impl_);
}
bool CrosLibrary::EnsureLoaded() {
+ if (use_stub_impl_)
+ return true;
+
if (!loaded_ && !load_error_) {
- if (!library_loader_)
+ if (!library_loader_) {
library_loader_ = new CrosLibraryLoader();
+ own_library_loader_ = true;
+ }
loaded_ = library_loader_->Load(&load_error_string_);
load_error_ = !loaded_;
}
@@ -181,9 +112,17 @@ bool CrosLibrary::EnsureLoaded() {
}
CrosLibrary::TestApi* CrosLibrary::GetTestApi() {
- if (!test_api_)
- test_api_ = new TestApi(this);
- return test_api_;
+ if (!test_api_.get())
+ test_api_.reset(new TestApi(this));
+ return test_api_.get();
+}
+
+void CrosLibrary::TestApi::SetUseStubImpl() {
+ library_->use_stub_impl_ = true;
+}
+
+void CrosLibrary::TestApi::ResetUseStubImpl() {
+ library_->use_stub_impl_ = false;
}
void CrosLibrary::TestApi::SetLibraryLoader(LibraryLoader* loader, bool own) {
@@ -199,105 +138,74 @@ void CrosLibrary::TestApi::SetLibraryLoader(LibraryLoader* loader, bool own) {
library_->load_error_ = false;
}
-void CrosLibrary::TestApi::SetCryptohomeLibrary(CryptohomeLibrary* library,
- bool own) {
- if (library_->own_cryptohome_lib_)
- delete library_->crypto_lib_;
- library_->own_cryptohome_lib_ = own;
- library_->crypto_lib_ = library;
+void CrosLibrary::TestApi::SetBurnLibrary(
+ BurnLibrary* library, bool own) {
+ library_->burn_lib_.SetImpl(library, own);
+}
+
+void CrosLibrary::TestApi::SetCryptohomeLibrary(
+ CryptohomeLibrary* library, bool own) {
+ library_->crypto_lib_.SetImpl(library, own);
}
-void CrosLibrary::TestApi::SetKeyboardLibrary(KeyboardLibrary* library,
- bool own) {
- if (library_->own_keyboard_lib_)
- delete library_->keyboard_lib_;
- library_->own_keyboard_lib_ = own;
- library_->keyboard_lib_ = library;
+void CrosLibrary::TestApi::SetKeyboardLibrary(
+ KeyboardLibrary* library, bool own) {
+ library_->keyboard_lib_.SetImpl(library, own);
}
-void CrosLibrary::TestApi::SetInputMethodLibrary(InputMethodLibrary* library,
- bool own) {
- if (library_->own_input_method_lib_)
- delete library_->input_method_lib_;
- library_->own_input_method_lib_ = own;
- library_->input_method_lib_ = library;
+void CrosLibrary::TestApi::SetInputMethodLibrary(
+ InputMethodLibrary* library, bool own) {
+ library_->input_method_lib_.SetImpl(library, own);
}
-void CrosLibrary::TestApi::SetLoginLibrary(LoginLibrary* library, bool own) {
- if (library_->own_login_lib_)
- delete library_->login_lib_;
- library_->own_login_lib_ = own;
- library_->login_lib_ = library;
+void CrosLibrary::TestApi::SetLoginLibrary(
+ LoginLibrary* library, bool own) {
+ library_->login_lib_.SetImpl(library, own);
}
-void CrosLibrary::TestApi::SetMountLibrary(MountLibrary* library, bool own) {
- if (library_->own_mount_lib_)
- delete library_->mount_lib_;
- library_->own_mount_lib_ = own;
- library_->mount_lib_ = library;
+void CrosLibrary::TestApi::SetMountLibrary(
+ MountLibrary* library, bool own) {
+ library_->mount_lib_.SetImpl(library, own);
}
-void CrosLibrary::TestApi::SetNetworkLibrary(NetworkLibrary* library,
- bool own) {
- if (library_->own_network_lib_)
- delete library_->network_lib_;
- library_->own_network_lib_ = own;
- library_->network_lib_ = library;
+void CrosLibrary::TestApi::SetNetworkLibrary(
+ NetworkLibrary* library, bool own) {
+ library_->network_lib_.SetImpl(library, own);
}
-void CrosLibrary::TestApi::SetPowerLibrary(PowerLibrary* library, bool own) {
- if (library_->own_power_lib_)
- delete library_->power_lib_;
- library_->own_power_lib_ = own;
- library_->power_lib_ = library;
+void CrosLibrary::TestApi::SetPowerLibrary(
+ PowerLibrary* library, bool own) {
+ library_->power_lib_.SetImpl(library, own);
}
-void CrosLibrary::TestApi::SetScreenLockLibrary(ScreenLockLibrary* library,
- bool own) {
- if (library_->own_screen_lock_lib_)
- delete library_->screen_lock_lib_;
- library_->own_screen_lock_lib_ = own;
- library_->screen_lock_lib_ = library;
+void CrosLibrary::TestApi::SetScreenLockLibrary(
+ ScreenLockLibrary* library, bool own) {
+ library_->screen_lock_lib_.SetImpl(library, own);
}
void CrosLibrary::TestApi::SetSpeechSynthesisLibrary(
SpeechSynthesisLibrary* library, bool own) {
- if (library_->own_speech_synthesis_lib_)
- delete library_->speech_synthesis_lib_;
- library_->own_speech_synthesis_lib_ = own;
- library_->speech_synthesis_lib_ = library;
-}
-
-void CrosLibrary::TestApi::SetSynapticsLibrary(SynapticsLibrary* library,
- bool own) {
- if (library_->own_synaptics_lib_)
- delete library_->synaptics_lib_;
- library_->own_synaptics_lib_ = own;
- library_->synaptics_lib_ = library;
-}
-
-void CrosLibrary::TestApi::SetSyslogsLibrary(SyslogsLibrary* library,
- bool own) {
- if (library_->syslogs_lib_)
- delete library_->syslogs_lib_;
- library_->own_syslogs_lib_ = own;
- library_->syslogs_lib_ = library;
-}
-
-void CrosLibrary::TestApi::SetSystemLibrary(SystemLibrary* library,
- bool own) {
- if (library_->system_lib_)
- delete library_->system_lib_;
- library_->own_system_lib_ = own;
- library_->system_lib_ = library;
-}
-
-void CrosLibrary::TestApi::SetUpdateLibrary(UpdateLibrary* library,
- bool own) {
- if (library_->update_lib_)
- delete library_->update_lib_;
- library_->own_update_lib_ = own;
- library_->update_lib_ = library;
+ library_->speech_synthesis_lib_.SetImpl(library, own);
+}
+
+void CrosLibrary::TestApi::SetTouchpadLibrary(
+ TouchpadLibrary* library, bool own) {
+ library_->touchpad_lib_.SetImpl(library, own);
+}
+
+void CrosLibrary::TestApi::SetSyslogsLibrary(
+ SyslogsLibrary* library, bool own) {
+ library_->syslogs_lib_.SetImpl(library, own);
+}
+
+void CrosLibrary::TestApi::SetSystemLibrary(
+ SystemLibrary* library, bool own) {
+ library_->system_lib_.SetImpl(library, own);
+}
+
+void CrosLibrary::TestApi::SetUpdateLibrary(
+ UpdateLibrary* library, bool own) {
+ library_->update_lib_.SetImpl(library, own);
}
} // namespace chromeos