#ifndef CONFIGHIVE_H #define CONFIGHIVE_H namespace icinga { class I2_BASE_API ConfigHive : public Object { public: typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; typedef map::iterator CollectionIterator; typedef map::const_iterator CollectionConstIterator; 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 */