]> granicus.if.org Git - icinga2/commitdiff
Implement handler for hostgroup changes.
authorGunnar Beutner <gunnar.beutner@netways.de>
Fri, 2 Aug 2013 06:23:07 +0000 (08:23 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Fri, 2 Aug 2013 06:57:29 +0000 (08:57 +0200)
lib/ido/hostgroupdbobject.cpp
lib/ido/hostgroupdbobject.h

index 3e084452f7da4808ef7e49a704474c6a89c6d0d0..a90079850b7146a5501b5b6947e7ac0381630243 100644 (file)
 #include "ido/dbvalue.h"
 #include "icinga/hostgroup.h"
 #include "base/objectlock.h"
+#include "base/initialize.h"
+#include "base/logger_fwd.h"
 #include <boost/foreach.hpp>
 
 using namespace icinga;
 
 REGISTER_DBTYPE(HostGroup, "hostgroup", 3, "hostgroup_object_id", HostGroupDbObject);
+INITIALIZE_ONCE(HostGroupDbObject, &HostGroupDbObject::StaticInitialize);
 
 HostGroupDbObject::HostGroupDbObject(const DbType::Ptr& type, const String& name1, const String& name2)
        : DbObject(type, name1, name2)
 { }
 
+void HostGroupDbObject::StaticInitialize(void)
+{
+       HostGroup::OnMembersChanged.connect(&HostGroupDbObject::MembersChangedHandler);
+}
+
 Dictionary::Ptr HostGroupDbObject::GetConfigFields(void) const
 {
        Dictionary::Ptr fields = boost::make_shared<Dictionary>();
@@ -46,3 +54,13 @@ Dictionary::Ptr HostGroupDbObject::GetStatusFields(void) const
 {
        return Empty;
 }
+
+void HostGroupDbObject::OnConfigUpdate(void)
+{
+       MembersChangedHandler();
+}
+
+void HostGroupDbObject::MembersChangedHandler(void)
+{
+       Log(LogWarning, "ido", "MOO");
+}
index c9ce9a7ee61235ae7d4203c8a8b0e5a0e004f3d7..a09399045a083fd77712374308ded784af7cfc4b 100644 (file)
@@ -38,8 +38,16 @@ public:
 
        HostGroupDbObject(const DbType::Ptr& type, const String& name1, const String& name2);
 
+       static void StaticInitialize(void);
+
        virtual Dictionary::Ptr GetConfigFields(void) const;
        virtual Dictionary::Ptr GetStatusFields(void) const;
+
+protected:
+       virtual void OnConfigUpdate(void);
+
+private:
+       static void MembersChangedHandler(void);
 };
 
 }