#ifndef CONFIGHIVE_H #define CONFIGHIVE_H namespace icinga { class ConfigHive : public Object { public: typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; typedef map::iterator CollectionIterator; map Collections; void AddObject(const ConfigObject::Ptr& object); void RemoveObject(const ConfigObject::Ptr& object); ConfigObject::Ptr GetObject(const string& collection, const string& name = string()); ConfigCollection::Ptr GetCollection(const string& collection); void ForEachObject(const string& type, function callback); event OnObjectCreated; event OnObjectRemoved; event OnPropertyChanged; }; } #endif /* CONFIGHIVE_H */