/** * @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: ScheduleStatusBase(const QString &objectName, const ScheduleStatus &scheduleStatus, ObjectMainSchedule* objSchedule); void onEntry(QEvent *event); int scheduleId() const { return m_schedule ? m_schedule->getId() : -1; } protected: ObjectMainSchedule *m_schedule; NGL::INGLLogger &m_logger; 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: 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: void onEntry(QEvent *event); }; class Expiration : public ScheduleStatusBase { Q_OBJECT public: explicit Expiration(ObjectMainSchedule *objSchedule); protected: void onEntry(QEvent *event); }; class Removing : public ScheduleStatusBase { Q_OBJECT public: explicit Removing(ObjectMainSchedule *objSchedule); }; } // namespace InfrastructureManagement