Files
qt5-legatus-legacy/Lts/Services/InfrastructureManagement/schedule_status_base.h
T
2026-08-13 18:33:10 +02:00

89 lines
1.8 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Base for ScheduleStatus
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <QState>
#include <InfrastructureManagement/ism_enums.hpp>
#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