-/******************************************************************************\r
- * Icinga 2 *\r
- * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org) *\r
- * *\r
- * This program is free software; you can redistribute it and/or *\r
- * modify it under the terms of the GNU General Public License *\r
- * as published by the Free Software Foundation; either version 2 *\r
- * of the License, or (at your option) any later version. *\r
- * *\r
- * This program is distributed in the hope that it will be useful, *\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *\r
- * GNU General Public License for more details. *\r
- * *\r
- * You should have received a copy of the GNU General Public License *\r
- * along with this program; if not, write to the Free Software Foundation *\r
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *\r
- ******************************************************************************/\r
-\r
-#ifndef TYPERULE_H\r
-#define TYPERULE_H\r
-\r
-#include "config/i2-config.hpp"\r
-#include "config/typerulelist.hpp"\r
-#include "base/debuginfo.hpp"\r
-\r
-namespace icinga\r
-{\r
-\r
-/**\r
- * Utilities for type rules.\r
- *\r
- * @ingroup config\r
- */\r
-class I2_CONFIG_API TypeRuleUtilities\r
-{\r
-public:\r
- virtual bool ValidateName(const String& type, const String& name, String *hint) const;\r
-};\r
-\r
-/**\r
- * The allowed type for a type rule.\r
- *\r
- * @ingroup config\r
- */\r
-enum TypeSpecifier\r
-{\r
- TypeAny,\r
- TypeScalar,\r
- TypeNumber,\r
- TypeString,\r
- TypeDictionary,\r
- TypeArray,\r
- TypeName\r
-};\r
-\r
-/**\r
- * A configuration type rule.\r
- *\r
- * @ingroup config\r
- */\r
-struct I2_CONFIG_API TypeRule\r
-{\r
-public:\r
- TypeRule(TypeSpecifier type, const String& nameType,\r
- const String& namePattern, const TypeRuleList::Ptr& subRules,\r
- const DebugInfo& debuginfo);\r
-\r
- TypeRuleList::Ptr GetSubRules(void) const;\r
-\r
- bool MatchName(const String& name) const;\r
- bool MatchValue(const Value& value, String *hint, const TypeRuleUtilities *utils) const;\r
-\r
-private:\r
- TypeSpecifier m_Type;\r
- String m_NameType;\r
- String m_NamePattern;\r
- TypeRuleList::Ptr m_SubRules;\r
- DebugInfo m_DebugInfo;\r
-};\r
-\r
-}\r
-\r
-#endif /* TYPERULE_H */\r
+/******************************************************************************
+ * Icinga 2 *
+ * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org) *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 2 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the Free Software Foundation *
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ******************************************************************************/
+
+#ifndef TYPERULE_H
+#define TYPERULE_H
+
+#include "config/i2-config.hpp"
+#include "config/typerulelist.hpp"
+#include "base/debuginfo.hpp"
+
+namespace icinga
+{
+
+/**
+ * Utilities for type rules.
+ *
+ * @ingroup config
+ */
+class I2_CONFIG_API TypeRuleUtilities
+{
+public:
+ virtual bool ValidateName(const String& type, const String& name, String *hint) const;
+};
+
+/**
+ * The allowed type for a type rule.
+ *
+ * @ingroup config
+ */
+enum TypeSpecifier
+{
+ TypeAny,
+ TypeScalar,
+ TypeNumber,
+ TypeString,
+ TypeDictionary,
+ TypeArray,
+ TypeFunction,
+ TypeName
+};
+
+/**
+ * A configuration type rule.
+ *
+ * @ingroup config
+ */
+struct I2_CONFIG_API TypeRule
+{
+public:
+ TypeRule(TypeSpecifier type, const String& nameType,
+ const String& namePattern, const TypeRuleList::Ptr& subRules,
+ const DebugInfo& debuginfo);
+
+ TypeRuleList::Ptr GetSubRules(void) const;
+
+ bool MatchName(const String& name) const;
+ bool MatchValue(const Value& value, String *hint, const TypeRuleUtilities *utils) const;
+
+private:
+ TypeSpecifier m_Type;
+ String m_NameType;
+ String m_NamePattern;
+ TypeRuleList::Ptr m_SubRules;
+ DebugInfo m_DebugInfo;
+};
+
+}
+
+#endif /* TYPERULE_H */