Implement handler for hostgroup changes.

This commit is contained in:
Gunnar Beutner 2013-08-02 08:23:07 +02:00
parent 7e01b2bb47
commit 7a96794dbc
2 changed files with 26 additions and 0 deletions

View File

@ -22,16 +22,24 @@
#include "ido/dbvalue.h" #include "ido/dbvalue.h"
#include "icinga/hostgroup.h" #include "icinga/hostgroup.h"
#include "base/objectlock.h" #include "base/objectlock.h"
#include "base/initialize.h"
#include "base/logger_fwd.h"
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
using namespace icinga; using namespace icinga;
REGISTER_DBTYPE(HostGroup, "hostgroup", 3, "hostgroup_object_id", HostGroupDbObject); 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) HostGroupDbObject::HostGroupDbObject(const DbType::Ptr& type, const String& name1, const String& name2)
: DbObject(type, name1, name2) : DbObject(type, name1, name2)
{ } { }
void HostGroupDbObject::StaticInitialize(void)
{
HostGroup::OnMembersChanged.connect(&HostGroupDbObject::MembersChangedHandler);
}
Dictionary::Ptr HostGroupDbObject::GetConfigFields(void) const Dictionary::Ptr HostGroupDbObject::GetConfigFields(void) const
{ {
Dictionary::Ptr fields = boost::make_shared<Dictionary>(); Dictionary::Ptr fields = boost::make_shared<Dictionary>();
@ -46,3 +54,13 @@ Dictionary::Ptr HostGroupDbObject::GetStatusFields(void) const
{ {
return Empty; return Empty;
} }
void HostGroupDbObject::OnConfigUpdate(void)
{
MembersChangedHandler();
}
void HostGroupDbObject::MembersChangedHandler(void)
{
Log(LogWarning, "ido", "MOO");
}

View File

@ -38,8 +38,16 @@ public:
HostGroupDbObject(const DbType::Ptr& type, const String& name1, const String& name2); HostGroupDbObject(const DbType::Ptr& type, const String& name1, const String& name2);
static void StaticInitialize(void);
virtual Dictionary::Ptr GetConfigFields(void) const; virtual Dictionary::Ptr GetConfigFields(void) const;
virtual Dictionary::Ptr GetStatusFields(void) const; virtual Dictionary::Ptr GetStatusFields(void) const;
protected:
virtual void OnConfigUpdate(void);
private:
static void MembersChangedHandler(void);
}; };
} }