icinga2/lib/methods/timeperiodtask.cpp
Mattia Codato 867da09fb4 Revert "Use ExecuteCommandProcessFinishedHandler in TimePeriodTask"
This reverts commit abf164bceb1c8c3480537411cbc9d54dc27087d4.
2020-07-21 10:52:59 +02:00

36 lines
931 B
C++

/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
#include "methods/timeperiodtask.hpp"
#include "base/function.hpp"
using namespace icinga;
REGISTER_FUNCTION_NONCONST(Internal, EmptyTimePeriod, &TimePeriodTask::EmptyTimePeriodUpdate, "tp:begin:end");
REGISTER_FUNCTION_NONCONST(Internal, EvenMinutesTimePeriod, &TimePeriodTask::EvenMinutesTimePeriodUpdate, "tp:begin:end");
Array::Ptr TimePeriodTask::EmptyTimePeriodUpdate(const TimePeriod::Ptr& tp, double, double)
{
REQUIRE_NOT_NULL(tp);
Array::Ptr segments = new Array();
return segments;
}
Array::Ptr TimePeriodTask::EvenMinutesTimePeriodUpdate(const TimePeriod::Ptr& tp, double begin, double end)
{
REQUIRE_NOT_NULL(tp);
ArrayData segments;
for (long t = begin / 60 - 1; t * 60 < end; t++) {
if ((t % 2) == 0) {
segments.push_back(new Dictionary({
{ "begin", t * 60 },
{ "end", (t + 1) * 60 }
}));
}
}
return new Array(std::move(segments));
}