1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
3 #include "icinga/customvarobject.hpp"
4 #include "icinga/customvarobject-ti.cpp"
5 #include "icinga/macroprocessor.hpp"
6 #include "base/logger.hpp"
7 #include "base/function.hpp"
8 #include "base/exception.hpp"
9 #include "base/objectlock.hpp"
11 using namespace icinga;
13 REGISTER_TYPE(CustomVarObject);
15 void CustomVarObject::ValidateVars(const Lazy<Dictionary::Ptr>& lvalue, const ValidationUtils& utils)
17 MacroProcessor::ValidateCustomVars(this, lvalue());
20 int icinga::FilterArrayToInt(const Array::Ptr& typeFilters, const std::map<String, int>& filterMap, int defaultValue)
29 ObjectLock olock(typeFilters);
30 for (const Value& typeFilter : typeFilters) {
31 if (typeFilter.IsNumber()) {
32 resultTypeFilter = resultTypeFilter | typeFilter;
36 if (!typeFilter.IsString())
39 auto it = filterMap.find(typeFilter);
41 if (it == filterMap.end())
44 resultTypeFilter = resultTypeFilter | it->second;
47 return resultTypeFilter;