#ifndef CONFIGCOLLECTION_H #define CONFIGCOLLECTION_H namespace icinga { class ConfigHive; class I2_BASE_API ConfigCollection : public Object { private: weak_ptr m_Hive; public: typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; typedef map::iterator ObjectIterator; typedef map::const_iterator ObjectConstIterator; map Objects; void SetHive(const weak_ptr& hive); weak_ptr GetHive(void) const; void AddObject(const ConfigObject::Ptr& object); void RemoveObject(const ConfigObject::Ptr& object); ConfigObject::Ptr GetObject(const string& name = string()) const; void ForEachObject(function callback); Event OnObjectCreated; Event OnObjectRemoved; Event OnPropertyChanged; }; } #endif /* CONFIGCOLLECTION_H */