From 56ae875861ab260b80a030f50c4aff9f9dc8fff0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 13:32:39 +0200 Subject: Adding upstream version 2.14.2. Signed-off-by: Daniel Baumann --- lib/base/reference.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lib/base/reference.cpp (limited to 'lib/base/reference.cpp') diff --git a/lib/base/reference.cpp b/lib/base/reference.cpp new file mode 100644 index 0000000..b0104af --- /dev/null +++ b/lib/base/reference.cpp @@ -0,0 +1,38 @@ +/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ + +#include "base/reference.hpp" +#include "base/debug.hpp" +#include "base/primitivetype.hpp" +#include "base/dictionary.hpp" +#include "base/configwriter.hpp" +#include "base/convert.hpp" +#include "base/exception.hpp" + +using namespace icinga; + +REGISTER_PRIMITIVE_TYPE_NOINST(Reference, Object, Reference::GetPrototype()); + +Reference::Reference(const Object::Ptr& parent, const String& index) + : m_Parent(parent), m_Index(index) +{ +} + +Value Reference::Get() const +{ + return m_Parent->GetFieldByName(m_Index, true, DebugInfo()); +} + +void Reference::Set(const Value& value) +{ + m_Parent->SetFieldByName(m_Index, value, false, DebugInfo()); +} + +Object::Ptr Reference::GetParent() const +{ + return m_Parent; +} + +String Reference::GetIndex() const +{ + return m_Index; +} -- cgit v1.2.3