#ifndef I2_CONFIGHIVE_H #define I2_CONFIGHIVE_H #include namespace icinga { using std::map; struct ConfigHiveEventArgs : public EventArgs { typedef shared_ptr RefType; typedef weak_ptr WeakRefType; ConfigObject::RefType ConfigObject; 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 /* I2_CONFIGHIVE_H */