Remove Host::OnInitCompleted and clean up the classes' constructors.

Fixes #3678
This commit is contained in:
Gunnar Beutner 2013-02-11 14:01:52 +01:00
parent f6f771a3f6
commit 2501ff805a
12 changed files with 22 additions and 33 deletions

View File

@ -484,9 +484,6 @@ void DynamicObject::FlushTx(void)
void DynamicObject::OnAttributeChanged(const String&, const Value&)
{ }
void DynamicObject::OnInitCompleted(void)
{ }
DynamicObject::Ptr DynamicObject::GetObject(const String& type, const String& name)
{
DynamicType::Ptr dtype = DynamicType::GetByName(type);

View File

@ -133,7 +133,6 @@ public:
protected:
virtual void OnAttributeChanged(const String& name, const Value& oldValue);
virtual void OnInitCompleted(void);
private:
void InternalSetAttribute(const String& name, const Value& data, double tx, bool allowEditConfig = false);
@ -149,8 +148,6 @@ private:
/* This has to be a set of raw pointers because the DynamicObject
* constructor has to be able to insert objects into this list. */
static set<DynamicObject *> m_ModifiedObjects;
friend class DynamicType; /* for OnInitCompleted */
};
}

View File

@ -93,9 +93,6 @@ DynamicObject::Ptr DynamicType::CreateObject(const Dictionary::Ptr& serializedUp
/* apply the object's non-config attributes */
obj->ApplyUpdate(serializedUpdate, Attribute_All & ~Attribute_Config);
/* notify the object that it's "ready" */
obj->OnInitCompleted();
return obj;
}

View File

@ -27,7 +27,7 @@ bool Host::m_ServicesCacheValid = true;
REGISTER_SCRIPTFUNCTION("native::ValidateServiceDictionary", &Host::ValidateServiceDictionary);
static AttributeDescription hostAttributes[] = {
{ "convenience_services", Attribute_Transient }
{ "slave_services", Attribute_Transient }
};
REGISTER_TYPE(Host, hostAttributes);
@ -36,18 +36,11 @@ Host::Host(const Dictionary::Ptr& properties)
: DynamicObject(properties)
{ }
void Host::OnInitCompleted(void)
{
HostGroup::InvalidateMembersCache();
UpdateSlaveServices();
}
Host::~Host(void)
{
HostGroup::InvalidateMembersCache();
Dictionary::Ptr services = Get("convenience_services");
Dictionary::Ptr services = Get("slave_services");
if (services) {
ConfigItem::Ptr service;

View File

@ -37,7 +37,6 @@ public:
typedef weak_ptr<Host> WeakPtr;
Host(const Dictionary::Ptr& properties);
void OnInitCompleted(void);
~Host(void);
static bool Exists(const String& name);

View File

@ -26,6 +26,10 @@ bool HostGroup::m_MembersCacheValid = true;
REGISTER_TYPE(HostGroup, NULL);
HostGroup::HostGroup(const Dictionary::Ptr& properties)
: DynamicObject(properties)
{ }
String HostGroup::GetDisplayName(void) const
{
String value = Get("alias");
@ -112,4 +116,3 @@ void HostGroup::ValidateMembersCache(void)
m_MembersCacheValid = true;
}

View File

@ -34,9 +34,7 @@ public:
typedef shared_ptr<HostGroup> Ptr;
typedef weak_ptr<HostGroup> WeakPtr;
HostGroup(const Dictionary::Ptr& properties)
: DynamicObject(properties)
{ }
HostGroup(const Dictionary::Ptr& properties);;
static bool Exists(const String& name);
static HostGroup::Ptr GetByName(const String& name);

View File

@ -108,3 +108,9 @@ void Notification::NotificationCompletedHandler(const ScriptTask::Ptr& task)
Logger::Write(LogWarning, "icinga", message);
}
}
void Notification::OnAttributeChanged(const String& name, const Value& oldValue)
{
if (name == "host_name" || name == "service")
Service::InvalidateNotificationsCache();
}

View File

@ -62,6 +62,9 @@ public:
void SendNotification(NotificationType type);
protected:
void OnAttributeChanged(const String& name, const Value& oldValue);
private:
set<ScriptTask::Ptr> m_Tasks;

View File

@ -47,12 +47,7 @@ REGISTER_TYPE(Service, serviceAttributes);
Service::Service(const Dictionary::Ptr& serializedObject)
: DynamicObject(serializedObject)
{
ServiceGroup::InvalidateMembersCache();
Host::InvalidateServicesCache();
Service::InvalidateDowntimeCache();
Service::InvalidateCommentCache();
}
{ }
Service::~Service(void)
{

View File

@ -26,6 +26,10 @@ bool ServiceGroup::m_MembersCacheValid;
REGISTER_TYPE(ServiceGroup, NULL);
ServiceGroup::ServiceGroup(const Dictionary::Ptr& properties)
: DynamicObject(properties)
{ }
String ServiceGroup::GetDisplayName(void) const
{
String value = Get("alias");
@ -112,4 +116,3 @@ void ServiceGroup::ValidateMembersCache(void)
m_MembersCacheValid = true;
}

View File

@ -34,9 +34,7 @@ public:
typedef shared_ptr<ServiceGroup> Ptr;
typedef weak_ptr<ServiceGroup> WeakPtr;
ServiceGroup(const Dictionary::Ptr& properties)
: DynamicObject(properties)
{ }
ServiceGroup(const Dictionary::Ptr& properties);
static bool Exists(const String& name);
static ServiceGroup::Ptr GetByName(const String& name);