/** * @RDE_HEADER@ * ScheduleStatusManager / Manages the state of an exercise * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include #include namespace NGL { class INGLLogger; } namespace InfrastructureManagement { class ObjectMainSchedule; class ScheduleStatusManager : public QObject { Q_OBJECT public: explicit ScheduleStatusManager(ObjectMainSchedule* objSchedule, QObject *parent = nullptr); bool triggerSwitchState(InfrastructureManagement::ScheduleStatus state); bool isValid(InfrastructureManagement::ScheduleStatus state) const; void setCurrent(InfrastructureManagement::ScheduleStatus state); void setInitial(InfrastructureManagement::ScheduleStatus state); static QString toString(InfrastructureManagement::ScheduleStatus state); Q_SIGNALS: void stateUnknown(); void stateCreated(); void statePrepared(); void stateActivated(); void stateExpired(); void stateRemoved(); void stateFalse(); private: void setStateInternal(InfrastructureManagement::ScheduleStatus state); int scheduleId() const; QMap > m_stateSignals; InfrastructureManagement::ScheduleStatus m_ScheduleStatus; ObjectMainSchedule *m_schedule; NGL::INGLLogger &m_logger; }; } // namespace InfrastructureManagement