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/objecttype.cpp | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 lib/base/objecttype.cpp (limited to 'lib/base/objecttype.cpp') diff --git a/lib/base/objecttype.cpp b/lib/base/objecttype.cpp new file mode 100644 index 0000000..b871555 --- /dev/null +++ b/lib/base/objecttype.cpp @@ -0,0 +1,57 @@ +/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ + +#include "base/objecttype.hpp" +#include "base/initialize.hpp" +#include + +using namespace icinga; + +/* Ensure that the priority is lower than the basic namespace initialization in scriptframe.cpp. */ +INITIALIZE_ONCE_WITH_PRIORITY([]() { + Type::Ptr type = new ObjectType(); + type->SetPrototype(Object::GetPrototype()); + Type::Register(type); + Object::TypeInstance = type; +}, InitializePriority::RegisterObjectType); + +String ObjectType::GetName() const +{ + return "Object"; +} + +Type::Ptr ObjectType::GetBaseType() const +{ + return nullptr; +} + +int ObjectType::GetAttributes() const +{ + return 0; +} + +int ObjectType::GetFieldId(const String& name) const +{ + if (name == "type") + return 0; + else + return -1; +} + +Field ObjectType::GetFieldInfo(int id) const +{ + if (id == 0) + return {1, "String", "type", nullptr, nullptr, 0, 0}; + else + BOOST_THROW_EXCEPTION(std::runtime_error("Invalid field ID.")); +} + +int ObjectType::GetFieldCount() const +{ + return 1; +} + +ObjectFactory ObjectType::GetFactory() const +{ + return DefaultObjectFactory; +} + -- cgit v1.2.3