#pragma once #include #include #include "logger.h" #include #include #include namespace WirelessLocationSystem { class MainHandler; class IsmHandler : public QObject { Q_OBJECT public: explicit IsmHandler(QObject *parent = nullptr); bool init(MainHandler *mainHandler); int buildingIdFromExternalWlsId(int externalWlsId) const { return m_externalWlsId2MseId.value(externalWlsId, -1); } int roomIdFromRoomNumber(int buildingId, int roomNumber) const { return m_mseId2RoomId.value(buildingId).value(roomNumber, -1); } private Q_SLOTS: void onMainStructureElementChanged(const InfrastructureManagement::MainStructureElement &data, DataModification modType); private: NGL::INGLLogger &m_logger; QHash m_mainStructureElements; QHash m_externalWlsId2MseId; QHash> m_mseId2RoomId; std::shared_ptr m_dtcIsm; }; }