icinga2/lib/icinga/timeperiod.ti
Alexander A. Klimov 98cfe491b7 Don't generate a mutex for each Locked<T>, share one per object
This reduces RAM usage per object by sizeof(mutex)*(FIELDS-1).
2024-11-13 15:59:48 +01:00

48 lines
1.0 KiB
Plaintext

/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
#include "icinga/customvarobject.hpp"
#include "base/function.hpp"
library icinga;
namespace icinga
{
class TimePeriod : CustomVarObject
{
[config] String display_name {
get {{{
String displayName = m_DisplayName.load(m_FieldsMutex);
if (displayName.IsEmpty())
return GetName();
else
return displayName;
}}}
};
[config, signal_with_old_value] Dictionary::Ptr ranges;
[config, required] Function::Ptr update;
[config] bool prefer_includes {
default {{{ return true; }}}
};
[config, required, signal_with_old_value] array(name(TimePeriod)) excludes {
default {{{ return new Array(); }}}
};
[config, required, signal_with_old_value] array(name(TimePeriod)) includes {
default {{{ return new Array(); }}}
};
[state, no_user_modify] Value valid_begin;
[state, no_user_modify] Value valid_end;
[state, no_user_modify] Array::Ptr segments;
[no_storage] bool is_inside {
get;
};
};
validator TimePeriod {
Dictionary ranges {
String "*";
};
};
}