mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-16 10:25:36 +08:00
Ref T261, correct implementation of client provider
* made the interface a "real" interface and provided implementation as CCLientProvider * aligned some function names with networl context * network context "impl" also implements ICLientProvider
This commit is contained in:
committed by
Roland Winklmeier
parent
3031e5b648
commit
5bf21c2937
@@ -312,7 +312,7 @@ namespace BlackCore
|
|||||||
void CAirspaceMonitor::testAddAircraftParts(const CCallsign &callsign, const CAircraftParts &parts, bool incremental)
|
void CAirspaceMonitor::testAddAircraftParts(const CCallsign &callsign, const CAircraftParts &parts, bool incremental)
|
||||||
{
|
{
|
||||||
this->onAircraftConfigReceived(callsign,
|
this->onAircraftConfigReceived(callsign,
|
||||||
incremental ? parts.toIncrementalJson() : parts.toJson(),
|
incremental ? parts.toIncrementalJson() : parts.toFullJson(),
|
||||||
5000);
|
5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -911,8 +911,7 @@ namespace BlackCore
|
|||||||
CClient client = this->getClientOrDefaultForCallsign(callsign);
|
CClient client = this->getClientOrDefaultForCallsign(callsign);
|
||||||
if (client.hasCapability(CClient::FsdWithAircraftConfig)) { return; }
|
if (client.hasCapability(CClient::FsdWithAircraftConfig)) { return; }
|
||||||
client.addCapability(CClient::FsdWithAircraftConfig);
|
client.addCapability(CClient::FsdWithAircraftConfig);
|
||||||
const int caps = client.getCapabilities();
|
this->setOtherClient(client);
|
||||||
this->updateOrAddClient(callsign, CPropertyIndexVariantMap(CClient::IndexCapabilities, CVariant::from(caps)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CAirspaceMonitor::storeAircraftSituation(const CAircraftSituation &situation)
|
void CAirspaceMonitor::storeAircraftSituation(const CAircraftSituation &situation)
|
||||||
|
|||||||
@@ -56,8 +56,8 @@ namespace BlackCore
|
|||||||
class BLACKCORE_EXPORT CAirspaceMonitor :
|
class BLACKCORE_EXPORT CAirspaceMonitor :
|
||||||
public BlackMisc::Simulation::CRemoteAircraftProvider, // those data will be provided from the class CAirspaceMonitor
|
public BlackMisc::Simulation::CRemoteAircraftProvider, // those data will be provided from the class CAirspaceMonitor
|
||||||
public BlackMisc::Simulation::COwnAircraftAware, // used to obtain in memory information about own aircraft
|
public BlackMisc::Simulation::COwnAircraftAware, // used to obtain in memory information about own aircraft
|
||||||
public BlackMisc::Simulation::CSimulationEnvironmentAware, // elevation info etc.
|
public BlackMisc::Simulation::CSimulationEnvironmentAware, // elevation info etc. from simulator
|
||||||
public BlackMisc::Network::IClientProvider // those data will be provided from the class CAirspaceMonitor
|
public BlackMisc::Network::CClientProvider // those data will be provided from the class CAirspaceMonitor
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_INTERFACES(BlackMisc::Network::IClientProvider)
|
Q_INTERFACES(BlackMisc::Network::IClientProvider)
|
||||||
|
|||||||
@@ -205,10 +205,13 @@ namespace BlackCore
|
|||||||
virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
|
virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
|
||||||
|
|
||||||
//! Information about other clients
|
//! Information about other clients
|
||||||
virtual BlackMisc::Network::CClientList getOtherClients() const = 0;
|
virtual BlackMisc::Network::CClientList getClients() const = 0;
|
||||||
|
|
||||||
//! Clients for given callsign, e.g. to test/fetch direct aircraft model
|
//! Clients for given callsign, e.g. to test/fetch direct aircraft model
|
||||||
virtual BlackMisc::Network::CClientList getOtherClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const = 0;
|
virtual BlackMisc::Network::CClientList getClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const = 0;
|
||||||
|
|
||||||
|
//! Set client for given callsign
|
||||||
|
virtual bool setOtherClient(const BlackMisc::Network::CClient &client) = 0;
|
||||||
|
|
||||||
//! Known voice servers, available when data file was first read
|
//! Known voice servers, available when data file was first read
|
||||||
virtual BlackMisc::Network::CServerList getVatsimVoiceServers() const = 0;
|
virtual BlackMisc::Network::CServerList getVatsimVoiceServers() const = 0;
|
||||||
|
|||||||
@@ -193,21 +193,29 @@ namespace BlackCore
|
|||||||
return BlackMisc::Network::CUser();
|
return BlackMisc::Network::CUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
//! \copydoc IContextNetwork::getOtherClients
|
//! \copydoc IContextNetwork::getClients
|
||||||
virtual BlackMisc::Network::CClientList getOtherClients() const override
|
virtual BlackMisc::Network::CClientList getClients() const override
|
||||||
{
|
{
|
||||||
logEmptyContextWarning(Q_FUNC_INFO);
|
logEmptyContextWarning(Q_FUNC_INFO);
|
||||||
return BlackMisc::Network::CClientList();
|
return BlackMisc::Network::CClientList();
|
||||||
}
|
}
|
||||||
|
|
||||||
//! \copydoc IContextNetwork::getOtherClientsForCallsigns
|
//! \copydoc IContextNetwork::getClientsForCallsigns
|
||||||
virtual BlackMisc::Network::CClientList getOtherClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override
|
virtual BlackMisc::Network::CClientList getClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override
|
||||||
{
|
{
|
||||||
Q_UNUSED(callsigns);
|
Q_UNUSED(callsigns);
|
||||||
logEmptyContextWarning(Q_FUNC_INFO);
|
logEmptyContextWarning(Q_FUNC_INFO);
|
||||||
return BlackMisc::Network::CClientList();
|
return BlackMisc::Network::CClientList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! \copydoc IContextNetwork::setOtherClient
|
||||||
|
virtual bool setOtherClient(const BlackMisc::Network::CClient &client) override
|
||||||
|
{
|
||||||
|
Q_UNUSED(client);
|
||||||
|
logEmptyContextWarning(Q_FUNC_INFO);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//! \copydoc IContextNetwork::requestDataUpdates
|
//! \copydoc IContextNetwork::requestDataUpdates
|
||||||
virtual void requestDataUpdates()override
|
virtual void requestDataUpdates()override
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -389,18 +389,34 @@ namespace BlackCore
|
|||||||
return users[0];
|
return users[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
CClientList CContextNetwork::getOtherClients() const
|
CClientList CContextNetwork::getClients() const
|
||||||
{
|
{
|
||||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||||
return m_airspace->getClients();
|
return m_airspace->getClients();
|
||||||
}
|
}
|
||||||
|
|
||||||
CClientList CContextNetwork::getOtherClientsForCallsigns(const CCallsignSet &callsigns) const
|
CClientList CContextNetwork::getClientsForCallsigns(const CCallsignSet &callsigns) const
|
||||||
{
|
{
|
||||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||||
return m_airspace->getClientsForCallsigns(callsigns);
|
return m_airspace->getClientsForCallsigns(callsigns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CContextNetwork::setOtherClient(const CClient &client)
|
||||||
|
{
|
||||||
|
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||||
|
return m_airspace->setOtherClient(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
int CContextNetwork::removeClient(const Aviation::CCallsign &callsign)
|
||||||
|
{
|
||||||
|
return m_airspace->removeClient(callsign);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CContextNetwork::autoAdjustCientGndCapability(const Aviation::CAircraftSituation &situation)
|
||||||
|
{
|
||||||
|
return m_airspace->autoAdjustCientGndCapability(situation);
|
||||||
|
}
|
||||||
|
|
||||||
CServerList CContextNetwork::getVatsimFsdServers() const
|
CServerList CContextNetwork::getVatsimFsdServers() const
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(sApp->getWebDataServices(), Q_FUNC_INFO, "Missing data reader");
|
Q_ASSERT_X(sApp->getWebDataServices(), Q_FUNC_INFO, "Missing data reader");
|
||||||
@@ -762,6 +778,36 @@ namespace BlackCore
|
|||||||
return m_airspace->getLatestAirspaceAircraftSnapshot();
|
return m_airspace->getLatestAirspaceAircraftSnapshot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CContextNetwork::setClients(const CClientList &clients)
|
||||||
|
{
|
||||||
|
m_airspace->setClients(clients);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CContextNetwork::clearClients()
|
||||||
|
{
|
||||||
|
m_airspace->clearClients();
|
||||||
|
}
|
||||||
|
|
||||||
|
CClient CContextNetwork::getClientOrDefaultForCallsign(const Aviation::CCallsign &callsign) const
|
||||||
|
{
|
||||||
|
return m_airspace->getClientOrDefaultForCallsign(callsign);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CContextNetwork::hasClientInfo(const Aviation::CCallsign &callsign) const
|
||||||
|
{
|
||||||
|
return m_airspace->hasClientInfo(callsign);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CContextNetwork::addNewClient(const CClient &client)
|
||||||
|
{
|
||||||
|
return m_airspace->addNewClient(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
int CContextNetwork::updateOrAddClient(const Aviation::CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues)
|
||||||
|
{
|
||||||
|
return m_airspace->updateOrAddClient(callsign, vm, skipEqualValues);
|
||||||
|
}
|
||||||
|
|
||||||
void CContextNetwork::setFastPositionEnabledCallsigns(CCallsignSet &callsigns)
|
void CContextNetwork::setFastPositionEnabledCallsigns(CCallsignSet &callsigns)
|
||||||
{
|
{
|
||||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsigns; }
|
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsigns; }
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
#include "blackmisc/aviation/callsignset.h"
|
#include "blackmisc/aviation/callsignset.h"
|
||||||
#include "blackmisc/aviation/flightplan.h"
|
#include "blackmisc/aviation/flightplan.h"
|
||||||
#include "blackmisc/network/clientlist.h"
|
#include "blackmisc/network/clientlist.h"
|
||||||
|
#include "blackmisc/network/clientprovider.h"
|
||||||
#include "blackmisc/network/server.h"
|
#include "blackmisc/network/server.h"
|
||||||
#include "blackmisc/network/serverlist.h"
|
#include "blackmisc/network/serverlist.h"
|
||||||
#include "blackmisc/network/textmessagelist.h"
|
#include "blackmisc/network/textmessagelist.h"
|
||||||
@@ -73,10 +74,12 @@ namespace BlackCore
|
|||||||
//! Network context implementation
|
//! Network context implementation
|
||||||
class BLACKCORE_EXPORT CContextNetwork :
|
class BLACKCORE_EXPORT CContextNetwork :
|
||||||
public IContextNetwork,
|
public IContextNetwork,
|
||||||
public BlackMisc::Simulation::IRemoteAircraftProvider
|
public BlackMisc::Simulation::IRemoteAircraftProvider,
|
||||||
|
public BlackMisc::Network::IClientProvider
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_INTERFACES(BlackMisc::Simulation::IRemoteAircraftProvider)
|
Q_INTERFACES(BlackMisc::Simulation::IRemoteAircraftProvider)
|
||||||
|
Q_INTERFACES(BlackMisc::Network::IClientProvider)
|
||||||
Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTNETWORK_INTERFACENAME)
|
Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTNETWORK_INTERFACENAME)
|
||||||
|
|
||||||
friend class IContextNetwork;
|
friend class IContextNetwork;
|
||||||
@@ -107,6 +110,18 @@ namespace BlackCore
|
|||||||
virtual BlackMisc::Simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const override;
|
virtual BlackMisc::Simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const override;
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
|
//! \ingroup clientprovider
|
||||||
|
//! @{
|
||||||
|
virtual void setClients(const BlackMisc::Network::CClientList &clients) override;
|
||||||
|
virtual void clearClients() override;
|
||||||
|
virtual BlackMisc::Network::CClient getClientOrDefaultForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||||
|
virtual bool hasClientInfo(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||||
|
virtual bool addNewClient(const BlackMisc::Network::CClient &client) override;
|
||||||
|
virtual int updateOrAddClient(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::CPropertyIndexVariantMap &vm, bool skipEqualValues = true) override;
|
||||||
|
virtual int removeClient(const BlackMisc::Aviation::CCallsign &callsign) override;
|
||||||
|
virtual bool autoAdjustCientGndCapability(const BlackMisc::Aviation::CAircraftSituation &situation) override;
|
||||||
|
//! @}
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
// from context and provider interface
|
// from context and provider interface
|
||||||
//! \ingroup remoteaircraftprovider
|
//! \ingroup remoteaircraftprovider
|
||||||
@@ -138,6 +153,13 @@ namespace BlackCore
|
|||||||
virtual bool testAddAltitudeOffset(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &offset = BlackMisc::PhysicalQuantities::CLength::null()) override;
|
virtual bool testAddAltitudeOffset(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &offset = BlackMisc::PhysicalQuantities::CLength::null()) override;
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
|
//! \ingroup clientprovider
|
||||||
|
//! @{
|
||||||
|
virtual BlackMisc::Network::CClientList getClients() const override;
|
||||||
|
virtual BlackMisc::Network::CClientList getClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
|
||||||
|
virtual bool setOtherClient(const BlackMisc::Network::CClient &client) override;
|
||||||
|
//! @}
|
||||||
|
|
||||||
//! In transition state, e.g. connecting, disconnecting.
|
//! In transition state, e.g. connecting, disconnecting.
|
||||||
//! \details In such a state it is advisable to wait until an end state (connected/disconnected) is reached
|
//! \details In such a state it is advisable to wait until an end state (connected/disconnected) is reached
|
||||||
//! \remarks Intentionally only running locally, not in interface
|
//! \remarks Intentionally only running locally, not in interface
|
||||||
@@ -183,8 +205,6 @@ namespace BlackCore
|
|||||||
virtual BlackMisc::Network::CUserList getUsers() const override;
|
virtual BlackMisc::Network::CUserList getUsers() const override;
|
||||||
virtual BlackMisc::Network::CUserList getUsersForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
|
virtual BlackMisc::Network::CUserList getUsersForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
|
||||||
virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||||
virtual BlackMisc::Network::CClientList getOtherClients() const override;
|
|
||||||
virtual BlackMisc::Network::CClientList getOtherClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
|
|
||||||
virtual BlackMisc::Network::CServerList getVatsimFsdServers() const override;
|
virtual BlackMisc::Network::CServerList getVatsimFsdServers() const override;
|
||||||
virtual BlackMisc::Network::CServerList getVatsimVoiceServers() const override;
|
virtual BlackMisc::Network::CServerList getVatsimVoiceServers() const override;
|
||||||
virtual void requestDataUpdates()override;
|
virtual void requestDataUpdates()override;
|
||||||
|
|||||||
@@ -160,9 +160,9 @@ namespace BlackCore
|
|||||||
return m_dBusInterface->callDBusRet<BlackMisc::Network::CUser>(QLatin1String("getUserForCallsign"), callsign);
|
return m_dBusInterface->callDBusRet<BlackMisc::Network::CUser>(QLatin1String("getUserForCallsign"), callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
CClientList CContextNetworkProxy::getOtherClients() const
|
CClientList CContextNetworkProxy::getClients() const
|
||||||
{
|
{
|
||||||
return m_dBusInterface->callDBusRet<BlackMisc::Network::CClientList>(QLatin1String("getOtherClients"));
|
return m_dBusInterface->callDBusRet<BlackMisc::Network::CClientList>(QLatin1String("getClients"));
|
||||||
}
|
}
|
||||||
|
|
||||||
CServerList CContextNetworkProxy::getVatsimFsdServers() const
|
CServerList CContextNetworkProxy::getVatsimFsdServers() const
|
||||||
@@ -175,9 +175,14 @@ namespace BlackCore
|
|||||||
return m_dBusInterface->callDBusRet<BlackMisc::Network::CServerList>(QLatin1String("getVatsimVoiceServers"));
|
return m_dBusInterface->callDBusRet<BlackMisc::Network::CServerList>(QLatin1String("getVatsimVoiceServers"));
|
||||||
}
|
}
|
||||||
|
|
||||||
CClientList CContextNetworkProxy::getOtherClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const
|
CClientList CContextNetworkProxy::getClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const
|
||||||
{
|
{
|
||||||
return m_dBusInterface->callDBusRet<BlackMisc::Network::CClientList>(QLatin1String("getOtherClientsForCallsigns"), callsigns);
|
return m_dBusInterface->callDBusRet<BlackMisc::Network::CClientList>(QLatin1String("getClientsForCallsigns"), callsigns);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CContextNetworkProxy::setOtherClient(const CClient &client)
|
||||||
|
{
|
||||||
|
return m_dBusInterface->callDBusRet<bool>(QLatin1String("setOtherClientForCallsign"), client);
|
||||||
}
|
}
|
||||||
|
|
||||||
CVoiceRoomList CContextNetworkProxy::getSelectedVoiceRooms() const
|
CVoiceRoomList CContextNetworkProxy::getSelectedVoiceRooms() const
|
||||||
|
|||||||
@@ -98,10 +98,11 @@ namespace BlackCore
|
|||||||
virtual BlackMisc::Network::CUserList getUsers() const override;
|
virtual BlackMisc::Network::CUserList getUsers() const override;
|
||||||
virtual BlackMisc::Network::CUserList getUsersForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
|
virtual BlackMisc::Network::CUserList getUsersForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
|
||||||
virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
virtual BlackMisc::Network::CUser getUserForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||||
virtual BlackMisc::Network::CClientList getOtherClients() const override;
|
virtual BlackMisc::Network::CClientList getClients() const override;
|
||||||
virtual BlackMisc::Network::CServerList getVatsimVoiceServers() const override;
|
virtual BlackMisc::Network::CServerList getVatsimVoiceServers() const override;
|
||||||
virtual BlackMisc::Network::CServerList getVatsimFsdServers() const override;
|
virtual BlackMisc::Network::CServerList getVatsimFsdServers() const override;
|
||||||
virtual BlackMisc::Network::CClientList getOtherClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
|
virtual BlackMisc::Network::CClientList getClientsForCallsigns(const BlackMisc::Aviation::CCallsignSet &callsigns) const override;
|
||||||
|
virtual bool setOtherClient(const BlackMisc::Network::CClient &client) override;
|
||||||
virtual void requestDataUpdates()override;
|
virtual void requestDataUpdates()override;
|
||||||
virtual void requestAtisUpdates() override;
|
virtual void requestAtisUpdates() override;
|
||||||
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) override;
|
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) override;
|
||||||
|
|||||||
@@ -342,7 +342,8 @@ namespace BlackCore
|
|||||||
Q_ASSERT_X(this->getIContextNetwork()->isUsingImplementingObject(), Q_FUNC_INFO, "Need implementing object");
|
Q_ASSERT_X(this->getIContextNetwork()->isUsingImplementingObject(), Q_FUNC_INFO, "Need implementing object");
|
||||||
IOwnAircraftProvider *ownAircraftProvider = this->getRuntime()->getCContextOwnAircraft();
|
IOwnAircraftProvider *ownAircraftProvider = this->getRuntime()->getCContextOwnAircraft();
|
||||||
IRemoteAircraftProvider *renderedAircraftProvider = this->getRuntime()->getCContextNetwork();
|
IRemoteAircraftProvider *renderedAircraftProvider = this->getRuntime()->getCContextNetwork();
|
||||||
ISimulator *simulator = factory->create(simulatorPluginInfo, ownAircraftProvider, renderedAircraftProvider, &m_weatherManager);
|
IClientProvider *clientProvider = this->getRuntime()->getCContextNetwork();
|
||||||
|
ISimulator *simulator = factory->create(simulatorPluginInfo, ownAircraftProvider, renderedAircraftProvider, &m_weatherManager, clientProvider);
|
||||||
Q_ASSERT_X(simulator, Q_FUNC_INFO, "no simulator driver can be created");
|
Q_ASSERT_X(simulator, Q_FUNC_INFO, "no simulator driver can be created");
|
||||||
|
|
||||||
this->setRemoteAircraftProvider(renderedAircraftProvider);
|
this->setRemoteAircraftProvider(renderedAircraftProvider);
|
||||||
|
|||||||
@@ -88,13 +88,17 @@ namespace BlackCore
|
|||||||
return (status.testFlag(Connected) || status.testFlag(Simulating) || status.testFlag(Paused));
|
return (status.testFlag(Connected) || status.testFlag(Simulating) || status.testFlag(Paused));
|
||||||
}
|
}
|
||||||
|
|
||||||
ISimulator::ISimulator(
|
ISimulator::ISimulator(const CSimulatorPluginInfo &pluginInfo,
|
||||||
const CSimulatorPluginInfo &pluginInfo, IOwnAircraftProvider *ownAircraftProvider,
|
IOwnAircraftProvider *ownAircraftProvider,
|
||||||
IRemoteAircraftProvider *remoteAircraftProvider, IWeatherGridProvider *weatherGridProvider, QObject *parent) :
|
IRemoteAircraftProvider *remoteAircraftProvider,
|
||||||
|
IWeatherGridProvider *weatherGridProvider,
|
||||||
|
IClientProvider *clientProvider,
|
||||||
|
QObject *parent) :
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
COwnAircraftAware(ownAircraftProvider),
|
COwnAircraftAware(ownAircraftProvider),
|
||||||
CRemoteAircraftAware(remoteAircraftProvider),
|
CRemoteAircraftAware(remoteAircraftProvider),
|
||||||
CWeatherGridAware(weatherGridProvider),
|
CWeatherGridAware(weatherGridProvider),
|
||||||
|
CClientAware(clientProvider),
|
||||||
ISimulationEnvironmentProvider(pluginInfo),
|
ISimulationEnvironmentProvider(pluginInfo),
|
||||||
IInterpolationSetupProvider(),
|
IInterpolationSetupProvider(),
|
||||||
CIdentifiable(this)
|
CIdentifiable(this)
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ using namespace BlackConfig;
|
|||||||
using namespace BlackMisc;
|
using namespace BlackMisc;
|
||||||
using namespace BlackMisc::Geo;
|
using namespace BlackMisc::Geo;
|
||||||
using namespace BlackMisc::Aviation;
|
using namespace BlackMisc::Aviation;
|
||||||
|
using namespace BlackMisc::Network;
|
||||||
using namespace BlackMisc::Simulation;
|
using namespace BlackMisc::Simulation;
|
||||||
using namespace BlackMisc::PhysicalQuantities;
|
using namespace BlackMisc::PhysicalQuantities;
|
||||||
using namespace BlackMisc::Simulation;
|
using namespace BlackMisc::Simulation;
|
||||||
@@ -49,8 +50,9 @@ namespace BlackCore
|
|||||||
IOwnAircraftProvider *ownAircraftProvider,
|
IOwnAircraftProvider *ownAircraftProvider,
|
||||||
IRemoteAircraftProvider *remoteAircraftProvider,
|
IRemoteAircraftProvider *remoteAircraftProvider,
|
||||||
IWeatherGridProvider *weatherGridProvider,
|
IWeatherGridProvider *weatherGridProvider,
|
||||||
|
IClientProvider *clientProvider,
|
||||||
QObject *parent)
|
QObject *parent)
|
||||||
: ISimulator(info, ownAircraftProvider, remoteAircraftProvider, weatherGridProvider, parent)
|
: ISimulator(info, ownAircraftProvider, remoteAircraftProvider, weatherGridProvider, clientProvider, parent)
|
||||||
{
|
{
|
||||||
this->setObjectName("Simulator: " + info.getIdentifier());
|
this->setObjectName("Simulator: " + info.getIdentifier());
|
||||||
CSimulatorCommon::registerHelp();
|
CSimulatorCommon::registerHelp();
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ namespace BlackCore
|
|||||||
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
||||||
BlackMisc::Simulation::IRemoteAircraftProvider *remoteAircraftProvider,
|
BlackMisc::Simulation::IRemoteAircraftProvider *remoteAircraftProvider,
|
||||||
BlackMisc::Weather::IWeatherGridProvider *weatherGridProvider,
|
BlackMisc::Weather::IWeatherGridProvider *weatherGridProvider,
|
||||||
|
BlackMisc::Network::IClientProvider *clientProvider,
|
||||||
QObject *parent);
|
QObject *parent);
|
||||||
|
|
||||||
//! \name Interface implementations, called from context
|
//! \name Interface implementations, called from context
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ namespace BlackGui
|
|||||||
}
|
}
|
||||||
|
|
||||||
// load data
|
// load data
|
||||||
ui->tvp_Clients->updateContainer(sGui->getIContextNetwork()->getOtherClients());
|
ui->tvp_Clients->updateContainer(sGui->getIContextNetwork()->getClients());
|
||||||
ui->tvp_AllUsers->updateContainer(sGui->getIContextNetwork()->getUsers());
|
ui->tvp_AllUsers->updateContainer(sGui->getIContextNetwork()->getUsers());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ namespace BlackGui
|
|||||||
//! Client list model
|
//! Client list model
|
||||||
class BLACKGUI_EXPORT CClientListModel : public CListModelBase<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>
|
class BLACKGUI_EXPORT CClientListModel : public CListModelBase<BlackMisc::Network::CClient, BlackMisc::Network::CClientList>
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
explicit CClientListModel(QObject *parent = nullptr);
|
explicit CClientListModel(QObject *parent = nullptr);
|
||||||
@@ -39,7 +38,6 @@ namespace BlackGui
|
|||||||
|
|
||||||
//! \copydoc QAbstractListModel::data()
|
//! \copydoc QAbstractListModel::data()
|
||||||
virtual QVariant data(const QModelIndex &index, int role) const override;
|
virtual QVariant data(const QModelIndex &index, int role) const override;
|
||||||
|
|
||||||
};
|
};
|
||||||
} // namespace
|
} // namespace
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ namespace BlackMisc
|
|||||||
Capabilities cap = this->getCapabilities();
|
Capabilities cap = this->getCapabilities();
|
||||||
cap &= ~capability;
|
cap &= ~capability;
|
||||||
this->setCapabilities(cap);
|
this->setCapabilities(cap);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CClient::setCapabilities(const Capabilities &capabilities)
|
void CClient::setCapabilities(const Capabilities &capabilities)
|
||||||
@@ -60,8 +59,8 @@ namespace BlackMisc
|
|||||||
|
|
||||||
QString CClient::getCapabilitiesAsString() const
|
QString CClient::getCapabilitiesAsString() const
|
||||||
{
|
{
|
||||||
const Capabilities cap = this->getCapabilities();
|
|
||||||
QStringList sl;
|
QStringList sl;
|
||||||
|
const Capabilities cap = this->getCapabilities();
|
||||||
if (cap.testFlag(FsdAtisCanBeReceived)) sl << "ATIS";
|
if (cap.testFlag(FsdAtisCanBeReceived)) sl << "ATIS";
|
||||||
if (cap.testFlag(FsdWithInterimPositions)) sl << "interim pos.";
|
if (cap.testFlag(FsdWithInterimPositions)) sl << "interim pos.";
|
||||||
if (cap.testFlag(FsdWithIcaoCodes)) sl << "ICAO";
|
if (cap.testFlag(FsdWithIcaoCodes)) sl << "ICAO";
|
||||||
|
|||||||
@@ -52,12 +52,12 @@ namespace BlackMisc
|
|||||||
enum Capability
|
enum Capability
|
||||||
{
|
{
|
||||||
None = 0,
|
None = 0,
|
||||||
FsdWithInterimPositions = 1 << 0,
|
FsdWithInterimPositions = 1 << 0, //!< fast position updates
|
||||||
FsdWithIcaoCodes = 1 << 1, //!< basically means it is a pilot client handling ICAO code packages
|
FsdWithIcaoCodes = 1 << 1, //!< basically means it is a pilot client handling ICAO code packages
|
||||||
FsdAtisCanBeReceived = 1 << 2, //!< ATIS
|
FsdAtisCanBeReceived = 1 << 2, //!< ATIS
|
||||||
FsdWithAircraftConfig = 1 << 3, //!< Aircraft parts
|
FsdWithAircraftConfig = 1 << 3, //!< Aircraft parts
|
||||||
FsdWithGroundFlag = 1 << 4, //!< supports gnd. flag (in position)
|
FsdWithGroundFlag = 1 << 4, //!< supports gnd. flag (in position)
|
||||||
FsdModelString = 1 << 5
|
FsdModelString = 1 << 5 //!< model string can be queried
|
||||||
};
|
};
|
||||||
Q_DECLARE_FLAGS(Capabilities, Capability)
|
Q_DECLARE_FLAGS(Capabilities, Capability)
|
||||||
|
|
||||||
@@ -171,5 +171,6 @@ namespace BlackMisc
|
|||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(BlackMisc::Network::CClient)
|
Q_DECLARE_METATYPE(BlackMisc::Network::CClient)
|
||||||
|
Q_DECLARE_METATYPE(BlackMisc::Network::CClient::Capability)
|
||||||
|
|
||||||
#endif // guard
|
#endif // guard
|
||||||
|
|||||||
@@ -16,41 +16,48 @@ namespace BlackMisc
|
|||||||
{
|
{
|
||||||
namespace Network
|
namespace Network
|
||||||
{
|
{
|
||||||
CClientList IClientProvider::getClients() const
|
CClientList CClientProvider::getClients() const
|
||||||
{
|
{
|
||||||
QReadLocker l(&m_lockClient);
|
QReadLocker l(&m_lockClient);
|
||||||
return m_clients;
|
return m_clients;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IClientProvider::setClients(const CClientList &clients)
|
void CClientProvider::setClients(const CClientList &clients)
|
||||||
{
|
{
|
||||||
QWriteLocker l(&m_lockClient);
|
QWriteLocker l(&m_lockClient);
|
||||||
m_clients = clients;
|
m_clients = clients;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IClientProvider::clearClients()
|
void CClientProvider::clearClients()
|
||||||
{
|
{
|
||||||
QWriteLocker l(&m_lockClient);
|
QWriteLocker l(&m_lockClient);
|
||||||
m_clients.clear();
|
m_clients.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
CClientList IClientProvider::getClientsForCallsigns(const CCallsignSet &callsigns) const
|
CClientList CClientProvider::getClientsForCallsigns(const CCallsignSet &callsigns) const
|
||||||
{
|
{
|
||||||
return this->getClients().findByCallsigns(callsigns);
|
return this->getClients().findByCallsigns(callsigns);
|
||||||
}
|
}
|
||||||
|
|
||||||
CClient IClientProvider::getClientOrDefaultForCallsign(const CCallsign &callsign) const
|
CClient CClientProvider::getClientOrDefaultForCallsign(const CCallsign &callsign) const
|
||||||
{
|
{
|
||||||
const CClientList clients(this->getClients());
|
const CClientList clients(this->getClients());
|
||||||
return clients.findFirstByCallsign(callsign);
|
return clients.findFirstByCallsign(callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IClientProvider::hasClientInfo(const CCallsign &callsign) const
|
bool CClientProvider::setOtherClient(const CClient &client)
|
||||||
|
{
|
||||||
|
QWriteLocker l(&m_lockClient);
|
||||||
|
m_clients.replaceOrAddObjectByCallsign(client);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CClientProvider::hasClientInfo(const CCallsign &callsign) const
|
||||||
{
|
{
|
||||||
return this->getClients().containsCallsign(callsign);
|
return this->getClients().containsCallsign(callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IClientProvider::addNewClient(const CClient &client)
|
bool CClientProvider::addNewClient(const CClient &client)
|
||||||
{
|
{
|
||||||
const CCallsign callsign = client.getCallsign();
|
const CCallsign callsign = client.getCallsign();
|
||||||
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "invalid callsign");
|
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "invalid callsign");
|
||||||
@@ -60,7 +67,7 @@ namespace BlackMisc
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int IClientProvider::updateOrAddClient(const CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues)
|
int CClientProvider::updateOrAddClient(const CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues)
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "Missing callsign");
|
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "Missing callsign");
|
||||||
int c = 0;
|
int c = 0;
|
||||||
@@ -78,13 +85,13 @@ namespace BlackMisc
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
int IClientProvider::removeClient(const CCallsign &callsign)
|
int CClientProvider::removeClient(const CCallsign &callsign)
|
||||||
{
|
{
|
||||||
QWriteLocker l(&m_lockClient);
|
QWriteLocker l(&m_lockClient);
|
||||||
return m_clients.removeByCallsign(callsign);
|
return m_clients.removeByCallsign(callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IClientProvider::autoAdjustCientGndCapability(const CAircraftSituation &situation)
|
bool CClientProvider::autoAdjustCientGndCapability(const CAircraftSituation &situation)
|
||||||
{
|
{
|
||||||
if (situation.getCallsign().isEmpty()) { return false; } // no callsign
|
if (situation.getCallsign().isEmpty()) { return false; } // no callsign
|
||||||
if (!situation.isOnGround()) { return false; } // nothing to adjust
|
if (!situation.isOnGround()) { return false; } // nothing to adjust
|
||||||
|
|||||||
@@ -28,43 +28,67 @@ namespace BlackMisc
|
|||||||
public:
|
public:
|
||||||
//! Get other clients
|
//! Get other clients
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
CClientList getClients() const;
|
virtual CClientList getClients() const = 0;
|
||||||
|
|
||||||
//! Set other clients
|
//! Set other clients
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
void setClients(const CClientList &clients);
|
virtual void setClients(const CClientList &clients) = 0;
|
||||||
|
|
||||||
//! Set other clients
|
//! Set other clients
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
void clearClients();
|
virtual void clearClients() = 0;
|
||||||
|
|
||||||
//! Returns a list of other clients corresponding to the given callsigns
|
//! Returns a list of other clients corresponding to the given callsigns
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
BlackMisc::Network::CClientList getClientsForCallsigns(const Aviation::CCallsignSet &callsigns) const;
|
virtual CClientList getClientsForCallsigns(const Aviation::CCallsignSet &callsigns) const = 0;
|
||||||
|
|
||||||
//! Other client for the given callsigns
|
//! Other client for the given callsigns
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
BlackMisc::Network::CClient getClientOrDefaultForCallsign(const Aviation::CCallsign &callsign) const;
|
virtual CClient getClientOrDefaultForCallsign(const Aviation::CCallsign &callsign) const = 0;
|
||||||
|
|
||||||
//! Client info for given callsign?
|
//! Client info for given callsign?
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
bool hasClientInfo(const Aviation::CCallsign &callsign) const;
|
virtual bool hasClientInfo(const Aviation::CCallsign &callsign) const = 0;
|
||||||
|
|
||||||
//! Add a new client, if existing nothing will be added
|
//! Add a new client, if existing nothing will be added
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
bool addNewClient(const CClient &client);
|
virtual bool addNewClient(const CClient &client) = 0;
|
||||||
|
|
||||||
|
//! Set client for its callsign
|
||||||
|
//! \threadsafe
|
||||||
|
virtual bool setOtherClient(const BlackMisc::Network::CClient &client) = 0;
|
||||||
|
|
||||||
//! Update or add a client
|
//! Update or add a client
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
int updateOrAddClient(const Aviation::CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues = true);
|
virtual int updateOrAddClient(const Aviation::CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues = true) = 0;
|
||||||
|
|
||||||
//! Remove client
|
//! Remove client
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
int removeClient(const Aviation::CCallsign &callsign);
|
virtual int removeClient(const Aviation::CCallsign &callsign) = 0;
|
||||||
|
|
||||||
//! Adjust gnd.flag capability from situation
|
//! Adjust gnd.flag capability from situation
|
||||||
//! \threadsafe
|
//! \threadsafe
|
||||||
bool autoAdjustCientGndCapability(const Aviation::CAircraftSituation &situation);
|
virtual bool autoAdjustCientGndCapability(const Aviation::CAircraftSituation &situation) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
//! Direct in memory access to client (network client) data
|
||||||
|
class BLACKMISC_EXPORT CClientProvider : public IClientProvider
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//! \ingroup clientprovider
|
||||||
|
//! @{
|
||||||
|
virtual CClientList getClients() const override;
|
||||||
|
virtual void setClients(const CClientList &clients) override;
|
||||||
|
virtual void clearClients() override;
|
||||||
|
virtual CClientList getClientsForCallsigns(const Aviation::CCallsignSet &callsigns) const override;
|
||||||
|
virtual CClient getClientOrDefaultForCallsign(const Aviation::CCallsign &callsign) const override;
|
||||||
|
virtual bool hasClientInfo(const Aviation::CCallsign &callsign) const override;
|
||||||
|
virtual bool addNewClient(const CClient &client) override;
|
||||||
|
virtual bool setOtherClient(const BlackMisc::Network::CClient &client) override;
|
||||||
|
virtual int updateOrAddClient(const Aviation::CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues = true) override;
|
||||||
|
virtual int removeClient(const Aviation::CCallsign &callsign) override;
|
||||||
|
virtual bool autoAdjustCientGndCapability(const Aviation::CAircraftSituation &situation) override;
|
||||||
|
//! @}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CClientList m_clients;
|
CClientList m_clients;
|
||||||
@@ -75,35 +99,35 @@ namespace BlackMisc
|
|||||||
class BLACKMISC_EXPORT CClientAware : public IProviderAware<IClientProvider>
|
class BLACKMISC_EXPORT CClientAware : public IProviderAware<IClientProvider>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//! \copydoc IClientProvider::getClients
|
//! \copydoc CClientProvider::getClients
|
||||||
CClientList getClients() const;
|
CClientList getClients() const;
|
||||||
|
|
||||||
//! \copydoc IClientProvider::setClients
|
//! \copydoc CClientProvider::setClients
|
||||||
void setClients(const CClientList &clients);
|
void setClients(const CClientList &clients);
|
||||||
|
|
||||||
//! \copydoc IClientProvider::clearClients
|
//! \copydoc CClientProvider::clearClients
|
||||||
void clearClients();
|
void clearClients();
|
||||||
|
|
||||||
//! \copydoc IClientProvider::getClientsForCallsigns
|
//! \copydoc CClientProvider::getClientsForCallsigns
|
||||||
BlackMisc::Network::CClientList getClientsForCallsigns(const Aviation::CCallsignSet &callsigns) const;
|
BlackMisc::Network::CClientList getClientsForCallsigns(const Aviation::CCallsignSet &callsigns) const;
|
||||||
|
|
||||||
//! \copydoc IClientProvider::getClientOrDefaultForCallsign
|
//! \copydoc CClientProvider::getClientOrDefaultForCallsign
|
||||||
BlackMisc::Network::CClient getClientOrDefaultForCallsign(const Aviation::CCallsign &callsign) const;
|
BlackMisc::Network::CClient getClientOrDefaultForCallsign(const Aviation::CCallsign &callsign) const;
|
||||||
|
|
||||||
//! \copydoc IClientProvider::hasClientInfo
|
//! \copydoc CClientProvider::hasClientInfo
|
||||||
bool hasClientInfo(const Aviation::CCallsign &callsign) const;
|
bool hasClientInfo(const Aviation::CCallsign &callsign) const;
|
||||||
|
|
||||||
//! \copydoc IClientProvider::addNewClient
|
//! \copydoc CClientProvider::addNewClient
|
||||||
bool addNewClient(const CClient &client);
|
bool addNewClient(const CClient &client);
|
||||||
|
|
||||||
//! \copydoc IClientProvider::updateOrAddClient
|
//! \copydoc CClientProvider::updateOrAddClient
|
||||||
int updateOrAddClient(const Aviation::CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues);
|
int updateOrAddClient(const Aviation::CCallsign &callsign, const CPropertyIndexVariantMap &vm, bool skipEqualValues);
|
||||||
|
|
||||||
//! \copydoc IClientProvider::removeClient
|
//! \copydoc CClientProvider::removeClient
|
||||||
int removeClient(const Aviation::CCallsign &callsign);
|
int removeClient(const Aviation::CCallsign &callsign);
|
||||||
|
|
||||||
//! Provider
|
//! Provider
|
||||||
void setClientProvider(IClientProvider *provider) { this->setProvider(provider); }
|
void setClientProvider(CClientProvider *provider) { this->setProvider(provider); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! Default constructor
|
//! Default constructor
|
||||||
@@ -114,7 +138,7 @@ namespace BlackMisc
|
|||||||
};
|
};
|
||||||
|
|
||||||
//! Client provider dummy for testing
|
//! Client provider dummy for testing
|
||||||
class BLACKMISC_EXPORT CClientProviderDummy: public IClientProvider
|
class BLACKMISC_EXPORT CClientProviderDummy: public CClientProvider
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//! Dummy instance
|
//! Dummy instance
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ namespace BlackMisc
|
|||||||
{
|
{
|
||||||
CAuthenticatedUser::registerMetadata();
|
CAuthenticatedUser::registerMetadata();
|
||||||
CClient::registerMetadata();
|
CClient::registerMetadata();
|
||||||
|
qDBusRegisterMetaType<CClient::Capability>();
|
||||||
CClientList::registerMetadata();
|
CClientList::registerMetadata();
|
||||||
CEcosystem::registerMetadata();
|
CEcosystem::registerMetadata();
|
||||||
CEcosystemList::registerMetadata();
|
CEcosystemList::registerMetadata();
|
||||||
|
|||||||
Reference in New Issue
Block a user