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

Side by Side Diff: chromeos/dbus/dbus_client_bundle.h

Issue 2338063002: chromeos: Refactor D-Bus client type enum and stub vs. fake naming (Closed)
Patch Set: review comments Created 4 years, 3 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
« no previous file with comments | « chromeos/dbus/dbus_client.h ('k') | chromeos/dbus/dbus_client_bundle.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_ 5 #ifndef CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_
6 #define CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_ 6 #define CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 10
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "chromeos/chromeos_export.h" 12 #include "chromeos/chromeos_export.h"
13 #include "chromeos/dbus/dbus_client_types.h"
13 14
14 namespace chromeos { 15 namespace chromeos {
15 16
16 class ArcObbMounterClient; 17 class ArcObbMounterClient;
17 class CrasAudioClient; 18 class CrasAudioClient;
18 class CrosDisksClient; 19 class CrosDisksClient;
19 class CryptohomeClient; 20 class CryptohomeClient;
20 class DebugDaemonClient; 21 class DebugDaemonClient;
21 class EasyUnlockClient; 22 class EasyUnlockClient;
22 class GsmSMSClient; 23 class GsmSMSClient;
(...skipping 11 matching lines...) Expand all
34 class ShillServiceClient; 35 class ShillServiceClient;
35 class ShillThirdPartyVpnDriverClient; 36 class ShillThirdPartyVpnDriverClient;
36 class SystemClockClient; 37 class SystemClockClient;
37 class UpdateEngineClient; 38 class UpdateEngineClient;
38 39
39 // The bundle of all D-Bus clients used in DBusThreadManager. The bundle 40 // The bundle of all D-Bus clients used in DBusThreadManager. The bundle
40 // is used to delete them at once in the right order before shutting down the 41 // is used to delete them at once in the right order before shutting down the
41 // system bus. See also the comment in the destructor of DBusThreadManager. 42 // system bus. See also the comment in the destructor of DBusThreadManager.
42 class CHROMEOS_EXPORT DBusClientBundle { 43 class CHROMEOS_EXPORT DBusClientBundle {
43 public: 44 public:
44 typedef int DBusClientTypeMask; 45 // Creates real implementations for |real_client_mask| and fakes for all
45 46 // others. Fakes are used when running on Linux desktop and in tests.
46 // TODO(zelidrag): We might want to collapse few more of these subsystems if 47 explicit DBusClientBundle(DBusClientTypeMask real_client_mask);
47 // their dbus interfaced correspond to the same daemon.
48 enum DBusClientType {
49 NO_CLIENT = 0,
50 BLUETOOTH = 1 << 0,
51 CRAS = 1 << 1,
52 CROS_DISKS = 1 << 2,
53 CRYPTOHOME = 1 << 3,
54 DEBUG_DAEMON = 1 << 4,
55 EASY_UNLOCK = 1 << 5,
56 LORGNETTE_MANAGER = 1 << 6,
57 SHILL = 1 << 7,
58 GSM_SMS = 1 << 8,
59 IMAGE_BURNER = 1 << 9,
60 MODEM_MESSAGING = 1 << 10,
61 PERMISSION_BROKER = 1 << 11,
62 POWER_MANAGER = 1 << 12,
63 SESSION_MANAGER = 1 << 13,
64 SMS = 1 << 14,
65 SYSTEM_CLOCK = 1 << 15,
66 UPDATE_ENGINE = 1 << 16,
67 ARC_OBB_MOUNTER = 1 << 17,
68 };
69
70 explicit DBusClientBundle(DBusClientTypeMask unstub_client_mask);
71 ~DBusClientBundle(); 48 ~DBusClientBundle();
72 49
73 // Returns true if |client| is stubbed. 50 // Returns true if |client| has a real (non-fake) client implementation.
74 bool IsUsingStub(DBusClientType client); 51 bool IsUsingReal(DBusClientType client) const;
75 52
76 // Returns true if any real DBusClient is used. 53 // Returns true if any real DBusClient is used.
77 bool IsUsingAnyRealClient(); 54 bool IsUsingAnyRealClient() const;
78 55
79 // Initialize proper runtime environment for its dbus clients. 56 // Initialize proper runtime environment for its dbus clients.
80 void SetupDefaultEnvironment(); 57 void SetupDefaultEnvironment();
81 58
82 // Parses command line param values for dbus subsystem that should be
83 // un-stubbed.
84 static DBusClientTypeMask ParseUnstubList(const std::string& unstub_list);
85
86 ArcObbMounterClient* arc_obb_mounter_client() { 59 ArcObbMounterClient* arc_obb_mounter_client() {
87 return arc_obb_mounter_client_.get(); 60 return arc_obb_mounter_client_.get();
88 } 61 }
89 62
90 CrasAudioClient* cras_audio_client() { 63 CrasAudioClient* cras_audio_client() {
91 return cras_audio_client_.get(); 64 return cras_audio_client_.get();
92 } 65 }
93 66
94 CrosDisksClient* cros_disks_client() { 67 CrosDisksClient* cros_disks_client() {
95 return cros_disks_client_.get(); 68 return cros_disks_client_.get();
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 return sms_client_.get(); 140 return sms_client_.get();
168 } 141 }
169 142
170 UpdateEngineClient* update_engine_client() { 143 UpdateEngineClient* update_engine_client() {
171 return update_engine_client_.get(); 144 return update_engine_client_.get();
172 } 145 }
173 146
174 private: 147 private:
175 friend class DBusThreadManagerSetter; 148 friend class DBusThreadManagerSetter;
176 149
177 // Bitmask that defines which dbus clients are not stubbed out. Bitmap flags 150 // Bitmask for clients with real implementations.
178 // are defined within DBusClientType enum. 151 const DBusClientTypeMask real_client_mask_;
179 DBusClientTypeMask unstub_client_mask_;
180 152
181 std::unique_ptr<ArcObbMounterClient> arc_obb_mounter_client_; 153 std::unique_ptr<ArcObbMounterClient> arc_obb_mounter_client_;
182 std::unique_ptr<CrasAudioClient> cras_audio_client_; 154 std::unique_ptr<CrasAudioClient> cras_audio_client_;
183 std::unique_ptr<CrosDisksClient> cros_disks_client_; 155 std::unique_ptr<CrosDisksClient> cros_disks_client_;
184 std::unique_ptr<CryptohomeClient> cryptohome_client_; 156 std::unique_ptr<CryptohomeClient> cryptohome_client_;
185 std::unique_ptr<DebugDaemonClient> debug_daemon_client_; 157 std::unique_ptr<DebugDaemonClient> debug_daemon_client_;
186 std::unique_ptr<EasyUnlockClient> easy_unlock_client_; 158 std::unique_ptr<EasyUnlockClient> easy_unlock_client_;
187 std::unique_ptr<LorgnetteManagerClient> lorgnette_manager_client_; 159 std::unique_ptr<LorgnetteManagerClient> lorgnette_manager_client_;
188 std::unique_ptr<ShillDeviceClient> shill_device_client_; 160 std::unique_ptr<ShillDeviceClient> shill_device_client_;
189 std::unique_ptr<ShillIPConfigClient> shill_ipconfig_client_; 161 std::unique_ptr<ShillIPConfigClient> shill_ipconfig_client_;
(...skipping 11 matching lines...) Expand all
201 std::unique_ptr<SessionManagerClient> session_manager_client_; 173 std::unique_ptr<SessionManagerClient> session_manager_client_;
202 std::unique_ptr<SMSClient> sms_client_; 174 std::unique_ptr<SMSClient> sms_client_;
203 std::unique_ptr<UpdateEngineClient> update_engine_client_; 175 std::unique_ptr<UpdateEngineClient> update_engine_client_;
204 176
205 DISALLOW_COPY_AND_ASSIGN(DBusClientBundle); 177 DISALLOW_COPY_AND_ASSIGN(DBusClientBundle);
206 }; 178 };
207 179
208 } // namespace chromeos 180 } // namespace chromeos
209 181
210 #endif // CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_ 182 #endif // CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_
OLDNEW
« no previous file with comments | « chromeos/dbus/dbus_client.h ('k') | chromeos/dbus/dbus_client_bundle.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698