/** * Handler for player data * $Id$ * $HeadURL$ * $Author$ * Created by gr, SLSE, 2017-02-20 */ #pragma once #include "initialization.h" #include "logger.h" #include #include // Participand Management-Handling for Effect Show Actors namespace EffectShowManagement { /** * @brief Handler for the provision of effect show actor data. * * (1)Receives participant data from Participant Management service.\n * (2)Retrieves the effect show actor information from participant data.\n */ class HandlerPpmData : public QObject { Q_OBJECT public: explicit HandlerPpmData(Initialization *mainHandler, QObject *parent = nullptr); /** * @brief Connects to Participant Management service in order to access Participant data. */ bool init(); /** * @brief ID, name and equipment number of effect show actor */ struct Participant_t { Participant_t() = default; explicit Participant_t(const ParticipantManagement::Participant &data) : id(data.id()) , equipmentNumber(data.equipmentNumber().is_set() ? data.equipmentNumber().get() : 0) , name(QString::fromStdString(data.name())) {} int id = -1; int equipmentNumber = 0; QString name; }; /** * @brief Returns ID, name and equipment number of the effect show actor. (-1, if not available). * @param[in] equipmentNum Equipment number * @return ID, name and equipment number of the effect show actor. */ Participant_t getIdAndNameOfEffectShowActor(int equipmentNum) const; /** * @brief Returns the equipment number of the allocated effect show actor. (-1, if not available). * @param[in] id ID of effect show actor * @return Equipment number of the allocated effect show actor. */ int getEquipmentNumber(int id) const; private Q_SLOTS: void onParticipantChanged(const ParticipantManagement::Participant &data, DataModification modType); private: QMap m_participant; // key = ID Initialization *m_mainHandler; NGL::INGLLogger &m_logger; }; } // namespace EffectShowManagement