#pragma once #include "scm_dialog_service.h" #include #include namespace Ui { class GroupWidget; } namespace ServiceManagement { class GroupWidget : public QWidget { Q_OBJECT public: GroupWidget(const Core::ServiceGroupType &groupType, int server, int exercise, int32_t replayPartitionId, const QString &groupName, long long timestamp, const QVector &neededServices, QWidget *parent = nullptr); ~GroupWidget(); void addService(ServiceWidget *service); void setType(Core::ServiceGroupType type); // sets group name void setServer(int server); void setExercise(int exercise); void setTimestamp(long long timestamp); ServiceWidget::Status getStatus() const; void setStatus(ServiceWidget::Status status); void checkStatus(); private: Ui::GroupWidget *m_ui; ServiceWidget::Status m_status; Core::ServiceGroupType m_groupType; int m_server; int m_exercise; QString m_groupName; int32_t m_replayPartitionId; QVector m_neededServices; private slots: void slotRestartGroup(); void slotStartGroup(); void slotStopGroup(); signals: void signalRestartGroup(const Core::ServiceGroupType &groupType, int, int, int32_t replayPartitionId); void signalStartGroup(const Core::ServiceGroupType &groupType, int, int, const int32_t replayPartitionId); void signalStopGroup(const Core::ServiceGroupType &groupType, int, int, const int32_t replayPartitionId); }; } // namespace ServiceManagement