mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
refactor: Move common dbus function to IContext
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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); }
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user