File indexing completed on 2024-04-28 04:00:48

0001 /*
0002     SPDX-FileCopyrightText: 2006-2007 Kevin Ottens <ervin@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "managerbase_p.h"
0008 
0009 #include <stdlib.h>
0010 
0011 #include <config-backends.h>
0012 
0013 // do *not* use other defines than BUILD_DEVICE_BACKEND_$backend to include
0014 // the managers, and keep an alphabetical order
0015 #ifdef BUILD_DEVICE_BACKEND_fakehw
0016 #include "backends/fakehw/fakemanager.h"
0017 #endif
0018 #ifdef BUILD_DEVICE_BACKEND_fstab
0019 #include "backends/fstab/fstabmanager.h"
0020 #endif
0021 #ifdef BUILD_DEVICE_BACKEND_imobile
0022 #include "backends/imobile/imobilemanager.h"
0023 #endif
0024 #ifdef BUILD_DEVICE_BACKEND_iokit
0025 #include "backends/iokit/iokitmanager.h"
0026 #endif
0027 #ifdef BUILD_DEVICE_BACKEND_udev
0028 #include "backends/udev/udevmanager.h"
0029 #endif
0030 #ifdef BUILD_DEVICE_BACKEND_udisks2
0031 #include "backends/udisks2/udisksmanager.h"
0032 #endif
0033 #ifdef BUILD_DEVICE_BACKEND_upower
0034 #include "backends/upower/upowermanager.h"
0035 #endif
0036 #ifdef BUILD_DEVICE_BACKEND_win
0037 #include "backends/win/windevicemanager.h"
0038 #endif
0039 
0040 Solid::ManagerBasePrivate::ManagerBasePrivate()
0041 {
0042 }
0043 
0044 Solid::ManagerBasePrivate::~ManagerBasePrivate()
0045 {
0046     qDeleteAll(m_backends);
0047 }
0048 
0049 // do *not* use other defines than BUILD_DEVICE_BACKEND_$backend to add
0050 // the managers, and keep an alphabetical order
0051 void Solid::ManagerBasePrivate::loadBackends()
0052 {
0053     QString solidFakeXml(QString::fromLocal8Bit(qgetenv("SOLID_FAKEHW")));
0054 
0055     if (!solidFakeXml.isEmpty()) {
0056 #ifdef BUILD_DEVICE_BACKEND_fakehw
0057         m_backends << new Solid::Backends::Fake::FakeManager(nullptr, solidFakeXml);
0058 #endif
0059     } else {
0060 #ifdef BUILD_DEVICE_BACKEND_fstab
0061         m_backends << new Solid::Backends::Fstab::FstabManager(nullptr);
0062 #endif
0063 #ifdef BUILD_DEVICE_BACKEND_imobile
0064         m_backends << new Solid::Backends::IMobile::Manager(nullptr);
0065 #endif
0066 #ifdef BUILD_DEVICE_BACKEND_iokit
0067         m_backends << new Solid::Backends::IOKit::IOKitManager(nullptr);
0068 #endif
0069 #ifdef BUILD_DEVICE_BACKEND_udev
0070         m_backends << new Solid::Backends::UDev::UDevManager(nullptr);
0071 #endif
0072 #ifdef BUILD_DEVICE_BACKEND_udisks2
0073         if (!qEnvironmentVariableIsSet("SOLID_DISABLE_UDISKS2")) {
0074             m_backends << new Solid::Backends::UDisks2::Manager(nullptr);
0075         }
0076 #endif
0077 #ifdef BUILD_DEVICE_BACKEND_upower
0078         if (!qEnvironmentVariableIsSet("SOLID_DISABLE_UPOWER")) {
0079             m_backends << new Solid::Backends::UPower::UPowerManager(nullptr);
0080         }
0081 #endif
0082 #ifdef BUILD_DEVICE_BACKEND_win
0083         m_backends << new Solid::Backends::Win::WinDeviceManager(nullptr);
0084 #endif
0085     }
0086 }
0087 
0088 QList<QObject *> Solid::ManagerBasePrivate::managerBackends() const
0089 {
0090     return m_backends;
0091 }