/** * @RDE_HEADER@ * Guez Nasat NineLiner 9Liner * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "sim_to_situation_map_tmpl.h" #include #include #include #include class QTimer; namespace Buildings { class ForeignInfoGuiInterface; } namespace SituationMap { class GuezNasat9Liner2SituationMap final : public Sim2SituationMap , protected DdsFilterHandling { Q_OBJECT using BaseClass = SituationMap::Sim2SituationMap; using FilterClass = DdsFilterHandling; public: explicit GuezNasat9Liner2SituationMap(ObjectFactory &objFac, const QString &layername, int drawOrder, const char *loggerName); ~GuezNasat9Liner2SituationMap(); bool init(PluginProvider *pluginProvider); bool run() override; void stop() override { // m_participantWithMaybeMissingPartyId.clear(); if (m_gnaDtc) m_gnaDtc->disconnect(this); if (m_ppmDtc) m_ppmDtc->disconnect(this); } bool isElapsed(const GuezNasat::Nasat9Liner &ddsData) const override; bool mapObjectsClicked(const QVector &uniqueMapIds) override; bool unifiedMapObjectData(UniqueMapId uniqueMapId, UnifiedMapObjectData &umodOut) const override; protected Q_SLOTS: void onParticipantChanged(const ParticipantManagement::Participant &data, DataModification modType); void updateAllItems(); protected: int32_t getSimId(const Sim2SituationMap::DDS_T &ddsData) const override; bool handleChanged(const DDS_T &ddsData, DataModification modType); bool updateElementImpl(const Sim2SituationMap::DDS_T &ddsData, RefPointer mapObj) override; bool symbolAppearanceSettingsChangesAreRelevant(const FilterManagement::SymbolAppearanceSettings::Settings &newSas) const override; void handleSymbolAppearanceSettings(); void handleSymbolAppearanceSettings(RefPointer &mapObj) override; void handleSymbolAppearanceSettings(RefPointer mapObj, const Sim2SituationMap::DDS_T &ddsData); bool visibleByDisplayLength(const qint64 newPartitionTime, const qint64 stateTime) const; void onPartitionTimeChanged(); private: PluginProvider *m_pluginProvider{nullptr}; std::shared_ptr m_gnaDtc; // guez NASAT std::shared_ptr m_ppmDtc; // to get the partyId QHash m_participantToPartyId; QTimer *m_notifyTimer{nullptr}; QMap m_lastSampleTimePerParticipant; // participantId, sampleTime }; } // namespace