Make originators calling updateAircraftModel identifable

refs #765
This commit is contained in:
Roland Winklmeier
2016-09-09 21:48:57 +02:00
parent 004ca4f0ca
commit 40d4c7774d
16 changed files with 46 additions and 27 deletions

View File

@@ -26,6 +26,7 @@
#include "blackmisc/aviation/atcstationlist.h"
#include "blackmisc/aviation/callsignset.h"
#include "blackmisc/aviation/flightplan.h"
#include "blackmisc/identifiable.h"
#include "blackmisc/identifier.h"
#include "blackmisc/network/clientlist.h"
#include "blackmisc/network/server.h"
@@ -126,7 +127,7 @@ namespace BlackCore
//! Aircraft model was changed
//! \details All remote aircraft are stored in the network context. The model can be updated here
//! via \sa updateAircraftModel and then this signal is fired
void changedRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
void changedRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator);
//! Aircraft enabled / disabled
//! \details All remote aircraft are stored in the network context. The aircraft can be enabled (for rendering) here
@@ -257,7 +258,7 @@ namespace BlackCore
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) = 0;
//! Change model string
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) = 0;
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0;
//! Change fast position updates
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositionSending) = 0;

View File

@@ -262,10 +262,11 @@ namespace BlackCore
}
//! \copydoc IContextNetwork::updateAircraftModel
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) override
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override
{
Q_UNUSED(callsign);
Q_UNUSED(model);
Q_UNUSED(originator);
logEmptyContextWarning(Q_FUNC_INFO);
return false;
}

View File

@@ -562,14 +562,14 @@ namespace BlackCore
return c;
}
bool CContextNetwork::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model)
bool CContextNetwork::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)
{
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign << model; }
bool c = this->m_airspace->updateAircraftModel(callsign, model);
bool c = this->m_airspace->updateAircraftModel(callsign, model, originator);
if (c)
{
CSimulatedAircraft aircraft(this->getAircraftInRangeForCallsign(callsign));
emit this->changedRemoteAircraftModel(aircraft);
emit this->changedRemoteAircraftModel(aircraft, originator);
}
return c;
}

View File

@@ -136,7 +136,7 @@ namespace BlackCore
//! \copydoc IContextNetwork::updateAircraftModel
//! \ingroup remoteaircraftprovider
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) override;
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
//! \copydoc IContextNetwork::updateFastPositionEnabled
//! \ingroup remoteaircraftprovider

View File

@@ -190,9 +190,9 @@ namespace BlackCore
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateAircraftEnabled"), callsign, enabledForRedering);
}
bool CContextNetworkProxy::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model)
bool CContextNetworkProxy::updateAircraftModel(const CCallsign &callsign, const CAircraftModel &model, const CIdentifier &originator)
{
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateAircraftModel"), callsign, model);
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateAircraftModel"), callsign, model, originator);
}
bool CContextNetworkProxy::updateFastPositionEnabled(const CCallsign &callsign, bool enableFastPositionSending)

View File

@@ -158,7 +158,7 @@ namespace BlackCore
virtual bool updateAircraftEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRedering) override;
//! \copydoc IContextNetwork::updateAircraftModel
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model) override;
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
//! \copydoc IContextNetwork::updateFastPositionEnabled
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositionSending) override;

View File

@@ -47,6 +47,7 @@ namespace BlackCore
{
CContextSimulator::CContextSimulator(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime) :
IContextSimulator(mode, runtime),
CIdentifiable(this),
m_plugins(new CPluginManagerSimulator(this))
{
this->setObjectName("CContextSimulator");
@@ -526,8 +527,9 @@ namespace BlackCore
getIContextOwnAircraft()->changedAircraftCockpit(ownAircraft, IContextSimulator::InterfaceName());
}
void CContextSimulator::ps_changedRemoteAircraftModel(const CSimulatedAircraft &aircraft)
void CContextSimulator::ps_changedRemoteAircraftModel(const CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator)
{
if (CIdentifiable::isMyIdentifier(originator)) { return; }
if (!isSimulatorSimulating()) { return; }
m_simulatorPlugin.second->changeRemoteAircraftModel(aircraft);
}

View File

@@ -50,7 +50,9 @@ namespace BlackCore
namespace Context
{
//! Network simulator concrete implementation
class BLACKCORE_EXPORT CContextSimulator : public IContextSimulator
class BLACKCORE_EXPORT CContextSimulator :
public IContextSimulator,
public BlackMisc::CIdentifiable
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTSIMULATOR_INTERFACENAME)
@@ -173,7 +175,7 @@ namespace BlackCore
void ps_cockpitChangedFromSimulator(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft);
//! Changed remote aircraft model
void ps_changedRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);
void ps_changedRemoteAircraftModel(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, const BlackMisc::CIdentifier &originator);
//! Enable / disable aircraft
void ps_changedRemoteAircraftEnabled(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);