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 NfcRecordClient; | 49 class NfcRecordClient; |
49 class NfcTagClient; | 50 class NfcTagClient; |
50 class PermissionBrokerClient; | 51 class PermissionBrokerClient; |
51 class PowerManagerClient; | 52 class PowerManagerClient; |
52 class PowerPolicyController; | 53 class PowerPolicyController; |
53 class SMSClient; | |
54 class SessionManagerClient; | 54 class SessionManagerClient; |
55 class ShillDeviceClient; | 55 class ShillDeviceClient; |
56 class ShillIPConfigClient; | 56 class ShillIPConfigClient; |
57 class ShillManagerClient; | 57 class ShillManagerClient; |
58 class ShillProfileClient; | 58 class ShillProfileClient; |
59 class ShillServiceClient; | 59 class ShillServiceClient; |
| 60 class SMSClient; |
60 class SystemClockClient; | 61 class SystemClockClient; |
61 class UpdateEngineClient; | 62 class UpdateEngineClient; |
62 | 63 |
63 // DBusThreadManager manages the D-Bus thread, the thread dedicated to | 64 // DBusThreadManager manages the D-Bus thread, the thread dedicated to |
64 // handling asynchronous D-Bus operations. | 65 // handling asynchronous D-Bus operations. |
65 // | 66 // |
66 // This class also manages D-Bus connections and D-Bus clients, which | 67 // This class also manages D-Bus connections and D-Bus clients, which |
67 // depend on the D-Bus thread to ensure the right order of shutdowns for | 68 // depend on the D-Bus thread to ensure the right order of shutdowns for |
68 // the D-Bus thread, the D-Bus connections, and the D-Bus clients. | 69 // the D-Bus thread, the D-Bus connections, and the D-Bus clients. |
69 // | 70 // |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 virtual BluetoothAdapterClient* GetBluetoothAdapterClient() = 0; | 125 virtual BluetoothAdapterClient* GetBluetoothAdapterClient() = 0; |
125 virtual BluetoothAgentManagerClient* GetBluetoothAgentManagerClient() = 0; | 126 virtual BluetoothAgentManagerClient* GetBluetoothAgentManagerClient() = 0; |
126 virtual BluetoothDeviceClient* GetBluetoothDeviceClient() = 0; | 127 virtual BluetoothDeviceClient* GetBluetoothDeviceClient() = 0; |
127 virtual BluetoothInputClient* GetBluetoothInputClient() = 0; | 128 virtual BluetoothInputClient* GetBluetoothInputClient() = 0; |
128 virtual BluetoothProfileManagerClient* GetBluetoothProfileManagerClient() = 0; | 129 virtual BluetoothProfileManagerClient* GetBluetoothProfileManagerClient() = 0; |
129 virtual CrasAudioClient* GetCrasAudioClient() = 0; | 130 virtual CrasAudioClient* GetCrasAudioClient() = 0; |
130 virtual CrosDisksClient* GetCrosDisksClient() = 0; | 131 virtual CrosDisksClient* GetCrosDisksClient() = 0; |
131 virtual CryptohomeClient* GetCryptohomeClient() = 0; | 132 virtual CryptohomeClient* GetCryptohomeClient() = 0; |
132 virtual DebugDaemonClient* GetDebugDaemonClient() = 0; | 133 virtual DebugDaemonClient* GetDebugDaemonClient() = 0; |
133 virtual GsmSMSClient* GetGsmSMSClient() = 0; | 134 virtual GsmSMSClient* GetGsmSMSClient() = 0; |
134 virtual IBusClient* GetIBusClient() = 0; | |
135 virtual ImageBurnerClient* GetImageBurnerClient() = 0; | 135 virtual ImageBurnerClient* GetImageBurnerClient() = 0; |
136 virtual IntrospectableClient* GetIntrospectableClient() = 0; | 136 virtual IntrospectableClient* GetIntrospectableClient() = 0; |
137 virtual ModemMessagingClient* GetModemMessagingClient() = 0; | 137 virtual ModemMessagingClient* GetModemMessagingClient() = 0; |
138 virtual NfcAdapterClient* GetNfcAdapterClient() = 0; | 138 virtual NfcAdapterClient* GetNfcAdapterClient() = 0; |
139 virtual NfcDeviceClient* GetNfcDeviceClient() = 0; | 139 virtual NfcDeviceClient* GetNfcDeviceClient() = 0; |
140 virtual NfcManagerClient* GetNfcManagerClient() = 0; | 140 virtual NfcManagerClient* GetNfcManagerClient() = 0; |
141 virtual NfcRecordClient* GetNfcRecordClient() = 0; | 141 virtual NfcRecordClient* GetNfcRecordClient() = 0; |
142 virtual NfcTagClient* GetNfcTagClient() = 0; | 142 virtual NfcTagClient* GetNfcTagClient() = 0; |
143 virtual PermissionBrokerClient* GetPermissionBrokerClient() = 0; | 143 virtual PermissionBrokerClient* GetPermissionBrokerClient() = 0; |
144 virtual PowerManagerClient* GetPowerManagerClient() = 0; | 144 virtual PowerManagerClient* GetPowerManagerClient() = 0; |
145 virtual PowerPolicyController* GetPowerPolicyController() = 0; | 145 virtual PowerPolicyController* GetPowerPolicyController() = 0; |
146 virtual SessionManagerClient* GetSessionManagerClient() = 0; | 146 virtual SessionManagerClient* GetSessionManagerClient() = 0; |
147 virtual ShillDeviceClient* GetShillDeviceClient() = 0; | 147 virtual ShillDeviceClient* GetShillDeviceClient() = 0; |
148 virtual ShillIPConfigClient* GetShillIPConfigClient() = 0; | 148 virtual ShillIPConfigClient* GetShillIPConfigClient() = 0; |
149 virtual ShillManagerClient* GetShillManagerClient() = 0; | 149 virtual ShillManagerClient* GetShillManagerClient() = 0; |
150 virtual ShillServiceClient* GetShillServiceClient() = 0; | 150 virtual ShillServiceClient* GetShillServiceClient() = 0; |
151 virtual ShillProfileClient* GetShillProfileClient() = 0; | 151 virtual ShillProfileClient* GetShillProfileClient() = 0; |
152 virtual SMSClient* GetSMSClient() = 0; | 152 virtual SMSClient* GetSMSClient() = 0; |
153 virtual SystemClockClient* GetSystemClockClient() = 0; | 153 virtual SystemClockClient* GetSystemClockClient() = 0; |
154 virtual UpdateEngineClient* GetUpdateEngineClient() = 0; | 154 virtual UpdateEngineClient* GetUpdateEngineClient() = 0; |
155 | 155 |
| 156 virtual IBusClient* GetIBusClient() = 0; |
| 157 |
156 virtual ~DBusThreadManager(); | 158 virtual ~DBusThreadManager(); |
157 | 159 |
158 protected: | 160 protected: |
159 DBusThreadManager(); | 161 DBusThreadManager(); |
160 | 162 |
| 163 private: |
| 164 // InitializeClients is called after g_dbus_thread_manager is set. |
| 165 // NOTE: Clients that access other clients in their Init() must be |
| 166 // initialized in the correct order. |
| 167 static void InitializeClients(); |
| 168 |
| 169 // Initializes |client| with the |system_bus_|. |
| 170 static void InitClient(DBusClient* client); |
| 171 |
161 DISALLOW_COPY_AND_ASSIGN(DBusThreadManager); | 172 DISALLOW_COPY_AND_ASSIGN(DBusThreadManager); |
162 }; | 173 }; |
163 | 174 |
164 } // namespace chromeos | 175 } // namespace chromeos |
165 | 176 |
166 #endif // CHROMEOS_DBUS_DBUS_THREAD_MANAGER_H_ | 177 #endif // CHROMEOS_DBUS_DBUS_THREAD_MANAGER_H_ |
OLD | NEW |