1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
6 #include "icinga/i2-icinga.hpp"
7 #include "icinga/hostgroup-ti.hpp"
8 #include "icinga/host.hpp"
16 * An Icinga host group.
20 class HostGroup final : public ObjectImpl<HostGroup>
23 DECLARE_OBJECT(HostGroup);
24 DECLARE_OBJECTNAME(HostGroup);
26 std::set<Host::Ptr> GetMembers() const;
27 void AddMember(const Host::Ptr& host);
28 void RemoveMember(const Host::Ptr& host);
30 bool ResolveGroupMembership(const Host::Ptr& host, bool add = true, int rstack = 0);
32 static void EvaluateObjectRules(const Host::Ptr& host);
35 mutable boost::mutex m_HostGroupMutex;
36 std::set<Host::Ptr> m_Members;
38 static bool EvaluateObjectRule(const Host::Ptr& host, const intrusive_ptr<ConfigItem>& item);
43 #endif /* HOSTGROUP_H */