Chromium Code Reviews| Index: chromeos/dbus/dbus_client_bundle.h |
| diff --git a/chromeos/dbus/dbus_client_bundle.h b/chromeos/dbus/dbus_client_bundle.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..86cd1dd6a3130749ced94756687454d3f7209255 |
| --- /dev/null |
| +++ b/chromeos/dbus/dbus_client_bundle.h |
| @@ -0,0 +1,276 @@ |
| +// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_ |
| +#define CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_ |
| + |
| +#include "base/memory/scoped_ptr.h" |
| +#include "chromeos/chromeos_export.h" |
| + |
| +namespace chromeos { |
| + |
| +class BluetoothAdapterClient; |
| +class BluetoothAgentManagerClient; |
| +class BluetoothDeviceClient; |
| +class BluetoothGattCharacteristicClient; |
| +class BluetoothGattDescriptorClient; |
| +class BluetoothGattManagerClient; |
| +class BluetoothGattServiceClient; |
| +class BluetoothInputClient; |
| +class BluetoothProfileManagerClient; |
| +class CrasAudioClient; |
| +class CrosDisksClient; |
| +class CryptohomeClient; |
| +class DebugDaemonClient; |
| +class EasyUnlockClient; |
| +class LorgnetteManagerClient; |
| +class ShillDeviceClient; |
| +class ShillIPConfigClient; |
| +class ShillManagerClient; |
| +class ShillServiceClient; |
| +class ShillProfileClient; |
| +class GsmSMSClient; |
| +class ImageBurnerClient; |
| +class IntrospectableClient; |
| +class ModemMessagingClient; |
| +class NfcManagerClient; |
| +class NfcAdapterClient; |
| +class NfcDeviceClient; |
| +class NfcTagClient; |
| +class NfcRecordClient; |
| +class PermissionBrokerClient; |
| +class SystemClockClient; |
| +class PowerManagerClient; |
| +class SessionManagerClient; |
| +class SMSClient; |
| +class UpdateEngineClient; |
| + |
| +// The bundle of all D-Bus clients used in DBusThreadManagerImpl. The bundle |
| +// is used to delete them at once in the right order before shutting down the |
| +// system bus. See also the comment in the destructor of DBusThreadManagerImpl. |
| +class CHROMEOS_EXPORT DBusClientBundle { |
| + public: |
| + typedef unsigned int DBusClientTypeMask; |
| + |
| + // TODO(zelidrag): We might want to collapse few more of these subsystems if |
| + // their dbus interfaced correspond to the same daemon. |
| + enum DBusClientType { |
| + UNKNOWN = 0, |
| + BLUETOOTH = 1 << 0, |
| + BLUETOOTH_LOW_ENERGY = 1 << 1, |
| + CRAS = 1 << 2, |
| + CROS_DISKS = 1 << 3, |
| + CRYPTOHOME = 1 << 4, |
| + DEBUG_DAEMON = 1 << 5, |
| + EASY_UNLOCK = 1 << 6, |
| + LORGNETTE_MANAGER = 1 << 7, |
| + SHILL = 1 << 8, |
| + GSM_SMS = 1 << 9, |
| + IMAGE_BURNER = 1 << 10, |
| + INTROSPECTABLE = 1 << 11, |
| + MODEM_MESSAGING = 1 << 12, |
| + NFC = 1 << 13, |
| + PERMISSION_BROKER = 1 << 14, |
| + POWER_MANAGER = 1 << 15, |
| + POWER_POLICY = 1 << 16, |
| + SESSION_MANAGER = 1 << 17, |
| + SMS = 1 << 18, |
| + SYSTEM_CLOCK = 1 << 19, |
| + UPDATE_ENGINE = 1 << 20, |
| + ALL_CLIENTS = 0xFFFFFFFF, |
|
satorux1
2014/08/11 01:52:09
maybe: 1 << 21 - 1
zel
2014/08/12 17:32:32
maybe not. why would create an extra place that on
hashimoto
2014/08/13 06:14:48
Then how about "~static_cast<DBusClientTypeMask>(0
zel
2014/08/13 17:57:43
Done.
|
| + }; |
| + |
| + explicit DBusClientBundle(); |
| + virtual ~DBusClientBundle(); |
| + |
| + // Parses command line param values for dbus subsystem that should be |
| + // un-stubbed. |
| + static DBusClientTypeMask ParseUnstubList(const std::string& unstub_list); |
| + |
| + BluetoothAdapterClient* bluetooth_adapter_client() { |
| + return bluetooth_adapter_client_.get(); |
| + } |
| + |
| + BluetoothAgentManagerClient* bluetooth_agent_manager_client() { |
| + return bluetooth_agent_manager_client_.get(); |
| + } |
| + |
| + BluetoothDeviceClient* bluetooth_device_client() { |
| + return bluetooth_device_client_.get(); |
| + } |
| + |
| + BluetoothGattCharacteristicClient* bluetooth_gatt_characteristic_client() { |
| + return bluetooth_gatt_characteristic_client_.get(); |
| + } |
| + |
| + BluetoothGattDescriptorClient* bluetooth_gatt_descriptor_client() { |
| + return bluetooth_gatt_descriptor_client_.get(); |
| + |
| + } |
| + BluetoothGattManagerClient* bluetooth_gatt_manager_client() { |
| + return bluetooth_gatt_manager_client_.get(); |
| + } |
| + |
| + BluetoothGattServiceClient* bluetooth_gatt_service_client() { |
| + return bluetooth_gatt_service_client_.get(); |
| + } |
| + |
| + BluetoothInputClient* bluetooth_input_client() { |
| + return bluetooth_input_client_.get(); |
| + } |
| + |
| + BluetoothProfileManagerClient* bluetooth_profile_manager_client() { |
| + return bluetooth_profile_manager_client_.get(); |
| + } |
| + |
| + CrasAudioClient* cras_audio_client() { |
| + return cras_audio_client_.get(); |
| + } |
| + |
| + CrosDisksClient* cros_disks_client() { |
| + return cros_disks_client_.get(); |
| + } |
| + |
| + CryptohomeClient* cryptohome_client() { |
| + return cryptohome_client_.get(); |
| + } |
| + |
| + DebugDaemonClient* debug_daemon_client() { |
| + return debug_daemon_client_.get(); |
| + } |
| + |
| + EasyUnlockClient* easy_unlock_client() { |
| + return easy_unlock_client_.get(); |
| + } |
| + |
| + LorgnetteManagerClient* lorgnette_manager_client() { |
| + return lorgnette_manager_client_.get(); |
| + } |
| + |
| + ShillDeviceClient* shill_device_client() { |
| + return shill_device_client_.get(); |
| + } |
| + |
| + ShillIPConfigClient* shill_ipconfig_client() { |
| + return shill_ipconfig_client_.get(); |
| + } |
| + |
| + ShillManagerClient* shill_manager_client() { |
| + return shill_manager_client_.get(); |
| + } |
| + |
| + ShillServiceClient* shill_service_client() { |
| + return shill_service_client_.get(); |
| + } |
| + |
| + ShillProfileClient* shill_profile_client() { |
| + return shill_profile_client_.get(); |
| + } |
| + |
| + GsmSMSClient* gsm_sms_client() { |
| + return gsm_sms_client_.get(); |
| + } |
| + |
| + ImageBurnerClient* image_burner_client() { |
| + return image_burner_client_.get(); |
| + } |
| + |
| + IntrospectableClient* introspectable_client() { |
| + return introspectable_client_.get(); |
| + } |
| + |
| + ModemMessagingClient* modem_messaging_client() { |
| + return modem_messaging_client_.get(); |
| + } |
| + |
| + NfcManagerClient* nfc_manager_client() { |
| + return nfc_manager_client_.get(); |
| + } |
| + |
| + NfcAdapterClient* nfc_adapter_client() { |
| + return nfc_adapter_client_.get(); |
| + } |
| + |
| + NfcDeviceClient* nfc_device_client() { |
| + return nfc_device_client_.get(); |
| + } |
| + |
| + NfcTagClient* nfc_tag_client() { |
| + return nfc_tag_client_.get(); |
| + } |
| + |
| + NfcRecordClient* nfc_record_client() { |
| + return nfc_record_client_.get(); |
| + } |
| + |
| + PermissionBrokerClient* permission_broker_client() { |
| + return permission_broker_client_.get(); |
| + } |
| + |
| + SystemClockClient* system_clock_client() { |
| + return system_clock_client_.get(); |
| + } |
| + |
| + PowerManagerClient* power_manager_client() { |
| + return power_manager_client_.get(); |
| + } |
| + |
| + SessionManagerClient* session_manager_client() { |
| + return session_manager_client_.get(); |
| + } |
| + |
| + SMSClient* sms_client() { |
| + return sms_client_.get(); |
| + } |
| + |
| + UpdateEngineClient* update_engine_client() { |
| + return update_engine_client_.get(); |
| + } |
| + |
| + private: |
| + scoped_ptr<BluetoothAdapterClient> bluetooth_adapter_client_; |
| + scoped_ptr<BluetoothAgentManagerClient> bluetooth_agent_manager_client_; |
| + scoped_ptr<BluetoothDeviceClient> bluetooth_device_client_; |
| + scoped_ptr<BluetoothGattCharacteristicClient> |
| + bluetooth_gatt_characteristic_client_; |
| + scoped_ptr<BluetoothGattDescriptorClient> bluetooth_gatt_descriptor_client_; |
| + scoped_ptr<BluetoothGattManagerClient> bluetooth_gatt_manager_client_; |
| + scoped_ptr<BluetoothGattServiceClient> bluetooth_gatt_service_client_; |
| + scoped_ptr<BluetoothInputClient> bluetooth_input_client_; |
| + scoped_ptr<BluetoothProfileManagerClient> bluetooth_profile_manager_client_; |
| + scoped_ptr<CrasAudioClient> cras_audio_client_; |
| + scoped_ptr<CrosDisksClient> cros_disks_client_; |
| + scoped_ptr<CryptohomeClient> cryptohome_client_; |
| + scoped_ptr<DebugDaemonClient> debug_daemon_client_; |
| + scoped_ptr<EasyUnlockClient> easy_unlock_client_; |
| + scoped_ptr<LorgnetteManagerClient> lorgnette_manager_client_; |
| + scoped_ptr<ShillDeviceClient> shill_device_client_; |
| + scoped_ptr<ShillIPConfigClient> shill_ipconfig_client_; |
| + scoped_ptr<ShillManagerClient> shill_manager_client_; |
| + scoped_ptr<ShillServiceClient> shill_service_client_; |
| + scoped_ptr<ShillProfileClient> shill_profile_client_; |
| + scoped_ptr<GsmSMSClient> gsm_sms_client_; |
| + scoped_ptr<ImageBurnerClient> image_burner_client_; |
| + scoped_ptr<IntrospectableClient> introspectable_client_; |
| + scoped_ptr<ModemMessagingClient> modem_messaging_client_; |
| + // The declaration order for NFC client objects is important. See |
| + // DBusThreadManager::CreateDefaultClients for the dependencies. |
| + scoped_ptr<NfcManagerClient> nfc_manager_client_; |
| + scoped_ptr<NfcAdapterClient> nfc_adapter_client_; |
| + scoped_ptr<NfcDeviceClient> nfc_device_client_; |
| + scoped_ptr<NfcTagClient> nfc_tag_client_; |
| + scoped_ptr<NfcRecordClient> nfc_record_client_; |
| + scoped_ptr<PermissionBrokerClient> permission_broker_client_; |
| + scoped_ptr<SystemClockClient> system_clock_client_; |
| + scoped_ptr<PowerManagerClient> power_manager_client_; |
| + scoped_ptr<SessionManagerClient> session_manager_client_; |
| + scoped_ptr<SMSClient> sms_client_; |
| + scoped_ptr<UpdateEngineClient> update_engine_client_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(DBusClientBundle); |
| +}; |
| + |
| +} // namespace chromeos |
| + |
| +#endif // CHROMEOS_DBUS_DBUS_CLIENT_BUNDLE_H_ |