/** * Exercise object * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include "dds_handler.h" #include "logger.h" #include #include // Generated #include namespace GuezIedManagement { class ObjectIed final : public QObject { Q_OBJECT public: explicit ObjectIed(const std::shared_ptr &ddsHandler, const std::shared_ptr &db, const std::shared_ptr &ppmDtc, QObject *parent = nullptr); ~ObjectIed(); Core::FunctionReplyObject createObject(const Database::GimIed &data); Core::FunctionReplyObject updateDefinition(const Database::GimIed &data); Core::FunctionReplyObject updateState(const Database::GimIed &data); Core::FunctionReplyObject updatePairingState(const Database::GimIed &data); Core::FunctionReplyObject removeObject(); int getId() const { return m_data.id; } int getEquipmentnumber() const { return m_data.equipmentNumber; } void setPosition(int64_t sampleTime, const Core::GeoPosition &pos); void setPosition(const IedPosition &position); protected slots: void onPublishData(); private slots: void onParticipantPositionChanged(const ParticipantManagement::ParticipantPosition &data, DataModification modType); private: void assignBaseData(const Database::GimIed &data); void assignPairingState(const Database::GimIed &data); Core::FunctionReplyObject updateObject(); inline void publishPosition(); bool isValid() const; std::shared_ptr m_ddsHandler; std::shared_ptr m_db; std::shared_ptr m_ppmDtc; Database::GimIed m_data; IedPosition m_position; NGL::INGLLogger &m_logger; }; }