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