/** * The Participant class is the base class for either Buildings or ExerciseParticipants. * $Id$ * $HeadURL$ * $Author$ * Created by Hannes Baeuerle, SLSE, 2016-05-23 */ #pragma once #include "participant.h" namespace ParticipantManagement { class MainHandler; namespace ParticipantHandling { class ParticipantHandler; class UnitPositionCalculator; class ParticipantForExercise final : public Participant { public: ParticipantForExercise(MainHandler *mainHandler, ParticipantHandler *particpantHandler, UnitPositionCalculator *unitPosCalculator, const Database::PpmParticipant &data); ~ParticipantForExercise(); bool publishParticipant() override; void removeFromDds() override; bool registerFromFt(const RegisterParticipantRequest &request); void registerInfoFromFt(const RegisterParticipantRequest &request); private: bool applyEquipmentExerciseMapping(int newEqId); void removeEquipmentExerciseMapping(int oldEqId, bool bIsShutdown); bool updateEquipmentExerciseMapping(int oldEqId, int newEqId) override; private: Database::EquipmentExerciseMapping m_equipmentExerciseMappingPublished; ParticipantManagement::MainHandler *m_mainHandler; }; // class Participant } // namespace ParticipantManagement } // namespace ParticipantHandling