diff options
Diffstat (limited to 'lib/base/reference.hpp')
-rw-r--r-- | lib/base/reference.hpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/base/reference.hpp b/lib/base/reference.hpp new file mode 100644 index 0000000..30faabe --- /dev/null +++ b/lib/base/reference.hpp @@ -0,0 +1,40 @@ +/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ + +#ifndef REFERENCE_H +#define REFERENCE_H + +#include "base/i2-base.hpp" +#include "base/objectlock.hpp" +#include "base/value.hpp" + +namespace icinga +{ + +/** + * A reference. + * + * @ingroup base + */ +class Reference final : public Object +{ +public: + DECLARE_OBJECT(Reference); + + Reference(const Object::Ptr& parent, const String& index); + + Value Get() const; + void Set(const Value& value); + + Object::Ptr GetParent() const; + String GetIndex() const; + + static Object::Ptr GetPrototype(); + +private: + Object::Ptr m_Parent; + String m_Index; +}; + +} + +#endif /* REFERENCE_H */ |