refactor: Move common dbus function to IContext

This commit is contained in:
Lars Toenning
2024-12-30 09:33:57 +01:00
parent 51ae5805b2
commit 7fbf48ca3a
17 changed files with 17 additions and 52 deletions

View File

@@ -4,6 +4,7 @@
#include "core/context/context.h"
#include "core/application.h"
#include "misc/dbusserver.h"
#include "misc/logcategories.h"
using namespace swift::misc;
@@ -70,6 +71,14 @@ namespace swift::core::context
return this->getRuntime()->getIContextSimulator();
}
void IContext::registerWithDBus(const QString &objectPath, CDBusServer *server)
{
if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; }
// remark that registers all SIGNALS, not only the interface ons
server->addObject(objectPath, this);
}
const CStatusMessage &IContext::statusMessageEmptyContext()
{
static const CStatusMessage m(static_cast<IContext *>(nullptr), CStatusMessage::SeverityWarning,

View File

@@ -152,6 +152,9 @@ namespace swift::core::context
//! Called when shutdown is about to be called
virtual void onAboutToShutdown() {}
//! Register myself in DBus
void registerWithDBus(const QString &objectPath, misc::CDBusServer *server);
//! Standard message when status message is returned in empty context
static const misc::CStatusMessage &statusMessageEmptyContext();

View File

@@ -35,7 +35,7 @@ namespace swift::core::context
case CCoreFacadeConfig::LocalInDBusServer:
{
auto *context = new CContextApplication(mode, parent);
context->registerWithDBus(server);
context->registerWithDBus(ObjectPath(), server);
return context;
}
case CCoreFacadeConfig::Remote:

View File

@@ -25,12 +25,6 @@ namespace swift::core::context
: IContextApplication(mode, runtime), CIdentifiable(this)
{}
void CContextApplication::registerWithDBus(swift::misc::CDBusServer *server)
{
if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; }
server->addObject(IContextApplication::ObjectPath(), this);
}
void CContextApplication::changeSettings(const CValueCachePacket &settings, const CIdentifier &origin)
{
// Intentionally don't check for round trip here

View File

@@ -88,9 +88,6 @@ namespace swift::core
//! Constructor
CContextApplication(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime);
//! Register myself in DBus, fail safe
void registerWithDBus(swift::misc::CDBusServer *server);
private:
swift::misc::CIdentifierList m_registeredApplications;

View File

@@ -64,7 +64,7 @@ namespace swift::core::context
case CCoreFacadeConfig::LocalInDBusServer:
{
auto *context = new CContextAudio(mode, runtime);
context->registerWithDBus(server);
context->registerWithDBus(ObjectPath(), server);
return context;
}
case CCoreFacadeConfig::Remote:

View File

@@ -24,14 +24,6 @@ namespace swift::core::context
Qt::QueuedConnection);
}
void CContextAudio::registerWithDBus(CDBusServer *server)
{
if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; }
// remark that registers all SIGNALS, not only the interface ons
server->addObject(IContextAudio::ObjectPath(), this);
}
void CContextAudio::registerDevices(const CAudioDeviceInfoList &devices)
{
if (devices.isEmpty()) { return; }

View File

@@ -59,9 +59,6 @@ namespace swift::core
//! Constructor
CContextAudio(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime);
//! Register myself in DBus
void registerWithDBus(misc::CDBusServer *server);
private:
misc::audio::CAudioDeviceInfoList m_registeredDevices;
QMap<misc::CIdentifier, misc::aviation::CCallsign> m_registeredCallsigns;

View File

@@ -25,7 +25,7 @@ namespace swift::core::context
case CCoreFacadeConfig::LocalInDBusServer:
{
auto *context = new CContextNetwork(mode, runtime);
context->registerWithDBus(server);
context->registerWithDBus(ObjectPath(), server);
return context;
}
case CCoreFacadeConfig::Remote:

View File

@@ -120,12 +120,6 @@ namespace swift::core::context
Qt::QueuedConnection);
}
void CContextNetwork::registerWithDBus(swift::misc::CDBusServer *server)
{
if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; };
server->addObject(IContextNetwork::ObjectPath(), this);
}
void CContextNetwork::setSimulationEnvironmentProvider(ISimulationEnvironmentProvider *provider)
{
if (this->canUseAirspaceMonitor()) { m_airspace->setSimulationEnvironmentProvider(provider); }

View File

@@ -461,9 +461,6 @@ namespace swift::core
//! Constructor, with link to runtime
CContextNetwork(CCoreFacadeConfig::ContextMode, CCoreFacade *runtime);
//! Register myself in DBus
void registerWithDBus(swift::misc::CDBusServer *server);
//! Set the provider
void setSimulationEnvironmentProvider(swift::misc::simulation::ISimulationEnvironmentProvider *provider);

View File

@@ -28,7 +28,7 @@ namespace swift::core::context
case CCoreFacadeConfig::LocalInDBusServer:
{
auto *context = new CContextOwnAircraft(mode, parent);
context->registerWithDBus(server);
context->registerWithDBus(ObjectPath(), server);
return context;
}
case CCoreFacadeConfig::Remote:

View File

@@ -72,12 +72,6 @@ namespace swift::core::context
CContextOwnAircraft::~CContextOwnAircraft() {}
void CContextOwnAircraft::registerWithDBus(CDBusServer *server)
{
if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; }
server->addObject(IContextOwnAircraft::ObjectPath(), this);
}
CSimulatedAircraft CContextOwnAircraft::getOwnAircraft() const
{
if (isDebugEnabled()) { CLogMessage(this, CLogCategories::contextSlot()).debug() << Q_FUNC_INFO; }

View File

@@ -215,9 +215,6 @@ namespace swift::core
//! Constructor, with link to runtime
CContextOwnAircraft(CCoreFacadeConfig::ContextMode, CCoreFacade *runtime);
//! Register myself in DBus
void registerWithDBus(swift::misc::CDBusServer *server);
private:
swift::misc::simulation::CSimulatedAircraft m_ownAircraft; //!< my aircraft
mutable QReadWriteLock m_lockAircraft; //!< lock aircraft

View File

@@ -39,7 +39,7 @@ namespace swift::core::context
case CCoreFacadeConfig::LocalInDBusServer:
{
auto *context = new CContextSimulator(mode, parent);
context->registerWithDBus(server);
context->registerWithDBus(ObjectPath(), server);
return context;
}
case CCoreFacadeConfig::Remote:

View File

@@ -106,12 +106,6 @@ namespace swift::core::context
else { m_validator->setCurrentSimulator(CSimulatorInfo::None, {}, {}); }
}
void CContextSimulator::registerWithDBus(CDBusServer *server)
{
if (!server || getMode() != CCoreFacadeConfig::LocalInDBusServer) { return; }
server->addObject(CContextSimulator::ObjectPath(), this);
}
bool CContextSimulator::isSimulatorPluginAvailable() const
{
return m_simulatorPlugin.second && IContextSimulator::isSimulatorAvailable();

View File

@@ -273,9 +273,6 @@ namespace swift::core
//! Constructor
CContextSimulator(CCoreFacadeConfig::ContextMode, CCoreFacade *runtime);
//! Register myself in DBus
void registerWithDBus(swift::misc::CDBusServer *server);
//! Simulator plugin available?
bool isSimulatorPluginAvailable() const;