Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: chrome/browser/chromeos/cros/cros_library.cc

Issue 1142005: Mocks for all libcros elements (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/cros/cros_library.h" 5 #include "chrome/browser/chromeos/cros/cros_library.h"
6 6
7 #include <dlfcn.h> 7 #include "chrome/browser/chromeos/cros/cros_library_loader.h"
8 8 #include "chrome/browser/chromeos/cros/cryptohome_library.h"
9 #include "base/file_path.h" 9 #include "chrome/browser/chromeos/cros/language_library.h"
10 #include "base/logging.h" 10 #include "chrome/browser/chromeos/cros/login_library.h"
11 #include "base/path_service.h" 11 #include "chrome/browser/chromeos/cros/mount_library.h"
12 #include "chrome/common/chrome_paths.h" 12 #include "chrome/browser/chromeos/cros/network_library.h"
13 #include "third_party/cros/chromeos_cros_api.h" 13 #include "chrome/browser/chromeos/cros/power_library.h"
14 #include "chrome/browser/chromeos/cros/synaptics_library.h"
14 15
15 namespace chromeos { 16 namespace chromeos {
16 17
17 // static 18 CrosLibrary::CrosLibrary() : library_loader_(NULL),
18 bool CrosLibrary::loaded_ = false; 19 crypto_lib_(NULL),
20 language_lib_(NULL),
21 login_lib_(NULL),
22 mount_lib_(NULL),
23 network_lib_(NULL),
24 power_lib_(NULL),
25 synaptics_lib_(NULL),
26 loaded_(false),
27 load_error_(false),
28 test_api_(NULL) {
29
30 }
31
32 CrosLibrary::~CrosLibrary() {
33 if (library_loader_)
34 delete library_loader_;
35 if (crypto_lib_)
36 delete crypto_lib_;
37 if (language_lib_)
38 delete language_lib_;
39 if (login_lib_)
40 delete login_lib_;
41 if (mount_lib_)
42 delete mount_lib_;
43 if (network_lib_)
44 delete network_lib_;
45 if (power_lib_)
46 delete power_lib_;
47 if (synaptics_lib_)
48 delete synaptics_lib_;
49 if (test_api_)
50 delete test_api_;
51 }
19 52
20 // static 53 // static
21 bool CrosLibrary::load_error_ = false; 54 CrosLibrary* CrosLibrary::Get() {
55 return Singleton<CrosLibrary>::get();
56 }
22 57
23 // static 58 CryptohomeLibrary* CrosLibrary::GetCryptohomeLibrary() {
24 std::string CrosLibrary::load_error_string_; 59 if (!crypto_lib_)
60 crypto_lib_ = new CryptohomeLibraryImpl();
61 return crypto_lib_;
62 }
25 63
26 // static 64 LanguageLibrary* CrosLibrary::GetLanguageLibrary() {
65 if (!language_lib_)
66 language_lib_ = new LanguageLibraryImpl();
67 return language_lib_;
68 }
69
70 LoginLibrary* CrosLibrary::GetLoginLibrary() {
71 if (!login_lib_)
72 login_lib_ = new LoginLibraryImpl();
73 return login_lib_;
74 }
75
76 MountLibrary* CrosLibrary::GetMountLibrary() {
77 if (!mount_lib_)
78 mount_lib_ = new MountLibraryImpl();
79 return mount_lib_;
80 }
81
82 NetworkLibrary* CrosLibrary::GetNetworkLibrary() {
83 if (!network_lib_)
84 network_lib_ = new NetworkLibraryImpl();
85 return network_lib_;
86 }
87
88 PowerLibrary* CrosLibrary::GetPowerLibrary() {
89 if (!power_lib_)
90 power_lib_ = new PowerLibraryImpl();
91 return power_lib_;
92 }
93
94 SynapticsLibrary* CrosLibrary::GetSynapticsLibrary() {
95 if (!synaptics_lib_)
96 synaptics_lib_ = new SynapticsLibraryImpl();
97 return synaptics_lib_;
98 }
99
27 bool CrosLibrary::EnsureLoaded() { 100 bool CrosLibrary::EnsureLoaded() {
28 if (!loaded_ && !load_error_) { 101 if (!loaded_ && !load_error_) {
29 FilePath path; 102 if (!library_loader_)
30 if (PathService::Get(chrome::FILE_CHROMEOS_API, &path)) 103 library_loader_ = new CrosLibraryLoader();
31 loaded_ = LoadLibcros(path.value().c_str(), load_error_string_); 104 loaded_ = library_loader_->Load(&load_error_string_);
32 105 load_error_ = !loaded_;
33 if (!loaded_) {
34 load_error_ = true;
35 LOG(ERROR) << "Problem loading chromeos shared object: "
36 << load_error_string_;
37 }
38 } 106 }
39 return loaded_; 107 return loaded_;
40 } 108 }
41 109
42 } // namespace chromeos 110 CrosLibrary::TestApi* CrosLibrary::GetTestApi() {
111 if (!test_api_)
112 test_api_ = new TestApi(this);
113 return test_api_;
114 }
115
116 void CrosLibrary::TestApi::SetLibraryLoader(LibraryLoader* loader) {
117 if (library_->library_loader_)
118 delete library_->library_loader_;
119 library_->library_loader_ = loader;
120 }
121
122 void CrosLibrary::TestApi::SetCryptohomeLibrary(CryptohomeLibrary* library) {
123 if (library_->crypto_lib_)
124 delete library_->crypto_lib_;
125 library_->crypto_lib_ = library;
126 }
127
128 void CrosLibrary::TestApi::SetLanguageLibrary(LanguageLibrary* library) {
129 if (library_->language_lib_)
130 delete library_->language_lib_;
131 library_->language_lib_ = library;
132 }
133
134 void CrosLibrary::TestApi::SetLoginLibrary(LoginLibrary* library) {
135 if (library_->login_lib_)
136 delete library_->login_lib_;
137 library_->login_lib_ = library;
138 }
139
140 void CrosLibrary::TestApi::SetMountLibrary(MountLibrary* library) {
141 if (library_->mount_lib_)
142 delete library_->mount_lib_;
143 library_->mount_lib_ = library;
144 }
145
146 void CrosLibrary::TestApi::SetNetworkLibrary(NetworkLibrary* library) {
147 if (library_->network_lib_)
148 delete library_->network_lib_;
149 library_->network_lib_ = library;
150 }
151
152 void CrosLibrary::TestApi::SetPowerLibrary(PowerLibrary* library) {
153 if (library_->power_lib_)
154 delete library_->power_lib_;
155 library_->power_lib_ = library;
156 }
157
158 void CrosLibrary::TestApi::SetSynapticsLibrary(SynapticsLibrary* library) {
159 if (library_->synaptics_lib_)
160 delete library_->synaptics_lib_;
161 library_->synaptics_lib_ = library;
162 }
163
164 } // end namespace.
165
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/cros_library.h ('k') | chrome/browser/chromeos/cros/cros_library_loader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698