#ifndef CONFIGHIVE_H #define CONFIGHIVE_H namespace icinga { struct ConfigHiveEventArgs : public EventArgs { typedef shared_ptr RefType; typedef weak_ptr WeakRefType; ConfigObject::RefType Object; string Property; string OldValue; }; class ConfigHive : public Object { public: typedef shared_ptr RefType; typedef weak_ptr WeakRefType; typedef map< string, map >::iterator TypeIterator; typedef map::iterator ObjectIterator; map< string, map > Objects; void AddObject(ConfigObject::RefType object); void RemoveObject(ConfigObject::RefType object); ConfigObject::RefType GetObject(const string& type, const string& name = string()); event OnObjectCreated; event OnObjectRemoved; event OnPropertyChanged; }; } #endif /* CONFIGHIVE_H */