mirror of https://github.com/Icinga/icinga2.git
39 lines
799 B
C++
39 lines
799 B
C++
/* 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;
|
|
}
|