/** * @RDE_HEADER@ * State Machine handler for Exercise Object * $Id$ * $HeadURL$ * $Author$ * * Created by Iuliana Ojog, SLTE */ #pragma once #include #include #include namespace NGL { class INGLLogger; } namespace InfrastructureManagement { class ScheduleStatusManager; class ScheduleStatusBase; class ObjectMainSchedule; class ScheduleStatusMachine : public QObject { Q_OBJECT public: explicit ScheduleStatusMachine(InfrastructureManagement::ObjectMainSchedule *objSchedule, QObject *parent = nullptr); ~ScheduleStatusMachine(); bool init(); bool switchToState(InfrastructureManagement::ScheduleStatus newScheduleStatus); InfrastructureManagement::ScheduleStatus getCurrentState(); Q_SIGNALS: void finished(); void ScheduleStatusChanged(InfrastructureManagement::ScheduleStatus ScheduleStatus); public Q_SLOTS: void onEnteredState(); private: ScheduleStatusBase *getStateFromId(InfrastructureManagement::ScheduleStatus ScheduleStatus); int scheduleId() const; ScheduleStatusManager *m_stateManager; QStateMachine *m_stateMachine; QMap m_ScheduleStatuses; ObjectMainSchedule *m_schedule; NGL::INGLLogger &m_logger; }; } // namespace InfrastructureManagement