#ifndef CONFIGOBJECT_H #define CONFIGOBJECT_H #include namespace icinga { class ConfigHive; struct I2_BASE_API ConfigObjectEventArgs : public EventArgs { typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; string Property; string OldValue; }; class I2_BASE_API ConfigObject : public Object { private: weak_ptr m_Hive; string m_Name; string m_Type; public: typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; typedef map::iterator ParameterIterator; map Properties; ConfigObject(const string& type, const string& name); void SetHive(const weak_ptr& hive); weak_ptr GetHive(void) const; void SetName(const string& name); string GetName(void) const; void SetType(const string& type); string GetType(void) const; void SetProperty(const string& name, const string& value); void SetPropertyInteger(const string& name, int value); void SetPropertyDouble(const string& name, double value); bool GetProperty(const string& name, string *value) const; bool GetPropertyInteger(const string& name, int *value) const; bool GetPropertyDouble(const string& name, double *value) const; }; } #endif /* CONFIGOBJECT_H */