OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_THREAD_MANAGER_H_ | 5 #ifndef CHROMEOS_DBUS_DBUS_THREAD_MANAGER_H_ |
6 #define CHROMEOS_DBUS_DBUS_THREAD_MANAGER_H_ | 6 #define CHROMEOS_DBUS_DBUS_THREAD_MANAGER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 | 27 |
28 // Style Note: Clients are sorted by names. | 28 // Style Note: Clients are sorted by names. |
29 class BluetoothAdapterClient; | 29 class BluetoothAdapterClient; |
30 class BluetoothAgentManagerClient; | 30 class BluetoothAgentManagerClient; |
31 class BluetoothDeviceClient; | 31 class BluetoothDeviceClient; |
32 class BluetoothInputClient; | 32 class BluetoothInputClient; |
33 class BluetoothProfileManagerClient; | 33 class BluetoothProfileManagerClient; |
34 class CrasAudioClient; | 34 class CrasAudioClient; |
35 class CrosDisksClient; | 35 class CrosDisksClient; |
36 class CryptohomeClient; | 36 class CryptohomeClient; |
| 37 class DBusClient; |
37 class DebugDaemonClient; | 38 class DebugDaemonClient; |
38 class GsmSMSClient; | 39 class GsmSMSClient; |
39 class IBusClient; | 40 class IBusClient; |
40 class IBusEngineFactoryService; | 41 class IBusEngineFactoryService; |
41 class IBusEngineService; | 42 class IBusEngineService; |
42 class ImageBurnerClient; | 43 class ImageBurnerClient; |
43 class IntrospectableClient; | 44 class IntrospectableClient; |
44 class ModemMessagingClient; | 45 class ModemMessagingClient; |
45 class NfcAdapterClient; | 46 class NfcAdapterClient; |
46 class NfcDeviceClient; | 47 class NfcDeviceClient; |
47 class NfcManagerClient; | 48 class NfcManagerClient; |
48 class NfcTagClient; | 49 class NfcTagClient; |
49 class PermissionBrokerClient; | 50 class PermissionBrokerClient; |
50 class PowerManagerClient; | 51 class PowerManagerClient; |
51 class PowerPolicyController; | 52 class PowerPolicyController; |
52 class SMSClient; | |
53 class SessionManagerClient; | 53 class SessionManagerClient; |
54 class ShillDeviceClient; | 54 class ShillDeviceClient; |
55 class ShillIPConfigClient; | 55 class ShillIPConfigClient; |
56 class ShillManagerClient; | 56 class ShillManagerClient; |
57 class ShillProfileClient; | 57 class ShillProfileClient; |
58 class ShillServiceClient; | 58 class ShillServiceClient; |
| 59 class SMSClient; |
59 class SystemClockClient; | 60 class SystemClockClient; |
60 class UpdateEngineClient; | 61 class UpdateEngineClient; |
61 | 62 |
62 // DBusThreadManager manages the D-Bus thread, the thread dedicated to | 63 // DBusThreadManager manages the D-Bus thread, the thread dedicated to |
63 // handling asynchronous D-Bus operations. | 64 // handling asynchronous D-Bus operations. |
64 // | 65 // |
65 // This class also manages D-Bus connections and D-Bus clients, which | 66 // This class also manages D-Bus connections and D-Bus clients, which |
66 // depend on the D-Bus thread to ensure the right order of shutdowns for | 67 // depend on the D-Bus thread to ensure the right order of shutdowns for |
67 // the D-Bus thread, the D-Bus connections, and the D-Bus clients. | 68 // the D-Bus thread, the D-Bus connections, and the D-Bus clients. |
68 // | 69 // |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 virtual BluetoothAdapterClient* GetBluetoothAdapterClient() = 0; | 124 virtual BluetoothAdapterClient* GetBluetoothAdapterClient() = 0; |
124 virtual BluetoothAgentManagerClient* GetBluetoothAgentManagerClient() = 0; | 125 virtual BluetoothAgentManagerClient* GetBluetoothAgentManagerClient() = 0; |
125 virtual BluetoothDeviceClient* GetBluetoothDeviceClient() = 0; | 126 virtual BluetoothDeviceClient* GetBluetoothDeviceClient() = 0; |
126 virtual BluetoothInputClient* GetBluetoothInputClient() = 0; | 127 virtual BluetoothInputClient* GetBluetoothInputClient() = 0; |
127 virtual BluetoothProfileManagerClient* GetBluetoothProfileManagerClient() = 0; | 128 virtual BluetoothProfileManagerClient* GetBluetoothProfileManagerClient() = 0; |
128 virtual CrasAudioClient* GetCrasAudioClient() = 0; | 129 virtual CrasAudioClient* GetCrasAudioClient() = 0; |
129 virtual CrosDisksClient* GetCrosDisksClient() = 0; | 130 virtual CrosDisksClient* GetCrosDisksClient() = 0; |
130 virtual CryptohomeClient* GetCryptohomeClient() = 0; | 131 virtual CryptohomeClient* GetCryptohomeClient() = 0; |
131 virtual DebugDaemonClient* GetDebugDaemonClient() = 0; | 132 virtual DebugDaemonClient* GetDebugDaemonClient() = 0; |
132 virtual GsmSMSClient* GetGsmSMSClient() = 0; | 133 virtual GsmSMSClient* GetGsmSMSClient() = 0; |
133 virtual IBusClient* GetIBusClient() = 0; | |
134 virtual ImageBurnerClient* GetImageBurnerClient() = 0; | 134 virtual ImageBurnerClient* GetImageBurnerClient() = 0; |
135 virtual IntrospectableClient* GetIntrospectableClient() = 0; | 135 virtual IntrospectableClient* GetIntrospectableClient() = 0; |
136 virtual ModemMessagingClient* GetModemMessagingClient() = 0; | 136 virtual ModemMessagingClient* GetModemMessagingClient() = 0; |
137 virtual NfcAdapterClient* GetNfcAdapterClient() = 0; | 137 virtual NfcAdapterClient* GetNfcAdapterClient() = 0; |
138 virtual NfcDeviceClient* GetNfcDeviceClient() = 0; | 138 virtual NfcDeviceClient* GetNfcDeviceClient() = 0; |
139 virtual NfcManagerClient* GetNfcManagerClient() = 0; | 139 virtual NfcManagerClient* GetNfcManagerClient() = 0; |
140 virtual NfcTagClient* GetNfcTagClient() = 0; | 140 virtual NfcTagClient* GetNfcTagClient() = 0; |
141 virtual PermissionBrokerClient* GetPermissionBrokerClient() = 0; | 141 virtual PermissionBrokerClient* GetPermissionBrokerClient() = 0; |
142 virtual PowerManagerClient* GetPowerManagerClient() = 0; | 142 virtual PowerManagerClient* GetPowerManagerClient() = 0; |
143 virtual PowerPolicyController* GetPowerPolicyController() = 0; | 143 virtual PowerPolicyController* GetPowerPolicyController() = 0; |
144 virtual SessionManagerClient* GetSessionManagerClient() = 0; | 144 virtual SessionManagerClient* GetSessionManagerClient() = 0; |
145 virtual ShillDeviceClient* GetShillDeviceClient() = 0; | 145 virtual ShillDeviceClient* GetShillDeviceClient() = 0; |
146 virtual ShillIPConfigClient* GetShillIPConfigClient() = 0; | 146 virtual ShillIPConfigClient* GetShillIPConfigClient() = 0; |
147 virtual ShillManagerClient* GetShillManagerClient() = 0; | 147 virtual ShillManagerClient* GetShillManagerClient() = 0; |
148 virtual ShillServiceClient* GetShillServiceClient() = 0; | 148 virtual ShillServiceClient* GetShillServiceClient() = 0; |
149 virtual ShillProfileClient* GetShillProfileClient() = 0; | 149 virtual ShillProfileClient* GetShillProfileClient() = 0; |
150 virtual SMSClient* GetSMSClient() = 0; | 150 virtual SMSClient* GetSMSClient() = 0; |
151 virtual SystemClockClient* GetSystemClockClient() = 0; | 151 virtual SystemClockClient* GetSystemClockClient() = 0; |
152 virtual UpdateEngineClient* GetUpdateEngineClient() = 0; | 152 virtual UpdateEngineClient* GetUpdateEngineClient() = 0; |
153 | 153 |
| 154 virtual IBusClient* GetIBusClient() = 0; |
| 155 |
154 virtual ~DBusThreadManager(); | 156 virtual ~DBusThreadManager(); |
155 | 157 |
156 protected: | 158 protected: |
157 DBusThreadManager(); | 159 DBusThreadManager(); |
158 | 160 |
| 161 private: |
| 162 // InitializeClients is called after g_dbus_thread_manager is set. |
| 163 // NOTE: Clients that access other clients in their Init() must be |
| 164 // initialized in the correct order. |
| 165 static void InitializeClients(); |
| 166 |
| 167 // Initializes |client| with the |system_bus_|. |
| 168 static void InitClient(DBusClient* client); |
| 169 |
159 DISALLOW_COPY_AND_ASSIGN(DBusThreadManager); | 170 DISALLOW_COPY_AND_ASSIGN(DBusThreadManager); |
160 }; | 171 }; |
161 | 172 |
162 } // namespace chromeos | 173 } // namespace chromeos |
163 | 174 |
164 #endif // CHROMEOS_DBUS_DBUS_THREAD_MANAGER_H_ | 175 #endif // CHROMEOS_DBUS_DBUS_THREAD_MANAGER_H_ |
OLD | NEW |