/** * @RDE_HEADER@ * Base for ScheduleStatus * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include #include "object_main_schedule.h" namespace InfrastructureManagement { class ScheduleStatusBase : public QState { Q_OBJECT public: InfrastructureManagement::ScheduleStatus scheduleStatus() const { return m_scheduleStatus; } protected: NGL::INGLLogger &m_logger; ScheduleStatusBase(const QString &objectName, const ScheduleStatus &scheduleStatus, ObjectMainSchedule* objSchedule); void onEntry(QEvent *event); int scheduleId() const { return m_schedule ? m_schedule->getId() : -1; } protected: NGL::INGLLogger &m_logger; ObjectMainSchedule *m_schedule; private: const InfrastructureManagement::ScheduleStatus m_scheduleStatus; }; class Unknown : public ScheduleStatusBase { Q_OBJECT public: explicit Unknown(ObjectMainSchedule *objSchedule); }; class Creation : public ScheduleStatusBase { Q_OBJECT public: explicit Creation(ObjectMainSchedule *objSchedule); protected: NGL::INGLLogger &m_logger; void onEntry(QEvent *event); }; class Preparation : public ScheduleStatusBase { Q_OBJECT public: explicit Preparation(ObjectMainSchedule *objSchedule); }; class Activation : public ScheduleStatusBase { Q_OBJECT public: explicit Activation(ObjectMainSchedule *objSchedule); protected: NGL::INGLLogger &m_logger; void onEntry(QEvent *event); }; class Expiration : public ScheduleStatusBase { Q_OBJECT public: explicit Expiration(ObjectMainSchedule *objSchedule); protected: NGL::INGLLogger &m_logger; void onEntry(QEvent *event); }; class Removing : public ScheduleStatusBase { Q_OBJECT public: explicit Removing(ObjectMainSchedule *objSchedule); }; } // namespace InfrastructureManagement