mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-02 15:15:39 +08:00
Ref T709 Encapsulate the CSettingsProvider pointer in a CSettingsAware base class.
This commit is contained in:
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
namespace XSwiftBus
|
namespace XSwiftBus
|
||||||
{
|
{
|
||||||
CDBusObject::CDBusObject(CSettingsProvider *settingsProvider) : m_settingsProvider(settingsProvider)
|
CDBusObject::CDBusObject(CSettingsProvider *settingsProvider) : CSettingsAware(settingsProvider)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
CDBusObject::~CDBusObject()
|
CDBusObject::~CDBusObject()
|
||||||
@@ -73,18 +73,6 @@ namespace XSwiftBus
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CSettings CDBusObject::getSettings() const
|
|
||||||
{
|
|
||||||
if (m_settingsProvider) { return m_settingsProvider->getSettings(); }
|
|
||||||
return CSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CDBusObject::setSettings(const CSettings &s)
|
|
||||||
{
|
|
||||||
if (m_settingsProvider) { m_settingsProvider->setSettings(s); }
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CDBusObject::dbusObjectPathUnregisterFunction(DBusConnection *connection, void *data)
|
void CDBusObject::dbusObjectPathUnregisterFunction(DBusConnection *connection, void *data)
|
||||||
{
|
{
|
||||||
(void)connection; // unused
|
(void)connection; // unused
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
namespace XSwiftBus
|
namespace XSwiftBus
|
||||||
{
|
{
|
||||||
//! DBus base object
|
//! DBus base object
|
||||||
class CDBusObject
|
class CDBusObject : public CSettingsAware
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
@@ -80,14 +80,6 @@ namespace XSwiftBus
|
|||||||
//! Invoke all pending DBus calls. They will be executed in the calling thread.
|
//! Invoke all pending DBus calls. They will be executed in the calling thread.
|
||||||
void invokeQueuedDBusCalls();
|
void invokeQueuedDBusCalls();
|
||||||
|
|
||||||
//! Get the settings
|
|
||||||
CSettings getSettings() const;
|
|
||||||
|
|
||||||
//! Set the settings
|
|
||||||
bool setSettings(const CSettings &s);
|
|
||||||
|
|
||||||
CSettingsProvider *m_settingsProvider; //!< get the settings from here
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void dbusObjectPathUnregisterFunction(DBusConnection *connection, void *data);
|
static void dbusObjectPathUnregisterFunction(DBusConnection *connection, void *data);
|
||||||
static DBusHandlerResult dbusObjectPathMessageFunction(DBusConnection *connection, DBusMessage *message, void *data);
|
static DBusHandlerResult dbusObjectPathMessageFunction(DBusConnection *connection, DBusMessage *message, void *data);
|
||||||
|
|||||||
@@ -39,5 +39,19 @@ namespace XSwiftBus
|
|||||||
m_pluginSettings = settings;
|
m_pluginSettings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CSettingsAware::CSettingsAware(CSettingsProvider *provider) : m_provider(provider)
|
||||||
|
{
|
||||||
|
// void
|
||||||
|
}
|
||||||
|
|
||||||
|
CSettings CSettingsAware::getSettings() const
|
||||||
|
{
|
||||||
|
return m_provider->getSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSettingsAware::setSettings(const CSettings &settings)
|
||||||
|
{
|
||||||
|
m_provider->setSettings(settings);
|
||||||
|
}
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,26 @@ namespace XSwiftBus
|
|||||||
mutable std::mutex m_settingsMutex;
|
mutable std::mutex m_settingsMutex;
|
||||||
CSettings m_pluginSettings; //!< owner of the settings
|
CSettings m_pluginSettings; //!< owner of the settings
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//! Something having access to the settings
|
||||||
|
class CSettingsAware
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
//! Constructor
|
||||||
|
CSettingsAware(CSettingsProvider *provider);
|
||||||
|
|
||||||
|
//! Destructor
|
||||||
|
~CSettingsAware() = default;
|
||||||
|
|
||||||
|
//! \copydoc CSettingsProvider::getSettings
|
||||||
|
CSettings getSettings() const;
|
||||||
|
|
||||||
|
//! \copydoc CSettingsProvider::setSettings
|
||||||
|
void setSettings(const CSettings &settings);
|
||||||
|
|
||||||
|
private:
|
||||||
|
CSettingsProvider *m_provider = nullptr;
|
||||||
|
};
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user