/** * Handler for Blocked Areas * $Id$ * $HeadURL$ * $Author$ * Created by gr, SLSE, 2018-07-02 */ #pragma once #include #include #include #include #include #include #include #include // AES-Handling for participants within buildings namespace CesParticipantBuildings { class HandlerBlockedAreas final : public QObject , protected TrainingAreaBase::Interface::Ftc::SendParticipantBlockedAreaReplyHandler { Q_OBJECT public: explicit HandlerBlockedAreas(const std::shared_ptr &ddsHandler, const std::shared_ptr &participantHandler, const std::shared_ptr &participantBuildingHandler, QObject *parent); ~HandlerBlockedAreas(); /** * Initialize the handler to manage information from player management */ bool init(); protected: void onSendParticipantBlockedAreaReply(const Core::FunctionReplyObject &replyObject) override final; private Q_SLOTS: /** * Handle new Participant Position */ void onParticipantPositionChanged(const CentralEffectSimulation::HandlerParticipant::CesParticipantData &partPos); void onBuildingStateChanged(const int32_t buildingId); private: // attributes std::shared_ptr m_ddsHandler; ///< Pointer to DDS handler std::shared_ptr m_handlerParticipant; std::shared_ptr m_handlerParticipantBuilding; QHash m_blockedAreas; // key = participantId, value = roomId CentralEffectSimulation::LOGGER_T &m_logger; ///< Interface to the Logging-Facility }; } // namespace CesParticipantBuildings