#pragma once #include "logger.h" #include #include #include #include namespace DDSConnector { class DdsConnector; } namespace ComponentMonitor { class DdsHandler; class ComponentStatusHandler : public QObject { Q_OBJECT using CONT_T = QMap; using ITERATOR_T = QMap::iterator; using CONST_ITERATOR_T = QMap::ConstIterator; public: ComponentStatusHandler(); ~ComponentStatusHandler(); bool initialize(const std::shared_ptr &ddsHandler); long statusMapSize() const { return m_statusMap.size(); } std::vector getHostnames() const; public Q_SLOTS: void onNewState(const QString &hostname, bool reachable, long long lastCheckSec); void onUpdateLastCheckTimeDirect(const QStringList &hostnamesForUpdateLastCheckTime, qint64 lastCheckSec); private Q_SLOTS: void onInstrumentationAssetChanged(const InfrastructureManagement::InstrumentationAsset &iAsset, DataModification dataMod); void dump(); protected: NGL::INGLLogger &m_logger; bool addUpdateInstrumentationAsset(ITERATOR_T it, const ComponentStatus &cs); bool removeInstrumentationAsset(ITERATOR_T it); private: std::shared_ptr m_ddsHandler; std::shared_ptr m_ismDtc; CONT_T m_statusMap; }; }