]> granicus.if.org Git - icinga2/blob - lib/methods/timeperiodtask.cpp
Fix incorrect field name
[icinga2] / lib / methods / timeperiodtask.cpp
1 /******************************************************************************
2  * Icinga 2                                                                   *
3  * Copyright (C) 2012-2014 Icinga Development Team (http://www.icinga.org)    *
4  *                                                                            *
5  * This program is free software; you can redistribute it and/or              *
6  * modify it under the terms of the GNU General Public License                *
7  * as published by the Free Software Foundation; either version 2             *
8  * of the License, or (at your option) any later version.                     *
9  *                                                                            *
10  * This program is distributed in the hope that it will be useful,            *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
13  * GNU General Public License for more details.                               *
14  *                                                                            *
15  * You should have received a copy of the GNU General Public License          *
16  * along with this program; if not, write to the Free Software Foundation     *
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.             *
18  ******************************************************************************/
19
20 #include "methods/timeperiodtask.hpp"
21 #include "base/scriptfunction.hpp"
22
23 using namespace icinga;
24
25 REGISTER_SCRIPTFUNCTION(EmptyTimePeriod, &TimePeriodTask::EmptyTimePeriodUpdate);
26 REGISTER_SCRIPTFUNCTION(EvenMinutesTimePeriod, &TimePeriodTask::EvenMinutesTimePeriodUpdate);
27
28 Array::Ptr TimePeriodTask::EmptyTimePeriodUpdate(const TimePeriod::Ptr&, double, double)
29 {
30         Array::Ptr segments = make_shared<Array>();
31         return segments;
32 }
33
34 Array::Ptr TimePeriodTask::EvenMinutesTimePeriodUpdate(const TimePeriod::Ptr&, double begin, double end)
35 {
36         Array::Ptr segments = make_shared<Array>();
37
38         for (long t = begin / 60 - 1; t * 60 < end; t++) {
39                 if ((t % 2) == 0) {
40                         Dictionary::Ptr segment = make_shared<Dictionary>();
41                         segment->Set("begin", t * 60);
42                         segment->Set("end", (t + 1) * 60);
43
44                         segments->Add(segment);
45                 }
46         }
47
48         return segments;
49 }