1#ifndef LINTEL_PROCESS_H
2#define LINTEL_PROCESS_H
26 std::filesystem::path m_path;
27 std::vector<std::string> m_args;
29 std::string m_configName;
30 bool m_autoRestart =
false;
32 int m_maxAutoRestarts = -1;
34 std::chrono::milliseconds m_restartDelay = std::chrono::milliseconds(0);
35 std::chrono::milliseconds m_restartDelayMax = std::chrono::milliseconds(0);
36 std::chrono::milliseconds m_minUptime = std::chrono::milliseconds(0);
37 int m_maxRestartRate = -1;
38 std::chrono::milliseconds m_restartWindow = std::chrono::milliseconds(0);
39 std::chrono::milliseconds m_restartInterval = std::chrono::milliseconds(0);
40 std::optional<int32_t> m_activeFromHour;
41 std::optional<int32_t> m_activeToHour;
42 std::optional<double> m_cpuNotify;
43 std::optional<uint64_t> m_memoryNotify;
45 std::shared_ptr<std::function<
void(
const Process &)>> m_onStart =
nullptr;
46 std::shared_ptr<std::function<
void(
const Process &)>> m_onStop =
nullptr;
47 std::shared_ptr<std::function<
void(
const Process &)>> m_onRestart =
nullptr;
48 std::shared_ptr<std::function<
void(
const Process &)>> m_onTerminate =
nullptr;
49 std::shared_ptr<std::function<
void(
const Process &)>> m_onFinish =
nullptr;
Process(std::filesystem::path path, std::vector< std::string > args, std::string configName="")
bool hasActiveWindow() const
void addOnRestartEvent(std::shared_ptr< std::function< void(const Process &)> > onRestart)
int getMaxRestartRate() const
const std::string & getConfigName() const
std::optional< int32_t > getActiveFromHour() const
const std::string & getId() const
void setActiveToHour(std::optional< int32_t > activeToHour)
void setRestartDelay(std::chrono::milliseconds delay)
void addOnTerminateEvent(std::shared_ptr< std::function< void(const Process &)> > onTerminate)
int getMaxAutoRestarts() const
std::chrono::milliseconds getRestartInterval() const
void setRestartInterval(std::chrono::milliseconds restartInterval)
void setMaxRestartRate(int maxRestartRate)
std::optional< int32_t > getActiveToHour() const
int currentRestarts() const
void addOnFinishEvent(std::shared_ptr< std::function< void(const Process &)> > onFinish)
void setRestartWindow(std::chrono::milliseconds restartWindow)
const std::filesystem::path & getPath() const
void setMinUptime(std::chrono::milliseconds minUptime)
void addOnStartEvent(std::shared_ptr< std::function< void(const Process &)> > onStart)
void setActiveFromHour(std::optional< int32_t > activeFromHour)
void addOnStopEvent(std::shared_ptr< std::function< void(const Process &)> > onStop)
bool inActiveWindow() const
void setMemoryNotify(std::optional< uint64_t > memoryNotify)
std::chrono::milliseconds getRestartDelay() const
std::optional< double > getCpuNotify() const
std::chrono::milliseconds getMinUptime() const
std::chrono::milliseconds getRestartDelayMax() const
void setRestartDelayMax(std::chrono::milliseconds delayMax)
void setCpuNotify(std::optional< double > cpuNotify)
std::chrono::milliseconds getRestartWindow() const
void enableAutoStart(int maxAutoRestarts=-1)
const std::vector< std::string > & getArgs() const
std::optional< uint64_t > getMemoryNotify() const
bool isAutoRestart() const
static std::string generate()
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9