Files
qt5-legatus-legacy/Lts/Proxies/CombatNetRadio/active_exercises.h
T
2026-08-13 18:33:10 +02:00

63 lines
1.2 KiB
C++
Executable File

/**
* @RDE_HEADER@
* ActiveExercises
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Fröbel, NLE, 2019-08-01
*/
#pragma once
#include <QObject>
#include <set>
namespace ExerciseManagement
{
namespace Interface
{
class Dtc;
}
class Exercise;
} // namespace ExerciseManagement
enum class DataModification;
namespace CombatNetRadio
{
/**
* Observes the Exercises and signals whenever an Exercise gets activated or deactivated.
* An Exercise is considered active if its state is either Started or Paused.
* Whether the Exercise has an active FrequencyPlanning is irrelevant.
*
* @author Christian Fröbel
*/
class ActiveExercises : public QObject
{
Q_OBJECT
public:
ActiveExercises(ExerciseManagement::Interface::Dtc *exmDtc);
signals:
void activated(int exerciseId);
void deactivated(int exerciseId);
private:
void onExerciseChanged(const ExerciseManagement::Exercise &exercise, DataModification modType);
private:
void check(const ExerciseManagement::Exercise &exercise);
void tryActivate(int exerciseId);
void tryDeactivate(int exerciseId);
ExerciseManagement::Interface::Dtc *m_exmDtc;
std::set<int> m_activeExercises;
};
} // namespace CombatNetRadio